From 5efae29ed5838319f8ff65f6b3646d77a73f125a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=91=D1=83=D1=80=D0=B4=D0=B8=D0=BD?= Date: Tue, 3 Jun 2025 17:51:46 +0300 Subject: [PATCH 1/5] change dockerfile --- Dockerfile | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/Dockerfile b/Dockerfile index 783afed..b04430c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,24 +1,5 @@ -FROM repo.micord.ru/tools/pdi-ce:8.3.0.0-371 AS main +ARG RUNTIME_IMAGE=repo.micord.ru/tools/etl-base:0.0.1-shaef6aa52b -ENV TZ=Europe/Moscow +FROM $RUNTIME_IMAGE -ENV PDI_RELEASE=8.3 \ - PDI_VERSION=8.3.0.0-371 \ - PDI_HOME=/opt/pentaho-di \ - KETTLE_HOME=/pentaho-di - -COPY crontab /root/ -COPY entrypoint.sh /root/ -COPY mappings $PDI_HOME/mappings - -RUN chmod +x /root/entrypoint.sh - -ENV PATH=$PDI_HOME/data-integration:$PATH - -ENTRYPOINT ["/root/entrypoint.sh"] - -FROM main AS runonce -ENV RUNONCE=true - -FROM main AS cron -ENV RUNONCE=false +COPY mappings /opt/etl/config/projects/mappings From 0db0314bef64f8a090384d7447edd85deee29c61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=91=D1=83=D1=80=D0=B4=D0=B8=D0=BD?= Date: Thu, 5 Jun 2025 16:13:27 +0300 Subject: [PATCH 2/5] change image --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b04430c..b3e41e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG RUNTIME_IMAGE=repo.micord.ru/tools/etl-base:0.0.1-shaef6aa52b +ARG RUNTIME_IMAGE=repo.micord.ru/tools/etl-base:0.0.1-sha1e61336f FROM $RUNTIME_IMAGE From a1a56338f403eda6011d47daf95f265b2e262c5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=91=D1=83=D1=80=D0=B4=D0=B8=D0=BD?= Date: Fri, 6 Jun 2025 15:35:29 +0300 Subject: [PATCH 3/5] add new mappings --- mappings/connections/db.json | 14 +- mappings/connections/db_uat.json | 103 + mappings/connections/db_uat_to_here.json | 103 + mappings/connections/db_uat_to_here_mln.json | 103 + mappings/country/appeals.main_profile.hpl | 200 ++ mappings/country/appeals.reasons_appeal.hpl | 300 +- mappings/country/appeals.topic_appeal.hpl | 300 ++ mappings/country/job_recruitments_country.hwf | 678 ++-- mappings/country/main_dashboard.appeals.hpl | 199 +- .../main_dashboard.recruitment_campaign.hpl | 960 ++---- .../main_dashboard.total_registered.hpl | 293 +- .../main_dashboard.waiting_registration.hpl | 190 +- .../country/recruitment_campaign.appeals.hpl | 482 +-- .../recruitment_campaign.subpoenas.hpl | 934 ++---- .../country/select_recruitments_country.hpl | 11 +- mappings/country/total_registered.age.hpl | 2018 ++---------- .../country/total_registered.busyness.hpl | 1945 +---------- .../country/total_registered.child_minor.hpl | 965 ++---- .../total_registered.driver_license.hpl | 919 ++---- .../total_registered.education_level.hpl | 1029 ++---- .../total_registered.marital_status.hpl | 763 +---- .../country/total_registered.reg_mil_cat.hpl | 550 +--- .../total_registered.removed_registry.hpl | 250 +- .../country/total_registered.subpoenas.hpl | 1006 ++---- mappings/info_recruits/child.hpl | 141 +- .../citizen_appealing_violations_fz53.hpl | 27 + .../info_recruits/citizen_complex_filters.hpl | 27 + .../citizen_criminal_liability_fz53.hpl | 27 + .../info_recruits/citizen_criminal_record.hpl | 27 + .../citizen_education_diplomas_received.hpl | 205 ++ mappings/info_recruits/citizen_foreign.hpl | 241 +- .../citizen_individual_decisions.hpl | 27 + .../citizen_information_search.hpl | 27 + .../citizen_sports_categories.hpl | 137 + .../info_recruits/citizen_work_activity.hpl | 248 ++ mappings/info_recruits/citizenship.hpl | 155 +- mappings/info_recruits/deferments.hpl | 235 ++ mappings/info_recruits/deputy.hpl | 253 +- mappings/info_recruits/disability.hpl | 293 +- mappings/info_recruits/disease.hpl | 149 +- mappings/info_recruits/drivers_licence.hpl | 314 +- mappings/info_recruits/incident.hpl | 27 + mappings/info_recruits/info_recruits.hpl | 933 ++++-- .../info_recruits/job_general_citizen.hwf | 143 + mappings/info_recruits/job_info_recruits.hwf | 1783 +++++++--- .../info_recruits/job_last_update_date.hwf | 76 + .../info_recruits/medical_authorities.hpl | 268 +- mappings/info_recruits/opekun.hpl | 118 +- mappings/info_recruits/passport.hpl | 300 +- mappings/info_recruits/property.hpl | 626 +++- mappings/info_recruits/prosecution.hpl | 160 +- mappings/info_recruits/punishment.hpl | 155 +- mappings/info_recruits/select_delta_time.hpl | 100 + .../select_delta_time_subpoena.hpl | 100 + mappings/info_recruits/spouse.hpl | 222 +- mappings/info_recruits/subpoena.hpl | 221 +- .../supportive_count_citizen.hpl | 89 + mappings/info_recruits/temporary_measure.hpl | 155 +- mappings/instruction.txt | 2 + ...ob_copy_deferment_punishment_fz53_info.hwf | 119 + mappings/job_general.hwf | 82 +- mappings/job_pack.pub_recruitment.hwf | 9 +- mappings/job_recruitments_all.hwf | 368 ++- mappings/jobs_once_a_day/child_once.hpl | 182 ++ mappings/jobs_once_a_day/children_flags.hpl | 106 + ...citizen_appealing_violations_fz53_once.hpl | 179 + .../citizen_complex_filters_once.hpl | 27 + .../citizen_criminal_liability_fz53_once.hpl | 178 + .../citizen_criminal_record_once.hpl | 91 + .../jobs_once_a_day/citizen_diploma_once.hpl | 187 ++ ...tizen_education_diplomas_received_once.hpl | 130 + mappings/jobs_once_a_day/citizen_flags.hpl | 619 ++++ mappings/jobs_once_a_day/citizen_flags.hwf | 386 +++ .../citizen_foreign_diploma_once.hpl | 200 ++ .../jobs_once_a_day/citizen_foreign_once.hpl | 179 + .../citizen_individual_decisions_once.hpl | 27 + .../citizen_information_search_once.hpl | 27 + .../jobs_once_a_day/citizen_kolledzh_once.hpl | 276 ++ .../citizen_liability_fz53_once.hpl | 209 ++ .../jobs_once_a_day/citizen_school_once.hpl | 193 ++ .../citizen_sports_categories_once.hpl | 172 + .../citizen_vuz_education_once.hpl | 295 ++ .../citizen_work_activity_once.hpl | 289 ++ .../jobs_once_a_day/citizenship_flags.hpl | 104 + mappings/jobs_once_a_day/citizenship_once.hpl | 103 + .../copy_punishment_and_deferment_once.hwf | 1310 ++++++++ .../criminal_prosecution_flags.hpl | 95 + .../jobs_once_a_day/criminal_record_flags.hpl | 103 + .../jobs_once_a_day/deferment_reason_once.hpl | 104 + mappings/jobs_once_a_day/deferments_once.hpl | 341 ++ mappings/jobs_once_a_day/deputy_flags.hpl | 98 + mappings/jobs_once_a_day/deputy_once.hpl | 221 ++ mappings/jobs_once_a_day/disability_once.hpl | 312 ++ mappings/jobs_once_a_day/disease_once.hpl | 168 + .../jobs_once_a_day/driver_licenses_flags.hpl | 98 + .../jobs_once_a_day/drivers_licence_once.hpl | 183 ++ .../education_constants_once.hpl | 1029 ++++++ mappings/jobs_once_a_day/id_ern_once.hpl | 91 + mappings/jobs_once_a_day/incident_once.hpl | 27 + mappings/jobs_once_a_day/info_recruits.hpl | 759 +++++ .../jobs_once_a_day/info_recruits_once.hpl | 808 +++++ .../job_info_recruits_once.hwf | 2390 ++++++++++++++ .../medical_authorities_once.hpl | 300 ++ mappings/jobs_once_a_day/opekun_flags.hpl | 92 + mappings/jobs_once_a_day/opekun_once.hpl | 162 + mappings/jobs_once_a_day/passport_once.hpl | 181 + mappings/jobs_once_a_day/property_flags.hpl | 104 + mappings/jobs_once_a_day/property_once.hpl | 342 ++ mappings/jobs_once_a_day/prosecution_once.hpl | 169 + mappings/jobs_once_a_day/punishment_once.hpl | 108 + .../recruit_ervu_status_once.hpl | 143 + .../jobs_once_a_day/recruitment_code_once.hpl | 94 + mappings/jobs_once_a_day/spouse_once.hpl | 296 ++ mappings/jobs_once_a_day/subpoena_flags.hpl | 110 + mappings/jobs_once_a_day/subpoena_once.hpl | 150 + .../supportive_jobs/recruitment_rows.hpl | 72 + .../temporary_measure_flag.hpl | 94 + .../temporary_measure_once.hpl | 132 + mappings/log.txt | 0 mappings/log_jobs/log_job_info_recruits.txt | 0 .../log_jobs/log_job_info_recruits_once.txt | 0 mappings/log_jobs/log_job_ratings.txt | 0 .../log_jobs/log_job_recruitments_all.txt | 0 .../log_jobs/log_job_recruitments_country.txt | 0 .../log_jobs/log_job_recruitments_milcom.txt | 0 .../log_jobs/log_job_recruitments_mildis.txt | 0 .../log_jobs/log_job_recruitments_region.txt | 0 .../rdbms/118_ervu-person-registry.json | 26 + .../rdbms/118_ervu-subpoena-registry.json | 26 + .../rdbms/119_ervu-dashboard-copy.json | 27 + mappings/metadata/rdbms/ervu-journal.json | 26 + mappings/metadata/rdbms/incident.json | 26 + mappings/metadata/rdbms/metrics.json | 27 + mappings/mil_com/job_recruitments_milcom.hwf | 2336 +++++++++++++ .../mil_com/main_dashboard.appeals(m_c).hpl | 314 ++ ...in_dashboard.recruitment_campaign(m_c).hwf | 769 +++++ .../m_d.rec_cam(m_c)_to_decision_service.hpl | 142 + ....rec_cam(m_c)_to_decision_service_uniq.hpl | 178 + .../m_d.rec_cam(m_c)_to_person_registry.hpl | 274 ++ ...m(m_c)_to_person_registry_postponement.hpl | 137 + ...)_to_person_registry_postponement_uniq.hpl | 170 + ...d.rec_cam(m_c)_to_person_registry_uniq.hpl | 342 ++ .../m_d.rec_cam(m_c)_to_subpoena_registry.hpl | 272 ++ ...rec_cam(m_c)_to_subpoena_registry_uniq.hpl | 369 +++ .../postponement_percents.hpl | 112 + .../recruitment_season_combination.hpl | 126 + .../recruitment_season_combination_uniq.hpl | 124 + .../main_dashboard.total_registered(m_c).hpl | 436 +++ .../main_dashboard.total_registered(m_c).hwf | 309 ++ ...in_dashboard.total_registered_pr1(m_c).hpl | 334 ++ ...in_dashboard.total_registered_pr2(m_c).hpl | 334 ++ ...in_dashboard.total_registered_pr3(m_c).hpl | 334 ++ ...in_dashboard.total_registered_pr4(m_c).hpl | 334 ++ ...in_dashboard.total_registered_pr5(m_c).hpl | 334 ++ ...in_dashboard.waiting_registration(m_c).hpl | 272 ++ ...in_dashboard.waiting_registration(m_c).hwf | 309 ++ ...ashboard.waiting_registration_pr1(m_c).hpl | 272 ++ ...ashboard.waiting_registration_pr2(m_c).hpl | 272 ++ ...ashboard.waiting_registration_pr3(m_c).hpl | 272 ++ ...ashboard.waiting_registration_pr4(m_c).hpl | 272 ++ ...ashboard.waiting_registration_pr5(m_c).hpl | 272 ++ mappings/mil_com/parameters/add_schema.hpl | 1801 ++++++++++ .../array_recruitment_for_parallel.hpl | 113 + .../mil_com/parameters/array_recruitments.hpl | 101 + .../ft_main_dashboard.appeals(m_c).hpl | 310 ++ .../mil_com/parameters/row_idm_schema.hpl | 74 + .../array_season_recruitments.hpl | 114 + .../array_season_recruitments_all.hpl | 121 + ...array_season_recruitments_all_parallel.hpl | 154 + .../recruitment_campaign.appeals(m_c).hpl | 284 ++ .../recruitment_campaign.subpoenas(m_c).hpl | 685 ++++ .../recruitment_campaign.subpoenas(m_c).hpl | 702 ++++ .../recruitment_campaign.subpoenas(m_c).hwf | 487 +++ ...cruitment_campaign.subpoenas(m_c)_uniq.hpl | 799 +++++ .../recruitment_season_combination.hpl | 126 + .../recruitment_season_combination_uniq.hpl | 124 + .../select_recruitments_milcom(m_c).hpl | 83 + .../total_registered.age(m_c).hpl | 548 ++++ .../total_registered.age(m_c).hwf | 312 ++ .../total_registered.age_pr1(m_c).hpl | 446 +++ .../total_registered.age_pr2(m_c).hpl | 446 +++ .../total_registered.age_pr3(m_c).hpl | 446 +++ .../total_registered.age_pr4(m_c).hpl | 446 +++ .../total_registered.age_pr5(m_c).hpl | 446 +++ .../total_registered.busyness(m_c).hpl | 691 ++++ .../total_registered.busyness(m_c).hwf | 309 ++ .../total_registered.busyness_pr1(m_c).hpl | 589 ++++ .../total_registered.busyness_pr2(m_c).hpl | 589 ++++ .../total_registered.busyness_pr3(m_c).hpl | 589 ++++ .../total_registered.busyness_pr4(m_c).hpl | 589 ++++ .../total_registered.busyness_pr5(m_c).hpl | 589 ++++ .../total_registered.child_minor(m_c).hpl | 424 +++ .../total_registered.child_minor(m_c).hwf | 312 ++ .../total_registered.child_minor_pr1(m_c).hpl | 322 ++ .../total_registered.child_minor_pr2(m_c).hpl | 322 ++ .../total_registered.child_minor_pr3(m_c).hpl | 322 ++ .../total_registered.child_minor_pr4(m_c).hpl | 322 ++ .../total_registered.child_minor_pr5(m_c).hpl | 322 ++ .../total_registered.driver_license(m_c).hpl | 414 +++ .../total_registered.driver_license(m_c).hwf | 309 ++ ...tal_registered.driver_license_pr1(m_c).hpl | 312 ++ ...tal_registered.driver_license_pr2(m_c).hpl | 312 ++ ...tal_registered.driver_license_pr3(m_c).hpl | 312 ++ ...tal_registered.driver_license_pr4(m_c).hpl | 312 ++ ...tal_registered.driver_license_pr5(m_c).hpl | 312 ++ .../total_registered.education_level(m_c).hpl | 452 +++ .../total_registered.education_level(m_c).hwf | 309 ++ ...al_registered.education_level_pr1(m_c).hpl | 350 ++ ...al_registered.education_level_pr2(m_c).hpl | 350 ++ ...al_registered.education_level_pr3(m_c).hpl | 350 ++ ...al_registered.education_level_pr4(m_c).hpl | 350 ++ ...al_registered.education_level_pr5(m_c).hpl | 350 ++ .../total_registered.marital_status(m_c).hpl | 372 +++ .../total_registered.marital_status(m_c).hwf | 312 ++ ...tal_registered.marital_status_pr1(m_c).hpl | 270 ++ ...tal_registered.marital_status_pr2(m_c).hpl | 270 ++ ...tal_registered.marital_status_pr3(m_c).hpl | 270 ++ ...tal_registered.marital_status_pr4(m_c).hpl | 270 ++ ...tal_registered.marital_status_pr5(m_c).hpl | 270 ++ .../total_registered.reg_mil_cat(m_c).hpl | 453 +++ .../total_registered.reg_mil_cat(m_c).hwf | 309 ++ .../total_registered.reg_mil_cat_pr1(m_c).hpl | 351 ++ .../total_registered.reg_mil_cat_pr2(m_c).hpl | 351 ++ .../total_registered.reg_mil_cat_pr3(m_c).hpl | 351 ++ .../total_registered.reg_mil_cat_pr4(m_c).hpl | 351 ++ .../total_registered.reg_mil_cat_pr5(m_c).hpl | 351 ++ ...total_registered.removed_registry(m_c).hpl | 348 ++ ...total_registered.removed_registry(m_c).hwf | 312 ++ ...l_registered.removed_registry_pr1(m_c).hpl | 246 ++ ...l_registered.removed_registry_pr2(m_c).hpl | 246 ++ ...l_registered.removed_registry_pr3(m_c).hpl | 246 ++ ...l_registered.removed_registry_pr4(m_c).hpl | 246 ++ ...l_registered.removed_registry_pr5(m_c).hpl | 246 ++ .../total_registered.subpoenas(m_c).hpl | 581 ++++ .../total_registered.subpoenas(m_c).hwf | 312 ++ .../total_registered.subpoenas_pr1(m_c).hpl | 490 +++ .../total_registered.subpoenas_pr2(m_c).hpl | 490 +++ .../total_registered.subpoenas_pr3(m_c).hpl | 490 +++ .../total_registered.subpoenas_pr4(m_c).hpl | 490 +++ .../total_registered.subpoenas_pr5(m_c).hpl | 490 +++ .../appeals.reasons_appeal(m_d).hpl | 351 ++ .../appeals.topic_appeal(m_d).hpl | 334 ++ mappings/mil_district/array_mildis.hwf | 156 + mappings/mil_district/job_get_rows_mildis.hwf | 122 + .../mil_district/job_recruitments_mildis.hwf | 1091 +++++++ .../main_dashboard.appeals(m_d).hpl | 332 ++ ...in_dashboard.recruitment_campaign(m_d).hpl | 370 +++ .../main_dashboard.total_registered(m_d).hpl | 357 ++ ...in_dashboard.waiting_registration(m_d).hpl | 347 ++ .../recruitment_campaign.appeals(m_d).hpl | 335 ++ .../recruitment_campaign.subpoenas(m_d).hpl | 454 +++ .../mil_district/rows_id-array_mildis.hpl | 74 + .../select_recruitments_mildis(m_d).hpl | 193 ++ .../select_recruitments_mildis(m_d)rows.hpl | 82 + .../total_registered.age(m_d).hpl | 463 +++ .../total_registered.busyness(m_d).hpl | 371 +++ .../total_registered.child_minor(m_d).hpl | 394 +++ .../total_registered.driver_license(m_d).hpl | 403 +++ .../total_registered.education_level(m_d).hpl | 377 +++ .../total_registered.marital_status(m_d).hpl | 356 ++ .../total_registered.reg_mil_cat(m_d).hpl | 396 +++ ...total_registered.removed_registry(m_d).hpl | 390 +++ .../total_registered.subpoenas(m_d).hpl | 486 +++ mappings/pack.pub_recruitment.hpl | 144 +- .../predictive_metrics/data_collection.hpl | 203 ++ .../predictive_metrics/next_lvl_org_pm.hpl | 177 + mappings/predictive_metrics/predictive.hwf | 165 + .../predictive_metrics/predictive_data.hpl | 461 +++ mappings/ratings/job_ratings.hwf | 350 ++ mappings/ratings/ratings.appear_subpoena.hpl | 228 ++ .../ratings/ratings.conscription_info.hpl | 242 ++ .../ratings.consideration_complaint.hpl | 219 ++ .../job_last_recording_date.hwf | 55 +- .../region/appeals.reasons_appeal(reg).hpl | 245 ++ mappings/region/appeals.review_rating.hpl | 156 + mappings/region/appeals.topic_appeal(reg).hpl | 248 ++ mappings/region/array_reg.hwf | 157 + mappings/region/auxiliary/array_region.hpl | 73 + .../auxiliary/update_appeal_recruitments.hpl | 291 ++ mappings/region/job_get_rows_reg.hwf | 120 + mappings/region/job_recruitments_region.hwf | 1468 ++++++--- .../region/main_dashboard.appeals(reg).hpl | 298 +- ...in_dashboard.recruitment_campaign(reg).hpl | 498 +-- .../main_dashboard.total_registered(reg).hpl | 154 +- ...in_dashboard.waiting_registration(reg).hpl | 153 +- .../recruitment_campaign.appeals(reg).hpl | 501 ++- .../recruitment_campaign.subpoenas(reg).hpl | 766 +---- mappings/region/rows_id-array_reg.hpl | 74 + .../select_recruitments_region(reg).hpl | 175 +- .../select_recruitments_region(reg)rows.hpl | 76 + mappings/region/total_registered.age(reg).hpl | 1937 +---------- .../region/total_registered.busyness(reg).hpl | 769 +---- .../total_registered.child_minor(reg).hpl | 904 +---- .../total_registered.driver_license(reg).hpl | 675 +--- .../total_registered.education_level(reg).hpl | 855 +---- .../total_registered.marital_status(reg).hpl | 746 +---- .../total_registered.reg_mil_cat(reg).hpl | 558 +--- ...total_registered.removed_registry(reg).hpl | 122 +- .../total_registered.subpoenas(reg).hpl | 796 +---- mappings/supportive_jobs/clearing_logs.hwf | 83 + .../percent_for_waiting_reg.hpl | 111 + .../country/appeals.reasons_appeal.ktr | 665 ---- .../country/job_recruitments_country.kjb | 2020 ------------ .../country/main_dashboard.appeals.ktr | 856 ----- .../main_dashboard.recruitment_campaign.ktr | 1689 ---------- .../main_dashboard.total_registered.ktr | 898 ----- .../main_dashboard.waiting_registration.ktr | 904 ----- .../ratings.consideration_complaint.ktr | 665 ---- .../country/recruitment_campaign.appeals.ktr | 1112 ------- .../recruitment_campaign.subpoenas.ktr | 1443 -------- .../country/select_recruitments_country.ktr | 570 ---- mappings_old/country/total_registered.age.ktr | 2720 --------------- .../country/total_registered.busyness.ktr | 2724 --------------- .../country/total_registered.child_minor.ktr | 1589 --------- .../total_registered.driver_license.ktr | 1507 --------- .../total_registered.education_level.ktr | 1671 ---------- .../total_registered.marital_status.ktr | 1425 -------- .../country/total_registered.reg_mil_cat.ktr | 1284 -------- .../total_registered.removed_registry.ktr | 862 ----- .../country/total_registered.subpoenas.ktr | 1492 --------- mappings_old/info_recruits/child.ktr | 653 ---- .../info_recruits/citizen_foreign.ktr | 736 ----- mappings_old/info_recruits/citizenship.ktr | 645 ---- mappings_old/info_recruits/deputy.ktr | 726 ---- mappings_old/info_recruits/disability.ktr | 735 ----- mappings_old/info_recruits/disease.ktr | 644 ---- .../info_recruits/drivers_licence.ktr | 743 ----- mappings_old/info_recruits/info_recruits.ktr | 751 ----- .../info_recruits/job_info_recruits.kjb | 1811 ---------- .../info_recruits/medical_authorities.ktr | 736 ----- mappings_old/info_recruits/opekun.ktr | 648 ---- mappings_old/info_recruits/passport.ktr | 736 ----- mappings_old/info_recruits/property.ktr | 931 ------ mappings_old/info_recruits/prosecution.ktr | 647 ---- mappings_old/info_recruits/punishment.ktr | 652 ---- mappings_old/info_recruits/spouse.ktr | 742 ----- mappings_old/info_recruits/subpoena.ktr | 691 ---- .../info_recruits/temporary_measure.ktr | 674 ---- mappings_old/job_general.kjb | 556 ---- mappings_old/job_pack.pub_recruitment.kjb | 483 --- mappings_old/job_recruitments_all.kjb | 620 ---- mappings_old/pack.pub_recruitment.ktr | 645 ---- .../job_last_recording_date.kjb | 483 --- .../recording_date/last_recording_date.ktr | 635 ---- .../region/job_recruitments_region.kjb | 2020 ------------ mappings_old/region/logs/appeals.txt | 24 - .../region/main_dashboard.appeals(reg).ktr | 870 ----- ...in_dashboard.recruitment_campaign(reg).ktr | 1218 ------- .../main_dashboard.total_registered(reg).ktr | 906 ----- ...in_dashboard.waiting_registration(reg).ktr | 919 ------ .../recruitment_campaign.appeals(reg).ktr | 1108 ------- .../recruitment_campaign.subpoenas(reg).ktr | 1469 --------- .../select_recruitments_region(reg).ktr | 587 ---- .../region/total_registered.age(reg).ktr | 2908 ----------------- .../region/total_registered.busyness(reg).ktr | 1609 --------- .../total_registered.child_minor(reg).ktr | 1624 --------- .../total_registered.driver_license(reg).ktr | 1498 --------- .../total_registered.education_level(reg).ktr | 1694 ---------- .../total_registered.marital_status(reg).ktr | 1456 --------- .../total_registered.reg_mil_cat(reg).ktr | 1280 -------- ...total_registered.removed_registry(reg).ktr | 877 ----- .../total_registered.subpoenas(reg).ktr | 1520 --------- 362 files changed, 80520 insertions(+), 87938 deletions(-) create mode 100644 mappings/connections/db_uat.json create mode 100644 mappings/connections/db_uat_to_here.json create mode 100644 mappings/connections/db_uat_to_here_mln.json create mode 100644 mappings/country/appeals.main_profile.hpl create mode 100644 mappings/country/appeals.topic_appeal.hpl create mode 100644 mappings/info_recruits/citizen_appealing_violations_fz53.hpl create mode 100644 mappings/info_recruits/citizen_complex_filters.hpl create mode 100644 mappings/info_recruits/citizen_criminal_liability_fz53.hpl create mode 100644 mappings/info_recruits/citizen_criminal_record.hpl create mode 100644 mappings/info_recruits/citizen_education_diplomas_received.hpl create mode 100644 mappings/info_recruits/citizen_individual_decisions.hpl create mode 100644 mappings/info_recruits/citizen_information_search.hpl create mode 100644 mappings/info_recruits/citizen_sports_categories.hpl create mode 100644 mappings/info_recruits/citizen_work_activity.hpl create mode 100644 mappings/info_recruits/deferments.hpl create mode 100644 mappings/info_recruits/incident.hpl create mode 100644 mappings/info_recruits/job_general_citizen.hwf create mode 100644 mappings/info_recruits/job_last_update_date.hwf create mode 100644 mappings/info_recruits/select_delta_time.hpl create mode 100644 mappings/info_recruits/select_delta_time_subpoena.hpl create mode 100644 mappings/info_recruits/supportive_count_citizen.hpl create mode 100644 mappings/instruction.txt create mode 100644 mappings/job_copy_deferment_punishment_fz53_info.hwf create mode 100644 mappings/jobs_once_a_day/child_once.hpl create mode 100644 mappings/jobs_once_a_day/children_flags.hpl create mode 100644 mappings/jobs_once_a_day/citizen_appealing_violations_fz53_once.hpl create mode 100644 mappings/jobs_once_a_day/citizen_complex_filters_once.hpl create mode 100644 mappings/jobs_once_a_day/citizen_criminal_liability_fz53_once.hpl create mode 100644 mappings/jobs_once_a_day/citizen_criminal_record_once.hpl create mode 100644 mappings/jobs_once_a_day/citizen_diploma_once.hpl create mode 100644 mappings/jobs_once_a_day/citizen_education_diplomas_received_once.hpl create mode 100644 mappings/jobs_once_a_day/citizen_flags.hpl create mode 100644 mappings/jobs_once_a_day/citizen_flags.hwf create mode 100644 mappings/jobs_once_a_day/citizen_foreign_diploma_once.hpl create mode 100644 mappings/jobs_once_a_day/citizen_foreign_once.hpl create mode 100644 mappings/jobs_once_a_day/citizen_individual_decisions_once.hpl create mode 100644 mappings/jobs_once_a_day/citizen_information_search_once.hpl create mode 100644 mappings/jobs_once_a_day/citizen_kolledzh_once.hpl create mode 100644 mappings/jobs_once_a_day/citizen_liability_fz53_once.hpl create mode 100644 mappings/jobs_once_a_day/citizen_school_once.hpl create mode 100644 mappings/jobs_once_a_day/citizen_sports_categories_once.hpl create mode 100644 mappings/jobs_once_a_day/citizen_vuz_education_once.hpl create mode 100644 mappings/jobs_once_a_day/citizen_work_activity_once.hpl create mode 100644 mappings/jobs_once_a_day/citizenship_flags.hpl create mode 100644 mappings/jobs_once_a_day/citizenship_once.hpl create mode 100644 mappings/jobs_once_a_day/copy_punishment_and_deferment_once.hwf create mode 100644 mappings/jobs_once_a_day/criminal_prosecution_flags.hpl create mode 100644 mappings/jobs_once_a_day/criminal_record_flags.hpl create mode 100644 mappings/jobs_once_a_day/deferment_reason_once.hpl create mode 100644 mappings/jobs_once_a_day/deferments_once.hpl create mode 100644 mappings/jobs_once_a_day/deputy_flags.hpl create mode 100644 mappings/jobs_once_a_day/deputy_once.hpl create mode 100644 mappings/jobs_once_a_day/disability_once.hpl create mode 100644 mappings/jobs_once_a_day/disease_once.hpl create mode 100644 mappings/jobs_once_a_day/driver_licenses_flags.hpl create mode 100644 mappings/jobs_once_a_day/drivers_licence_once.hpl create mode 100644 mappings/jobs_once_a_day/education_constants_once.hpl create mode 100644 mappings/jobs_once_a_day/id_ern_once.hpl create mode 100644 mappings/jobs_once_a_day/incident_once.hpl create mode 100644 mappings/jobs_once_a_day/info_recruits.hpl create mode 100644 mappings/jobs_once_a_day/info_recruits_once.hpl create mode 100644 mappings/jobs_once_a_day/job_info_recruits_once.hwf create mode 100644 mappings/jobs_once_a_day/medical_authorities_once.hpl create mode 100644 mappings/jobs_once_a_day/opekun_flags.hpl create mode 100644 mappings/jobs_once_a_day/opekun_once.hpl create mode 100644 mappings/jobs_once_a_day/passport_once.hpl create mode 100644 mappings/jobs_once_a_day/property_flags.hpl create mode 100644 mappings/jobs_once_a_day/property_once.hpl create mode 100644 mappings/jobs_once_a_day/prosecution_once.hpl create mode 100644 mappings/jobs_once_a_day/punishment_once.hpl create mode 100644 mappings/jobs_once_a_day/recruit_ervu_status_once.hpl create mode 100644 mappings/jobs_once_a_day/recruitment_code_once.hpl create mode 100644 mappings/jobs_once_a_day/spouse_once.hpl create mode 100644 mappings/jobs_once_a_day/subpoena_flags.hpl create mode 100644 mappings/jobs_once_a_day/subpoena_once.hpl create mode 100644 mappings/jobs_once_a_day/supportive_jobs/recruitment_rows.hpl create mode 100644 mappings/jobs_once_a_day/temporary_measure_flag.hpl create mode 100644 mappings/jobs_once_a_day/temporary_measure_once.hpl create mode 100644 mappings/log.txt create mode 100644 mappings/log_jobs/log_job_info_recruits.txt create mode 100644 mappings/log_jobs/log_job_info_recruits_once.txt create mode 100644 mappings/log_jobs/log_job_ratings.txt create mode 100644 mappings/log_jobs/log_job_recruitments_all.txt create mode 100644 mappings/log_jobs/log_job_recruitments_country.txt create mode 100644 mappings/log_jobs/log_job_recruitments_milcom.txt create mode 100644 mappings/log_jobs/log_job_recruitments_mildis.txt create mode 100644 mappings/log_jobs/log_job_recruitments_region.txt create mode 100644 mappings/metadata/rdbms/118_ervu-person-registry.json create mode 100644 mappings/metadata/rdbms/118_ervu-subpoena-registry.json create mode 100644 mappings/metadata/rdbms/119_ervu-dashboard-copy.json create mode 100644 mappings/metadata/rdbms/ervu-journal.json create mode 100644 mappings/metadata/rdbms/incident.json create mode 100644 mappings/metadata/rdbms/metrics.json create mode 100644 mappings/mil_com/job_recruitments_milcom.hwf create mode 100644 mappings/mil_com/main_dashboard.appeals(m_c).hpl create mode 100644 mappings/mil_com/main_dashboard.recruitment_campaign(m_c).hwf create mode 100644 mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_decision_service.hpl create mode 100644 mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_decision_service_uniq.hpl create mode 100644 mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry.hpl create mode 100644 mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry_postponement.hpl create mode 100644 mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry_postponement_uniq.hpl create mode 100644 mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry_uniq.hpl create mode 100644 mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_subpoena_registry.hpl create mode 100644 mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_subpoena_registry_uniq.hpl create mode 100644 mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/postponement_percents.hpl create mode 100644 mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/recruitment_season_combination.hpl create mode 100644 mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/recruitment_season_combination_uniq.hpl create mode 100644 mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered(m_c).hpl create mode 100644 mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered(m_c).hwf create mode 100644 mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr1(m_c).hpl create mode 100644 mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr2(m_c).hpl create mode 100644 mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr3(m_c).hpl create mode 100644 mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr4(m_c).hpl create mode 100644 mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr5(m_c).hpl create mode 100644 mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration(m_c).hpl create mode 100644 mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration(m_c).hwf create mode 100644 mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr1(m_c).hpl create mode 100644 mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr2(m_c).hpl create mode 100644 mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr3(m_c).hpl create mode 100644 mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr4(m_c).hpl create mode 100644 mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr5(m_c).hpl create mode 100644 mappings/mil_com/parameters/add_schema.hpl create mode 100644 mappings/mil_com/parameters/array_recruitment_for_parallel.hpl create mode 100644 mappings/mil_com/parameters/array_recruitments.hpl create mode 100644 mappings/mil_com/parameters/ft_main_dashboard.appeals(m_c).hpl create mode 100644 mappings/mil_com/parameters/row_idm_schema.hpl create mode 100644 mappings/mil_com/parameters/season_separation/array_season_recruitments.hpl create mode 100644 mappings/mil_com/parameters/season_separation/array_season_recruitments_all.hpl create mode 100644 mappings/mil_com/parameters/season_separation/array_season_recruitments_all_parallel.hpl create mode 100644 mappings/mil_com/recruitment_campaign.appeals(m_c).hpl create mode 100644 mappings/mil_com/recruitment_campaign.subpoenas(m_c).hpl create mode 100644 mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_campaign.subpoenas(m_c).hpl create mode 100644 mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_campaign.subpoenas(m_c).hwf create mode 100644 mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_campaign.subpoenas(m_c)_uniq.hpl create mode 100644 mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_season_combination.hpl create mode 100644 mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_season_combination_uniq.hpl create mode 100644 mappings/mil_com/select_recruitments_milcom(m_c).hpl create mode 100644 mappings/mil_com/total_registered.age(m_c)/total_registered.age(m_c).hpl create mode 100644 mappings/mil_com/total_registered.age(m_c)/total_registered.age(m_c).hwf create mode 100644 mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr1(m_c).hpl create mode 100644 mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr2(m_c).hpl create mode 100644 mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr3(m_c).hpl create mode 100644 mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr4(m_c).hpl create mode 100644 mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr5(m_c).hpl create mode 100644 mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness(m_c).hpl create mode 100644 mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness(m_c).hwf create mode 100644 mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr1(m_c).hpl create mode 100644 mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr2(m_c).hpl create mode 100644 mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr3(m_c).hpl create mode 100644 mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr4(m_c).hpl create mode 100644 mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr5(m_c).hpl create mode 100644 mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor(m_c).hpl create mode 100644 mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor(m_c).hwf create mode 100644 mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr1(m_c).hpl create mode 100644 mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr2(m_c).hpl create mode 100644 mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr3(m_c).hpl create mode 100644 mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr4(m_c).hpl create mode 100644 mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr5(m_c).hpl create mode 100644 mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license(m_c).hpl create mode 100644 mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license(m_c).hwf create mode 100644 mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr1(m_c).hpl create mode 100644 mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr2(m_c).hpl create mode 100644 mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr3(m_c).hpl create mode 100644 mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr4(m_c).hpl create mode 100644 mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr5(m_c).hpl create mode 100644 mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level(m_c).hpl create mode 100644 mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level(m_c).hwf create mode 100644 mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr1(m_c).hpl create mode 100644 mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr2(m_c).hpl create mode 100644 mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr3(m_c).hpl create mode 100644 mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr4(m_c).hpl create mode 100644 mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr5(m_c).hpl create mode 100644 mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status(m_c).hpl create mode 100644 mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status(m_c).hwf create mode 100644 mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr1(m_c).hpl create mode 100644 mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr2(m_c).hpl create mode 100644 mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr3(m_c).hpl create mode 100644 mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr4(m_c).hpl create mode 100644 mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr5(m_c).hpl create mode 100644 mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat(m_c).hpl create mode 100644 mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat(m_c).hwf create mode 100644 mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr1(m_c).hpl create mode 100644 mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr2(m_c).hpl create mode 100644 mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr3(m_c).hpl create mode 100644 mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr4(m_c).hpl create mode 100644 mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr5(m_c).hpl create mode 100644 mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry(m_c).hpl create mode 100644 mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry(m_c).hwf create mode 100644 mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr1(m_c).hpl create mode 100644 mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr2(m_c).hpl create mode 100644 mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr3(m_c).hpl create mode 100644 mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr4(m_c).hpl create mode 100644 mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr5(m_c).hpl create mode 100644 mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas(m_c).hpl create mode 100644 mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas(m_c).hwf create mode 100644 mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr1(m_c).hpl create mode 100644 mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr2(m_c).hpl create mode 100644 mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr3(m_c).hpl create mode 100644 mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr4(m_c).hpl create mode 100644 mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr5(m_c).hpl create mode 100644 mappings/mil_district/appeals.reasons_appeal(m_d).hpl create mode 100644 mappings/mil_district/appeals.topic_appeal(m_d).hpl create mode 100644 mappings/mil_district/array_mildis.hwf create mode 100644 mappings/mil_district/job_get_rows_mildis.hwf create mode 100644 mappings/mil_district/job_recruitments_mildis.hwf create mode 100644 mappings/mil_district/main_dashboard.appeals(m_d).hpl create mode 100644 mappings/mil_district/main_dashboard.recruitment_campaign(m_d).hpl create mode 100644 mappings/mil_district/main_dashboard.total_registered(m_d).hpl create mode 100644 mappings/mil_district/main_dashboard.waiting_registration(m_d).hpl create mode 100644 mappings/mil_district/recruitment_campaign.appeals(m_d).hpl create mode 100644 mappings/mil_district/recruitment_campaign.subpoenas(m_d).hpl create mode 100644 mappings/mil_district/rows_id-array_mildis.hpl create mode 100644 mappings/mil_district/select_recruitments_mildis(m_d).hpl create mode 100644 mappings/mil_district/select_recruitments_mildis(m_d)rows.hpl create mode 100644 mappings/mil_district/total_registered.age(m_d).hpl create mode 100644 mappings/mil_district/total_registered.busyness(m_d).hpl create mode 100644 mappings/mil_district/total_registered.child_minor(m_d).hpl create mode 100644 mappings/mil_district/total_registered.driver_license(m_d).hpl create mode 100644 mappings/mil_district/total_registered.education_level(m_d).hpl create mode 100644 mappings/mil_district/total_registered.marital_status(m_d).hpl create mode 100644 mappings/mil_district/total_registered.reg_mil_cat(m_d).hpl create mode 100644 mappings/mil_district/total_registered.removed_registry(m_d).hpl create mode 100644 mappings/mil_district/total_registered.subpoenas(m_d).hpl create mode 100644 mappings/predictive_metrics/data_collection.hpl create mode 100644 mappings/predictive_metrics/next_lvl_org_pm.hpl create mode 100644 mappings/predictive_metrics/predictive.hwf create mode 100644 mappings/predictive_metrics/predictive_data.hpl create mode 100644 mappings/ratings/job_ratings.hwf create mode 100644 mappings/ratings/ratings.appear_subpoena.hpl create mode 100644 mappings/ratings/ratings.conscription_info.hpl create mode 100644 mappings/ratings/ratings.consideration_complaint.hpl create mode 100644 mappings/region/appeals.reasons_appeal(reg).hpl create mode 100644 mappings/region/appeals.review_rating.hpl create mode 100644 mappings/region/appeals.topic_appeal(reg).hpl create mode 100644 mappings/region/array_reg.hwf create mode 100644 mappings/region/auxiliary/array_region.hpl create mode 100644 mappings/region/auxiliary/update_appeal_recruitments.hpl create mode 100644 mappings/region/job_get_rows_reg.hwf create mode 100644 mappings/region/rows_id-array_reg.hpl create mode 100644 mappings/region/select_recruitments_region(reg)rows.hpl create mode 100644 mappings/supportive_jobs/clearing_logs.hwf create mode 100644 mappings/supportive_jobs/percent_for_waiting_reg.hpl delete mode 100644 mappings_old/country/appeals.reasons_appeal.ktr delete mode 100644 mappings_old/country/job_recruitments_country.kjb delete mode 100644 mappings_old/country/main_dashboard.appeals.ktr delete mode 100644 mappings_old/country/main_dashboard.recruitment_campaign.ktr delete mode 100644 mappings_old/country/main_dashboard.total_registered.ktr delete mode 100644 mappings_old/country/main_dashboard.waiting_registration.ktr delete mode 100644 mappings_old/country/ratings.consideration_complaint.ktr delete mode 100644 mappings_old/country/recruitment_campaign.appeals.ktr delete mode 100644 mappings_old/country/recruitment_campaign.subpoenas.ktr delete mode 100644 mappings_old/country/select_recruitments_country.ktr delete mode 100644 mappings_old/country/total_registered.age.ktr delete mode 100644 mappings_old/country/total_registered.busyness.ktr delete mode 100644 mappings_old/country/total_registered.child_minor.ktr delete mode 100644 mappings_old/country/total_registered.driver_license.ktr delete mode 100644 mappings_old/country/total_registered.education_level.ktr delete mode 100644 mappings_old/country/total_registered.marital_status.ktr delete mode 100644 mappings_old/country/total_registered.reg_mil_cat.ktr delete mode 100644 mappings_old/country/total_registered.removed_registry.ktr delete mode 100644 mappings_old/country/total_registered.subpoenas.ktr delete mode 100644 mappings_old/info_recruits/child.ktr delete mode 100644 mappings_old/info_recruits/citizen_foreign.ktr delete mode 100644 mappings_old/info_recruits/citizenship.ktr delete mode 100644 mappings_old/info_recruits/deputy.ktr delete mode 100644 mappings_old/info_recruits/disability.ktr delete mode 100644 mappings_old/info_recruits/disease.ktr delete mode 100644 mappings_old/info_recruits/drivers_licence.ktr delete mode 100644 mappings_old/info_recruits/info_recruits.ktr delete mode 100644 mappings_old/info_recruits/job_info_recruits.kjb delete mode 100644 mappings_old/info_recruits/medical_authorities.ktr delete mode 100644 mappings_old/info_recruits/opekun.ktr delete mode 100644 mappings_old/info_recruits/passport.ktr delete mode 100644 mappings_old/info_recruits/property.ktr delete mode 100644 mappings_old/info_recruits/prosecution.ktr delete mode 100644 mappings_old/info_recruits/punishment.ktr delete mode 100644 mappings_old/info_recruits/spouse.ktr delete mode 100644 mappings_old/info_recruits/subpoena.ktr delete mode 100644 mappings_old/info_recruits/temporary_measure.ktr delete mode 100644 mappings_old/job_general.kjb delete mode 100644 mappings_old/job_pack.pub_recruitment.kjb delete mode 100644 mappings_old/job_recruitments_all.kjb delete mode 100644 mappings_old/pack.pub_recruitment.ktr delete mode 100644 mappings_old/recording_date/job_last_recording_date.kjb delete mode 100644 mappings_old/recording_date/last_recording_date.ktr delete mode 100644 mappings_old/region/job_recruitments_region.kjb delete mode 100644 mappings_old/region/logs/appeals.txt delete mode 100644 mappings_old/region/main_dashboard.appeals(reg).ktr delete mode 100644 mappings_old/region/main_dashboard.recruitment_campaign(reg).ktr delete mode 100644 mappings_old/region/main_dashboard.total_registered(reg).ktr delete mode 100644 mappings_old/region/main_dashboard.waiting_registration(reg).ktr delete mode 100644 mappings_old/region/recruitment_campaign.appeals(reg).ktr delete mode 100644 mappings_old/region/recruitment_campaign.subpoenas(reg).ktr delete mode 100644 mappings_old/region/select_recruitments_region(reg).ktr delete mode 100644 mappings_old/region/total_registered.age(reg).ktr delete mode 100644 mappings_old/region/total_registered.busyness(reg).ktr delete mode 100644 mappings_old/region/total_registered.child_minor(reg).ktr delete mode 100644 mappings_old/region/total_registered.driver_license(reg).ktr delete mode 100644 mappings_old/region/total_registered.education_level(reg).ktr delete mode 100644 mappings_old/region/total_registered.marital_status(reg).ktr delete mode 100644 mappings_old/region/total_registered.reg_mil_cat(reg).ktr delete mode 100644 mappings_old/region/total_registered.removed_registry(reg).ktr delete mode 100644 mappings_old/region/total_registered.subpoenas(reg).ktr diff --git a/mappings/connections/db.json b/mappings/connections/db.json index 325825a..eb00421 100644 --- a/mappings/connections/db.json +++ b/mappings/connections/db.json @@ -1,7 +1,7 @@ { "variables" : [ { "name" : "DB_PERSON_HOST", - "value" : "10.10.31.119", + "value" : "10.10.31.118", "description" : "" }, { "name" : "DB_PERSON_PORT", @@ -9,15 +9,15 @@ "description" : "" }, { "name" : "DB_PERSON_NAME", - "value" : "ervu_person_registry", + "value" : "ervu-person-registry", "description" : "" }, { "name" : "DB_PERSON_USERNAME", - "value" : "ervu-dashboard", + "value" : "postgres", "description" : "" }, { "name" : "DB_PERSON_PASSWORD", - "value" : "Encrypted 2be98caba1cd2df80aa0aa672d193bdde", + "value" : "Encrypted 2be98afc86aa7f2e4b11ba562feabf7eb", "description" : "" }, { "name" : "DB_DASHBOARD_HOST", @@ -29,7 +29,7 @@ "description" : "" }, { "name" : "DB_DASHBOARD_NAME", - "value" : "ervu-dashboard", + "value" : "ervu-dashboard-recr", "description" : "" }, { "name" : "DB_DASHBOARD_USERNAME", @@ -69,7 +69,7 @@ "description" : "" }, { "name" : "DB_DECISION_NAME", - "value" : "decision-document-service", + "value" : "ervu-decision-document-service", "description" : "" }, { "name" : "DB_DECISION_USERNAME", @@ -89,7 +89,7 @@ "description" : "" }, { "name" : "DB_SUBPOENA_NAME", - "value" : "subpoena", + "value" : "ervu-subpoena-registry", "description" : "" }, { "name" : "DB_SUBPOENA_USERNAME", diff --git a/mappings/connections/db_uat.json b/mappings/connections/db_uat.json new file mode 100644 index 0000000..83656a5 --- /dev/null +++ b/mappings/connections/db_uat.json @@ -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.65.244.45", + "description" : "" + }, { + "name" : "DB_DASHBOARD_PORT", + "value" : "6432", + "description" : "" + }, { + "name" : "DB_DASHBOARD_NAME", + "value" : "ervu-dashboard", + "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" : "" + } ] +} \ No newline at end of file diff --git a/mappings/connections/db_uat_to_here.json b/mappings/connections/db_uat_to_here.json new file mode 100644 index 0000000..3a818ca --- /dev/null +++ b/mappings/connections/db_uat_to_here.json @@ -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" : "" + } ] +} \ No newline at end of file diff --git a/mappings/connections/db_uat_to_here_mln.json b/mappings/connections/db_uat_to_here_mln.json new file mode 100644 index 0000000..538792f --- /dev/null +++ b/mappings/connections/db_uat_to_here_mln.json @@ -0,0 +1,103 @@ +{ + "variables" : [ { + "name" : "DB_PERSON_HOST", + "value" : "10.10.30.118", + "description" : "" + }, { + "name" : "DB_PERSON_PORT", + "value" : "5432", + "description" : "" + }, { + "name" : "DB_PERSON_NAME", + "value" : "ervu_person_registry", + "description" : "" + }, { + "name" : "DB_PERSON_USERNAME", + "value" : "ervu_person_registry", + "description" : "" + }, { + "name" : "DB_PERSON_PASSWORD", + "value" : "ervu_person_registry", + "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" : "" + } ] +} \ No newline at end of file diff --git a/mappings/country/appeals.main_profile.hpl b/mappings/country/appeals.main_profile.hpl new file mode 100644 index 0000000..6ceb452 --- /dev/null +++ b/mappings/country/appeals.main_profile.hpl @@ -0,0 +1,200 @@ + + + + appeals.main_profile + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/11/11 16:52:36.340 + - + 2024/11/11 16:52:36.340 + + + + + + Table input appel-doc + Merge join + Y + + + Table input person-reg + Merge join + Y + + + Merge join + Memory group by + Y + + + + Table input appel-doc + TableInput + + Y + + 1 + + none + + + postgres.appeal-document-service + N + 0 + SELECT +recruit_id +FROM public.appeal_document + N + + + 480 + 160 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + + + N + N + N + N + + Y + N + N + + + N + Y + N + Y + + + 1104 + 160 + + + + Memory group by + MemoryGroupBy + + Y + + 1 + + none + + + + + N + + + + + 800 + 160 + + + + Sort rows + SortRows + + Y + + 1 + + none + + + N + ${java.io.tmpdir} + + + out + 1000000 + N + + + 960 + 160 + + + + Table input person-reg + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + SELECT + recruit_id +FROM public.recruits r +JOIN public.recruits_info ri + ON ri.recruit_id = r.id +WHERE r.current_recruitment_id IS NOT NULL + AND r.target_recruitment_id IS NOT NULL + N + + + 480 + 288 + + + + Merge join + MergeJoin + + Y + + 1 + + none + + + LEFT OUTER + + recruit_id + + + recruit_id + + Table input appel-doc + Table input person-reg + + + 640 + 160 + + + + + + diff --git a/mappings/country/appeals.reasons_appeal.hpl b/mappings/country/appeals.reasons_appeal.hpl index 5b724bd..76c5740 100644 --- a/mappings/country/appeals.reasons_appeal.hpl +++ b/mappings/country/appeals.reasons_appeal.hpl @@ -1,3 +1,4 @@ + appeals.reasons_appeal @@ -6,31 +7,104 @@ Normal - 0 - / N 1000 100 - - 2024/08/02 11:56:22.507 + 2025/01/28 11:14:23.116 - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N + 2025/01/28 11:14:23.116 - Table input (appeal_document) РФ - Insert / update (main_dashboard.appeals) + Execute SQL script + Table input (subpoena) РФ/осень + Y + + + Get variables 2 2 + Select values 2 2 + Y + + + Select values 2 2 + Insert / update (appeals.reasons_appeal) + Y + + + Table input (subpoena) РФ/осень + Get variables 2 2 Y - Insert / update (main_dashboard.appeals) + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM appeals.reasons_appeal +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' + + + 336 + 448 + + + + Get variables 2 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REG_ID + -1 + none + String + + + -1 + VK_ARRAY + -1 + none + String + + + + + 800 + 448 + + + + Insert / update (appeals.reasons_appeal) InsertUpdate Y @@ -40,39 +114,140 @@ none - ervu-dashboard 100 - N + ervu-dashboard - main_dashboard -
appeals
- recruitment_id - recruitment_id = - + schema + schema - - total_appeals - total_appeals - Y - + + = + recruitment_id + REG_ID + + appeals + reasons_appeal
recruitment_id recruitment_id N + + schema + schema + N + + + appeal + appeal + Y + + + incorrect_inf + incorrect_inf + Y + + + incorrect_inf_percent + incorrect_inf_percent + Y + + + sending_documents + sending_documents + Y + + + sending_documents_percent + sending_documents_percent + Y + + + decision_disagreement + decision_disagreement + Y + + + decision_disagreement_persent + decision_disagreement_persent + Y + + + complaint_withdrawal + complaint_withdrawal + Y + + + complaint_withdrawal_percent + complaint_withdrawal_percent + Y + + N - - 752 - 176 - Y + 1296 + 448
- Table input (appeal_document) РФ + Select values 2 2 + SelectValues + + Y + + 1 + + none + + + + N + + REG_ID + REG_ID + String + -2 + -2 + + false + + + false + + + + + + + + VK_ARRAY + VK_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 1008 + 448 + + + + Table input (subpoena) РФ/осень TableInput Y @@ -82,33 +257,58 @@ none - postgres.appeal-document-service - WITH -t1 AS ( - SELECT COUNT(*) AS total_appeals - FROM public.appeal_document -) -- нет причин обжалований -SELECT - t1.total_appeals, - '00' AS recruitment_id, - 0 AS incorrect_inf, - 0 AS no_data, - 0 AS other, - 0 AS incorrect_inf_percent, - 0 AS no_data_percent, - 0 AS other_percent -FROM t1; - 0 - + ervu-dashboard N - N - N + 0 + SELECT + COALESCE(SUM(appeal), 0) appeal, + COALESCE(SUM(incorrect_inf), 0) incorrect_inf, + COALESCE(SUM(sending_documents), 0) sending_documents, + COALESCE(SUM(decision_disagreement), 0) decision_disagreement, + COALESCE(SUM(complaint_withdrawal), 0) complaint_withdrawal, + COALESCE( + CASE + WHEN SUM(appeal) > 0 + THEN ROUND((SUM(incorrect_inf) / SUM(appeal) * 100), 2) + ELSE 0 + END, + 0 + ) incorrect_inf_percent, + COALESCE( + CASE + WHEN SUM(appeal) > 0 + THEN ROUND((SUM(sending_documents) / SUM(appeal) * 100), 2) + ELSE 0 + END, + 0 + ) sending_documents_percent, + COALESCE( + CASE + WHEN SUM(appeal) > 0 + THEN ROUND((SUM(decision_disagreement) / SUM(appeal) * 100), 2) + ELSE 0 + END, + 0 + ) decision_disagreement_persent, + COALESCE( + CASE + WHEN SUM(appeal) > 0 + THEN ROUND((SUM(complaint_withdrawal) / SUM(appeal) * 100), 2) + ELSE 0 + END, + 0 + ) complaint_withdrawal_percent, + '${REG_ID}' AS recruitment_id, + 'Ministry' AS schema +FROM appeals.reasons_appeal +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE; + Y - - 400 - 176 - Y + 576 + 448 diff --git a/mappings/country/appeals.topic_appeal.hpl b/mappings/country/appeals.topic_appeal.hpl new file mode 100644 index 0000000..1b596fe --- /dev/null +++ b/mappings/country/appeals.topic_appeal.hpl @@ -0,0 +1,300 @@ + + + + appeals.topic_appeal + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/01/28 11:14:23.116 + - + 2025/01/28 11:14:23.116 + + + + + + Execute SQL script + Table input (subpoena) РФ/осень + Y + + + Get variables 2 2 + Select values 2 2 + Y + + + Select values 2 2 + Insert / update (appeals.topic_appeal) + Y + + + Table input (subpoena) РФ/осень + Get variables 2 2 + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM appeals.topic_appeal +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' + + + 336 + 448 + + + + Get variables 2 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REG_ID + -1 + none + String + + + -1 + VK_ARRAY + -1 + none + String + + + + + 800 + 448 + + + + Insert / update (appeals.topic_appeal) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + schema + schema + + + + = + recruitment_id + REG_ID + + + appeals + topic_appeal
+ + recruitment_id + recruitment_id + N + + + schema + schema + N + + + registration + registration + Y + + + registration_percent + registration_percent + Y + + + sabpoena + sabpoena + Y + + + sabpoena_percent + sabpoena_percent + Y + + + temporary_measures + temporary_measures + Y + + + temporary_measures_percent + temporary_measures_percent + Y + + + appear + appear + Y + +
+ N + + + 1296 + 448 + +
+ + Select values 2 2 + SelectValues + + Y + + 1 + + none + + + + N + + REG_ID + REG_ID + String + -2 + -2 + + false + + + false + + + + + + + + VK_ARRAY + VK_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 1008 + 448 + + + + Table input (subpoena) РФ/осень + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(appear), 0) appear, + COALESCE(SUM(registration), 0) registration, + COALESCE(SUM(sabpoena), 0) sabpoena, + COALESCE(SUM(temporary_measures), 0) temporary_measures, + COALESCE( + CASE + WHEN SUM(appear) > 0 + THEN ROUND((SUM(registration) / SUM(appear) * 100), 2) + ELSE 0 + END, + 0 + ) registration_percent, + COALESCE( + CASE + WHEN SUM(appear) > 0 + THEN ROUND((SUM(sabpoena) / SUM(appear) * 100), 2) + ELSE 0 + END, + 0 + ) sabpoena_percent, + COALESCE( + CASE + WHEN SUM(appear) > 0 + THEN ROUND((SUM(temporary_measures) / SUM(appear) * 100), 2) + ELSE 0 + END, + 0 + ) temporary_measures_percent, + '${REG_ID}' AS recruitment_id, + 'Ministry' AS schema +FROM appeals.topic_appeal +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE; + Y + + + 576 + 448 + + + + + +
diff --git a/mappings/country/job_recruitments_country.hwf b/mappings/country/job_recruitments_country.hwf index 1061b7b..443e47b 100644 --- a/mappings/country/job_recruitments_country.hwf +++ b/mappings/country/job_recruitments_country.hwf @@ -37,8 +37,8 @@ 0 1 N - 48 - 576 + 576 + 1088 @@ -71,8 +71,8 @@ N Y N - 960 - 48 + 1360 + 624 @@ -81,8 +81,8 @@ SUCCESS N - 1136 - 48 + 1536 + 624 @@ -115,8 +115,8 @@ N Y N - 960 - 128 + 1360 + 704 @@ -125,8 +125,8 @@ SUCCESS N - 1136 - 128 + 1536 + 704 @@ -159,8 +159,8 @@ N Y N - 960 - 192 + 1360 + 768 @@ -169,8 +169,8 @@ SUCCESS N - 1136 - 192 + 1536 + 768 @@ -203,8 +203,8 @@ N Y N - 960 - 272 + 1360 + 848 @@ -213,8 +213,8 @@ SUCCESS N - 1136 - 272 + 1536 + 848 @@ -247,8 +247,8 @@ N Y N - 960 - 352 + 1360 + 928 @@ -257,8 +257,8 @@ SUCCESS N - 1136 - 352 + 1536 + 928 @@ -291,8 +291,8 @@ N Y N - 960 - 432 + 1360 + 1008 @@ -301,8 +301,8 @@ SUCCESS N - 1136 - 432 + 1536 + 1008 @@ -335,8 +335,8 @@ N Y N - 960 - 512 + 1360 + 1088 @@ -345,8 +345,8 @@ SUCCESS N - 1136 - 512 + 1536 + 1088 @@ -379,8 +379,8 @@ N Y N - 960 - 576 + 1360 + 1152 @@ -389,8 +389,8 @@ SUCCESS N - 1136 - 576 + 1536 + 1152 @@ -423,8 +423,8 @@ N Y N - 960 - 640 + 1360 + 1216 @@ -433,8 +433,8 @@ SUCCESS N - 1136 - 640 + 1536 + 1216 @@ -467,8 +467,8 @@ N Y N - 960 - 704 + 1360 + 1280 @@ -477,8 +477,8 @@ SUCCESS N - 1136 - 704 + 1536 + 1280 @@ -511,8 +511,8 @@ N Y N - 960 - 768 + 1360 + 1344 @@ -521,128 +521,8 @@ SUCCESS N - 1136 - 768 - - - - SQL.md.appeals - - SQL - - ervu-dashboard - N - DELETE FROM main_dashboard.appeals where recruitment_id = '00' and recording_date = current_date - N - N - N - 768 - 48 - - - - SQL.md.rec_cam - - SQL - - ervu-dashboard - N - DELETE FROM main_dashboard.recruitment_campaign where recruitment_id = '00' and recording_date = current_date - N - N - N - 768 - 128 - - - - SQL.md.tot_reg - - SQL - - ervu-dashboard - N - DELETE FROM main_dashboard.total_registered where recruitment_id = '00' and recording_date = current_date - N - N - N - 768 - 192 - - - - SQL.md.wait_reg - - SQL - - ervu-dashboard - N - DELETE FROM main_dashboard.waiting_registration where recruitment_id = '00' and recording_date = current_date - N - N - N - 768 - 272 - - - - SQL.rcam.subpoenas - - SQL - - ervu-dashboard - N - DELETE FROM recruitment_campaign.subpoenas where recruitment_id = '00' and recording_date = current_date - N - N - N - 768 - 352 - - - - SQL.totreg.mrc - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.reg_mil_cat where recruitment_id = '00' and recording_date = current_date - N - N - N - 768 - 432 - - - - SQL.totreg.remreg - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.removed_registry where recruitment_id = '00' and recording_date = current_date - N - N - N - 768 - 512 - - - - SQL.totreg.sub - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.subpoenas where recruitment_id = '00' and recording_date = current_date - N - N - N - 768 - 576 + 1536 + 1344 @@ -675,8 +555,8 @@ N Y N - 960 - 832 + 1360 + 1408 @@ -685,68 +565,8 @@ SUCCESS N - 1136 - 832 - - - - SQL.totreg.marstat - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.marital_status where recruitment_id = '00' and recording_date = current_date - N - N - N - 768 - 832 - - - - SQL.totreg.chimin - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.child_minor where recruitment_id = '00' and recording_date = current_date - N - N - N - 768 - 704 - - - - SQL.totreg.age - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.age where recruitment_id = '00' and recording_date = current_date - N - N - N - 768 - 768 - - - - SQL.totreg.drilic - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.driver_license where recruitment_id = '00' and recording_date = current_date - N - N - N - 768 - 640 + 1536 + 1408 @@ -779,8 +599,8 @@ N Y N - 960 - 912 + 1360 + 1488 @@ -789,23 +609,8 @@ SUCCESS N - 1136 - 912 - - - - SQL.totreg.edulev - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.education_level where recruitment_id = '00' and recording_date = current_date - N - N - N - 768 - 912 + 1536 + 1488 @@ -838,8 +643,8 @@ N Y N - 960 - 992 + 1360 + 1568 @@ -848,23 +653,8 @@ SUCCESS N - 1136 - 992 - - - - SQL.totreg.busyn - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.busyness where recruitment_id = '00' and recording_date = current_date - N - N - N - 768 - 992 + 1536 + 1568 @@ -897,8 +687,8 @@ N Y N - 960 - 1056 + 1360 + 1632 @@ -907,23 +697,8 @@ SUCCESS N - 1136 - 1056 - - - - SQL.reccam.app - - SQL - - ervu-dashboard - N - DELETE FROM recruitment_campaign.appeals where recruitment_id = '00' and recording_date = current_date - N - N - N - 768 - 1056 + 1536 + 1632 @@ -947,20 +722,101 @@ N N Y + Y + 768 + 1088 + + + + appeals.reasons_appeal.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/country/appeals.reasons_appeal.hpl + Basic + + + VK_ARRAY + VK_ARRAY_ID + + + REG_ID + RECRUITMENT_REG_ID + + Y + + Y + local + N + N + Y N - 240 - 576 + 1360 + 544 + + + + Success 5 + + SUCCESS + + N + 1536 + 544 + + + + appeals.topic_appeal.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/country/appeals.topic_appeal.hpl + Basic + + + VK_ARRAY + VK_ARRAY_ID + + + REG_ID + RECRUITMENT_REG_ID + + Y + + Y + local + N + N + Y + N + 1360 + 464 + + + + Success 17 + + SUCCESS + + N + 1536 + 464 - - main_dashboard.appeals - Success - Y - Y - N - main_dashboard.recruitment_campaign Success 2 @@ -1031,69 +887,6 @@ Y N - - SQL.md.appeals - main_dashboard.appeals - Y - Y - N - - - SQL.md.rec_cam - main_dashboard.recruitment_campaign - Y - Y - N - - - SQL.md.tot_reg - main_dashboard.total_registered - Y - Y - N - - - SQL.md.wait_reg - main_dashboard.waiting_registration - Y - Y - N - - - SQL.rcam.subpoenas - recruitment_campaign.subpoenas - Y - Y - N - - - SQL.totreg.mrc - total_registered.reg_mil_cat - Y - Y - N - - - SQL.totreg.remreg - total_registered.removed_registry - Y - Y - N - - - SQL.totreg.sub - total_registered.subpoenas - Y - Y - N - - - SQL.totreg.marstat - total_registered.marital_status - Y - Y - N - total_registered.marital_status Success 13 @@ -1101,34 +894,6 @@ Y N - - SQL.totreg.chimin - total_registered.child_minor - Y - Y - N - - - SQL.totreg.age - total_registered.age - Y - Y - N - - - SQL.totreg.drilic - total_registered.driver_license - Y - Y - N - - - SQL.totreg.edulev - total_registered.education_level - Y - Y - N - total_registered.education_level Success 14 @@ -1136,13 +901,6 @@ Y N - - SQL.totreg.busyn - total_registered.busyness - Y - Y - N - total_registered.busyness Success 15 @@ -1150,13 +908,6 @@ Y N - - SQL.reccam.app - recruitment_campaign.appeals - Y - Y - N - recruitment_campaign.appeals Success 16 @@ -1172,109 +923,144 @@ Y - select_recruitments_country - SQL.md.appeals + main_dashboard.appeals + Success Y Y - Y + N select_recruitments_country - SQL.md.tot_reg + main_dashboard.appeals Y - N - Y + Y + N select_recruitments_country - SQL.md.wait_reg + main_dashboard.recruitment_campaign Y - N - Y + Y + N select_recruitments_country - SQL.md.rec_cam + main_dashboard.total_registered Y - N - Y + Y + N select_recruitments_country - SQL.rcam.subpoenas + main_dashboard.waiting_registration Y - N - Y + Y + N select_recruitments_country - SQL.totreg.mrc + recruitment_campaign.subpoenas Y - N - Y + Y + N select_recruitments_country - SQL.totreg.remreg + total_registered.reg_mil_cat Y - N - Y + Y + N select_recruitments_country - SQL.totreg.sub + total_registered.removed_registry Y - N - Y + Y + N select_recruitments_country - SQL.totreg.drilic + total_registered.subpoenas Y - N - Y + Y + N select_recruitments_country - SQL.totreg.chimin + total_registered.driver_license Y - N - Y + Y + N select_recruitments_country - SQL.totreg.age + total_registered.child_minor Y - N - Y + Y + N select_recruitments_country - SQL.totreg.marstat + total_registered.age Y - N - Y + Y + N select_recruitments_country - SQL.totreg.edulev + total_registered.marital_status Y - N - Y + Y + N select_recruitments_country - SQL.totreg.busyn + total_registered.education_level Y - N - Y + Y + N select_recruitments_country - SQL.reccam.app + total_registered.busyness Y - N - Y + Y + N + + + select_recruitments_country + recruitment_campaign.appeals + Y + Y + N + + + appeals.reasons_appeal.hpl + Success 5 + Y + Y + N + + + select_recruitments_country + appeals.reasons_appeal.hpl + Y + Y + N + + + appeals.topic_appeal.hpl + Success 17 + Y + Y + N + + + select_recruitments_country + appeals.topic_appeal.hpl + Y + Y + N diff --git a/mappings/country/main_dashboard.appeals.hpl b/mappings/country/main_dashboard.appeals.hpl index 61934e5..7ee6bfe 100644 --- a/mappings/country/main_dashboard.appeals.hpl +++ b/mappings/country/main_dashboard.appeals.hpl @@ -21,11 +21,6 @@ - - Table input (appeal_document) РФ - Insert / update (main_dashboard.appeals) - N - Get variables 3 2 Select values 3 2 @@ -41,7 +36,41 @@ Get variables 3 2 Y + + Execute SQL script + Table input (appeal_document) РФ + Y + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM main_dashboard.appeals +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' + + + 336 + 272 + + Get variables 3 2 GetVariable @@ -71,82 +100,8 @@ - 672 - 176 - - - - Insert / update (main_dashboard.appeals) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - main_dashboard - appeals
- - total_appeals - total_appeals - Y - - - average_consideration - average_consideration - Y - - - resolved - resolved - Y - - - average_rating - average_rating - Y - - - average_to_face - average_to_face - Y - - - "average_EPGU" - average_epgu - Y - - - average_to_face_percent - average_to_face_percent - Y - - - "average_EPGU_percent" - average_epgu_percent - Y - - - recruitment_id - recruitment_id - N - -
- N - - - 736 - 400 + 768 + 272
@@ -168,6 +123,11 @@ recruitment_id REG_ID + + = + schema + schema + main_dashboard appeals
@@ -215,12 +175,17 @@ recruitment_id N + + schema + schema + N + Y - 1024 - 176 + 1120 + 272
@@ -273,8 +238,8 @@ - 816 - 176 + 912 + 272 @@ -288,45 +253,43 @@ none - postgres.appeal-document-service + ervu-dashboard N 0 - WITH -t1 AS ( - SELECT COUNT(*) AS total_appeals - FROM public.appeal_document -), -t2 AS ( - SELECT - ROUND( - AVG( - (TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date) - ), - 2 - ) AS average_consideration - FROM public.appeal_document ad -), -resolved AS ( - SELECT COUNT(*) AS resolved - FROM public.appeal_document ad - WHERE ad.extra_info->>'result' IN ('1', '2') -) -SELECT - t1.total_appeals, - t2.average_consideration, - r.resolved, + SELECT + COALESCE(SUM(total_appeals), 0) total_appeals, + COALESCE(SUM(resolved), 0) resolved, + COALESCE(ROUND(AVG(average_consideration) FILTER (where average_consideration!=0),1), 0) average_consideration, + COALESCE(ROUND(AVG(average_rating)FILTER (where average_rating!=0),1), 0) average_rating, + COALESCE(SUM(average_to_face), 0) average_to_face, + COALESCE(SUM("average_EPGU"), 0) average_epgu, + COALESCE( + CASE + WHEN (SUM(average_to_face) + SUM("average_EPGU")) > 0 + THEN ROUND((SUM(average_to_face) / (SUM(average_to_face) + SUM("average_EPGU")) * 100), 2) + ELSE 0 + END, + 0 + ) average_to_face_percent, + COALESCE( + CASE + WHEN (SUM(average_to_face) + SUM("average_EPGU")) > 0 + THEN ROUND((SUM("average_EPGU") / (SUM(average_to_face) + SUM("average_EPGU")) * 100), 2) + ELSE 0 + END, + 0 + ) average_epgu_percent, '${REG_ID}' AS recruitment_id, - 0 AS average_rating, - 0 AS average_to_face, - 0 AS average_epgu, - 0 AS average_to_face_percent, - 0 AS average_epgu_percent -FROM t1, t2, resolved AS r; + 'Ministry' AS schema +FROM main_dashboard.appeals +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE; Y - 400 - 176 + 560 + 272 diff --git a/mappings/country/main_dashboard.recruitment_campaign.hpl b/mappings/country/main_dashboard.recruitment_campaign.hpl index 8748462..69ab311 100644 --- a/mappings/country/main_dashboard.recruitment_campaign.hpl +++ b/mappings/country/main_dashboard.recruitment_campaign.hpl @@ -21,396 +21,30 @@ - - Sort rows 2 2 - Merge join 2 - Y - - - Sort rows 3 - Merge join 2 - Y - - - Table input (person_registry) РФ/осень - Sort rows 3 - Y - - - Table input (subpoena) РФ/осень - Sort rows 2 2 - Y - - - Merge join 2 - Insert / update (main_dashboard.recruitment_campaign) - N - - - Sort rows 2 2 2 - Merge join 2 2 - Y - - - Sort rows 3 2 - Merge join 2 2 - Y - - - Table input (subpoena) РФ/весна - Sort rows 2 2 2 - Y - - - Merge join 2 2 - Insert / update (main_dashboard.recruitment_campaign) 2 - N - - - Table input (person_registry) РФ/весна - Sort rows 3 2 - Y - Get variables 2 2 Select values 2 2 Y - - Get variables 2 2 2 - Select values 2 2 2 - Y - - - Merge join 2 - Get variables 2 2 - Y - Select values 2 2 Insert / update (main_dashboard.recruitment_campaign) Y - Merge join 2 2 - Get variables 2 2 2 + Table input (subpoena) РФ/осень + Get variables 2 2 Y - Select values 2 2 2 - Insert / update (main_dashboard.recruitment_campaign) 2 + Execute SQL script + Table input (subpoena) РФ/осень Y - Insert / update (main_dashboard.recruitment_campaign) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - spring_autumn - spring_autumn - - - - = - recruitment_id - REG_ID - - - main_dashboard - recruitment_campaign
- - subpoenas_sent - count_subpoena - Y - - - appeared_on_subpoenas - count_appeared - Y - - - not_appeared_on_subpoenas - count_not_appeared - Y - - - new_recruits - new_recruits - Y - - - postponement_have_right - postponement_have_right - Y - - - postponement_granted - postponement_granted - Y - - - appeared_on_subpoenas_percent - appeared_on_subpoenas_percent - Y - - - not_appeared_on_subpoenas_percent - not_appeared_on_subpoenas_percent - Y - - - postponement_have_right_percent - postponement_have_right_percent - Y - - - postponement_granted_percent - postponement_granted_percent - Y - - - recruitment_id - recruitment_id - N - - - spring_autumn - spring_autumn - N - -
- N - - - 1360 - 128 - -
- - Insert / update (main_dashboard.recruitment_campaign) 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - spring_autumn - spring_autumn - - - - = - recruitment_id - REG_ID - - - main_dashboard - recruitment_campaign
- - subpoenas_sent - count_subpoena - Y - - - appeared_on_subpoenas - count_appeared - Y - - - not_appeared_on_subpoenas - count_not_appeared - Y - - - new_recruits - new_recruits - Y - - - postponement_have_right - postponement_have_right - Y - - - postponement_granted - postponement_granted - Y - - - appeared_on_subpoenas_percent - appeared_on_subpoenas_percent - Y - - - not_appeared_on_subpoenas_percent - not_appeared_on_subpoenas_percent - Y - - - postponement_have_right_percent - postponement_have_right_percent - Y - - - postponement_granted_percent - postponement_granted_percent - Y - - - recruitment_id - recruitment_id - N - - - spring_autumn - spring_autumn - N - -
- N - - - 1360 - 400 - -
- - Merge join 2 - MergeJoin - - Y - - 1 - - none - - - FULL OUTER - - org - - - org - - Sort rows 2 2 - Sort rows 3 - - - 864 - 128 - - - - Merge join 2 2 - MergeJoin - - Y - - 1 - - none - - - FULL OUTER - - org - - - org - - Sort rows 2 2 2 - Sort rows 3 2 - - - 864 - 400 - - - - Sort rows 2 2 - SortRows - - Y - - 1 - - none - - - N - %%java.io.tmpdir%% - - - Y - N - N - 0 - org - N - - - 1000000 - N - - - 768 - 128 - - - - Sort rows 2 2 2 - SortRows - - Y - - 1 - - none - - - N - %%java.io.tmpdir%% - - - Y - N - N - 0 - org - N - - - 1000000 - N - - - 768 - 400 - - - - Sort rows 3 - SortRows + Execute SQL script + ExecSql N @@ -419,337 +53,22 @@ none - N - %%java.io.tmpdir%% - - - Y - N - N - 0 - org - N - - - 1000000 - N - - - 752 - 240 - - - - Sort rows 3 2 - SortRows - - N - - 1 - - none - - - N - %%java.io.tmpdir%% - - - Y - N - N - 0 - org - N - - - 1000000 - N - - - 752 - 512 - - - - Table input (person_registry) РФ/весна - TableInput - - Y - - 1 - - none - - - ervu_person_registry + + + ervu-dashboard N - 0 - SELECT -1 AS org, -COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 - AND gender = 'MALE' -- мужчины от 18 до 30 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки -) AS new_recruits, -COUNT(*) FILTER ( - WHERE conscription = true -) AS postponement_granted, -ROUND(COUNT(*) FILTER (WHERE conscription = true) * 100.0 / NULLIF(COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 - AND gender = 'MALE' -- мужчины от 18 до 30 лет - AND (conscription IS NULL OR conscription = false)), 0), 2) AS postponement_granted_percent -FROM public.recruits AS r - JOIN public.recruits_info AS ri - ON ri.recruit_id = r.id - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - N + N + Y + N + N + DELETE FROM main_dashboard.recruitment_campaign +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' - 496 - 512 - - - - Table input (person_registry) РФ/осень - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - SELECT -1 AS org, -COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 - AND gender = 'MALE' -- мужчины от 18 до 30 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки -) AS new_recruits, -COUNT(*) FILTER ( - WHERE conscription = true -) AS postponement_granted, -ROUND(COUNT(*) FILTER (WHERE conscription = true) * 100.0 / NULLIF(COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 - AND gender = 'MALE' -- мужчины от 18 до 30 лет - AND (conscription IS NULL OR conscription = false)), 0), 2) AS postponement_granted_percent -FROM public.recruits AS r - JOIN public.recruits_info AS ri - ON ri.recruit_id = r.id - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - N - - - 496 - 240 - - - - Table input (subpoena) РФ/весна - TableInput - - Y - - 1 - - none - - - postgres.subpoena - N - 0 - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - s.recruit_id, -- recruit_id добавляем, если есть - sh.date_time - FROM public.subpoena s - JOIN public.subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN public.subpoena_status AS ss ON ss.id = s.status_id - JOIN public.subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN public.subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN public.restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN public.restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN public.subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '3' - AND EXTRACT(YEAR FROM AGE(s.date_birth)) BETWEEN 18 AND 30 -), -last_status_data AS ( - -- Выбираем последнюю дату истории для каждой subpoena - SELECT - s.subpoena_id, - MAX(s.history_date) AS last_history_date - FROM subpoena_data s - GROUP BY s.subpoena_id -), -last_status AS ( - -- Соединяем таблицу с максимальной датой и оригинальные данные, чтобы выбрать последние записи - SELECT - sd.* - FROM subpoena_data sd - JOIN last_status_data lsd - ON sd.subpoena_id = lsd.subpoena_id - AND sd.history_date = lsd.last_history_date -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist in ('5', '5.1') -), -t4 AS ( - SELECT COUNT(DISTINCT recruit_id) AS new_recruits - FROM subpoena_data -) -SELECT - t1.count_subpoena, - t2.count_appeared, - t3.count_not_appeared, - ROUND(count_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS appeared_on_subpoenas_percent, - ROUND(count_not_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_appeared_on_subpoenas_percent, - -- t4.new_recruits, - 0 AS postponement_have_right, - -- 0 AS postponement_granted, - 0 AS postponement_have_right_percent, - -- 0 AS postponement_granted_percent, - 'Весна' AS spring_autumn, - '${REG_ID}' AS recruitment_id, - 1 AS org -FROM t1 -JOIN t2 ON true -JOIN t3 ON true -JOIN t4 ON true; - Y - - - 496 - 400 - - - - Table input (subpoena) РФ/осень - TableInput - - Y - - 1 - - none - - - postgres.subpoena - N - 0 - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - s.recruit_id, -- recruit_id добавляем, если есть - sh.date_time - FROM public.subpoena s - JOIN public.subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN public.subpoena_status AS ss ON ss.id = s.status_id - JOIN public.subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN public.subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN public.restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN public.restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN public.subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '3' -- статус изменен на 3 - AND EXTRACT(YEAR FROM AGE(s.date_birth)) BETWEEN 18 AND 30 -), -last_status_data AS ( - -- Выбираем последнюю дату истории для каждой subpoena - SELECT - s.subpoena_id, - MAX(s.history_date) AS last_history_date - FROM subpoena_data s - GROUP BY s.subpoena_id -), -last_status AS ( - -- Соединяем таблицу с максимальной датой и оригинальные данные, чтобы выбрать последние записи - SELECT - sd.* - FROM subpoena_data sd - JOIN last_status_data lsd - ON sd.subpoena_id = lsd.subpoena_id - AND sd.history_date = lsd.last_history_date -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist in ('5', '5.1') -- добавлен статус 5.1 -), -t4 AS ( - SELECT COUNT(DISTINCT recruit_id) AS new_recruits - FROM subpoena_data -) -SELECT - t1.count_subpoena, - t2.count_appeared, - t3.count_not_appeared, - ROUND(count_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS appeared_on_subpoenas_percent, - ROUND(count_not_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_appeared_on_subpoenas_percent, - -- t4.new_recruits, - 0 AS postponement_have_right, - -- 0 AS postponement_granted, - 0 AS postponement_have_right_percent, - -- 0 AS postponement_granted_percent, - 'Осень' AS spring_autumn, - '${REG_ID}' AS recruitment_id, - 1 AS org -FROM t1 -JOIN t2 ON true -JOIN t3 ON true -JOIN t4 ON true; - Y - - - 496 - 128 + 784 + 480 @@ -781,8 +100,112 @@ JOIN t4 ON true; - 1008 - 208 + 1248 + 480 + + + + Insert / update (main_dashboard.recruitment_campaign) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + spring_autumn + spring_autumn + + + = + recruitment_id + REG_ID + + + = + schema + schema + + main_dashboard + recruitment_campaign
+ + subpoenas_sent + count_subpoena + Y + + + appeared_on_subpoenas + count_appeared + Y + + + not_appeared_on_subpoenas + count_not_appeared + Y + + + new_recruits + new_recruits + Y + + + postponement_have_right + postponement_have_right + Y + + + postponement_granted + postponement_granted + Y + + + appeared_on_subpoenas_percent + appeared_on_subpoenas_percent + Y + + + not_appeared_on_subpoenas_percent + not_appeared_on_subpoenas_percent + Y + + + postponement_have_right_percent + postponement_have_right_percent + Y + + + postponement_granted_percent + postponement_granted_percent + Y + + + recruitment_id + recruitment_id + N + + + spring_autumn + spring_autumn + N + + + schema + schema + N + +
+ N + + + 1744 + 480
@@ -835,13 +258,13 @@ JOIN t4 ON true; - 1216 - 208 + 1456 + 480 - Get variables 2 2 2 - GetVariable + Table input (subpoena) РФ/осень + TableInput Y @@ -850,80 +273,61 @@ JOIN t4 ON true; none - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(subpoenas_sent), 0) count_subpoena, + COALESCE(SUM(appeared_on_subpoenas), 0) count_appeared, + COALESCE(SUM(not_appeared_on_subpoenas), 0) count_not_appeared, + COALESCE(SUM(new_recruits), 0) new_recruits, + COALESCE(SUM(postponement_have_right), 0) postponement_have_right, + COALESCE(SUM(postponement_granted), 0) postponement_granted, + COALESCE( + CASE + WHEN SUM(subpoenas_sent) > 0 + THEN ROUND((SUM(appeared_on_subpoenas) / SUM(subpoenas_sent) * 100), 2) + ELSE 0 + END, + 0 + ) appeared_on_subpoenas_percent, + COALESCE( + CASE + WHEN SUM(subpoenas_sent) > 0 + THEN ROUND((SUM(not_appeared_on_subpoenas) / SUM(subpoenas_sent) * 100), 2) + ELSE 0 + END, + 0 + ) not_appeared_on_subpoenas_percent, + COALESCE( + CASE + WHEN SUM(new_recruits) > 0 + THEN ROUND((SUM(postponement_have_right) / SUM(new_recruits) * 100), 2) + ELSE 0 + END, + 0 + ) postponement_have_right_percent, + COALESCE( + CASE + WHEN SUM(new_recruits) > 0 + THEN ROUND((SUM(postponement_granted) / SUM(new_recruits) * 100), 2) + ELSE 0 + END, + 0 + ) postponement_granted_percent, + '${REG_ID}' AS recruitment_id, + spring_autumn, + 'Ministry' AS schema +FROM main_dashboard.recruitment_campaign +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE +GROUP BY spring_autumn; + Y - 1008 - 496 - - - - Select values 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 1216 - 496 + 1024 + 480 diff --git a/mappings/country/main_dashboard.total_registered.hpl b/mappings/country/main_dashboard.total_registered.hpl index 069201a..fb16125 100644 --- a/mappings/country/main_dashboard.total_registered.hpl +++ b/mappings/country/main_dashboard.total_registered.hpl @@ -21,11 +21,6 @@ - - Table input (person_registry) РФ - Insert / update (main_dashboard.total_registered) - N - Get variables 2 2 Select values 2 2 @@ -41,7 +36,74 @@ Insert / update (main_dashboard.total_registered) Y + + Execute SQL script + Table input (person_registry) РФ + Y + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM main_dashboard.total_registered +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' + + + 240 + 368 + + + + Get variables 2 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REG_ID + -1 + none + String + + + -1 + VK_ARRAY + -1 + none + String + + + + + 624 + 368 + + Insert / update (main_dashboard.total_registered) InsertUpdate @@ -60,7 +122,16 @@ = recruitment_id REG_ID - + + + = + schema + schema + + + = + convicts + convicts main_dashboard total_registered
@@ -114,148 +185,24 @@ recruitment_id N + + schema + schema + N + + + convicts + convicts + N + N - 992 + 1008 368
- - Table input (person_registry) РФ - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH vse as ( -select *, -r.id as r_id -FROM public.recruits AS r - JOIN public.recruits_info AS ri - ON ri.recruit_id = r.id - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL -), -extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - vse ri - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_16 - FROM - children_birth_dates - WHERE - AGE(make_date(year, month, day)) < interval '16 years' - GROUP BY - recruit_id -), -recruit_data AS ( - SELECT - COUNT(*) AS total_count, - 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') -- мужчины от 18 до 70 лет - OR - (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 45 - AND gender = 'FEMALE') -- женщины от 18 до 45 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки - AND COALESCE(cc.children_under_16, 0) < 5 -- исключить рекрутов с 5 и более детьми младше 16 лет - ) AS mobilization_criterion, - COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 - AND gender = 'MALE' -- мужчины от 18 до 30 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки - ) AS volunteer_criterion, - COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 - AND gender = 'MALE' -- мужчины от 18 до 50 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки - AND ri.info->'svedSudim'->>'prOtsSvedSudim' = '1' -- признак отсутствия данных о судимости - ) AS contract_criterion - FROM vse as ri - LEFT JOIN children_count AS cc - ON ri.r_id = cc.recruit_id - ) -SELECT - total_count, - male_count, - female_count, - '${REG_ID}' AS recruitment_id, - mobilization_criterion, - volunteer_criterion, - contract_criterion, - ROUND(mobilization_criterion::NUMERIC / NULLIF(total_count, 0) * 100, 2) AS mobilization_criterion_percent, - ROUND(volunteer_criterion::NUMERIC / NULLIF(total_count, 0) * 100, 2) AS volunteer_criterion_percent, - ROUND(contract_criterion::NUMERIC / NULLIF(total_count, 0) * 100, 2) AS contract_criterion_percent -FROM recruit_data; - Y - - - 432 - 368 - - - - Get variables 2 2 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 592 - 464 - - Select values 2 2 SelectValues @@ -306,8 +253,68 @@ FROM recruit_data; - 800 - 464 + 768 + 368 + + + + Table input (person_registry) РФ + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(total_registered), 0) total_count, + COALESCE(SUM("total_registered_M"), 0) male_count, + COALESCE(SUM("total_registered_W"), 0) female_count, + COALESCE(SUM(mobilization_criterion), 0) mobilization_criterion, + COALESCE(SUM(volunteer_criterion), 0) volunteer_criterion, + COALESCE(SUM(contract_criterion), 0) contract_criterion, + COALESCE( + CASE + WHEN SUM(total_registered) > 0 + THEN ROUND((SUM(mobilization_criterion) / SUM(total_registered) * 100), 2) + ELSE 0 + END, + 0 + ) mobilization_criterion_percent, + COALESCE( + CASE + WHEN SUM(total_registered) > 0 + THEN ROUND((SUM(volunteer_criterion) / SUM(total_registered) * 100), 2) + ELSE 0 + END, + 0 + ) volunteer_criterion_percent, + COALESCE( + CASE + WHEN SUM(total_registered) > 0 + THEN ROUND((SUM(contract_criterion) / SUM(total_registered) * 100), 2) + ELSE 0 + END, + 0 + ) contract_criterion_percent, + '${REG_ID}' AS recruitment_id, + convicts, + 'Ministry' AS schema +FROM main_dashboard.total_registered +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE +GROUP BY convicts; + Y + + + 432 + 368 diff --git a/mappings/country/main_dashboard.waiting_registration.hpl b/mappings/country/main_dashboard.waiting_registration.hpl index cdafc45..8bf390e 100644 --- a/mappings/country/main_dashboard.waiting_registration.hpl +++ b/mappings/country/main_dashboard.waiting_registration.hpl @@ -21,11 +21,6 @@ - - Table input 2 (person_registry) РФ - Insert / update (main_dashboard.waiting_registration) - N - Get variables 2 2 Select values 2 2 @@ -41,7 +36,41 @@ Insert / update (main_dashboard.waiting_registration) Y + + Execute SQL script + Table input 2 (person_registry) РФ + Y + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM main_dashboard.waiting_registration +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' + + + 416 + 352 + + Get variables 2 2 GetVariable @@ -71,8 +100,8 @@ - 544 - 400 + 832 + 352 @@ -93,6 +122,13 @@ = recruitment_id REG_ID + + + + = + schema + schema + main_dashboard waiting_registration
@@ -141,22 +177,22 @@ contract_criterion_percent Y - - waiting_registration_percent - waiting_percent - Y - recruitment_id recruitment_id N + + schema + schema + N + N - 928 - 336 + 1360 + 352
@@ -209,8 +245,8 @@ - 752 - 400 + 1040 + 352 @@ -224,95 +260,51 @@ none - postgres.person_registry + ervu-dashboard N 0 - WITH vse as ( -select *, -r.id as r_id -FROM public.recruits AS r - JOIN public.recruits_info AS ri - ON ri.recruit_id = r.id - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'false' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL -), -extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - vse ri - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_16 - FROM - children_birth_dates - WHERE - AGE(make_date(year, month, day)) < interval '16 years' - GROUP BY - recruit_id -), -recruit_data AS ( - SELECT - COUNT(*) AS waiting_count, - 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') -- мужчины от 18 до 70 лет - OR - (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 45 - AND gender = 'FEMALE') -- женщины от 18 до 45 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки - AND COALESCE(cc.children_under_16, 0) < 5 -- исключить рекрутов с 5 и более детьми младше 16 лет - ) AS mobilization_criterion, - COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 - AND gender = 'MALE' -- мужчины от 18 до 30 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки - ) AS volunteer_criterion, - COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 - AND gender = 'MALE' -- мужчины от 18 до 50 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки - AND ri.info->'svedSudim'->>'prOtsSvedSudim' = '1' -- признак отсутствия данных о судимости - ) AS contract_criterion - FROM vse as ri - LEFT JOIN children_count AS cc - ON ri.r_id = cc.recruit_id -) -SELECT - waiting_count, - ROUND(COALESCE((waiting_count::DECIMAL / NULLIF((SELECT COUNT(*) FROM public.recruits), 0) * 100), 0), 2) AS waiting_percent, - male_count, - female_count, + SELECT + COALESCE(SUM(waiting_registration), 0) waiting_count, + COALESCE(SUM("waiting_registration_M"), 0) male_count, + COALESCE(SUM("waiting_registration_W"), 0) female_count, + COALESCE(SUM(mobilization_criterion), 0) mobilization_criterion, + COALESCE(SUM(volunteer_criterion), 0) volunteer_criterion, + COALESCE(SUM(contract_criterion), 0) contract_criterion, + COALESCE( + CASE + WHEN SUM(waiting_registration) > 0 + THEN ROUND((SUM(mobilization_criterion) / SUM(waiting_registration) * 100), 2) + ELSE 0 + END, + 0 + ) mobilization_criterion_percent, + COALESCE( + CASE + WHEN SUM(waiting_registration) > 0 + THEN ROUND((SUM(volunteer_criterion) / SUM(waiting_registration) * 100), 2) + ELSE 0 + END, + 0 + ) volunteer_criterion_percent, + COALESCE( + CASE + WHEN SUM(waiting_registration) > 0 + THEN ROUND((SUM(contract_criterion) / SUM(waiting_registration) * 100), 2) + ELSE 0 + END, + 0 + ) contract_criterion_percent, '${REG_ID}' AS recruitment_id, - mobilization_criterion, - volunteer_criterion, - contract_criterion, - ROUND(mobilization_criterion::NUMERIC / NULLIF(waiting_count, 0) * 100, 2) AS mobilization_criterion_percent, - ROUND(volunteer_criterion::NUMERIC / NULLIF(waiting_count, 0) * 100, 2) AS volunteer_criterion_percent, - ROUND(contract_criterion::NUMERIC / NULLIF(waiting_count, 0) * 100, 2) AS contract_criterion_percent -FROM recruit_data; + 'Ministry' AS schema +FROM main_dashboard.waiting_registration +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE; Y - 368 - 336 + 624 + 352 diff --git a/mappings/country/recruitment_campaign.appeals.hpl b/mappings/country/recruitment_campaign.appeals.hpl index 2b69a28..c0e04c4 100644 --- a/mappings/country/recruitment_campaign.appeals.hpl +++ b/mappings/country/recruitment_campaign.appeals.hpl @@ -21,36 +21,11 @@ - - Table input (appeal_document) РФ/осень - Insert / update (main_dashboard.appeals) - N - - - Table input (appeal_document) РФ/весна - Insert / update (main_dashboard.appeals) 2 - N - Get variables 2 2 Select values 2 2 Y - - Get variables 2 2 2 - Select values 2 2 2 - Y - - - Table input (appeal_document) РФ/весна - Get variables 2 2 2 - Y - - - Select values 2 2 2 - Insert / update (main_dashboard.appeals) 2 - Y - Table input (appeal_document) РФ/осень Get variables 2 2 @@ -61,249 +36,39 @@ Insert / update (main_dashboard.appeals) Y + + Execute SQL script + Table input (appeal_document) РФ/осень + Y + - Insert / update (main_dashboard.appeals) - InsertUpdate + Execute SQL script + ExecSql - Y + N 1 none - 100 + + ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - spring_autumn - spring_autumn - - - recruitment_campaign - appeals
- - total_appeals - total_appeals - Y - - - average_consideration - average_consideration - Y - - - resolved - resolved - Y - - - not_resolved - not_resolved - Y - - - not_resolved_percent - not_resolved_percent - Y - - - average_rating - average_rating - Y - - - resolved_percent - resolved_percent - Y - - - recruitment_id - recruitment_id - N - - - spring_autumn - spring_autumn - N - -
- N - - - 752 - 176 - -
- - Insert / update (main_dashboard.appeals) 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - spring_autumn - spring_autumn - - - recruitment_campaign - appeals
- - total_appeals - total_appeals - Y - - - average_consideration - average_consideration - Y - - - resolved - resolved - Y - - - not_resolved - not_resolved - Y - - - not_resolved_percent - not_resolved_percent - Y - - - average_rating - average_rating - Y - - - resolved_percent - resolved_percent - Y - - - recruitment_id - recruitment_id - N - - - spring_autumn - spring_autumn - N - -
- N - - - 752 - 336 - -
- - Table input (appeal_document) РФ/весна - TableInput - - Y - - 1 - - none - - - postgres.appeal-document-service N - 0 - -- ad.extra_info->>'result' = '**' 1 - удовлетворена, 2 - частично удовлетворена, 3 - отказано в удовлетворении -WITH appeals_data AS ( - SELECT - COUNT(*) AS total_appeals, - ROUND(AVG((TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date)), 2) AS average_consideration, - COUNT(CASE WHEN ad.extra_info->>'result' IN ('1', '2') THEN 1 END) AS resolved, -- 2 это частично удовлетворена - COUNT(CASE WHEN ad.extra_info->>'result' = '3' THEN 1 END) AS not_resolved - FROM public.appeal_document ad -) -SELECT - ad.total_appeals, - ad.average_consideration, - ad.resolved, - ad.not_resolved, - ROUND(ad.resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) AS resolved_percent, - ROUND(ad.not_resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) AS not_resolved_percent, - '${REG_ID}' AS recruitment_id, - 0 AS average_rating, - 'Весна' as spring_autumn -FROM appeals_data AS ad; - Y + N + Y + N + N + DELETE FROM recruitment_campaign.appeals +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' - 400 - 336 - - - - Table input (appeal_document) РФ/осень - TableInput - - Y - - 1 - - none - - - postgres.appeal-document-service - N - 0 - -- ad.extra_info->>'result' = '**' 1 - удовлетворена, 2 - частично удовлетворена, 3 - отказано в удовлетворении -WITH appeals_data AS ( - SELECT - COUNT(*) AS total_appeals, - ROUND(AVG((TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date)), 2) AS average_consideration, - COUNT(CASE WHEN ad.extra_info->>'result' IN ('1', '2') THEN 1 END) AS resolved, -- 2 это частично удовлетворена - COUNT(CASE WHEN ad.extra_info->>'result' = '3' THEN 1 END) AS not_resolved - FROM public.appeal_document ad -) -SELECT - ad.total_appeals, - ad.average_consideration, - ad.resolved, - ad.not_resolved, - ROUND(ad.resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) AS resolved_percent, - ROUND(ad.not_resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) AS not_resolved_percent, - '${REG_ID}' AS recruitment_id, - 0 AS average_rating, - 'Осень' as spring_autumn -FROM appeals_data AS ad; - Y - - - 400 - 176 + 208 + 256 @@ -335,7 +100,96 @@ FROM appeals_data AS ad; - 464 + 656 + 256 + + + + Insert / update (main_dashboard.appeals) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + REG_ID + + + = + spring_autumn + spring_autumn + + + = + schema + schema + + recruitment_campaign + appeals
+ + total_appeals + total_appeals + Y + + + average_consideration + average_consideration + Y + + + resolved + resolved + Y + + + not_resolved + not_resolved + Y + + + not_resolved_percent + not_resolved_percent + Y + + + average_rating + average_rating + Y + + + resolved_percent + resolved_percent + Y + + + recruitment_id + recruitment_id + N + + + spring_autumn + spring_autumn + N + + + schema + schema + N + +
+ N + + + 1104 256
@@ -389,13 +243,13 @@ FROM appeals_data AS ad; - 672 + 864 256 - Get variables 2 2 2 - GetVariable + Table input (appeal_document) РФ/осень + TableInput Y @@ -404,80 +258,46 @@ FROM appeals_data AS ad; none - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(total_appeals), 0) total_appeals, + coalesce(ROUND(avg(average_consideration) FILTER (where average_consideration!=0),1),0) as average_consideration, + COALESCE(SUM(resolved), 0) resolved, + COALESCE(SUM(not_resolved), 0) not_resolved, + COALESCE( + CASE + WHEN SUM(total_appeals) > 0 + THEN ROUND((SUM(not_resolved) / SUM(total_appeals) * 100), 2) + ELSE 0 + END, + 0 + ) not_resolved_percent, + + coalesce(ROUND(avg(average_rating) FILTER (where average_rating!=0),1),0) as average_rating, + COALESCE( + CASE + WHEN SUM(total_appeals) > 0 + THEN ROUND((SUM(resolved) / SUM(total_appeals) * 100), 2) + ELSE 0 + END, + 0 + ) resolved_percent, + + '${REG_ID}' AS recruitment_id, + spring_autumn, + 'Ministry' AS schema +FROM recruitment_campaign.appeals +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE +GROUP BY spring_autumn; + Y - 464 - 416 - - - - Select values 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 672 - 416 + 416 + 256 diff --git a/mappings/country/recruitment_campaign.subpoenas.hpl b/mappings/country/recruitment_campaign.subpoenas.hpl index e466717..8ff426a 100644 --- a/mappings/country/recruitment_campaign.subpoenas.hpl +++ b/mappings/country/recruitment_campaign.subpoenas.hpl @@ -21,26 +21,11 @@ - - Table input (subpoena) осень/РФ - Insert / update (recruitment_campaign.subpoenas) - N - - - Table input (subpoena) Весна/РФ - Insert / update (recruitment_campaign.subpoenas) 3 - N - Get variables 2 2 Select values 2 2 Y - - Get variables 2 2 2 - Select values 2 2 2 - Y - Table input (subpoena) осень/РФ Get variables 2 2 @@ -52,602 +37,38 @@ Y - Table input (subpoena) Весна/РФ - Get variables 2 2 2 - Y - - - Select values 2 2 2 - Insert / update (recruitment_campaign.subpoenas) 3 + Execute SQL script + Table input (subpoena) осень/РФ Y - Insert / update (recruitment_campaign.subpoenas) - InsertUpdate + Execute SQL script + ExecSql - Y + N 1 none - 100 + + ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - spring_autumn - spring_autumn - - - recruitment_campaign - subpoenas
- - subpoena - count_subpoena - Y - - - appeared - count_appeared - Y - - - not_appeared - count_not_appeared - Y - - - not_ap_good_reason - count_not_ap_good_reason - Y - - - introduced_measures - count_introduced_measures - Y - - - ap_not_required - count_ap_not_required - Y - - - restrictions_applied - count_restrictions_applied - Y - - - appeared_percent - appeared_percent - Y - - - not_appeared_percent - not_appeared_percent - Y - - - not_ap_good_reason_percent - not_ap_good_reason_percent - Y - - - ap_not_required_percent - ap_not_required_percent - Y - - - restrictions_applied_percent - restrictions_applied_percent - Y - - - introduced_measures_percent - introduced_measures_percent - Y - - - recruitment_id - recruitment_id - N - - - rest - rest - Y - - - spring_autumn - spring_autumn - N - - - count_not_delivery - count_not_delivery - Y - - - appear_date_is_good - appear_date_is_good - Y - - - not_delivery_percent - not_delivery_percent - Y - - - appear_date_is_good_percent - appear_date_is_good_percent - Y - -
- N - - - 1072 - 240 - -
- - Insert / update (recruitment_campaign.subpoenas) 3 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - spring_autumn - spring_autumn - - - recruitment_campaign - subpoenas
- - subpoena - count_subpoena - Y - - - appeared - count_appeared - Y - - - not_appeared - count_not_appeared - Y - - - not_ap_good_reason - count_not_ap_good_reason - Y - - - introduced_measures - count_introduced_measures - Y - - - ap_not_required - count_ap_not_required - Y - - - restrictions_applied - count_restrictions_applied - Y - - - appeared_percent - appeared_percent - Y - - - not_appeared_percent - not_appeared_percent - Y - - - not_ap_good_reason_percent - not_ap_good_reason_percent - Y - - - ap_not_required_percent - ap_not_required_percent - Y - - - restrictions_applied_percent - restrictions_applied_percent - Y - - - introduced_measures_percent - introduced_measures_percent - Y - - - recruitment_id - recruitment_id - N - - - rest - rest - Y - - - spring_autumn - spring_autumn - N - - - count_not_delivery - count_not_delivery - Y - - - appear_date_is_good - appear_date_is_good - Y - - - not_delivery_percent - not_delivery_percent - Y - - - appear_date_is_good_percent - appear_date_is_good_percent - Y - -
- N - - - 1072 - 432 - -
- - Table input (subpoena) Весна/РФ - TableInput - - Y - - 1 - - none - - - postgres.subpoena N - 0 - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn -- добавляем строку для получения последнего статуса - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '3' - and ssh.code not in ('3.14','3.7','3.72', '3.71') -), --- фильтруем только последние статусы для каждой повестки -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -- выбираем только последнюю запись для каждой повестки -), --- Подсчет различных метрик -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( -- количество повесток по которым применены ограничения - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( -- количество повесток по которым введены меры - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery --не вручена - FROM last_status - WHERE d_code is null -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') - ) -SELECT - t1.count_subpoena, - t2.average_appeared, - t3.count_appeared, - t4.count_not_appeared, - t5.count_not_ap_good_reason, - t6.count_ap_not_required, - t7.count_restrictions_applied, - t8.count_introduced_measures, - t9.count_paper, - t10.count_electron, - t11.count_restrictions, - t12.count_not_delivery, - t13.appear_date_is_good, - ROUND(count_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS appeared_percent, - ROUND(count_not_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(count_not_ap_good_reason * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(count_ap_not_required * 100.0 / NULLIF(count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(count_electron * 100.0 / NULLIF(count_subpoena, 0), 2) AS electron_percent, - ROUND(count_paper * 100.0 / NULLIF(count_subpoena, 0), 2) AS paper_percent, - ROUND(count_restrictions_applied * 100.0 / NULLIF(count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(count_introduced_measures * 100.0 / NULLIF(count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(count_not_delivery * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_delivery_percent, --процент не врученных - ROUND(appear_date_is_good * 100.0 / NULLIF(count_subpoena, 0), 2) AS appear_date_is_good_percent, --процент не врученных - '${REG_ID}' AS recruitment_id, - 0 as rest, - 'Весна' as spring_autumn, - 1 AS org -FROM t1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1 -FULL OUTER JOIN t7 ON 1 = 1 -FULL OUTER JOIN t8 ON 1 = 1 -FULL OUTER JOIN t9 ON 1 = 1 -FULL OUTER JOIN t10 ON 1 = 1 -FULL OUTER JOIN t11 ON 1 = 1 -FULL OUTER JOIN t12 ON 1 = 1 -FULL OUTER JOIN t13 ON 1 = 1; - - Y + N + Y + N + N + DELETE FROM recruitment_campaign.subpoenas +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' - 384 - 432 - - - - Table input (subpoena) осень/РФ - TableInput - - Y - - 1 - - none - - - postgres.subpoena - N - 0 - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn -- добавляем строку для получения последнего статуса - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '3' - and ssh.code not in ('3.14','3.7','3.72', '3.71') -), --- фильтруем только последние статусы для каждой повестки -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -- выбираем только последнюю запись для каждой повестки -), --- Подсчет различных метрик -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( -- количество повесток по которым применены ограничения - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( -- количество повесток по которым введены меры - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery --не вручена - FROM last_status - WHERE d_code is null -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') - ) -SELECT - t1.count_subpoena, - t2.average_appeared, - t3.count_appeared, - t4.count_not_appeared, - t5.count_not_ap_good_reason, - t6.count_ap_not_required, - t7.count_restrictions_applied, - t8.count_introduced_measures, - t9.count_paper, - t10.count_electron, - t11.count_restrictions, - t12.count_not_delivery, - t13.appear_date_is_good, - ROUND(count_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS appeared_percent, - ROUND(count_not_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(count_not_ap_good_reason * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(count_ap_not_required * 100.0 / NULLIF(count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(count_electron * 100.0 / NULLIF(count_subpoena, 0), 2) AS electron_percent, - ROUND(count_paper * 100.0 / NULLIF(count_subpoena, 0), 2) AS paper_percent, - ROUND(count_restrictions_applied * 100.0 / NULLIF(count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(count_introduced_measures * 100.0 / NULLIF(count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(count_not_delivery * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_delivery_percent, --процент не врученных - ROUND(appear_date_is_good * 100.0 / NULLIF(count_subpoena, 0), 2) AS appear_date_is_good_percent, --процент не врученных - '${REG_ID}' AS recruitment_id, - 0 as rest, - 'Осень' as spring_autumn, - 1 AS org -FROM t1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1 -FULL OUTER JOIN t7 ON 1 = 1 -FULL OUTER JOIN t8 ON 1 = 1 -FULL OUTER JOIN t9 ON 1 = 1 -FULL OUTER JOIN t10 ON 1 = 1 -FULL OUTER JOIN t11 ON 1 = 1 -FULL OUTER JOIN t12 ON 1 = 1 -FULL OUTER JOIN t13 ON 1 = 1; - - Y - - - 384 - 240 + 192 + 336 @@ -680,7 +101,151 @@ FULL OUTER JOIN t13 ON 1 = 1; 640 - 304 + 336 + + + + Insert / update (recruitment_campaign.subpoenas) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + REG_ID + + + = + spring_autumn + spring_autumn + + + = + schema + schema + + recruitment_campaign + subpoenas
+ + subpoena + count_subpoena + Y + + + appeared + count_appeared + Y + + + not_appeared + count_not_appeared + Y + + + not_ap_good_reason + count_not_ap_good_reason + Y + + + introduced_measures + count_introduced_measures + Y + + + ap_not_required + count_ap_not_required + Y + + + restrictions_applied + count_restrictions_applied + Y + + + appeared_percent + appeared_percent + Y + + + not_appeared_percent + not_appeared_percent + Y + + + not_ap_good_reason_percent + not_ap_good_reason_percent + Y + + + ap_not_required_percent + ap_not_required_percent + Y + + + restrictions_applied_percent + restrictions_applied_percent + Y + + + introduced_measures_percent + introduced_measures_percent + Y + + + recruitment_id + recruitment_id + N + + + rest + rest + Y + + + spring_autumn + spring_autumn + N + + + count_not_delivery + count_not_delivery + Y + + + appear_date_is_good + appear_date_is_good + Y + + + not_delivery_percent + not_delivery_percent + Y + + + appear_date_is_good_percent + appear_date_is_good_percent + Y + + + schema + schema + N + +
+ N + + + 1104 + 336
@@ -734,12 +299,12 @@ FULL OUTER JOIN t13 ON 1 = 1; 848 - 304 + 336 - Get variables 2 2 2 - GetVariable + Table input (subpoena) осень/РФ + TableInput Y @@ -748,80 +313,105 @@ FULL OUTER JOIN t13 ON 1 = 1; none - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(subpoena), 0) count_subpoena, + COALESCE(SUM(appeared), 0) count_appeared, + COALESCE(SUM(not_appeared), 0) count_not_appeared, + COALESCE(SUM(not_ap_good_reason), 0) count_not_ap_good_reason, + COALESCE(SUM(introduced_measures), 0) count_introduced_measures, + COALESCE(SUM(ap_not_required), 0) count_ap_not_required, + COALESCE(SUM(restrictions_applied), 0) count_restrictions_applied, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(appeared) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) appeared_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(not_appeared) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_appeared_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(not_ap_good_reason) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_ap_good_reason_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(ap_not_required) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) ap_not_required_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(restrictions_applied) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) restrictions_applied_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(introduced_measures) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) introduced_measures_percent, + COALESCE(SUM(rest), 0) rest, + COALESCE(SUM(count_not_delivery), 0) count_not_delivery, + COALESCE(SUM(appear_date_is_good), 0) appear_date_is_good, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(count_not_delivery) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_delivery_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(count_not_delivery) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_delivery_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(appear_date_is_good) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) appear_date_is_good_percent, + '${REG_ID}' AS recruitment_id, + spring_autumn, + 'Ministry' AS schema +FROM recruitment_campaign.subpoenas +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE +GROUP BY spring_autumn; + Y - 640 - 496 - - - - Select values 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 848 - 496 + 416 + 336 diff --git a/mappings/country/select_recruitments_country.hpl b/mappings/country/select_recruitments_country.hpl index 3f4c96d..de9cad8 100644 --- a/mappings/country/select_recruitments_country.hpl +++ b/mappings/country/select_recruitments_country.hpl @@ -57,13 +57,10 @@ ervu-dashboard N - 10 - WITH -t1 AS (SELECT ARRAY_AGG(t.idm_id) AS RECRUITMENT00_ID FROM ervu_dashboard.recruitment AS t WHERE t.code = '0000000') -SELECT - t1.RECRUITMENT00_ID AS VK_ARRAY_ID, - '00' AS RECRUITMENT_REG_ID -FROM t1 + + SELECT 'f03fc8c0-2ce7-4121-a306-f82d65ea029d' AS RECRUITMENT_REG_ID, + array_agg(recruitment_dstr_id) AS VK_ARRAY_ID +FROM ervu_dashboard.array_mildis N diff --git a/mappings/country/total_registered.age.hpl b/mappings/country/total_registered.age.hpl index 9564802..6a9aaed 100644 --- a/mappings/country/total_registered.age.hpl +++ b/mappings/country/total_registered.age.hpl @@ -21,66 +21,11 @@ - - Table input (person_registry) РФ/женщины/на учете - Insert / update (total_registered.age) 3 - N - - - Table input (person_registry) РФ/мужчины/на учете - Insert / update (total_registered.age) 2 - N - - - Table input (person_registry) РФ/все/на учете - Insert / update (total_registered.age) - N - - - Table input (person_registry) РФ/все/не на учете - Insert / update (total_registered.age) 4 - N - - - Table input (person_registry) РФ/женщины/не на учете - Insert / update (total_registered.age) 3 2 - N - - - Table input (person_registry) РФ/мужчины/не на учете - Insert / update (total_registered.age) 2 2 - N - Get variables 2 2 Select values 2 2 Y - - Get variables 2 2 2 - Select values 2 2 2 - Y - - - Get variables 2 2 3 - Select values 2 2 3 - Y - - - Get variables 2 2 4 - Select values 2 2 4 - Y - - - Get variables 2 2 5 - Select values 2 2 5 - Y - - - Get variables 2 2 6 - Select values 2 2 6 - Y - Table input (person_registry) РФ/все/на учете Get variables 2 2 @@ -92,1284 +37,38 @@ Y - Table input (person_registry) РФ/мужчины/на учете - Get variables 2 2 2 - Y - - - Select values 2 2 2 - Insert / update (total_registered.age) 2 - Y - - - Table input (person_registry) РФ/женщины/на учете - Get variables 2 2 3 - Y - - - Select values 2 2 3 - Insert / update (total_registered.age) 3 - Y - - - Table input (person_registry) РФ/все/не на учете - Get variables 2 2 4 - Y - - - Select values 2 2 4 - Insert / update (total_registered.age) 4 - Y - - - Table input (person_registry) РФ/мужчины/не на учете - Get variables 2 2 5 - Y - - - Select values 2 2 5 - Insert / update (total_registered.age) 2 2 - Y - - - Table input (person_registry) РФ/женщины/не на учете - Get variables 2 2 6 - Y - - - Select values 2 2 6 - Insert / update (total_registered.age) 3 2 + Execute SQL script + Table input (person_registry) РФ/все/на учете Y - Insert / update (total_registered.age) - InsertUpdate + Execute SQL script + ExecSql - Y + N 1 none - 100 + + ervu-dashboard - - - = - recruitment_id - REG_ID - - - = - "all_M_W" - gender - - - = - registered - registered - - total_registered - age
- - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- Y - - - 1024 - 224 - -
- - Insert / update (total_registered.age) 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - = - "all_M_W" - gender - - - = - registered - registered - - total_registered - age
- - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- Y - - - 1024 - 320 - -
- - Insert / update (total_registered.age) 2 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - = - "all_M_W" - gender - - - = - registered - registered - - total_registered - age
- - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- Y - - - 1024 - 672 - -
- - Insert / update (total_registered.age) 3 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - = - "all_M_W" - gender - - - = - registered - registered - - total_registered - age
- - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- Y - - - 1024 - 416 - -
- - Insert / update (total_registered.age) 3 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - = - "all_M_W" - gender - - - = - registered - registered - - total_registered - age
- - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- Y - - - 1024 - 768 - -
- - Insert / update (total_registered.age) 4 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - = - "all_M_W" - gender - - - = - registered - registered - - total_registered - age
- - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- Y - - - 1024 - 576 - -
- - Table input (person_registry) РФ/все/на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry N - 0 - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -age_counts AS ( - SELECT - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) AS "17_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) AS "51+_year_count" - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "51+_year_percent", - - '${REG_ID}' as recruitment_id, - 'ALL' as gender, - 'true' as registered - -FROM age_counts, total_count; - Y + N + Y + N + N + DELETE FROM total_registered.age +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' - 400 - 224 - - - - Table input (person_registry) РФ/все/не на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -age_counts AS ( - SELECT - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) AS "17_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) AS "51+_year_count" - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "51+_year_percent", - - '${REG_ID}' as recruitment_id, - 'ALL' as gender, - 'false' as registered - -FROM age_counts, total_count; - Y - - - 400 - 576 - - - - Table input (person_registry) РФ/женщины/на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'FEMALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -age_counts AS ( - SELECT - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) AS "17_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) AS "51+_year_count" - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'FEMALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "51+_year_percent", - - '${REG_ID}' as recruitment_id, - 'W' as gender, - 'true' as registered - -FROM age_counts, total_count; - Y - - - 400 - 416 - - - - Table input (person_registry) РФ/женщины/не на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'FEMALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -age_counts AS ( - SELECT - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) AS "17_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) AS "51+_year_count" - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'FEMALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "51+_year_percent", - - '${REG_ID}' as recruitment_id, - 'W' as gender, - 'false' as registered - -FROM age_counts, total_count; - Y - - - 400 - 768 - - - - Table input (person_registry) РФ/мужчины/на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'MALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -age_counts AS ( - SELECT - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) AS "17_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) AS "51+_year_count" - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'MALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "51+_year_percent", - - '${REG_ID}' as recruitment_id, - 'M' as gender, - 'true' as registered - -FROM age_counts, total_count; - Y - - - 400 - 320 - - - - Table input (person_registry) РФ/мужчины/не на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'MALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -age_counts AS ( - SELECT - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) AS "17_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) AS "51+_year_count" - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'MALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "51+_year_percent", - - '${REG_ID}' as recruitment_id, - 'M' as gender, - 'false' as registered - -FROM age_counts, total_count; - Y - - - 400 - 672 + 848 + 560 @@ -1401,8 +100,167 @@ FROM age_counts, total_count;
- 608 - 256 + 1408 + 560 + + + + Insert / update (total_registered.age) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + REG_ID + + + = + "all_M_W" + gender + + + = + registered + registered + + + = + schema + schema + + + = + convicts + convicts + + total_registered + age
+ + "17_years" + 17_year_count + Y + + + "18-26_years" + 18-26_year_count + Y + + + "27-30_years" + 27-30_year_count + Y + + + "31-35_years" + 31-35_year_count + Y + + + "36-40_years" + 36-40_year_count + Y + + + "41-45_years" + 41-45_year_count + Y + + + "51+_years" + 41-45_year_count + Y + + + "all_M_W" + gender + N + + + "46-50_years" + 46-50_year_count + Y + + + "17_years_percent" + 17_year_percent + Y + + + "18-26_years_percent" + 18-26_year_percent + Y + + + "27-30_years_percent" + 27-30_year_percent + Y + + + "31-35_years_percent" + 31-35_year_percent + Y + + + "36-40_years_percent" + 36-40_year_percent + Y + + + "41-45_years_percent" + 41-45_year_percent + Y + + + "46-50_years_percent" + 46-50_year_percent + Y + + + "51+_years_percent" + 51+_year_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + schema + schema + N + + + convicts + convicts + N + + + total_count + total_count + Y + +
+ Y + + + 1904 + 560
@@ -1455,13 +313,13 @@ FROM age_counts, total_count; - 816 - 256 + 1616 + 560 - Get variables 2 2 2 - GetVariable + Table input (person_registry) РФ/все/на учете + TableInput Y @@ -1470,428 +328,100 @@ FROM age_counts, total_count; none - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - + ervu-dashboard + N + 0 + +SELECT + COALESCE(SUM(total_count), 0) total_count, + COALESCE(SUM("17_years"), 0) "17_year_count", + COALESCE(SUM("18-26_years"), 0) "18-26_year_count", + COALESCE(SUM("27-30_years"), 0) "27-30_year_count", + COALESCE(SUM("31-35_years"), 0) "31-35_year_count", + COALESCE(SUM("36-40_years"), 0) "36-40_year_count", + COALESCE(SUM("41-45_years"), 0) "41-45_year_count", + COALESCE(SUM("51+_years"), 0) "51+_year_count", + COALESCE(SUM("46-50_years"), 0) "46-50_year_count", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("17_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "17_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("18-26_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "18-26_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("27-30_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "27-30_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("31-35_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "31-35_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("36-40_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "36-40_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("41-45_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "41-45_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("46-50_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "46-50_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("51+_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "51+_year_percent", + + '${REG_ID}' AS recruitment_id, + registered, + "all_M_W" AS gender, + convicts, + 'Ministry' AS schema +FROM total_registered.age +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", registered, convicts; + Y - 608 - 368 - - - - Select values 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 368 - - - - Get variables 2 2 3 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 608 - 464 - - - - Select values 2 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 464 - - - - Get variables 2 2 4 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 608 - 624 - - - - Select values 2 2 4 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 624 - - - - Get variables 2 2 5 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 608 - 720 - - - - Select values 2 2 5 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 720 - - - - Get variables 2 2 6 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 608 - 800 - - - - Select values 2 2 6 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 800 + 1104 + 560 diff --git a/mappings/country/total_registered.busyness.hpl b/mappings/country/total_registered.busyness.hpl index 6f63ce8..34e09b5 100644 --- a/mappings/country/total_registered.busyness.hpl +++ b/mappings/country/total_registered.busyness.hpl @@ -21,66 +21,11 @@ - - Table input (person_registry) РФ/все/на учете - Insert / update (total_registered.busyness) - N - - - Table input (person_registry) РФ/мужчины/на учете - Insert / update (total_registered.busyness) 2 - N - - - Table input (person_registry) РФ/женщины/на учете - Insert / update (total_registered.busyness) 3 - N - - - Table input (person_registry) РФ/все/не на учете - Insert / update (total_registered.busyness) 4 - N - - - Table input (person_registry) РФ/женщины/не на учете - Insert / update (total_registered.busyness) 3 2 - N - - - Table input (person_registry) РФ/мужчины/не на учете - Insert / update (total_registered.busyness) 2 2 - N - Get variables 2 2 Select values 2 2 Y - - Get variables 2 2 2 - Select values 2 2 2 - Y - - - Get variables 2 2 3 - Select values 2 2 3 - Y - - - Get variables 2 2 4 - Select values 2 2 4 - Y - - - Get variables 2 2 5 - Select values 2 2 5 - Y - - - Get variables 2 2 6 - Select values 2 2 6 - Y - Table input (person_registry) РФ/все/на учете Get variables 2 2 @@ -92,1306 +37,38 @@ Y - Table input (person_registry) РФ/мужчины/на учете - Get variables 2 2 2 - Y - - - Select values 2 2 2 - Insert / update (total_registered.busyness) 2 - Y - - - Table input (person_registry) РФ/женщины/на учете - Get variables 2 2 3 - Y - - - Select values 2 2 3 - Insert / update (total_registered.busyness) 3 - Y - - - Table input (person_registry) РФ/все/не на учете - Get variables 2 2 4 - Y - - - Select values 2 2 4 - Insert / update (total_registered.busyness) 4 - Y - - - Table input (person_registry) РФ/мужчины/не на учете - Get variables 2 2 5 - Y - - - Select values 2 2 5 - Insert / update (total_registered.busyness) 2 2 - Y - - - Table input (person_registry) РФ/женщины/не на учете - Get variables 2 2 6 - Y - - - Select values 2 2 6 - Insert / update (total_registered.busyness) 3 2 + Execute SQL script + Table input (person_registry) РФ/все/на учете Y - Insert / update (total_registered.busyness) - InsertUpdate + Execute SQL script + ExecSql - Y + N 1 none - 100 + + ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - - = - registered - registered - - - total_registered - busyness
- - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - -
- Y - - - 1024 - 224 - -
- - Insert / update (total_registered.busyness) 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - - = - registered - registered - - - total_registered - busyness
- - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - -
- Y - - - 1024 - 320 - -
- - Insert / update (total_registered.busyness) 2 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - - = - registered - registered - - - total_registered - busyness
- - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - -
- Y - - - 1024 - 672 - -
- - Insert / update (total_registered.busyness) 3 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - - = - registered - registered - - - total_registered - busyness
- - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - -
- Y - - - 1024 - 416 - -
- - Insert / update (total_registered.busyness) 3 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - - = - registered - registered - - - total_registered - busyness
- - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - -
- Y - - - 1024 - 768 - -
- - Insert / update (total_registered.busyness) 4 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - - = - registered - registered - - - total_registered - busyness
- - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - -
- Y - - - 1024 - 576 - -
- - Table input (person_registry) РФ/все/на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry N - 0 - -- в json отсутствует инфа об обучении в школе - -WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, которые ни учатся, ни работают - -- COUNT(CASE WHEN NOT is_studying_in_vuz AND NOT is_studying_in_college AND NOT is_working THEN 1 END) AS not_work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS not_work, -- no_info по факту - - -- Общее количество людей - COUNT(*) AS total_people - FROM status_info -) -SELECT - 'ALL' as gender, - 'true' as registered, - '${REG_ID}' as recruitment_id, - study, - work, - not_work, - -- 0 as not_work_percent, - total_people, - - -- Процент людей, которые учатся - ROUND(study * 100.0 / NULLIF(total_people, 0), 2) AS study_percent, - - -- Процент людей, которые работают - ROUND(work * 100.0 / NULLIF(total_people, 0), 2) AS work_percent, - - -- Процент людей, которые ни учатся, ни работают - ROUND(not_work * 100.0 / NULLIF(total_people, 0), 2) AS not_work_percent -- убрать - - -- Процент людей, для которых отсутствуют сведения - -- ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) AS no_info_percent -FROM summary; - Y + N + Y + N + N + DELETE FROM total_registered.busyness +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' - 400 - 224 - - - - Table input (person_registry) РФ/все/не на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - -- в json отсутствует инфа об обучении в школе - -WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, которые ни учатся, ни работают - -- COUNT(CASE WHEN NOT is_studying_in_vuz AND NOT is_studying_in_college AND NOT is_working THEN 1 END) AS not_work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS not_work, -- no_info по факту - - -- Общее количество людей - COUNT(*) AS total_people - FROM status_info -) -SELECT - 'ALL' as gender, - 'false' as registered, - '${REG_ID}' as recruitment_id, - study, - work, - not_work, - -- 0 as not_work_percent, - total_people, - - -- Процент людей, которые учатся - ROUND(study * 100.0 / NULLIF(total_people, 0), 2) AS study_percent, - - -- Процент людей, которые работают - ROUND(work * 100.0 / NULLIF(total_people, 0), 2) AS work_percent, - - -- Процент людей, которые ни учатся, ни работают - ROUND(not_work * 100.0 / NULLIF(total_people, 0), 2) AS not_work_percent -- убрать - - -- Процент людей, для которых отсутствуют сведения - -- ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) AS no_info_percent -FROM summary; - Y - - - 400 - 576 - - - - Table input (person_registry) РФ/женщины/на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - -- в json отсутствует инфа об обучении в школе - -WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - AND gender = 'FEMALE' -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, которые ни учатся, ни работают - -- COUNT(CASE WHEN NOT is_studying_in_vuz AND NOT is_studying_in_college AND NOT is_working THEN 1 END) AS not_work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS not_work, -- no_info по факту - - -- Общее количество людей - COUNT(*) AS total_people - FROM status_info -) -SELECT - 'W' as gender, - 'true' as registered, - '${REG_ID}' as recruitment_id, - study, - work, - not_work, - -- 0 as not_work_percent, - total_people, - - -- Процент людей, которые учатся - ROUND(study * 100.0 / NULLIF(total_people, 0), 2) AS study_percent, - - -- Процент людей, которые работают - ROUND(work * 100.0 / NULLIF(total_people, 0), 2) AS work_percent, - - -- Процент людей, которые ни учатся, ни работают - ROUND(not_work * 100.0 / NULLIF(total_people, 0), 2) AS not_work_percent -- убрать - - -- Процент людей, для которых отсутствуют сведения - -- ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) AS no_info_percent -FROM summary; - Y - - - 400 - 416 - - - - Table input (person_registry) РФ/женщины/не на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - -- в json отсутствует инфа об обучении в школе - -WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - AND gender = 'FEMALE' -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, которые ни учатся, ни работают - -- COUNT(CASE WHEN NOT is_studying_in_vuz AND NOT is_studying_in_college AND NOT is_working THEN 1 END) AS not_work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS not_work, -- no_info по факту - - -- Общее количество людей - COUNT(*) AS total_people - FROM status_info -) -SELECT - 'W' as gender, - 'false' as registered, - '${REG_ID}' as recruitment_id, - study, - work, - not_work, - -- 0 as not_work_percent, - total_people, - - -- Процент людей, которые учатся - ROUND(study * 100.0 / NULLIF(total_people, 0), 2) AS study_percent, - - -- Процент людей, которые работают - ROUND(work * 100.0 / NULLIF(total_people, 0), 2) AS work_percent, - - -- Процент людей, которые ни учатся, ни работают - ROUND(not_work * 100.0 / NULLIF(total_people, 0), 2) AS not_work_percent -- убрать - - -- Процент людей, для которых отсутствуют сведения - -- ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) AS no_info_percent -FROM summary; - Y - - - 400 - 768 - - - - Table input (person_registry) РФ/мужчины/на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - -- в json отсутствует инфа об обучении в школе - -WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - AND gender = 'MALE' -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, которые ни учатся, ни работают - -- COUNT(CASE WHEN NOT is_studying_in_vuz AND NOT is_studying_in_college AND NOT is_working THEN 1 END) AS not_work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS not_work, -- no_info по факту - - -- Общее количество людей - COUNT(*) AS total_people - FROM status_info -) -SELECT - 'M' as gender, - 'true' as registered, - '${REG_ID}' as recruitment_id, - study, - work, - not_work, - -- 0 as not_work_percent, - total_people, - - -- Процент людей, которые учатся - ROUND(study * 100.0 / NULLIF(total_people, 0), 2) AS study_percent, - - -- Процент людей, которые работают - ROUND(work * 100.0 / NULLIF(total_people, 0), 2) AS work_percent, - - -- Процент людей, которые ни учатся, ни работают - ROUND(not_work * 100.0 / NULLIF(total_people, 0), 2) AS not_work_percent -- убрать - - -- Процент людей, для которых отсутствуют сведения - -- ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) AS no_info_percent -FROM summary; - Y - - - 400 - 320 - - - - Table input (person_registry) РФ/мужчины/не на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - -- в json отсутствует инфа об обучении в школе - -WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - AND gender = 'MALE' -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, которые ни учатся, ни работают - -- COUNT(CASE WHEN NOT is_studying_in_vuz AND NOT is_studying_in_college AND NOT is_working THEN 1 END) AS not_work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS not_work, -- no_info по факту - - -- Общее количество людей - COUNT(*) AS total_people - FROM status_info -) -SELECT - 'M' as gender, - 'false' as registered, - '${REG_ID}' as recruitment_id, - study, - work, - not_work, - -- 0 as not_work_percent, - total_people, - - -- Процент людей, которые учатся - ROUND(study * 100.0 / NULLIF(total_people, 0), 2) AS study_percent, - - -- Процент людей, которые работают - ROUND(work * 100.0 / NULLIF(total_people, 0), 2) AS work_percent, - - -- Процент людей, которые ни учатся, ни работают - ROUND(not_work * 100.0 / NULLIF(total_people, 0), 2) AS not_work_percent -- убрать - - -- Процент людей, для которых отсутствуют сведения - -- ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) AS no_info_percent -FROM summary; - Y - - - 400 - 672 + 112 + 480 @@ -1423,8 +100,117 @@ FROM summary; - 608 - 272 + 736 + 480 + + + + Insert / update (total_registered.busyness) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + REG_ID + + + = + "all_M_W" + gender + + + = + registered + registered + + + = + schema + schema + + + = + convicts + convicts + + total_registered + busyness
+ + study + study + Y + + + work + work + Y + + + study_percent + study_percent + Y + + + work_percent + work_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + "all_M_W" + gender + N + + + not_work + no_info + Y + + + not_work_percent + no_info_percent + Y + + + busyness + total_people + Y + + + schema + schema + N + + + convicts + convicts + N + +
+ Y + + + 1200 + 480
@@ -1477,13 +263,13 @@ FROM summary; - 816 - 272 + 944 + 480 - Get variables 2 2 2 - GetVariable + Table input (person_registry) РФ/все/на учете + TableInput Y @@ -1492,428 +278,55 @@ FROM summary; none - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(study), 0) study, + COALESCE(SUM(work), 0) work, + COALESCE( + CASE + WHEN SUM(busyness) > 0 + THEN ROUND((SUM(study) / SUM(busyness) * 100), 2) + ELSE 0 + END, + 0 + ) study_percent, + COALESCE( + CASE + WHEN SUM(busyness) > 0 + THEN ROUND((SUM(work) / SUM(busyness) * 100), 2) + ELSE 0 + END, + 0 + ) work_percent, + + COALESCE(SUM(not_work), 0) no_info, + COALESCE( + CASE + WHEN SUM(busyness) > 0 + THEN ROUND((SUM(not_work) / SUM(busyness) * 100), 2) + ELSE 0 + END, + 0 + ) no_info_percent, + + COALESCE(SUM(busyness), 0) total_people, + '${REG_ID}' AS recruitment_id, + "all_M_W" AS gender, + registered, + convicts, + 'Ministry' AS schema +FROM total_registered.busyness +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", registered, convicts; + Y - 608 - 352 - - - - Select values 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 352 - - - - Get variables 2 2 3 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 608 - 448 - - - - Select values 2 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 448 - - - - Get variables 2 2 4 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 624 - 608 - - - - Select values 2 2 4 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 832 - 608 - - - - Get variables 2 2 5 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 624 - 720 - - - - Select values 2 2 5 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 832 - 720 - - - - Get variables 2 2 6 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 624 - 816 - - - - Select values 2 2 6 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 832 - 816 + 448 + 480 diff --git a/mappings/country/total_registered.child_minor.hpl b/mappings/country/total_registered.child_minor.hpl index d732e5a..4a42e43 100644 --- a/mappings/country/total_registered.child_minor.hpl +++ b/mappings/country/total_registered.child_minor.hpl @@ -21,36 +21,11 @@ - - Table input (person_registry)РФ/женщины - Insert / update (total_registered.child_minor) 3 - N - - - Table input (person_registry)РФ/мужчины - Insert / update (total_registered.child_minor) 2 - N - - - Table input (person_registry)РФ/все - Insert / update (total_registered.child_minor) - N - Get variables 2 2 Select values 2 2 Y - - Get variables 2 2 2 - Select values 2 2 2 - Y - - - Get variables 2 2 3 - Select values 2 2 3 - Y - Table input (person_registry)РФ/все Get variables 2 2 @@ -62,594 +37,38 @@ Y - Table input (person_registry)РФ/мужчины - Get variables 2 2 2 - Y - - - Select values 2 2 2 - Insert / update (total_registered.child_minor) 2 - Y - - - Table input (person_registry)РФ/женщины - Get variables 2 2 3 - Y - - - Select values 2 2 3 - Insert / update (total_registered.child_minor) 3 + Execute SQL script + Table input (person_registry)РФ/все Y - Insert / update (total_registered.child_minor) - InsertUpdate + Execute SQL script + ExecSql - Y + N 1 none - 100 + + ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - total_registered - child_minor
- - no_child - no_children - Y - - - "1_child" - one_child - Y - - - "2_child" - two_children - Y - - - "3_child" - three_children - Y - - - "4_more_child" - four_or_more_children - Y - - - "all_M_W" - gender - N - - - no_child_percent - no_children_percent - Y - - - "1_child_percent" - one_child_percent - Y - - - "2_child_percent" - two_children_percent - Y - - - "3_child_percent" - three_children_percent - Y - - - "4_more_child_percent" - four_or_more_children_percent - Y - - - recruitment_id - recruitment_id - N - -
- N - - - 992 - 240 - -
- - Insert / update (total_registered.child_minor) 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - total_registered - child_minor
- - no_child - no_children - Y - - - "1_child" - one_child - Y - - - "2_child" - two_children - Y - - - "3_child" - three_children - Y - - - "4_more_child" - four_or_more_children - Y - - - "all_M_W" - gender - N - - - no_child_percent - no_children_percent - Y - - - "1_child_percent" - one_child_percent - Y - - - "2_child_percent" - two_children_percent - Y - - - "3_child_percent" - three_children_percent - Y - - - "4_more_child_percent" - four_or_more_children_percent - Y - - - recruitment_id - recruitment_id - N - -
- N - - - 992 - 336 - -
- - Insert / update (total_registered.child_minor) 3 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - total_registered - child_minor
- - no_child - no_children - Y - - - "1_child" - one_child - Y - - - "2_child" - two_children - Y - - - "3_child" - three_children - Y - - - "4_more_child" - four_or_more_children - Y - - - "all_M_W" - gender - N - - - no_child_percent - no_children_percent - Y - - - "1_child_percent" - one_child_percent - Y - - - "2_child_percent" - two_children_percent - Y - - - "3_child_percent" - three_children_percent - Y - - - "4_more_child_percent" - four_or_more_children_percent - Y - - - recruitment_id - recruitment_id - N - -
- N - - - 992 - 448 - -
- - Table input (person_registry)РФ/все - TableInput - - Y - - 1 - - none - - - ervu_person_registry N - 0 - WITH extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_18 - FROM - children_birth_dates - WHERE - AGE(make_date(year, month, day)) < interval '18 years' - GROUP BY - recruit_id -), -final_counts AS ( - SELECT - COALESCE(children_under_18, 0) AS children_count, - COUNT(*) AS num_people - FROM - public.recruits_info ri - LEFT JOIN - children_count cc ON ri.recruit_id = cc.recruit_id - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - GROUP BY - COALESCE(children_under_18, 0) -), -total_people AS ( - SELECT SUM(num_people) AS total_count - FROM final_counts -) -SELECT - 'ALL' AS gender, - '${REG_ID}' as recruitment_id, - COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) AS no_children, - COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) AS one_child, - COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) AS two_children, - COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) AS three_children, - COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) AS four_or_more_children, - ROUND(COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) AS no_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) AS one_child_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) AS two_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) AS three_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) AS four_or_more_children_percent -FROM - final_counts; - Y + N + Y + N + N + DELETE FROM total_registered.child_minor +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' - 352 - 240 - - - - Table input (person_registry)РФ/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_18 - FROM - children_birth_dates - WHERE - make_date(year, month, day) > CURRENT_DATE - INTERVAL '18 years' - GROUP BY - recruit_id -), -final_counts AS ( - SELECT - COALESCE(children_under_18, 0) AS children_count, - COUNT(*) AS num_people - FROM - public.recruits_info ri - LEFT JOIN - children_count cc ON ri.recruit_id = cc.recruit_id - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' - GROUP BY - COALESCE(children_under_18, 0) -), -total_men AS ( - SELECT - COUNT(*) AS total_men_count - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' -) -SELECT - 'W' AS gender, - '${REG_ID}' AS recruitment_id, - COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) AS no_children, - COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) AS one_child, - COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) AS two_children, - COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) AS three_children, - COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) AS four_or_more_children, - ROUND(COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS no_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS one_child_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS two_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS three_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS four_or_more_children_percent -FROM - final_counts; - Y - - - 352 - 448 - - - - Table input (person_registry)РФ/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'MALE' -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_18 - FROM - children_birth_dates - WHERE - make_date(year, month, day) > CURRENT_DATE - INTERVAL '18 years' - GROUP BY - recruit_id -), -final_counts AS ( - SELECT - COALESCE(children_under_18, 0) AS children_count, - COUNT(*) AS num_people - FROM - public.recruits_info ri - LEFT JOIN - children_count cc ON ri.recruit_id = cc.recruit_id - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'MALE' - GROUP BY - COALESCE(children_under_18, 0) -), -total_men AS ( - SELECT - COUNT(*) AS total_men_count - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'MALE' -) -SELECT - 'M' AS gender, - '${REG_ID}' AS recruitment_id, - COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) AS no_children, - COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) AS one_child, - COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) AS two_children, - COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) AS three_children, - COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) AS four_or_more_children, - ROUND(COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS no_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS one_child_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS two_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS three_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS four_or_more_children_percent -FROM - final_counts; - Y - - - 352 - 336 + 480 + 352 @@ -681,8 +100,127 @@ FROM - 560 - 272 + 992 + 352 + + + + Insert / update (total_registered.child_minor) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + REG_ID + + + = + "all_M_W" + gender + + + = + schema + schema + + + = + convicts + convicts + + total_registered + child_minor
+ + no_child + no_children + Y + + + "1_child" + one_child + Y + + + "2_child" + two_children + Y + + + "3_child" + three_children + Y + + + "4_more_child" + four_or_more_children + Y + + + "all_M_W" + gender + N + + + no_child_percent + no_children_percent + Y + + + "1_child_percent" + one_child_percent + Y + + + "2_child_percent" + two_children_percent + Y + + + "3_child_percent" + three_children_percent + Y + + + "4_more_child_percent" + four_or_more_children_percent + Y + + + recruitment_id + recruitment_id + N + + + schema + schema + N + + + convicts + convicts + N + + + total_count + total_count + Y + +
+ N + + + 1488 + 352
@@ -735,13 +273,13 @@ FROM - 768 - 272 + 1200 + 352 - Get variables 2 2 2 - GetVariable + Table input (person_registry)РФ/все + TableInput Y @@ -750,167 +288,70 @@ FROM none - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 560 - 368 - - - - Select values 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(total_count), 0) total_count, + COALESCE(SUM(no_child), 0) no_children, + COALESCE(SUM("1_child"), 0) one_child, + COALESCE(SUM("2_child"), 0) two_children, + COALESCE(SUM("3_child"), 0) three_children, + COALESCE(SUM("4_more_child"), 0) four_or_more_children, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM(no_child) / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) no_children_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("1_child") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) one_child_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("2_child") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) two_children_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("3_child") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) three_children_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("4_more_child") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) four_or_more_children_percent, + '${REG_ID}' AS recruitment_id, + "all_M_W" AS gender, + convicts, + 'Ministry' AS schema +FROM total_registered.child_minor +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", convicts; + Y 768 - 368 - - - - Get variables 2 2 3 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 560 - 496 - - - - Select values 2 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 768 - 496 + 352 diff --git a/mappings/country/total_registered.driver_license.hpl b/mappings/country/total_registered.driver_license.hpl index af361cc..9bd5d4e 100644 --- a/mappings/country/total_registered.driver_license.hpl +++ b/mappings/country/total_registered.driver_license.hpl @@ -21,36 +21,11 @@ - - Table input (person_registry) РФ/женщины - Insert / update (total_registered.driver_license) 2 2 2 - N - - - Table input (person_registry) РФ/мужчины - Insert / update (total_registered.driver_license) 2 2 - N - - - Table input (person_registry) РФ/все - Insert / update (total_registered.driver_license) 2 - N - Get variables 2 2 Select values 2 2 Y - - Get variables 2 2 2 - Select values 2 2 2 - Y - - - Get variables 2 2 3 - Select values 2 2 3 - Y - Table input (person_registry) РФ/все Get variables 2 2 @@ -62,529 +37,40 @@ Y - Table input (person_registry) РФ/мужчины - Get variables 2 2 2 - Y - - - Select values 2 2 2 - Insert / update (total_registered.driver_license) 2 2 - Y - - - Table input (person_registry) РФ/женщины - Get variables 2 2 3 - Y - - - Select values 2 2 3 - Insert / update (total_registered.driver_license) 2 2 2 + Execute SQL script + Table input (person_registry) РФ/все Y - Insert / update (total_registered.driver_license) 2 - InsertUpdate + Execute SQL script + ExecSql - Y + N 1 none - 100 + + ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - total_registered - driver_license
- - "A" - a - Y - - - "B" - b - Y - - - "C" - c - Y - - - "D" - d - Y - - - "E" - e - Y - - - nope - nope - Y - - - "A_repcent" - a_percent - Y - - - "B_repcent" - b_percent - Y - - - "C_repcent" - c_percent - Y - - - "D_repcent" - d_percent - Y - - - "E_repcent" - e_percent - Y - - - "all_M_W" - gender - N - - - nope_repcent - nope_percent - Y - - - recruitment_id - recruitment_id - N - -
- Y + N + N + Y + N + N + DELETE FROM total_registered.driver_license +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' - 1104 - 128 - -
- - Insert / update (total_registered.driver_license) 2 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - total_registered - driver_license
- - "A" - a - Y - - - "B" - b - Y - - - "C" - c - Y - - - "D" - d - Y - - - "E" - e - Y - - - nope - nope - Y - - - "A_repcent" - a_percent - Y - - - "B_repcent" - b_percent - Y - - - "C_repcent" - c_percent - Y - - - "D_repcent" - d_percent - Y - - - "E_repcent" - e_percent - Y - - - nope_repcent - nope_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - -
- Y - - - 1104 - 256 - -
- - Insert / update (total_registered.driver_license) 2 2 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - total_registered - driver_license
- - "A" - a - Y - - - "B" - b - Y - - - "C" - c - Y - - - "D" - d - Y - - - "E" - e - Y - - - nope - nope - Y - - - "A_repcent" - a_percent - Y - - - "B_repcent" - b_percent - Y - - - "C_repcent" - c_percent - Y - - - "D_repcent" - d_percent - Y - - - "E_repcent" - e_percent - Y - - - nope_repcent - nope_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - -
- Y - - - 1104 + 608 400
- - Table input (person_registry) РФ/все - TableInput - - Y - - 1 - - none - - - postgres.person_registry - N - 0 - WITH categorized AS ( - SELECT - r.id, - r.gender, - -- Проверяем наличие хотя бы одной категории, используем DISTINCT для уникальных рекрутов - 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 - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - GROUP BY r.id, r.gender -), -aggregated AS ( - SELECT - 'ALL' AS gender, - '${REG_ID}' AS recruitment_id, - -- Считаем количество уникальных рекрутов с каждой категорией - COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, - COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, - COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, - COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, - COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, - COUNT(DISTINCT r.id) FILTER (WHERE has_A = 0 AND has_B = 0 AND has_C = 0 AND has_D = 0 AND has_E = 0) AS nope, - COUNT(DISTINCT r.id) AS total - FROM categorized r -) -SELECT *, - ROUND((a * 100.0) / NULLIF(total, 0), 2) AS a_percent, - ROUND((b * 100.0) / NULLIF(total, 0), 2) AS b_percent, - ROUND((c * 100.0) / NULLIF(total, 0), 2) AS c_percent, - ROUND((d * 100.0) / NULLIF(total, 0), 2) AS d_percent, - ROUND((e * 100.0) / NULLIF(total, 0), 2) AS e_percent, - ROUND((nope * 100.0) / NULLIF(total, 0), 2) AS nope_percent -FROM aggregated; - Y - - - 480 - 128 - - - - Table input (person_registry) РФ/женщины - TableInput - - Y - - 1 - - none - - - postgres.person_registry - N - 0 - WITH categorized AS ( - SELECT - r.id, - r.gender, - -- Проверяем наличие хотя бы одной категории, используем DISTINCT для уникальных рекрутов - 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 - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' - GROUP BY r.id, r.gender -), -aggregated AS ( - SELECT - 'W' AS gender, - '${REG_ID}' as recruitment_id, - -- Считаем количество уникальных рекрутов с каждой категорией - COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, - COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, - COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, - COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, - COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, - COUNT(DISTINCT r.id) FILTER (WHERE has_A = 0 AND has_B = 0 AND has_C = 0 AND has_D = 0 AND has_E = 0) AS nope, - COUNT(DISTINCT r.id) AS total - FROM categorized r -) -SELECT *, - ROUND((a * 100.0) / NULLIF(total, 0), 2) AS a_percent, - ROUND((b * 100.0) / NULLIF(total, 0), 2) AS b_percent, - ROUND((c * 100.0) / NULLIF(total, 0), 2) AS c_percent, - ROUND((d * 100.0) / NULLIF(total, 0), 2) AS d_percent, - ROUND((e * 100.0) / NULLIF(total, 0), 2) AS e_percent, - ROUND((nope * 100.0) / NULLIF(total, 0), 2) AS nope_percent -FROM aggregated; - Y - - - 480 - 400 - - - - Table input (person_registry) РФ/мужчины - TableInput - - Y - - 1 - - none - - - postgres.person_registry - N - 0 - WITH categorized AS ( - SELECT - r.id, - r.gender, - -- Проверяем наличие хотя бы одной категории, используем DISTINCT для уникальных рекрутов - 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 - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'MALE' - GROUP BY r.id, r.gender -), -aggregated AS ( - SELECT - 'M' AS gender, - '${REG_ID}' as recruitment_id, - -- Считаем количество уникальных рекрутов с каждой категорией - COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, - COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, - COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, - COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, - COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, - COUNT(DISTINCT r.id) FILTER (WHERE has_A = 0 AND has_B = 0 AND has_C = 0 AND has_D = 0 AND has_E = 0) AS nope, - COUNT(DISTINCT r.id) AS total - FROM categorized r -) -SELECT *, - ROUND((a * 100.0) / NULLIF(total, 0), 2) AS a_percent, - ROUND((b * 100.0) / NULLIF(total, 0), 2) AS b_percent, - ROUND((c * 100.0) / NULLIF(total, 0), 2) AS c_percent, - ROUND((d * 100.0) / NULLIF(total, 0), 2) AS d_percent, - ROUND((e * 100.0) / NULLIF(total, 0), 2) AS e_percent, - ROUND((nope * 100.0) / NULLIF(total, 0), 2) AS nope_percent -FROM aggregated; - Y - - - 480 - 256 - - Get variables 2 2 GetVariable @@ -614,8 +100,137 @@ FROM aggregated; - 688 - 192 + 1104 + 400 + + + + Insert / update (total_registered.driver_license) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + REG_ID + + + = + "all_M_W" + gender + + + = + schema + schema + + + = + convicts + convicts + + total_registered + driver_license
+ + "A" + a + Y + + + "B" + b + Y + + + "C" + c + Y + + + "D" + d + Y + + + "E" + e + Y + + + nope + nope + Y + + + "A_repcent" + a_percent + Y + + + "B_repcent" + b_percent + Y + + + "C_repcent" + c_percent + Y + + + "D_repcent" + d_percent + Y + + + "E_repcent" + e_percent + Y + + + "all_M_W" + gender + N + + + nope_repcent + nope_percent + Y + + + recruitment_id + recruitment_id + N + + + schema + schema + N + + + convicts + convicts + N + + + total_count + total + Y + +
+ Y + + + 1584 + 400
@@ -668,13 +283,13 @@ FROM aggregated; - 896 - 192 + 1312 + 400 - Get variables 2 2 2 - GetVariable + Table input (person_registry) РФ/все + TableInput Y @@ -683,167 +298,79 @@ FROM aggregated; none - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(total_count), 0) total, + COALESCE(SUM("A"), 0) a, + COALESCE(SUM("B"), 0) b, + COALESCE(SUM("C"), 0) c, + COALESCE(SUM("D"), 0) d, + COALESCE(SUM("E"), 0) e, + COALESCE(SUM(nope), 0) nope, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("A") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) a_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("B") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) b_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("C") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) c_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("D") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) d_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("E") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) e_percent, -- нет такой категории + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM(nope) / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) nope_percent, + '${REG_ID}' AS recruitment_id, + "all_M_W" AS gender, + convicts, + 'Ministry' AS schema +FROM total_registered.driver_license +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", convicts; + Y - 688 - 304 - - - - Select values 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 896 - 304 - - - - Get variables 2 2 3 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 688 - 464 - - - - Select values 2 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 896 - 464 + 864 + 400 diff --git a/mappings/country/total_registered.education_level.hpl b/mappings/country/total_registered.education_level.hpl index e4c05af..1b075c5 100644 --- a/mappings/country/total_registered.education_level.hpl +++ b/mappings/country/total_registered.education_level.hpl @@ -21,36 +21,11 @@ - - Table input (person_registry) РФ/все - Insert / update (total_registered.education_level) - N - - - Table input (person_registry) РФ/мужчины - Insert / update (total_registered.education_level) 2 - N - - - Table input (person_registry) РФ/женщины - Insert / update (total_registered.education_level) 3 - N - Get variables 2 2 Select values 2 2 Y - - Get variables 2 2 2 - Select values 2 2 2 - Y - - - Get variables 2 2 3 - Select values 2 2 3 - Y - Table input (person_registry) РФ/все Get variables 2 2 @@ -62,675 +37,37 @@ Y - Table input (person_registry) РФ/мужчины - Get variables 2 2 2 - Y - - - Select values 2 2 2 - Insert / update (total_registered.education_level) 2 - Y - - - Table input (person_registry) РФ/женщины - Get variables 2 2 3 - Y - - - Select values 2 2 3 - Insert / update (total_registered.education_level) 3 + Execute SQL script + Table input (person_registry) РФ/все Y - Insert / update (total_registered.education_level) - InsertUpdate + Execute SQL script + ExecSql - Y + N 1 none - 100 + + ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - total_registered - education_level
- - higher - higher - Y - - - average - average_prof - Y - - - "all_M_W" - gender - N - - - only_general - only_general - Y - - - no_data - count_nodata - Y - - - higher_percent - higher_percentage - Y - - - average_percent - average_prof_percentage - Y - - - only_general_percent - only_general_percentage - Y - - - no_data_percent - count_nodata_percentage - Y - - - recruitment_id - recruitment_id - N - - - education_level - total - Y - -
- Y - - - 1024 - 224 - -
- - Insert / update (total_registered.education_level) 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - total_registered - education_level
- - higher - higher - Y - - - average - average_prof - Y - - - "all_M_W" - gender - N - - - only_general - only_general - Y - - - no_data - count_nodata - Y - - - higher_percent - higher_percentage - Y - - - average_percent - average_prof_percentage - Y - - - only_general_percent - only_general_percentage - Y - - - no_data_percent - count_nodata_percentage - Y - - - recruitment_id - recruitment_id - N - - - education_level - total - Y - -
- Y - - - 1024 - 320 - -
- - Insert / update (total_registered.education_level) 3 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - total_registered - education_level
- - higher - higher - Y - - - average - average_prof - Y - - - "all_M_W" - gender - N - - - only_general - only_general - Y - - - no_data - count_nodata - Y - - - higher_percent - higher_percentage - Y - - - average_percent - average_prof_percentage - Y - - - only_general_percent - only_general_percentage - Y - - - no_data_percent - count_nodata_percentage - Y - - - recruitment_id - recruitment_id - N - - - education_level - total - Y - -
- Y - - - 1024 - 416 - -
- - Table input (person_registry) РФ/все - TableInput - - Y - - 1 - - none - - - ervu_person_registry N - 0 - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL -), -education_status AS ( - SELECT - ri.id, - - -- Высшее образование (российское или иностранное) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - ) - ) AS has_higher, - - -- Среднее профессиональное образование (если нет высшего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' = '10' - ) - ) AS has_average_prof, - - -- Общее образование (если нет высшего и среднего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('7', '9') - ) - ) AS has_only_general, - - -- Нет данных об образовании (российское или иностранное) - ( - NOT ( - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - ) - ) - ) AND ( - ri.info->'svedRObr'->>'prOtsRObr' = '1' - OR ri.info->'svedInObr'->>'prOtsInObr' = '1' - ) - ) AS has_no_data - - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL -), -final_counts AS ( - SELECT - COUNT(DISTINCT CASE WHEN has_higher THEN id END) AS higher, - COUNT(DISTINCT CASE WHEN NOT has_higher AND has_average_prof THEN id END) AS average_prof, - COUNT(DISTINCT CASE WHEN NOT has_higher AND NOT has_average_prof AND has_only_general THEN id END) AS only_general, - COUNT(DISTINCT CASE WHEN has_no_data THEN id END) AS count_nodata - FROM education_status -) -SELECT - 'ALL' AS gender, - '${REG_ID}' AS recruitment_id, - higher, - average_prof, - only_general, - count_nodata, - total_count.total, - ROUND(higher * 100.0 / NULLIF(total_count.total, 0), 2) AS higher_percentage, - ROUND(average_prof * 100.0 / NULLIF(total_count.total, 0), 2) AS average_prof_percentage, - ROUND(only_general * 100.0 / NULLIF(total_count.total, 0), 2) AS only_general_percentage, - ROUND(count_nodata * 100.0 / NULLIF(total_count.total, 0), 2) AS count_nodata_percentage -FROM final_counts, total_count; - Y + N + Y + N + N + DELETE FROM total_registered.education_level +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' - 400 - 224 - - - - Table input (person_registry) РФ/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' -), -education_status AS ( - SELECT - ri.id, - - -- Высшее образование (российское или иностранное) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - ) - ) AS has_higher, - - -- Среднее профессиональное образование (если нет высшего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' = '10' - ) - ) AS has_average_prof, - - -- Общее образование (если нет высшего и среднего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('7', '9') - ) - ) AS has_only_general, - - -- Нет данных об образовании (российское или иностранное) - ( - NOT ( - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - ) - ) - ) AND ( - ri.info->'svedRObr'->>'prOtsRObr' = '1' - OR ri.info->'svedInObr'->>'prOtsInObr' = '1' - ) - ) AS has_no_data - - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' -), -final_counts AS ( - SELECT - COUNT(DISTINCT CASE WHEN has_higher THEN id END) AS higher, - COUNT(DISTINCT CASE WHEN NOT has_higher AND has_average_prof THEN id END) AS average_prof, - COUNT(DISTINCT CASE WHEN NOT has_higher AND NOT has_average_prof AND has_only_general THEN id END) AS only_general, - COUNT(DISTINCT CASE WHEN has_no_data THEN id END) AS count_nodata - FROM education_status -) -SELECT - 'W' AS gender, - '${REG_ID}' AS recruitment_id, - higher, - average_prof, - only_general, - count_nodata, - total_count.total, - ROUND(higher * 100.0 / NULLIF(total_count.total, 0), 2) AS higher_percentage, - ROUND(average_prof * 100.0 / NULLIF(total_count.total, 0), 2) AS average_prof_percentage, - ROUND(only_general * 100.0 / NULLIF(total_count.total, 0), 2) AS only_general_percentage, - ROUND(count_nodata * 100.0 / NULLIF(total_count.total, 0), 2) AS count_nodata_percentage -FROM final_counts, total_count; - Y - - - 400 - 416 - - - - Table input (person_registry) РФ/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'MALE' -), -education_status AS ( - SELECT - ri.id, - - -- Высшее образование (российское или иностранное) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - ) - ) AS has_higher, - - -- Среднее профессиональное образование (если нет высшего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' = '10' - ) - ) AS has_average_prof, - - -- Общее образование (если нет высшего и среднего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('7', '9') - ) - ) AS has_only_general, - - -- Нет данных об образовании (российское или иностранное) - ( - NOT ( - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - ) - ) - ) AND ( - ri.info->'svedRObr'->>'prOtsRObr' = '1' - OR ri.info->'svedInObr'->>'prOtsInObr' = '1' - ) - ) AS has_no_data - - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'MALE' -), -final_counts AS ( - SELECT - COUNT(DISTINCT CASE WHEN has_higher THEN id END) AS higher, - COUNT(DISTINCT CASE WHEN NOT has_higher AND has_average_prof THEN id END) AS average_prof, - COUNT(DISTINCT CASE WHEN NOT has_higher AND NOT has_average_prof AND has_only_general THEN id END) AS only_general, - COUNT(DISTINCT CASE WHEN has_no_data THEN id END) AS count_nodata - FROM education_status -) -SELECT - 'M' AS gender, - '${REG_ID}' AS recruitment_id, - higher, - average_prof, - only_general, - count_nodata, - total_count.total, - ROUND(higher * 100.0 / NULLIF(total_count.total, 0), 2) AS higher_percentage, - ROUND(average_prof * 100.0 / NULLIF(total_count.total, 0), 2) AS average_prof_percentage, - ROUND(only_general * 100.0 / NULLIF(total_count.total, 0), 2) AS only_general_percentage, - ROUND(count_nodata * 100.0 / NULLIF(total_count.total, 0), 2) AS count_nodata_percentage -FROM final_counts, total_count; - Y - - - 400 + 176 320 @@ -763,8 +100,117 @@ FROM final_counts, total_count; - 592 - 256 + 656 + 320 + + + + Insert / update (total_registered.education_level) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + REG_ID + + + = + "all_M_W" + gender + + + = + schema + schema + + + = + convicts + convicts + + total_registered + education_level
+ + higher + higher + Y + + + average + average_prof + Y + + + "all_M_W" + gender + N + + + only_general + only_general + Y + + + no_data + count_nodata + Y + + + higher_percent + higher_percentage + Y + + + average_percent + average_prof_percentage + Y + + + only_general_percent + only_general_percentage + Y + + + no_data_percent + count_nodata_percentage + Y + + + recruitment_id + recruitment_id + N + + + education_level + total + Y + + + schema + schema + N + + + convicts + convicts + N + +
+ Y + + + 1136 + 320
@@ -817,13 +263,13 @@ FROM final_counts, total_count; - 800 - 256 + 864 + 320 - Get variables 2 2 2 - GetVariable + Table input (person_registry) РФ/все + TableInput Y @@ -832,167 +278,62 @@ FROM final_counts, total_count; none - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(higher), 0) higher, + COALESCE(SUM(average), 0) average_prof, + COALESCE(SUM(only_general), 0) only_general, + COALESCE(SUM(no_data), 0) count_nodata, + COALESCE( + CASE + WHEN SUM(education_level) > 0 + THEN ROUND((SUM(higher) / SUM(education_level) * 100), 2) + ELSE 0 + END, + 0 + ) higher_percentage, + COALESCE( + CASE + WHEN SUM(education_level) > 0 + THEN ROUND((SUM(average) / SUM(education_level) * 100), 2) + ELSE 0 + END, + 0 + ) average_prof_percentage, + COALESCE( + CASE + WHEN SUM(education_level) > 0 + THEN ROUND((SUM(only_general) / SUM(education_level) * 100), 2) + ELSE 0 + END, + 0 + ) only_general_percentage, + COALESCE( + CASE + WHEN SUM(education_level) > 0 + THEN ROUND((SUM(no_data) / SUM(education_level) * 100), 2) + ELSE 0 + END, + 0 + ) count_nodata_percentage, + + COALESCE(SUM(education_level), 0) total, + '${REG_ID}' AS recruitment_id, + "all_M_W" AS gender, + convicts, + 'Ministry' AS schema +FROM total_registered.education_level +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", convicts; + Y - 592 - 352 - - - - Select values 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 800 - 352 - - - - Get variables 2 2 3 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 592 - 448 - - - - Select values 2 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 800 - 448 + 432 + 320 diff --git a/mappings/country/total_registered.marital_status.hpl b/mappings/country/total_registered.marital_status.hpl index 822f827..23e99f5 100644 --- a/mappings/country/total_registered.marital_status.hpl +++ b/mappings/country/total_registered.marital_status.hpl @@ -21,36 +21,11 @@ - - Table input (person_registry) РФ/все - Insert / update (total_registered.marital_status) - N - - - Table input (person_registry) РФ/мужчины - Insert / update (total_registered.marital_status) 2 - N - - - Table input (person_registry) РФ/женщины - Insert / update (total_registered.marital_status) 3 - N - Get variables 2 2 Select values 2 2 Y - - Get variables 2 2 2 - Select values 2 2 2 - Y - - - Get variables 2 2 3 - Select values 2 2 3 - Y - Table input (person_registry) РФ/все Get variables 2 2 @@ -62,429 +37,37 @@ Y - Table input (person_registry) РФ/мужчины - Get variables 2 2 2 - Y - - - Select values 2 2 2 - Insert / update (total_registered.marital_status) 2 - Y - - - Table input (person_registry) РФ/женщины - Get variables 2 2 3 - Y - - - Select values 2 2 3 - Insert / update (total_registered.marital_status) 3 + Execute SQL script + Table input (person_registry) РФ/все Y - Insert / update (total_registered.marital_status) - InsertUpdate + Execute SQL script + ExecSql - Y + N 1 none - 100 + + ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - total_registered - marital_status
- - married - married - Y - - - not_married - not_married - Y - - - married_percent - married_percent - Y - - - not_married_percent - not_married_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - - - marital_status - total - Y - -
- Y - - - 1216 - 176 - -
- - Insert / update (total_registered.marital_status) 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - total_registered - marital_status
- - married - married - Y - - - not_married - not_married - Y - - - married_percent - married_percent - Y - - - not_married_percent - not_married_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - - - marital_status - total - Y - -
- Y - - - 1216 - 272 - -
- - Insert / update (total_registered.marital_status) 3 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - "all_M_W" - gender - - - total_registered - marital_status
- - married - married - Y - - - not_married - not_married - Y - - - married_percent - married_percent - Y - - - not_married_percent - not_married_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - - - marital_status - total - Y - -
- Y - - - 1216 - 368 - -
- - Table input (person_registry) РФ/все - TableInput - - Y - - 1 - - none - - - ervu_person_registry N - 0 - SELECT - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) AS not_married, - - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) AS married, - - COUNT(*) AS total, - - CASE - WHEN COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) * 100.0 / COUNT(*), 2 - ) END AS not_married_percent, - - CASE - WHEN COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) * 100.0 / COUNT(*), 2 - ) END AS married_percent, - 'ALL' as gender, -'${REG_ID}' as recruitment_id - -FROM - public.recruits r -JOIN - public.recruits_info ri ON ri.recruit_id = r.id -WHERE - r.current_recruitment_id IS NOT NULL - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - Y + N + Y + N + N + DELETE FROM total_registered.marital_status +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' - 592 - 176 - - - - Table input (person_registry) РФ/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - SELECT - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) AS not_married, - - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) AS married, - - COUNT(*) AS total, - - CASE - WHEN COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) * 100.0 / COUNT(*), 2 - ) END AS not_married_percent, - - CASE - WHEN COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) * 100.0 / COUNT(*), 2 - ) END AS married_percent, - 'W' as gender, - '${REG_ID}' as recruitment_id - -FROM - public.recruits r -JOIN - public.recruits_info ri ON ri.recruit_id = r.id -WHERE - r.current_recruitment_id IS NOT NULL - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - AND r.gender = 'FEMALE'; - - Y - - - 592 - 368 - - - - Table input (person_registry) РФ/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - SELECT - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) AS not_married, - - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) AS married, - - COUNT(*) AS total, - - CASE - WHEN COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) * 100.0 / COUNT(*), 2 - ) END AS not_married_percent, - - CASE - WHEN COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) * 100.0 / COUNT(*), 2 - ) END AS married_percent, - 'M' as gender, - '${REG_ID}' as recruitment_id - -FROM - public.recruits r -JOIN - public.recruits_info ri ON ri.recruit_id = r.id -WHERE - r.current_recruitment_id IS NOT NULL - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - AND r.gender = 'MALE'; - - Y - - - 592 + 352 272 @@ -517,8 +100,107 @@ WHERE - 800 - 208 + 880 + 272 + + + + Insert / update (total_registered.marital_status) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + REG_ID + + + = + "all_M_W" + gender + + + = + schema + schema + + + = + convicts + convicts + + total_registered + marital_status
+ + married + married + Y + + + not_married + not_married + Y + + + married_percent + married_percent + Y + + + not_married_percent + not_married_percent + Y + + + "all_M_W" + gender + N + + + recruitment_id + recruitment_id + N + + + marital_status + total + Y + + + schema + schema + N + + + convicts + convicts + N + + + other + other + Y + + + other_percent + other_percent + Y + +
+ Y + + + 1392 + 272
@@ -571,13 +253,13 @@ WHERE - 1008 - 208 + 1088 + 272 - Get variables 2 2 2 - GetVariable + Table input (person_registry) РФ/все + TableInput Y @@ -586,167 +268,52 @@ WHERE none - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(married), 0) married, + COALESCE(SUM(not_married), 0) not_married, + COALESCE(SUM(other), 0) other, + COALESCE( + CASE + WHEN SUM(marital_status) > 0 + THEN ROUND((SUM(married) / SUM(marital_status) * 100), 2) + ELSE 0 + END, + 0 + ) married_percent, + COALESCE( + CASE + WHEN SUM(marital_status) > 0 + THEN ROUND((SUM(not_married) / SUM(marital_status) * 100), 2) + ELSE 0 + END, + 0 + ) not_married_percent, + COALESCE( + CASE + WHEN SUM(marital_status) > 0 + THEN ROUND((SUM(other) / SUM(marital_status) * 100), 2) + ELSE 0 + END, + 0 + ) other_percent, + COALESCE(SUM(marital_status), 0) total, + '${REG_ID}' AS recruitment_id, + "all_M_W" AS gender, + convicts, + 'Ministry' AS schema +FROM total_registered.marital_status +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", convicts; + Y - 800 - 304 - - - - Select values 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 1008 - 304 - - - - Get variables 2 2 3 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 800 - 400 - - - - Select values 2 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 1008 - 400 + 608 + 272 diff --git a/mappings/country/total_registered.reg_mil_cat.hpl b/mappings/country/total_registered.reg_mil_cat.hpl index cc6bf49..50afd53 100644 --- a/mappings/country/total_registered.reg_mil_cat.hpl +++ b/mappings/country/total_registered.reg_mil_cat.hpl @@ -21,36 +21,11 @@ - - Table input (person_registry) РФ/на учете - Insert / update (total_registered.reg_mil_cat) - N - - - Table input (person_registry) РФ/не на учете - Insert / update (total_registered.reg_mil_cat) 2 - N - Get variables 2 2 Select values 2 2 Y - - Get variables 2 2 2 - Select values 2 2 2 - Y - - - Table input (person_registry) РФ/не на учете - Get variables 2 2 2 - Y - - - Select values 2 2 2 - Insert / update (total_registered.reg_mil_cat) 2 - Y - Table input (person_registry) РФ/на учете Get variables 2 2 @@ -61,7 +36,41 @@ Insert / update (total_registered.reg_mil_cat) Y + + Execute SQL script + Table input (person_registry) РФ/на учете + Y + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.reg_mil_cat +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' + + + 672 + 400 + + Get variables 2 2 GetVariable @@ -91,41 +100,8 @@ - 624 - 256 - - - - Get variables 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 624 - 480 + 1184 + 400 @@ -152,109 +128,10 @@ mil_reg mil_reg - total_registered - reg_mil_cat
- - first_reg_17 - first_reg_17 - Y - - - first_reg_18 - first_reg_18 - Y - - - "mil_spec_W" - mil_spec_w - Y - - - recruitment_id - recruitment_id - N - - - returned_dep_liberty - returned_dep_liberty - Y - - - punished - punished - Y - - - received_citizenship - received_citizenship - Y - - - first_reg_17_percent - first_reg_17_percent - Y - - - first_reg_18_percent - first_reg_18_percent - Y - - - returned_dep_liberty_percent - returned_dep_liberty_percent - Y - - - "mil_spec_W_percent" - mil_spec_w_percent - Y - - - punished_percent - punished_percent - Y - - - received_citizenship_percent - received_citizenship_percent - Y - - - mil_reg - mil_reg - N - - - N - - - 944 - 176 - -
- - Insert / update (total_registered.reg_mil_cat) 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - = - recruitment_id - REG_ID - - - = - mil_reg - mil_reg + schema + schema total_registered reg_mil_cat
@@ -328,12 +205,17 @@ mil_reg N + + schema + schema + N +
N - 944 - 384 + 1648 + 400
@@ -386,62 +268,8 @@ - 832 - 256 - - - - Select values 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 832 - 480 + 1392 + 400 @@ -455,223 +283,83 @@ none - ervu_person_registry + ervu-dashboard N 0 - WITH base_data AS ( - -- Основной набор данных - SELECT - r.registration_reasons, - r.gender, - r.vu_current_info ->> 'isMilitaryRegistered' AS is_military_registered - FROM public.recruits r - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL -), -total AS ( - -- Общее количество записей - SELECT COUNT(*) AS total_count - FROM base_data -), -t1 AS ( - -- Первоначальная постановка 17 лет - SELECT COUNT(*) AS first_reg_17 - FROM base_data - WHERE registration_reasons @> '"5"' -), -t2 AS ( - -- Первоначальная постановка 18 лет - SELECT COUNT(*) AS first_reg_18 - FROM base_data - WHERE registration_reasons @> '"6"' - OR registration_reasons @> '"3"' - OR registration_reasons @> '"1"' - OR registration_reasons @> '"4"' - OR registration_reasons @> '"2"' -), -t3 AS ( - -- Женщины, получившие ВУС - SELECT COUNT(*) AS mil_spec_w - FROM base_data - WHERE registration_reasons @> '"3"' AND gender = 'FEMALE' -), -t4 AS ( - -- Возвратившиеся из мест лишения свободы - SELECT COUNT(*) AS returned_dep_liberty - FROM base_data - WHERE registration_reasons @> '"1"' -), -t5 AS ( - -- Отбывающие наказание в местах лишения свободы - SELECT COUNT(*) AS punished - FROM base_data - WHERE registration_reasons @> '"4"' -), -t6 AS ( - -- Получившие гражданство - SELECT COUNT(*) AS received_citizenship - FROM base_data - WHERE registration_reasons @> '"2"' -), -t7 AS ( - -- Получившие гражданство - SELECT COUNT(*) AS other - FROM base_data - WHERE registration_reasons @> '"6"' - AND NOT registration_reasons @> '"3"' - AND NOT registration_reasons @> '"1"' - AND NOT registration_reasons @> '"4"' - AND NOT registration_reasons @> '"2"' -) -SELECT - total.total_count, - t1.first_reg_17, - t2.first_reg_18, - t3.mil_spec_w, - t4.returned_dep_liberty, - t5.punished, - t6.received_citizenship, - t7.other, - -- Вычисление процентов - ROUND(t1.first_reg_17 * 100.0 / NULLIF(total.total_count, 0), 2) AS first_reg_17_percent, - ROUND(t2.first_reg_18 * 100.0 / NULLIF(total.total_count, 0), 2) AS first_reg_18_percent, - ROUND(t4.returned_dep_liberty * 100.0 / NULLIF(total.total_count, 0), 2) AS returned_dep_liberty_percent, - ROUND(t3.mil_spec_w * 100.0 / NULLIF(total.total_count, 0), 2) AS mil_spec_w_percent, - ROUND(t5.punished * 100.0 / NULLIF(total.total_count, 0), 2) AS punished_percent, - ROUND(t6.received_citizenship * 100.0 / NULLIF(total.total_count, 0), 2) AS received_citizenship_percent, - ROUND(t7.other * 100.0 / NULLIF(total.total_count, 0), 2) AS other_percent, - '${REG_ID}' AS recruitment_id, - 1 AS mil_reg, - 1 AS org -FROM total -FULL OUTER JOIN t1 ON 1 = 1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1 -FULL OUTER JOIN t7 ON 1 = 1; + SELECT + COALESCE(SUM(first_reg_17), 0) first_reg_17, + COALESCE(SUM(first_reg_18), 0) first_reg_18, + COALESCE(SUM("mil_spec_W"), 0) mil_spec_w, + COALESCE(SUM(returned_dep_liberty), 0) returned_dep_liberty, + COALESCE(SUM(punished), 0) punished, + COALESCE(SUM(received_citizenship), 0) received_citizenship, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM(first_reg_17) / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) + first_reg_17_percent, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM(first_reg_18) / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) + first_reg_18_percent, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM(returned_dep_liberty) / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) + returned_dep_liberty_percent, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM("mil_spec_W") / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) + mil_spec_w_percent, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM(punished) / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) + punished_percent, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM(received_citizenship) / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) + received_citizenship_percent, + '${REG_ID}'::uuid AS recruitment_id, + mil_reg, + 'Ministry' AS schema +FROM total_registered.reg_mil_cat +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE +GROUP BY mil_reg; Y - 512 - 176 - - - - Table input (person_registry) РФ/не на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH base_data AS ( - -- Основной набор данных - SELECT - r.registration_reasons, - r.gender, - r.vu_current_info ->> 'isMilitaryRegistered' AS is_military_registered - FROM public.recruits r - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'false' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL -), -total AS ( - -- Общее количество записей - SELECT COUNT(*) AS total_count - FROM base_data -), -t1 AS ( - -- Первоначальная постановка 17 лет - SELECT COUNT(*) AS first_reg_17 - FROM base_data - WHERE registration_reasons @> '"5"' -), -t2 AS ( - -- Первоначальная постановка 18 лет - SELECT COUNT(*) AS first_reg_18 - FROM base_data - WHERE registration_reasons @> '"6"' - OR registration_reasons @> '"3"' - OR registration_reasons @> '"1"' - OR registration_reasons @> '"4"' - OR registration_reasons @> '"2"' -), -t3 AS ( - -- Женщины, получившие ВУС - SELECT COUNT(*) AS mil_spec_w - FROM base_data - WHERE registration_reasons @> '"3"' AND gender = 'FEMALE' -), -t4 AS ( - -- Возвратившиеся из мест лишения свободы - SELECT COUNT(*) AS returned_dep_liberty - FROM base_data - WHERE registration_reasons @> '"1"' -), -t5 AS ( - -- Отбывающие наказание в местах лишения свободы - SELECT COUNT(*) AS punished - FROM base_data - WHERE registration_reasons @> '"4"' -), -t6 AS ( - -- Получившие гражданство - SELECT COUNT(*) AS received_citizenship - FROM base_data - WHERE registration_reasons @> '"2"' -), -t7 AS ( - -- Получившие гражданство - SELECT COUNT(*) AS other - FROM base_data - WHERE registration_reasons @> '"6"' - AND NOT registration_reasons @> '"3"' - AND NOT registration_reasons @> '"1"' - AND NOT registration_reasons @> '"4"' - AND NOT registration_reasons @> '"2"' -) -SELECT - total.total_count, - t1.first_reg_17, - t2.first_reg_18, - t3.mil_spec_w, - t4.returned_dep_liberty, - t5.punished, - t6.received_citizenship, - t7.other, - -- Вычисление процентов - ROUND(t1.first_reg_17 * 100.0 / NULLIF(total.total_count, 0), 2) AS first_reg_17_percent, - ROUND(t2.first_reg_18 * 100.0 / NULLIF(total.total_count, 0), 2) AS first_reg_18_percent, - ROUND(t4.returned_dep_liberty * 100.0 / NULLIF(total.total_count, 0), 2) AS returned_dep_liberty_percent, - ROUND(t3.mil_spec_w * 100.0 / NULLIF(total.total_count, 0), 2) AS mil_spec_w_percent, - ROUND(t5.punished * 100.0 / NULLIF(total.total_count, 0), 2) AS punished_percent, - ROUND(t6.received_citizenship * 100.0 / NULLIF(total.total_count, 0), 2) AS received_citizenship_percent, - ROUND(t7.other * 100.0 / NULLIF(total.total_count, 0), 2) AS other_percent, - '${REG_ID}' AS recruitment_id, - 0 AS mil_reg, - 1 AS org -FROM total -FULL OUTER JOIN t1 ON 1 = 1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1 -FULL OUTER JOIN t7 ON 1 = 1; - Y - - - 512 - 384 + 944 + 400 diff --git a/mappings/country/total_registered.removed_registry.hpl b/mappings/country/total_registered.removed_registry.hpl index ed458ca..18c9336 100644 --- a/mappings/country/total_registered.removed_registry.hpl +++ b/mappings/country/total_registered.removed_registry.hpl @@ -21,11 +21,6 @@ - - Table input (decision-document-service) РФ - Insert / update (total_registered.removed_registry) - N - Get variables 2 2 Select values 2 2 @@ -41,7 +36,74 @@ Insert / update (total_registered.removed_registry) Y + + Execute SQL script + Table input (decision-document-service) РФ + Y + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.removed_registry +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' + + + 224 + 224 + + + + Get variables 2 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REG_ID + -1 + none + String + + + -1 + VK_ARRAY + -1 + none + String + + + + + 672 + 224 + + Insert / update (total_registered.removed_registry) InsertUpdate @@ -60,7 +122,11 @@ = recruitment_id REG_ID - + + + = + schema + schema total_registered removed_registry
@@ -134,92 +200,19 @@ recruitment_id N + + schema + schema + N + N - 1072 + 1136 224
- - Table input (decision-document-service) РФ - TableInput - - Y - - 1 - - none - - - postgres.decision-document-service - N - 0 - SELECT - COUNT(*) AS removed_registry, - COUNT(CASE WHEN d.extra_info ->> 'cause' = 'ageLimit' THEN 1 END) AS age_limit, -- Количество по причине предельный возраст - COUNT(CASE WHEN d.extra_info ->> 'cause' = 'notAlive' THEN 1 END) AS death, -- Количество по причине смерть - '0' AS deprivation_citizenship, - '0' AS travel_abroad, - '0' AS living_abroad, - COUNT(CASE WHEN (d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive')) THEN 1 END) AS other, -- Количество по другим причинам - '0' AS deprivation_citizen_percents, - ROUND(COUNT(CASE WHEN d.extra_info ->> 'cause' = 'ageLimit' THEN 1 END) * 100.0 / NULLIF(COUNT(*), 0), 2) AS age_limit_percent, -- Процент по причине предельный возраст - ROUND(COUNT(CASE WHEN d.extra_info ->> 'cause' = 'notAlive' THEN 1 END) * 100.0 / NULLIF(COUNT(*), 0), 2) AS death_percent, -- Процент по причине смерть - '0' AS travel_abroad_percent, - '0' AS living_abroad_percent, - ROUND(COUNT(CASE WHEN (d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive')) THEN 1 END) * 100.0 / NULLIF(COUNT(*), 0), 2) AS other_percent, -- Процент по другим причинам - '${REG_ID}' AS recruitment_id -FROM public.recruit AS r -JOIN public.decision AS d - ON d.recruit_id = r.id -JOIN public.decision_type AS dt - ON dt.id = d.type_id -WHERE r.system_pgs_status = '1.3' - AND r.current_recruitment IS NOT NULL - AND r.target_recruitment IS NOT NULL - AND dt.code IN ('9', '10'); - Y - - - 464 - 224 - - - - Get variables 2 2 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 656 - 304 - - Select values 2 2 SelectValues @@ -270,8 +263,91 @@ WHERE r.system_pgs_status = '1.3' - 864 - 304 + 880 + 224 + + + + Table input (decision-document-service) РФ + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(age_limit), 0) age_limit, + COALESCE(SUM(death), 0) death, + COALESCE(SUM(removed_registry), 0) removed_registry, + COALESCE(SUM(deprivation_citizenship), 0) deprivation_citizenship, + COALESCE(SUM(travel_abroad), 0) travel_abroad, + COALESCE(SUM(living_abroad), 0) living_abroad, + COALESCE(SUM(other), 0) other, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(deprivation_citizenship) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) deprivation_citizen_percents, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(age_limit) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) age_limit_percent, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(death) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) death_percent, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(travel_abroad) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) travel_abroad_percent, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(living_abroad) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) living_abroad_percent, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(other) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) other_percent, + '${REG_ID}' AS recruitment_id, + 'Ministry' AS schema +FROM total_registered.removed_registry +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE; + Y + + + 464 + 224 diff --git a/mappings/country/total_registered.subpoenas.hpl b/mappings/country/total_registered.subpoenas.hpl index d3d2dd5..74c2520 100644 --- a/mappings/country/total_registered.subpoenas.hpl +++ b/mappings/country/total_registered.subpoenas.hpl @@ -21,26 +21,11 @@ - - Table input (subpoena)РФ/рег - Insert / update (total_registered.subpoenas) - N - - - Table input (subpoena) РФ/не рег - Insert / update (total_registered.subpoenas) 3 - N - Get variables 2 2 Select values 2 2 Y - - Get variables 2 2 2 - Select values 2 2 2 - Y - Table input (subpoena)РФ/рег Get variables 2 2 @@ -52,638 +37,38 @@ Y - Table input (subpoena) РФ/не рег - Get variables 2 2 2 - Y - - - Select values 2 2 2 - Insert / update (total_registered.subpoenas) 3 + Execute SQL script + Table input (subpoena)РФ/рег Y - Insert / update (total_registered.subpoenas) - InsertUpdate + Execute SQL script + ExecSql - Y + N 1 none - 100 + + ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - mil_reg - mil_reg - - - total_registered - subpoenas
- - subpoena - count_subpoena - Y - - - appeared - count_appeared - Y - - - average_appeared - average_appeared - Y - - - not_appeared - count_not_appeared - Y - - - not_ap_good_reason - count_not_ap_good_reason - Y - - - introduced_measures - count_introduced_measures - Y - - - ap_not_required - count_ap_not_required - Y - - - electron - count_electron - Y - - - paper - count_paper - Y - - - restrictions_applied - count_restrictions_applied - Y - - - recruitment_id - recruitment_id - N - - - mil_reg - mil_reg - N - - - appeared_percent - appeared_percent - Y - - - not_appeared_percent - not_appeared_percent - Y - - - not_ap_good_reason_percent - not_ap_good_reason_percent - Y - - - ap_not_required_percent - ap_not_required_percent - Y - - - electron_percent - electron_percent - Y - - - paper_percent - paper_percent - Y - - - restrictions_applied_percent - restrictions_applied_percent - Y - - - introduced_measures_percent - introduced_measures_percent - Y - - - count_not_delivery - count_not_delivery - Y - - - appear_date_is_good - appear_date_is_good - Y - - - not_delivery_percent - not_delivery_percent - Y - - - appear_date_is_good_percent - appear_date_is_good_percent - Y - -
- N - - - 848 - 192 - -
- - Insert / update (total_registered.subpoenas) 3 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - - - = - mil_reg - mil_reg - - - total_registered - subpoenas
- - subpoena - count_subpoena - Y - - - appeared - count_appeared - Y - - - average_appeared - average_appeared - Y - - - not_appeared - count_not_appeared - Y - - - not_ap_good_reason - count_not_ap_good_reason - Y - - - introduced_measures - count_introduced_measures - Y - - - ap_not_required - count_ap_not_required - Y - - - electron - count_electron - Y - - - paper - count_paper - Y - - - restrictions_applied - count_restrictions_applied - Y - - - recruitment_id - recruitment_id - N - - - mil_reg - mil_reg - N - - - appeared_percent - appeared_percent - Y - - - not_appeared_percent - not_appeared_percent - Y - - - not_ap_good_reason_percent - not_ap_good_reason_percent - Y - - - ap_not_required_percent - ap_not_required_percent - Y - - - electron_percent - electron_percent - Y - - - paper_percent - paper_percent - Y - - - restrictions_applied_percent - restrictions_applied_percent - Y - - - introduced_measures_percent - introduced_measures_percent - Y - - - count_not_delivery - count_not_delivery - Y - - - appear_date_is_good - appear_date_is_good - Y - - - not_delivery_percent - not_delivery_percent - Y - - - appear_date_is_good_percent - appear_date_is_good_percent - Y - -
- N - - - 848 - 352 - -
- - Table input (subpoena) РФ/не рег - TableInput - - Y - - 1 - - none - - - postgres.subpoena N - 0 - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn -- добавляем строку для получения последнего статуса - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '1' - and ssh.code not in ('3.14','3.7','3.72', '3.71') -), --- фильтруем только последние статусы для каждой повестки -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -- выбираем только последнюю запись для каждой повестки -), --- Подсчет различных метрик -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( -- количество повесток по которым применены ограничения - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( -- количество повесток по которым введены меры - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery --не вручена - FROM last_status - WHERE d_code is null -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') - ) -SELECT - t1.count_subpoena, - t2.average_appeared, - t3.count_appeared, - t4.count_not_appeared, - t5.count_not_ap_good_reason, - t6.count_ap_not_required, - t7.count_restrictions_applied, - t8.count_introduced_measures, - t9.count_paper, - t10.count_electron, - t11.count_restrictions, - t12.count_not_delivery, - t13.appear_date_is_good, - ROUND(count_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS appeared_percent, - ROUND(count_not_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(count_not_ap_good_reason * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(count_ap_not_required * 100.0 / NULLIF(count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(count_electron * 100.0 / NULLIF(count_subpoena, 0), 2) AS electron_percent, - ROUND(count_paper * 100.0 / NULLIF(count_subpoena, 0), 2) AS paper_percent, - ROUND(count_restrictions_applied * 100.0 / NULLIF(count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(count_introduced_measures * 100.0 / NULLIF(count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(count_not_delivery * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_delivery_percent, --процент не врученных - ROUND(appear_date_is_good * 100.0 / NULLIF(count_subpoena, 0), 2) AS appear_date_is_good_percent, --процент не врученных - '${REG_ID}' AS recruitment_id, - 1 AS org, - 0 AS mil_reg -FROM t1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1 -FULL OUTER JOIN t7 ON 1 = 1 -FULL OUTER JOIN t8 ON 1 = 1 -FULL OUTER JOIN t9 ON 1 = 1 -FULL OUTER JOIN t10 ON 1 = 1 -FULL OUTER JOIN t11 ON 1 = 1 -FULL OUTER JOIN t12 ON 1 = 1 -FULL OUTER JOIN t13 ON 1 = 1; - Y + N + Y + N + N + DELETE FROM total_registered.subpoenas +WHERE recording_date = current_date + AND schema = 'Ministry' + AND recruitment_id = '${REG_ID}' - 512 - 352 - - - - Table input (subpoena)РФ/рег - TableInput - - Y - - 1 - - none - - - postgres.subpoena - N - 0 - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn -- добавляем строку для получения последнего статуса - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type != '1' - and ssh.code not in ('3.14','3.7','3.72', '3.71') -), --- фильтруем только последние статусы для каждой повестки -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -- выбираем только последнюю запись для каждой повестки -), --- Подсчет различных метрик -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( -- количество повесток по которым применены ограничения - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( -- количество повесток по которым введены меры - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery --не вручена - FROM last_status - WHERE d_code is null -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') - ) -SELECT - t1.count_subpoena, - t2.average_appeared, - t3.count_appeared, - t4.count_not_appeared, - t5.count_not_ap_good_reason, - t6.count_ap_not_required, - t7.count_restrictions_applied, - t8.count_introduced_measures, - t9.count_paper, - t10.count_electron, - t11.count_restrictions, - t12.count_not_delivery, - t13.appear_date_is_good, - ROUND(count_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS appeared_percent, - ROUND(count_not_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(count_not_ap_good_reason * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(count_ap_not_required * 100.0 / NULLIF(count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(count_electron * 100.0 / NULLIF(count_subpoena, 0), 2) AS electron_percent, - ROUND(count_paper * 100.0 / NULLIF(count_subpoena, 0), 2) AS paper_percent, - ROUND(count_restrictions_applied * 100.0 / NULLIF(count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(count_introduced_measures * 100.0 / NULLIF(count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(count_not_delivery * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_delivery_percent, --процент не врученных - ROUND(appear_date_is_good * 100.0 / NULLIF(count_subpoena, 0), 2) AS appear_date_is_good_percent, --процент не врученных - '${REG_ID}' AS recruitment_id, - 1 AS org, - 1 AS mil_reg -FROM t1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1 -FULL OUTER JOIN t7 ON 1 = 1 -FULL OUTER JOIN t8 ON 1 = 1 -FULL OUTER JOIN t9 ON 1 = 1 -FULL OUTER JOIN t10 ON 1 = 1 -FULL OUTER JOIN t11 ON 1 = 1 -FULL OUTER JOIN t12 ON 1 = 1 -FULL OUTER JOIN t13 ON 1 = 1; - Y - - - 512 - 192 + 336 + 256 @@ -715,8 +100,172 @@ FULL OUTER JOIN t13 ON 1 = 1; - 576 - 272 + 784 + 256 + + + + Insert / update (total_registered.subpoenas) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + REG_ID + + + = + mil_reg + mil_reg + + + = + schema + schema + + total_registered + subpoenas
+ + subpoena + count_subpoena + Y + + + appeared + count_appeared + Y + + + average_appeared + average_appeared + Y + + + not_appeared + count_not_appeared + Y + + + not_ap_good_reason + count_not_ap_good_reason + Y + + + introduced_measures + count_introduced_measures + Y + + + ap_not_required + count_ap_not_required + Y + + + electron + count_electron + Y + + + paper + count_paper + Y + + + restrictions_applied + count_restrictions_applied + Y + + + recruitment_id + recruitment_id + N + + + mil_reg + mil_reg + N + + + appeared_percent + appeared_percent + Y + + + not_appeared_percent + not_appeared_percent + Y + + + not_ap_good_reason_percent + not_ap_good_reason_percent + Y + + + ap_not_required_percent + ap_not_required_percent + Y + + + electron_percent + electron_percent + Y + + + paper_percent + paper_percent + Y + + + restrictions_applied_percent + restrictions_applied_percent + Y + + + introduced_measures_percent + introduced_measures_percent + Y + + + count_not_delivery + count_not_delivery + Y + + + appear_date_is_good + appear_date_is_good + Y + + + not_delivery_percent + not_delivery_percent + Y + + + appear_date_is_good_percent + appear_date_is_good_percent + Y + + + schema + schema + N + +
+ N + + + 1248 + 256
@@ -769,13 +318,13 @@ FULL OUTER JOIN t13 ON 1 = 1; - 784 - 272 + 992 + 256 - Get variables 2 2 2 - GetVariable + Table input (subpoena)РФ/рег + TableInput Y @@ -784,80 +333,117 @@ FULL OUTER JOIN t13 ON 1 = 1; none - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(subpoena), 0) count_subpoena, + COALESCE(SUM(appeared), 0) count_appeared, + COALESCE(SUM(average_appeared), 0) average_appeared, + COALESCE(SUM(not_appeared), 0) count_not_appeared, + COALESCE(SUM(not_ap_good_reason), 0) count_not_ap_good_reason, + COALESCE(SUM(introduced_measures), 0) count_introduced_measures, + COALESCE(SUM(ap_not_required), 0) count_ap_not_required, + COALESCE(SUM(electron), 0) count_electron, + COALESCE(SUM(paper), 0) count_paper, + COALESCE(SUM(restrictions_applied), 0) count_restrictions_applied, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(appeared) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) appeared_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(not_appeared) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_appeared_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(not_ap_good_reason) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_ap_good_reason_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(ap_not_required) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) ap_not_required_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(electron) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) electron_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(paper) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) paper_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(restrictions_applied) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) restrictions_applied_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(introduced_measures) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) introduced_measures_percent, + + COALESCE(SUM(count_not_delivery), 0) count_not_delivery, + COALESCE(SUM(appear_date_is_good), 0) appear_date_is_good, + + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(count_not_delivery) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_delivery_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(appear_date_is_good) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) appear_date_is_good_percent, + '${REG_ID}' AS recruitment_id, + mil_reg, + 'Ministry' AS schema +FROM total_registered.subpoenas +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema = 'Region' +AND recording_date = CURRENT_DATE +GROUP BY mil_reg; + Y - 576 - 432 - - - - Select values 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 784 - 432 + 560 + 256 diff --git a/mappings/info_recruits/child.hpl b/mappings/info_recruits/child.hpl index 524ed43..e568e23 100644 --- a/mappings/info_recruits/child.hpl +++ b/mappings/info_recruits/child.hpl @@ -1,3 +1,4 @@ + child @@ -6,7 +7,6 @@ Normal - / N @@ -16,8 +16,6 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -25,9 +23,83 @@ Table input Table output + N + + + Table input + Insert / update Y + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + full_name + full_name + + ervu_dashboard + citizen_child
+ + recruit_id + recruit_id + N + + + birth_az_number + birth_az_number + Y + + + birth_date + birth_date + Y + + + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + full_name + full_name + N + + + kinship_type + kinship_type + Y + +
+ N + + + 624 + 256 + +
Table input TableInput @@ -40,11 +112,14 @@ ervu_person_registry + N + 0 with child as -(select jsonb_array_elements(ri.info->'svedDeti'->'rebenok') ch, +(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, ri.recruit_id from public.recruits_info ri -where jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array') + join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' +where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array') select r.id::uuid recruit_id, ch->>'naimRodstvSvyazReb' kinship_type, @@ -58,20 +133,16 @@ select NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, ch->'svedSmert'->>'nomerZapis' death_az_number, - ch->'svedAZRozhd'->'dataRozhdDok'->>'nomerZapis' birth_az_number + ch->'svedAZRozhd'->>'nomerZapis' birth_az_number from public.recruits r -join child on r.id = child.recruit_id - 0 - - N - N - N +join child on r.id = child.recruit_id + + + Y - - 208 - 208 - Y + 400 + 256 @@ -85,31 +156,27 @@ join child on r.id = child.recruit_id none - ervu-dashboard - ervu_dashboard - citizen_child
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + citizen_child
+ N + Y + N + Y - - 416 - 208 - Y + 608 + 400
diff --git a/mappings/info_recruits/citizen_appealing_violations_fz53.hpl b/mappings/info_recruits/citizen_appealing_violations_fz53.hpl new file mode 100644 index 0000000..8c19980 --- /dev/null +++ b/mappings/info_recruits/citizen_appealing_violations_fz53.hpl @@ -0,0 +1,27 @@ + + + + citizen_appealing_violations_fz53 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 13:08:11.179 + - + 2025/02/14 13:08:11.179 + + + + + + + + + diff --git a/mappings/info_recruits/citizen_complex_filters.hpl b/mappings/info_recruits/citizen_complex_filters.hpl new file mode 100644 index 0000000..28e102b --- /dev/null +++ b/mappings/info_recruits/citizen_complex_filters.hpl @@ -0,0 +1,27 @@ + + + + citizen_complex_filters + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 13:08:41.773 + - + 2025/02/14 13:08:41.773 + + + + + + + + + diff --git a/mappings/info_recruits/citizen_criminal_liability_fz53.hpl b/mappings/info_recruits/citizen_criminal_liability_fz53.hpl new file mode 100644 index 0000000..9358a7a --- /dev/null +++ b/mappings/info_recruits/citizen_criminal_liability_fz53.hpl @@ -0,0 +1,27 @@ + + + + citizen_criminal_liability_fz53 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 13:07:43.829 + - + 2025/02/14 13:07:43.829 + + + + + + + + + diff --git a/mappings/info_recruits/citizen_criminal_record.hpl b/mappings/info_recruits/citizen_criminal_record.hpl new file mode 100644 index 0000000..a48ef10 --- /dev/null +++ b/mappings/info_recruits/citizen_criminal_record.hpl @@ -0,0 +1,27 @@ + + + + citizen_criminal_record + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 13:05:50.389 + - + 2025/02/14 13:05:50.389 + + + + + + + + + diff --git a/mappings/info_recruits/citizen_education_diplomas_received.hpl b/mappings/info_recruits/citizen_education_diplomas_received.hpl new file mode 100644 index 0000000..5a5002f --- /dev/null +++ b/mappings/info_recruits/citizen_education_diplomas_received.hpl @@ -0,0 +1,205 @@ + + + + citizen_education_diplomas_received + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 13:03:35.892 + - + 2025/02/14 13:03:35.892 + + + + + + Table input + Insert / update + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + ervu_dashboard + citizen_education_diplomas_received
+ + recruit_id + recruit_id + N + + + type_organization + type_organization + Y + + + name_edu_organization + name_edu_organization + Y + + + inn + inn + Y + + + kpp + kpp + Y + + + ogrn + ogrn + Y + + + address_edu_organization + address_edu_organization + Y + + + student_status + student_status + Y + + + education_level_org + education_level_org + Y + + + course_training + course_training + Y + + + receipt_date + receipt_date + Y + + + order_number + order_number + Y + + + order_date + order_date + Y + + + restore_date + restore_date + Y + + + order_number_restore + order_number_restore + Y + + + order_date_restore + order_date_restore + Y + +
+ N + + + 928 + 320 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + with vuz as +(select jsonb_array_elements(ri.info->'svedFL'->'svedVUZ'->'vuz') as vuz, + ri.recruit_id recruit_id +from public.recruits_info ri +JOIN public.recruits r ON ri.recruit_id = r.id AND r.system_update_date >= '${UP_D}' +where jsonb_typeof(ri.info->'svedFL'->'svedVUZ'->'vuz') = 'array' +--AND r.system_update_date >= '${UP_D}' +--limit 2 +) +select + r.id recruit_id, + --vuz->'svedOrg'->>'kodTipOrg', + vuz->'svedOrg'->>'naimTipOrg' as type_organization, + vuz->'svedOrg'->>'naimOrg' as name_edu_organization, + vuz->'svedOrg'->>'inn' as inn, + vuz->'svedOrg'->>'kpp' as kpp, + coalesce (vuz->'svedOrg'->>'ogrn', vuz->'svedOrg'->>'ogrnip') as ogrn, + vuz->'svedOrg'->>'adresOrg' as address_edu_organization, + + vuz->>'naimStatus' as student_status, + vuz->>'naimUrovObr' as education_level_org, + vuz->>'nomerKursa' as course_training, + to_date(vuz->>'dataZachisl', 'YYYY-MM-DD') as receipt_date, + --vuz->>'prPervObuch' , + vuz->>'nomPrikazZachisl' as order_number, + to_date(vuz->>'dataPrikazZachisl', 'YYYY-MM-DD') as order_date, + --vuz->'svedObrProg'->>'prVUSpecz', + --vuz->'svedObrProg'->>'dataNachObuch', + --vuz->'svedObrProg'->>'kodFormaObuch', + --vuz->'svedObrProg'->>'naimFormaObuch', + --vuz->'svedObrProg'->>'planDataOkonch', + --vuz->'svedObrProg'->'svedSpeczMinobr'->>'kodSpecz', + --vuz->'svedObrProg'->'svedSpeczMinobr'->>'naimSpecz', + --vuz->'svedObrProg'->'svedSpeczMinprosv'->>'kodSpecz', + --vuz->'svedObrProg'->'svedSpeczMinprosv'->>'naimSpecz', + + to_date(vuz->'svedVosst'->>'dataVosst', 'YYYY-MM-DD') as restore_date, + vuz->'svedVosst'->>'nomPrikazVosst' as order_number_restore, + to_date(vuz->'svedVosst'->>'dataPrikazVosst', 'YYYY-MM-DD') as order_date_restore +from public.recruits r +join vuz on r.id = vuz.recruit_id + + Y + + + 464 + 320 + + + + + +
diff --git a/mappings/info_recruits/citizen_foreign.hpl b/mappings/info_recruits/citizen_foreign.hpl index f2baf3f..113ccaf 100644 --- a/mappings/info_recruits/citizen_foreign.hpl +++ b/mappings/info_recruits/citizen_foreign.hpl @@ -1,3 +1,4 @@ + citizen_foreign @@ -6,7 +7,6 @@ Normal - / N @@ -16,8 +16,6 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -25,14 +23,136 @@ Table input Table output - Y + N Table input 2 Table output 2 + N + + + Table input + Insert / update + Y + + + Table input 2 + Insert / update 2 Y + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + + = + citizenship_date + citizenship_date + + + ervu_dashboard + citizenship_foreign
+ + recruit_id + recruit_id + N + + + citizenship_date + citizenship_date + N + + + country_name + country_name + Y + + + citizenship_basis + citizenship_basis + Y + +
+ N + + + 672 + 208 + +
+ + Insert / update 2 + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + + = + residense_right_date + residense_right_date + + + ervu_dashboard + citizenship_foreign
+ + recruit_id + recruit_id + N + + + residense_right_date + residense_right_date + N + + + country_name + country_name + Y + + + residense_right_basis + residense_right_basis + Y + +
+ N + + + 672 + 304 + +
Table input TableInput @@ -45,29 +165,30 @@ ervu_person_registry + N + 0 with citizen as -(select jsonb_array_elements(ri.info->'svedIGPP'->'svedIG') cit, +(select jsonb_array_elements(ri.info->'svedFL'->'svedIGPP'->'svedIG') cit, ri.recruit_id from public.recruits_info ri -where jsonb_typeof(ri.info->'svedIGPP'->'svedIG') = 'array') + join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' +where jsonb_typeof(ri.info->'svedFL'->'svedIGPP'->'svedIG') = 'array' +--AND r.system_update_date >= '${UP_D}' +) select r.id recruit_id, cit->'oksm'->>'naimOKSM' country_name, cit->>'osnovPriobrIG' citizenship_basis, to_date(cit->>'dataPriobrIG', 'YYYY-MM-DD') citizenship_date from public.recruits r -join citizen on r.id = citizen.recruit_id; - 0 - - N - N - N +join citizen on r.id = citizen.recruit_id + + + Y - 208 208 - Y @@ -82,29 +203,29 @@ join citizen on r.id = citizen.recruit_id; ervu_person_registry + N + 0 with citizen as -(select jsonb_array_elements(ri.info->'svedIGPP'->'svedPP') cit, +(select jsonb_array_elements(ri.info->'svedFL'->'svedIGPP'->'svedPP') cit, ri.recruit_id from public.recruits_info ri -where jsonb_typeof(ri.info->'svedIGPP'->'svedPP') = 'array') + join public.recruits r ON r.id = ri.recruit_id +where jsonb_typeof(ri.info->'svedFL'->'svedIGPP'->'svedPP') = 'array' +AND r.system_update_date >= '${UP_D}' +) select r.id recruit_id, cit->'oksm'->>'naimOKSM' country_name, cit->>'osnovPriobrPP' residense_right_basis, to_date(cit->>'dataPriobrPP', 'YYYY-MM-DD') residense_right_date from public.recruits r -join citizen on r.id = citizen.recruit_id; - 0 - - N - N - N +join citizen on r.id = citizen.recruit_id + + Y - 208 304 - Y @@ -118,31 +239,27 @@ join citizen on r.id = citizen.recruit_id; none - ervu-dashboard - ervu_dashboard - citizenship_foreign
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + citizenship_foreign
+ N + Y + N + Y - 672 - 208 - Y + 48
@@ -156,31 +273,27 @@ join citizen on r.id = citizen.recruit_id; none - ervu-dashboard - ervu_dashboard - citizenship_foreign
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + citizenship_foreign
+ N + Y + N + Y - 672 - 304 - Y + 512
diff --git a/mappings/info_recruits/citizen_individual_decisions.hpl b/mappings/info_recruits/citizen_individual_decisions.hpl new file mode 100644 index 0000000..3c7d6e4 --- /dev/null +++ b/mappings/info_recruits/citizen_individual_decisions.hpl @@ -0,0 +1,27 @@ + + + + citizen_individual_decisions + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 13:09:08.476 + - + 2025/02/14 13:09:08.476 + + + + + + + + + diff --git a/mappings/info_recruits/citizen_information_search.hpl b/mappings/info_recruits/citizen_information_search.hpl new file mode 100644 index 0000000..19e78a4 --- /dev/null +++ b/mappings/info_recruits/citizen_information_search.hpl @@ -0,0 +1,27 @@ + + + + citizen_information_search + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 13:06:54.013 + - + 2025/02/14 13:06:54.013 + + + + + + + + + diff --git a/mappings/info_recruits/citizen_sports_categories.hpl b/mappings/info_recruits/citizen_sports_categories.hpl new file mode 100644 index 0000000..8592dcf --- /dev/null +++ b/mappings/info_recruits/citizen_sports_categories.hpl @@ -0,0 +1,137 @@ + + + + citizen_sports_categories + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 13:05:06.026 + - + 2025/02/14 13:05:06.026 + + + + + + Table input + Insert / update + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + ervu-dashboard + citizen_sports_categories
+ + recruit_id + recruit_id + N + + + start_date_category + start_date_category + Y + + + end_date_category + end_date_category + Y + + + sports_category_name + sports_category_name + Y + + + type_sport + type_sport + Y + + + sport_title + sport_title + Y + + + having_sport_category + having_sport_category + Y + + + having_sport_title + having_sport_title + Y + +
+ N + + + 672 + 256 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + SELECT recruit_id, + (sport_info->'sportRazr'->>'dataPrisv')::date start_date_category, + (sport_info->'sportRazr'->>'dataDeistv')::date as end_date_category, + sport_info->'sportRazr'->>'razryadNaim' as sports_category_name, + sport_info->'sportRazr'->>'sportNaim' as type_sport, + sport_info->>'sportZvan' as sport_title, + case when sport_info->>'sportRazr' != 'null' + then true else false end as having_sport_category, + (case when sport_info->>'sportZvan' != 'null' + then true else false end) as having_sport_title +FROM public.recruits_info ri +join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}', + jsonb_array_elements(ri.info->'svedFL'->'svedSport'->'sport') AS sport_info +WHERE info->'svedFL'->'svedSport'->>'sport' != 'null' + and info->'svedFL'->'svedSport'->>'sport' != '[]'; + Y + + + 384 + 256 + + + + + +
diff --git a/mappings/info_recruits/citizen_work_activity.hpl b/mappings/info_recruits/citizen_work_activity.hpl new file mode 100644 index 0000000..2fa5c38 --- /dev/null +++ b/mappings/info_recruits/citizen_work_activity.hpl @@ -0,0 +1,248 @@ + + + + citizen_work_activity1 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 13:02:15.430 + - + 2025/02/14 13:02:15.430 + + + + + + Table input + Insert / update + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + ervu_dashboard + citizen_work_activity
+ + recruit_id + recruit_id + N + + + date_hr_event + personnel_event_date + Y + + + type_hr_event + personnel_event_type + Y + + + job_title + position + Y + + + organization_name + employer_name + Y + + + kpp + employer_kpp + Y + + + employer_category + employer_category + Y + + + inn + employer_inn + Y + + + organization_address + employer_address + Y + + + ogrn + employer_ogrnip + Y + + + type_separate_division + employer_unit_type + Y + + + address_separate_division + employer_unit_address + Y + + + start_date_parental_leave + parental_leave_start_date + Y + + + end_date_parental_leave + parental_leave_end_date + Y + + + date_reg_ip + reg_ip_date + Y + + + date_dereg_ip + dereg_ip_date + Y + + + ogrn_ip + ogrnip_ip + Y + + + date_reg_self + reg_self_employment_date + Y + + + date_dereg_self + dereg_self_employment_date + Y + +
+ N + + + 720 + 256 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH trud_info AS ( + SELECT + ri.info, + ri.recruit_id::uuid, + case when ri.info->'svedFL'->'svedTrud'->'trudDeyat' IS NULL THEN NULL + WHEN jsonb_typeof(ri.info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN + (ri.info->'svedFL'->'svedTrud'->'trudDeyat'->0) end as trud_deyat, + case when ri.info->'svedFL'->'svedTrud'->'trudDeyat' IS NULL THEN NULL + WHEN jsonb_typeof(ri.info->'svedFL'->'svedTrud'->'trudDeyat'->0->'svedUhodReb') = 'array' + then ri.info->'svedFL'->'svedTrud'->'trudDeyat'->0->'svedUhodReb'->0 end AS parental_leave_info, + coalesce( + ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat', + ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'predRabotodat' + ) AS employer, + (CASE + WHEN info->'svedFL'->'svedRegIP'->'regIP' IS NULL THEN NULL + WHEN jsonb_typeof(info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN + (info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP'->0) + ELSE + info->'svedFL'->'svedRegIP'->'regIP'->'predRegIP' + END) AS reg_ip, + COALESCE( + ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD', + ri.info->'svedFL'->'svedNPD'->'npd'->'predNPD' + ) AS self_employment + FROM public.recruits_info ri + join public.recruits r + ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' +) +SELECT + ti.recruit_id::uuid, + (ti.trud_deyat->>'dataMeropr')::date AS personnel_event_date, + ti.trud_deyat->>'naimTipKadrMeropr' AS personnel_event_type, + case when ti.trud_deyat->>'prAktMestRab' = '1' then true else false end AS current_workplace, + ti.trud_deyat->>'trudFunkcziya' AS position, + ti.trud_deyat->'svedOrg'->>'naimOrg' AS employer_name, + ti.employer->'svedYUL'->>'kpp' AS employer_kpp, + CASE + WHEN ti.employer->>'svedYUL' != 'null' THEN 'Юридическое лицо' + WHEN ti.employer->>'svedIP' != 'null' THEN 'Индивидуальный предприниматель' + END AS employer_category, + COALESCE( + ti.employer->'svedYUL'->>'innyul', + ti.employer->'svedIP'->>'innyfl' + ) AS employer_inn, + ti.employer->'svedYUL'->'svedOPK'->>'region' AS employer_address, + COALESCE( + ti.employer->'svedIP'->>'ogrnip', + ti.employer->'svedYUL'->'extend'->>'ogrn' + ) AS employer_ogrnip, + ti.employer->'extend'->>'tipPodrazdRabotodat' as employer_unit_type, + ti.employer->'extend'->>'adresPodrazdRabotodat' as employer_unit_address, + (ti.parental_leave_info->>'dataNachUhodReb')::date as parental_leave_start_date, + (ti.parental_leave_info->>'dataKonUhodReb')::date as parental_leave_end_date, + case when (ti.parental_leave_info->>'dataNachUhodReb')::date <= current_date + and ((ti.parental_leave_info->>'dataKonUhodReb')::date is null + or (ti.parental_leave_info->>'dataKonUhodReb')::date > current_date) + then true + else false end as parental_leave_active, + (ti.reg_ip->>'dataRegIP')::date as reg_ip_date, + (ti.reg_ip->>'dataINNNed')::date as dereg_ip_date, + ti.reg_ip->>'ogrnip' as ogrnip_ip, + case when ti.reg_ip != 'null' + then true else false end as active_ip, + ti.self_employment->>'dataUchNPD' as reg_self_employment_date, + ti.self_employment->>'dataSnUchNPD' as dereg_self_employment_date, + case when ti.self_employment != 'null' + then true else false end as active_self_employment +FROM trud_info ti + + Y + + + 528 + 256 + + + + + +
diff --git a/mappings/info_recruits/citizenship.hpl b/mappings/info_recruits/citizenship.hpl index 0a4f535..3a98ec3 100644 --- a/mappings/info_recruits/citizenship.hpl +++ b/mappings/info_recruits/citizenship.hpl @@ -1,3 +1,4 @@ + citizenship @@ -6,7 +7,6 @@ Normal - / N @@ -16,8 +16,6 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -25,9 +23,89 @@ Table input Table output + N + + + Table input + Insert / update Y + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + ervu_dashboard + citizenship
+ + recruit_id + recruit_id + N + + + acquiring_authority + acquiring_authority + Y + + + acquiring_basis + acquiring_basis + Y + + + acquiring_date + acquiring_date + Y + + + acquiring_number + acquiring_number + Y + + + renunciation_authority + renunciation_authority + Y + + + renunciation_basis + renunciation_basis + Y + + + renunciation_date + renunciation_date + Y + + + renunciation_number + renunciation_number + Y + +
+ N + + + 688 + 224 + +
Table input TableInput @@ -40,30 +118,27 @@ ervu_person_registry - select r.id recruit_id, -ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'osnPriob' acquiring_basis, -ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshPriob' acquiring_number, -to_date(ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'dataReshPriob', 'YYYY-MM-DD') acquiring_date, -ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'organReshPriob' acquiring_authority, -ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'osnVyh' renunciation_basis, -ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshVyh' renunciation_number, -to_date(ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'dataReshVyh', 'YYYY-MM-DD') renunciation_date, -ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'organReshVyh' renunciation_authority -from public.recruits_info ri -join public.recruits r ON ri.recruit_id = r.id -where ri.info->'svedGrazhdanRF'->>'prOtsGrazhdanRF' is null and -(ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshPriob' is not null or ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'osnVyh' is not null) - 0 - N - N - N + 0 + select r.id recruit_id, +ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'osnPriob' acquiring_basis, +ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshPriob' acquiring_number, +to_date(ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'dataReshPriob', 'YYYY-MM-DD') acquiring_date, +ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'organReshPriob' acquiring_authority, +ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'osnVyh' renunciation_basis, +ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshVyh' renunciation_number, +to_date(ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'dataReshVyh', 'YYYY-MM-DD') renunciation_date, +ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'organReshVyh' renunciation_authority +from public.recruits_info ri +join public.recruits r ON ri.recruit_id = r.id AND r.system_update_date >= '${UP_D}' +where ri.info->'svedFL'->'svedGrazhdanRF'->>'prOtsGrazhdanRF' is null and +(ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshPriob' is not null or ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'osnVyh' is not null) + --AND r.system_update_date >= '${UP_D}' + Y - 432 224 - Y @@ -77,31 +152,27 @@ where ri.info->'svedGrazhdanRF'->>'prOtsGrazhdanRF' is null and none - ervu-dashboard - ervu_dashboard - citizenship
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + citizenship
+ N + Y + N + Y - 672 - 224 - Y + 352
diff --git a/mappings/info_recruits/deferments.hpl b/mappings/info_recruits/deferments.hpl new file mode 100644 index 0000000..2dba4ce --- /dev/null +++ b/mappings/info_recruits/deferments.hpl @@ -0,0 +1,235 @@ + + + + deferments + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/20 11:21:19.116 + - + 2025/04/20 11:21:19.116 + + + + + + deferment_right_input + Insert / update + Y + + + deferment_input + Insert / update 2 + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen_deferment_right
+ + recruit_id + recruit_id + N + + + start_date + start_date + Y + + + end_date + end_date + Y + + + code + code + Y + + + has_deferment_right + has_deferment_right + Y + +
+ N + + + 544 + 208 + +
+ + Insert / update 2 + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen_deferment
+ + recruit_id + recruit_id + N + + + decision_number + decision_number + Y + + + deferment_type + deferment_type + Y + + + start_date + start_date + Y + + + end_date + end_date + Y + + + reason_code + reason_code + Y + + + has_active_deferment + has_active_deferment + Y + + + has_exemption + has_exemption + Y + + + active + active + Y + +
+ N + + + 544 + 336 + +
+ + deferment_input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select + ddd.recruit_id, + ddd.decision_number, + ddd.type->>'value' as deferment_type, + ddd.decision_date as start_date, + ddd.postponement_date as end_date, + ddd.base_deferment as reason_code, + ddd.type->>'code' = '1' as has_active_deferment, + ddd.type->>'code' = '2' as has_exemption, + not ddd.hidden as active +from decision_deferment_dto ddd + join public.recruits r + ON r.id = ddd.recruit_id + AND r.system_update_date >= '${UP_D}' +where hidden is false; + Y + + + 272 + 336 + + + + deferment_right_input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select + rd.recruit_id, + rd.date_of_information as start_date, + rd.postponement_date as end_date, + erfd.code, + true as has_deferment_right +from recruits_deferment rd + join ervu_reason_for_deferment erfd + on erfd.id = rd.ervu_reason_for_deferment_id + join public.recruits r + ON r.id = rd.recruit_id + AND r.system_update_date >= '${UP_D}' +where rd.hidden is false; + Y + + + 272 + 208 + + + + + +
diff --git a/mappings/info_recruits/deputy.hpl b/mappings/info_recruits/deputy.hpl index 92c2ae1..efe24e6 100644 --- a/mappings/info_recruits/deputy.hpl +++ b/mappings/info_recruits/deputy.hpl @@ -1,3 +1,4 @@ + deputy @@ -6,7 +7,6 @@ Normal - / N @@ -16,23 +16,148 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N + + Table input 2 + Table output 2 + N + Table input - Table output + Insert / update Y + + Table input + Table output + N + Table input 2 - Table output 2 + Insert / update 2 Y + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + + = + deputy + deputy + + + ervu_dashboard + deputy
+ + recruit_id + recruit_id + N + + + end_date + end_date + Y + + + information + information + Y + + + period_office + period_office + Y + + + deputy + deputy + Y + +
+ N + + + 688 + 224 + +
+ + Insert / update 2 + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + + = + deputy + deputy + + + ervu_dashboard + deputy
+ + recruit_id + recruit_id + N + + + end_date + end_date + Y + + + information + information + Y + + + deputy + deputy + Y + +
+ N + + + 688 + 320 + +
Table input TableInput @@ -45,24 +170,21 @@ ervu_person_registry - select r.id recruit_id, -ri.info->'svedDeputat'->'deputat'->>'srokiPolnomochii' period_office, -to_date(ri.info->'svedDeputat'->'deputat'->>'dataDosrochPrekr', 'YYYY-MM-DD') end_date, -ri.info->'svedDeputat'->'deputat'->>'svedIzbrDeputatom' information -from public.recruits_info ri -join public.recruits r ON ri.recruit_id = r.id -where ri.info->'svedDeputat'->'deputat'->>'svedIzbrDeputatom' is not null; - 0 - N - N - N + 0 + select r.id recruit_id, +ri.info->'svedFL'->'svedDeputat'->'deputat'->>'srokiPolnomochii' period_office, +to_date(ri.info->'svedFL'->'svedDeputat'->'deputat'->>'dataDosrochPrekr', 'YYYY-MM-DD') end_date, +ri.info->'svedFL'->'svedDeputat'->'deputat'->>'svedIzbrDeputatom' information +from public.recruits_info ri +join public.recruits r ON ri.recruit_id = r.id AND r.system_update_date >= '${UP_D}' +where ri.info->'svedFL'->'svedDeputat'->'deputat'->>'svedIzbrDeputatom' is not null + --AND r.system_update_date >= '${UP_D}' + Y - 432 224 - Y @@ -77,24 +199,21 @@ where ri.info->'svedDeputat'->'deputat'->>'svedIzbrDeputatom' is not null; ervu_person_registry + N + 0 select r.id recruit_id, -to_date(ri.info->'svedKandidat'->'kandidat'->>'dataSnyatiyaKandidatury', 'YYYY-MM-DD') end_date, -ri.info->'svedKandidat'->'kandidat'->>'svedRegKandidata' information, +to_date(ri.info->'svedFL'->'svedKandidat'->'kandidat'->>'dataSnyatKandidat', 'YYYY-MM-DD') end_date, +ri.info->'svedFL'->'svedKandidat'->'kandidat'->>'svedRegKandidata' information, false deputy from public.recruits_info ri -join public.recruits r ON ri.recruit_id = r.id -where ri.info->'svedKandidat'->'kandidat'->>'svedRegKandidata' is not null; - 0 - - N - N - N +join public.recruits r ON ri.recruit_id = r.id AND r.system_update_date >= '${UP_D}' +where ri.info->'svedFL'->'svedKandidat'->>'kandidat' is not null + --AND r.system_update_date >= '${UP_D}' + Y - 432 320 - Y @@ -108,31 +227,27 @@ where ri.info->'svedKandidat'->'kandidat'->>'svedRegKandidata' is not null;none - ervu-dashboard - ervu_dashboard - deputy
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + deputy
+ N + Y + N + Y - - 800 - 224 - Y + 688 + 64
@@ -146,31 +261,27 @@ where ri.info->'svedKandidat'->'kandidat'->>'svedRegKandidata' is not null;none - ervu-dashboard - ervu_dashboard - deputy
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + deputy
+ N + Y + N + Y - - 800 - 320 - Y + 688 + 448
diff --git a/mappings/info_recruits/disability.hpl b/mappings/info_recruits/disability.hpl index e34b32c..fa0f75e 100644 --- a/mappings/info_recruits/disability.hpl +++ b/mappings/info_recruits/disability.hpl @@ -1,3 +1,4 @@ + disability @@ -6,7 +7,6 @@ Normal - / N @@ -16,8 +16,6 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -25,14 +23,161 @@ Table input Table output - Y + N Table input 2 Table output 2 + N + + + Table input + Insert / update + Y + + + Table input 2 + Insert / update 2 Y + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + + = + start_date + start_date + + + ervu_dashboard + disability
+ + recruit_id + recruit_id + N + + + close_date + close_date + Y + + + confirmation_date + confirmation_date + Y + + + disability + disability + Y + + + disability_group + disability_group + Y + + + organization_name + organization_name + Y + + + start_date + start_date + Y + +
+ N + + + 432 + 208 + +
+ + Insert / update 2 + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + + = + start_date + start_date + + + ervu_dashboard + disability
+ + recruit_id + recruit_id + N + + + close_date + close_date + Y + + + organization_name + organization_name + Y + + + start_date + start_date + Y + + + disability + disability + Y + + + is_incompetent + is_incompetent + Y + +
+ N + + + 432 + 304 + +
Table input TableInput @@ -45,32 +190,30 @@ ervu_person_registry - select - r.id recruit_id, - case when ri.info->'svedInvalid'->'invalid'->>'gruppa'='1' then 'I группа' - when ri.info->'svedInvalid'->'invalid'->>'gruppa'='2' then 'II группа' - when ri.info->'svedInvalid'->'invalid'->>'gruppa'='3' then 'III группа' - when ri.info->'svedInvalid'->'invalid'->>'gruppa'='4' then 'ребенок-инвалид' - end disability_group, - ri.info->'svedInvalid'->'invalid'->>'ustanOrg' organization_name, - to_date(ri.info->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataUstan', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataSnyat', 'YYYY-MM-DD') close_date, - to_date(ri.info->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataPodtverzhdPlan', 'YYYY-MM-DD') confirmation_date, - true disability -from public.recruits r -join public.recruits_info ri on r.id = ri.recruit_id -where ri.info->'svedInvalid'->'invalid'->>'gruppa' is not null; - 0 - N - N - N + 0 + select + recruit_id, + case when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='1' then 'I группа' + when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='2' then 'II группа' + when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='3' then 'III группа' + when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='4' then 'ребенок-инвалид' + end disability_group, + ri.info->'svedFL'->'svedInvalid'->'invalid'->>'ustanOrg' organization_name, + to_date(ri.info->'svedFL'->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataUstan', 'YYYY-MM-DD') start_date, + to_date(ri.info->'svedFL'->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataSnyat', 'YYYY-MM-DD') close_date, + to_date(ri.info->'svedFL'->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataPodtverzhdPlan', 'YYYY-MM-DD') confirmation_date, + true disability +from public.recruits_info ri + join public.recruits r + ON r.id = ri.recruit_id + AND r.system_update_date >= '${UP_D}' +where ri.info->'svedFL'->'svedInvalid'->>'invalid' != 'null'; + Y - 208 208 - Y @@ -85,25 +228,25 @@ where ri.info->'svedInvalid'->'invalid'->>'gruppa' is not null; ervu_person_registry - select - r.id recruit_id, - ri.info->'svedNedeesp'->'nedeesposob'->>'naimSud' organization_name, - to_date(ri.info->'svedNedeesp'->'nedeesposob'->>'dataPrisv', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedNedeesp'->'nedeesposob'->>'dataOtmeny', 'YYYY-MM-DD') close_date -from public.recruits r -join public.recruits_info ri on r.id = ri.recruit_id -where ri.info->'svedNedeesp'->'nedeesposob'->>'naimSud' is not null; - 0 - N - N - N + 0 + select + recruit_id, + ri.info->'svedNedeesp'->'nedeesposob'->>'naimOrg' organization_name, + to_date(ri.info->'svedNedeesp'->'nedeesposob'->>'dataPrisv', 'YYYY-MM-DD') start_date, + to_date(ri.info->'svedNedeesp'->'nedeesposob'->>'dataOtmeny', 'YYYY-MM-DD') close_date, + false disability, + true is_incompetent +from public.recruits_info ri + join public.recruits r + ON r.id = ri.recruit_id + AND r.system_update_date >= '${UP_D}' +where ri.info->'svedNedeesp'->>'nedeesposob' != 'null'; + Y - 208 304 - Y @@ -117,31 +260,27 @@ where ri.info->'svedNedeesp'->'nedeesposob'->>'naimSud' is not null; none - ervu-dashboard - ervu_dashboard - disability
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + disability
+ N + Y + N + Y - 416 - 208 - Y + 80
@@ -155,31 +294,27 @@ where ri.info->'svedNedeesp'->'nedeesposob'->>'naimSud' is not null; none - ervu-dashboard - ervu_dashboard - disability
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + disability
+ N + Y + N + Y - 416 - 304 - Y + 496
diff --git a/mappings/info_recruits/disease.hpl b/mappings/info_recruits/disease.hpl index 6492bf9..6ab0984 100644 --- a/mappings/info_recruits/disease.hpl +++ b/mappings/info_recruits/disease.hpl @@ -1,3 +1,4 @@ + disease @@ -6,7 +7,6 @@ Normal - / N @@ -16,8 +16,6 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -25,9 +23,75 @@ Table input Table output + N + + + Table input + Insert / update Y + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + + = + reg_date + reg_date + + + ervu_dashboard + disease
+ + recruit_id + recruit_id + N + + + code + code + Y + + + name + name + Y + + + reg_date + reg_date + Y + + + has_disease + has_disease + Y + +
+ N + + + 448 + 208 + +
Table input TableInput @@ -40,29 +104,34 @@ ervu_person_registry - with zdorov as -(select jsonb_array_elements(ri.info->'svedSostZdorov'->'svedZdorov'->'sostZdorov') z, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedSostZdorov'->'svedZdorov'->'sostZdorov') = 'array') -select - r.id recruit_id, - z->>'kodZabol' code, - z->>'naimZabol' name, - to_date(z->>'dataDiagn', 'YYYY-MM-DD') reg_date -from public.recruits r -join zdorov on r.id = zdorov.recruit_id; - 0 - N - N - N + 0 + with zdorov as (select ri.recruit_id, + jsonb_array_elements( + ri.info -> 'svedFL' -> 'svedSostZdorov' -> 'svedZdorov' -> + 'sostZdorov') z, + case + when ri.info -> 'svedFL' -> 'svedSostZdorov' -> 'svedZdorov' ->> + 'priznakNalichSved' = '1' + then true + else false end as has_disease + from public.recruits_info ri + join public.recruits r + ON r.id = ri.recruit_id + AND r.system_update_date >= '${UP_D}' + where jsonb_typeof(ri.info -> 'svedFL' -> 'svedSostZdorov' -> 'svedZdorov' -> + 'sostZdorov') = 'array') +select recruit_id, + z ->> 'kodZabol' code, + z ->> 'naimZabol' name, + has_disease, + to_date(z ->> 'dataDiagn', 'YYYY-MM-DD') reg_date +from zdorov; + Y - 208 208 - Y @@ -76,31 +145,27 @@ join zdorov on r.id = zdorov.recruit_id; none - ervu-dashboard - ervu_dashboard - disease
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + disease
+ N + Y + N + Y - - 416 - 208 - Y + 464 + 64
diff --git a/mappings/info_recruits/drivers_licence.hpl b/mappings/info_recruits/drivers_licence.hpl index bfb7f52..290cabd 100644 --- a/mappings/info_recruits/drivers_licence.hpl +++ b/mappings/info_recruits/drivers_licence.hpl @@ -1,3 +1,4 @@ + drivers_licence @@ -6,7 +7,6 @@ Normal - / N @@ -16,8 +16,6 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -25,14 +23,177 @@ Table input Table output - Y + N Table input 2 Table output 2 + N + + + Table input 2 + Insert / update 2 + Y + + + Table input + Insert / update Y + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + + = + start_date + start_date + + + ervu_dashboard + drivers_licence
+ + recruit_id + recruit_id + N + + + categories + categories + Y + + + close_date + close_date + Y + + + licence_series + licence_series + Y + + + start_date + start_date + N + +
+ N + + + 416 + 208 + +
+ + Insert / update 2 + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + + = + start_date + start_date + + + + = + tractor_driver + tractor_driver + + + ervu_dashboard + drivers_licence
+ + recruit_id + recruit_id + N + + + categories + categories + Y + + + close_date + close_date + Y + + + licence_number + licence_number + Y + + + licence_series + licence_series + Y + + + replacement_date + replacement_date + Y + + + return_date + return_date + Y + + + seizure_date + seizure_date + Y + + + start_date + start_date + N + + + tractor_driver + tractor_driver + N + +
+ N + + + 416 + 416 + +
Table input TableInput @@ -45,30 +206,28 @@ ervu_person_registry - select - r.id recruit_id, - ri.info->'svedVoditUdost'->'voditUdost'->>'serVodUd' licence_series, - ri.info->'svedVoditUdost'->'voditUdost'->>'nomVodUd' licence_number, - to_date(ri.info->'svedVoditUdost'->'voditUdost'->>'dataVodUd', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedVoditUdost'->'voditUdost'->>'srokVodUd', 'YYYY-MM-DD') close_date, - array_to_string(array( - select kat->>'kategoriya' - from jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') as kat - where jsonb_typeof(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array'), ',') categories -from public.recruits r -join public.recruits_info ri on r.id = ri.recruit_id -where ri.info->'svedVoditUdost'->'voditUdost'->>'serVodUd' is not null; - 0 - N - N - N + 0 + select + ri.recruit_id recruit_id, + ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'serNomDok' licence_series, + --ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'nomVodUd' licence_number, + to_date(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'dataVydDok', 'YYYY-MM-DD') start_date, + to_date(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'srokDeistvDok', 'YYYY-MM-DD') close_date, + array_to_string(array( + select kat->>'naimKatTS' + from jsonb_array_elements(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') as kat + where jsonb_typeof(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array'), ',') categories +from public.recruits r +join public.recruits_info ri on r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' +where jsonb_typeof(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array' + --AND r.system_update_date >= '${UP_D}' + + Y - 208 208 - Y @@ -83,35 +242,32 @@ where ri.info->'svedVoditUdost'->'voditUdost'->>'serVodUd' is not null; ervu_person_registry + N + 0 select r.id recruit_id, - ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'serUTM' licence_series, - ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'nomUTM' licence_number, - to_date(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataVydUTM', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataOkonchUTM', 'YYYY-MM-DD') close_date, - to_date(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataIztUTM', 'YYYY-MM-DD') seizure_date, - to_date(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataZamUTM', 'YYYY-MM-DD') replacement_date, - to_date(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataVozUTM', 'YYYY-MM-DD') return_date, + ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'serUTM' licence_series, + ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'nomUTM' licence_number, + to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataVydUTM', 'YYYY-MM-DD') start_date, + to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataOkonchUTM', 'YYYY-MM-DD') close_date, + to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataIztUTM', 'YYYY-MM-DD') seizure_date, -- + to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataZameny', 'YYYY-MM-DD') replacement_date,-- + to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataVozvr', 'YYYY-MM-DD') return_date,-- array_to_string(array( - select kat->>'kategoriya' - from jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') as kat - where jsonb_typeof(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array'), ',') categories, + select kat->>'naimKatTS' + from jsonb_array_elements(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') as kat + where jsonb_typeof(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array'), ',') categories, true tractor_driver from public.recruits r -join public.recruits_info ri on r.id = ri.recruit_id -where ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'serUTM' is not null; +join public.recruits_info ri on r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' +where ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM' is not null + --AND r.system_update_date >= '${UP_D}' - 0 - - N - N - N + Y - 208 - 304 - Y + 416 @@ -125,31 +281,27 @@ where ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'serUTM' is not null; none - ervu-dashboard - ervu_dashboard - drivers_licence
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + drivers_licence
+ N + Y + N + Y - 416 - 208 - Y + 64
@@ -163,31 +315,27 @@ where ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'serUTM' is not null; none - ervu-dashboard - ervu_dashboard - drivers_licence
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + drivers_licence
+ N + Y + N + Y - 416 - 304 - Y + 544
diff --git a/mappings/info_recruits/incident.hpl b/mappings/info_recruits/incident.hpl new file mode 100644 index 0000000..830b011 --- /dev/null +++ b/mappings/info_recruits/incident.hpl @@ -0,0 +1,27 @@ + + + + incident + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 13:11:10.022 + - + 2025/02/14 13:11:10.022 + + + + + + + + + diff --git a/mappings/info_recruits/info_recruits.hpl b/mappings/info_recruits/info_recruits.hpl index 64ae30d..17a2351 100644 --- a/mappings/info_recruits/info_recruits.hpl +++ b/mappings/info_recruits/info_recruits.hpl @@ -18,19 +18,252 @@ 2024/08/15 14:02:51.713 + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 394 + 960 + 16 + acquired_citizenship +address_actual +address_place_stay +city_birth +date_info_actual +date_loss_info_actual +died_date +dispensary_registration_code +email +end_date_place_stay +end_date_residence +inn +is_in_prison +medic +medical_requirements +region_birth +residence +right_deferment +snils +source_info_actual +start_date_place_stay +start_date_residence +took_break +type_place_stay + 163 + Select values 4 Table output - Y + N - Table input + Table input(info_recruits) Select values 4 Y + + Select values 4 + Insert / update + Y + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + ervu_dashboard + citizen
+ + recruit_id + recruit_id + N + + + age + age + Y + + + birth_date + birth_date + Y + + + birth_place + birth_place + Y + + + contract_service + contract_service + Y + + + deferment_liberation + deferment_liberation + Y + + + disability_group + disability_group + Y + + + driver_license + driver_license + Y + + + education + education + Y + + + employment + employment + Y + + + first_name + first_name + Y + + + full_name + full_name + Y + + + gender + gender + Y + + + is_registered + is_registered + Y + + + is_wanted + is_wanted + Y + + + issue_date + issue_date + Y + + + last_name + last_name + Y + + + marital_status + marital_status + Y + + + middle_name + middle_name + Y + + + mobilization + mobilization + Y + + + number_children + number_children + Y + + + number_children_18_old + number_children_18_old + Y + + + passport_number + passport_number + Y + + + passport_series + passport_series + Y + + + phone + phone + Y + + + reason_registration + reason_registration + Y + + + recruitment_id + recruitment_id + Y + + + sports_category + sports_category + Y + + + tractor_license + tractor_license + Y + + + update_date + update_date + Y + + + urgent_service + urgent_service + Y + +
+ N + + + 688 + 208 + +
Select values 4 SelectValues @@ -69,7 +302,7 @@ - Table input + Table input(info_recruits) TableInput Y @@ -82,23 +315,317 @@ ervu_person_registry N 0 - WITH extracted_children AS ( + WITH +base_recruit_data AS ( + SELECT + distinct + r.system_pgs_status, + r.full_name, + r.last_name, + r.first_name, + r.middle_name, + r.gender, + ri.info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils' AS snils, + ri.info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn' AS inn, + r.birth_date, + EXTRACT(YEAR FROM AGE(r.birth_date)) AS age, + r.birth_place, + r.phone, + r.email, + 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, + 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, + r.system_update_date AS update_date, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + COALESCE(r.current_recruitment_id, r.target_recruitment_id) AS recruitment_id, + 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, + CASE + WHEN ddd.hidden IS false then ddd.hidden + ELSE true END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет + CASE + WHEN + -- Условия для "true" (спортивная категория) + ri.info->'svedFL'->'svedSport' ? 'sport' -- Проверяем, что ключ 'sport' существует + AND jsonb_typeof(ri.info->'svedFL'->'svedSport'->'sport') = 'array' -- Проверяем, что 'sport' это массив + AND jsonb_array_length(ri.info->'svedFL'->'svedSport'->'sport') > 0 -- И массив не пустой + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedSport'->'sport') AS sport_elem + WHERE + ( + -- Проверяем, что 'sportRazr' существует и срок действия актуален + jsonb_typeof(sport_elem->'sportRazr') = 'object' + AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL + AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') > CURRENT_DATE + ) + OR ( + -- Проверяем, что 'sportZvan' существует и не пусто + sport_elem->>'sportZvan' IS NOT NULL + AND sport_elem->>'sportZvan' <> '' + ) + OR ( + -- Проверяем, что 'sportRazr' существует и срок действия истек + jsonb_typeof(sport_elem->'sportRazr') = 'object' + AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL + AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') <= CURRENT_DATE + ) + ) + AND ri.info->'svedFL'->'svedSport'->>'prOtsSvedSport' IS NULL + THEN true + + WHEN + -- Условия для "false" (не является спортивной категорией) + ( + ri.info->'svedFL'->'svedSport'->'sport' IS NULL -- Если 'sport' = NULL + OR ( + ri.info->'svedSport' ? 'sport' -- Проверяем, что ключ 'sport' существует + AND jsonb_typeof(ri.info->'svedFL'->'svedSport'->'sport') = 'array' -- Поле 'sport' должно быть массивом + AND jsonb_array_length(ri.info->'svedFL'->'svedSport'->'sport') > 0 -- И массив не пустой + ) + ) + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedSport'->'sport') AS sport_elem + WHERE + ( + -- Проверяем 'sportZvan' и если оно не существует или пусто + sport_elem->>'sportZvan' IS NULL OR sport_elem->>'sportZvan' = '' + ) + OR ( + -- Проверяем 'sportRazr' и срок действия истек + jsonb_typeof(sport_elem->'sportRazr') = 'object' + AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL + AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') > CURRENT_DATE + -- И 'sportZvan' также не должно существовать или быть пустым + AND (sport_elem->>'sportZvan' IS NULL OR sport_elem->>'sportZvan' = '') + ) + ) + AND ri.info->'svedFL'->'svedSport'->>'prOtsSvedSport' IS NULL + THEN false + + WHEN + -- Условия для "null" (нет информации) + ri.info->'svedSport'->>'prOtsSvedSport' = '1' + OR ri.info->'svedSport' IS NULL -- Проверяем, что 'svedSport' отсутствует + THEN null + + ELSE null -- Неопределенное значение для всех других случаев + END AS sports_category, + + mrr.value AS reason_registration, + + CASE + WHEN ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa' IS NOT NULL + AND ri.info->'svedFL'->'svedInvalid'->>'prOtsSvedInvalid' IS NULL + AND (ri.info->'svedFL'->'sportRazr'->>'dataSnyat' IS NULL + OR TO_DATE(ri.info->'svedFL'->'sportRazr'->>'dataSnyat', 'YYYY-MM-DD') <= CURRENT_DATE) + THEN ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa' + WHEN ri.info->'svedFL'->'svedInvalid'->>'prOtsSvedInvalid' = '1' THEN 'Нет информации об инвалидности' + ELSE 'Нет информации об инвалидности' + END AS disability_group, + + CASE + WHEN ri.info->'svedFL'->'svedUdostTraktMash'->>'udostTraktMash' IS NOT NULL + AND TO_DATE(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataOkonchUTM', 'YYYY-MM-DD') > CURRENT_DATE + THEN true + WHEN ri.info->'svedFL'->'svedUdostTraktMash'->>'udostTraktMash' IS NOT NULL + AND TO_DATE(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataOkonchUTM', 'YYYY-MM-DD') <= CURRENT_DATE + THEN false + WHEN ri.info->'svedFL'->'svedUdostTraktMash'->>'prOtsSvedUTM' = '1' THEN null + ELSE null + END AS tractor_license, + + CASE + WHEN + jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -- проверяем, что 'faktyUgolovPresl' это массив + AND jsonb_array_length(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') > 0 -- массив не пустой + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS criminal_prosecution + WHERE + criminal_prosecution->>'dataPrekrashh' IS NULL -- дата прекращения отсутствует + ) + AND ri.info->'svedFL'->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' IS NULL + THEN true + + WHEN + jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -- проверяем, что 'faktyUgolovPresl' это массив + AND jsonb_array_length(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') > 0 -- массив не пустой + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS criminal_prosecution + WHERE + criminal_prosecution->>'dataPrekrashh' IS NOT NULL -- дата прекращения не отсутствует + ) + AND ri.info->'svedFL'->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' IS NULL + THEN false + + WHEN + ri.info->'svedFL'->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' = '1' + THEN NULL + + ELSE NULL + END AS criminal_prosecution, + + COALESCE( + CASE + WHEN ( + jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ('1', '2', '4') + ) + ) OR ( + jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ('1', '2', '4') + ) + ) THEN 'Обучается' + ELSE NULL + END || + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud + WHERE trud->>'prAktMestRab' = '1' + ) THEN + CASE + WHEN ( + jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ('1', '2', '4') + ) + ) OR ( + jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ('1', '2', '4') + ) + ) THEN ', Работает' + ELSE 'Работает' + END + ELSE NULL + END, + CASE + WHEN + info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' -- Отсутствие сведений о вузе + AND info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' -- Отсутствие сведений о колледже + AND info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' -- Отсутствие сведений о работе + THEN 'Нет информации' + ELSE 'Нет информации' + END + ) AS employment_status, + + CASE + WHEN (EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') + )) THEN 'Высшее' + WHEN (EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' = '10' + )) THEN 'Среднее профессиональное' + WHEN (EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('7', '9') + )) THEN 'Общее' + WHEN ((ri.info->'svedFL'->'svedRObr'->>'prOtsRObr' = '1' OR ri.info->'svedFL'->'svedInObr'->>'prOtsInObr' = '1')) THEN 'Нет данных' + ELSE 'Не указано' -- Добавлено условие по умолчанию + END AS education, + ( + SELECT COUNT(*) + FROM jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') AS childs + WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' + AND age(make_date(NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, + NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'den','')::int)) < make_interval(years => 18) + ) AS number_children + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND r.system_update_date >= '${UP_D}' + LEFT JOIN public.decision_deferment_dto ddd ON ddd.recruit_id = r.id and ddd.hidden is false + JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) + --JOIN public.recruits_history rh on rh.recruit_id=r.id +--WHERE r.system_update_date >= '${UP_D}' +), +adresses as ( +SELECT + r.id as recruit_id, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS actualAddress, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateStart' END) AS actualAddress_regDateStart, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateEnd' END) AS actualAddress_regDateEnd, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS residenceAddress, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateStart' END) AS residenceAddress_regDateStart, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateEnd' END) AS residenceAddress_regDateEnd, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) AS residenceAddress_kodTipReg +FROM + public.recruits AS r +LEFT JOIN + LATERAL jsonb_array_elements(r.addresses) AS addr ON true AND r.system_update_date >= '${UP_D}' +--WHERE r.system_update_date >= '${UP_D}' +GROUP BY + r.id +), +extracted_children AS ( SELECT ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - public.recruits_info ri + jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child + FROM base_recruit_data ri WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' + jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' ), children_birth_dates AS ( SELECT recruit_id, (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year + FROM extracted_children ), children_count AS ( SELECT @@ -111,273 +638,56 @@ children_count AS ( GROUP BY recruit_id ), -registration_reasons AS ( - SELECT mrr.name AS reason_registration, - r.id AS recruit_id - FROM public.recruits AS r - JOIN public.military_registration_reason AS mrr - ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) -), driver_license AS ( SELECT ri.recruit_id, COALESCE( - string_agg(sved_vodit->>'kategoriya', ', '), + string_agg(sved_vodit->>'naimKatTS', ', '), 'Нет информации' ) AS driver_license - FROM - public.recruits_info ri + FROM base_recruit_data ri LEFT JOIN LATERAL - jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS sved_vodit + jsonb_array_elements(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS sved_vodit ON true GROUP BY ri.recruit_id -), - -sports_category AS ( -- проверка на наличие спортивного разряда или звания - SELECT - ri.recruit_id, - CASE - WHEN - -- Условия для "true" (спортивная категория) - ri.info->'svedSport' ? 'sport' -- Проверяем, что ключ 'sport' существует - AND jsonb_typeof(ri.info->'svedSport'->'sport') = 'array' -- Проверяем, что 'sport' это массив - AND jsonb_array_length(ri.info->'svedSport'->'sport') > 0 -- И массив не пустой - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedSport'->'sport') AS sport_elem - WHERE - ( - -- Проверяем, что 'sportRazr' существует и срок действия актуален - jsonb_typeof(sport_elem->'sportRazr') = 'object' - AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL - AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') > CURRENT_DATE - ) - OR ( - -- Проверяем, что 'sportZvan' существует и не пусто - sport_elem->>'sportZvan' IS NOT NULL - AND sport_elem->>'sportZvan' <> '' - ) - OR ( - -- Проверяем, что 'sportRazr' существует и срок действия истек - jsonb_typeof(sport_elem->'sportRazr') = 'object' - AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL - AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') <= CURRENT_DATE - ) - ) - AND ri.info->'svedSport'->>'prOtsSvedSport' IS NULL - THEN true - - WHEN - -- Условия для "false" (не является спортивной категорией) - ( - ri.info->'svedSport'->'sport' IS NULL -- Если 'sport' = NULL - OR ( - ri.info->'svedSport' ? 'sport' -- Проверяем, что ключ 'sport' существует - AND jsonb_typeof(ri.info->'svedSport'->'sport') = 'array' -- Поле 'sport' должно быть массивом - AND jsonb_array_length(ri.info->'svedSport'->'sport') > 0 -- И массив не пустой - ) - ) - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedSport'->'sport') AS sport_elem - WHERE - ( - -- Проверяем 'sportZvan' и если оно не существует или пусто - sport_elem->>'sportZvan' IS NULL OR sport_elem->>'sportZvan' = '' - ) - OR ( - -- Проверяем 'sportRazr' и срок действия истек - jsonb_typeof(sport_elem->'sportRazr') = 'object' - AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL - AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') > CURRENT_DATE - -- И 'sportZvan' также не должно существовать или быть пустым - AND (sport_elem->>'sportZvan' IS NULL OR sport_elem->>'sportZvan' = '') - ) - ) - AND ri.info->'svedSport'->>'prOtsSvedSport' IS NULL - THEN false - - WHEN - -- Условия для "null" (нет информации) - ri.info->'svedSport'->>'prOtsSvedSport' = '1' - OR ri.info->'svedSport' IS NULL -- Проверяем, что 'svedSport' отсутствует - THEN null - - ELSE null -- Неопределенное значение для всех других случаев - END AS sports_category - FROM public.recruits_info ri -), - -disability_group AS ( - SELECT - ri.recruit_id, - CASE - WHEN ri.info->'svedInvalid'->'invalid'->>'gruppa' IS NOT NULL - AND ri.info->'svedInvalid'->>'prOtsSvedInvalid' IS NULL - AND (ri.info->'sportRazr'->>'dataSnyat' IS NULL - OR TO_DATE(ri.info->'sportRazr'->>'dataSnyat', 'YYYY-MM-DD') <= CURRENT_DATE) - THEN ri.info->'svedInvalid'->'invalid'->>'gruppa' - WHEN ri.info->'svedInvalid'->>'prOtsSvedInvalid' = '1' THEN 'Нет информации об инвалидности' - ELSE 'Нет информации об инвалидности' - END AS disability_group - FROM public.recruits_info ri -), - -tractor_license AS ( - SELECT - ri.recruit_id, - CASE - WHEN ri.info->'svedUdostrTraktMash'->>'udostrTraktMash' IS NOT NULL - AND TO_DATE(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataOkonchUTM', 'YYYY-MM-DD') > CURRENT_DATE - THEN true - WHEN ri.info->'svedUdostrTraktMash'->>'udostrTraktMash' IS NOT NULL - AND TO_DATE(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataOkonchUTM', 'YYYY-MM-DD') <= CURRENT_DATE - THEN false - WHEN ri.info->'svedUdostrTraktMash'->>'prOtsSvedUTM' = '1' THEN null - ELSE null - END AS tractor_license - FROM public.recruits_info ri -), - -is_wanted AS ( - SELECT - ri.recruit_id, - CASE - WHEN - jsonb_typeof(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -- проверяем, что 'faktyUgolovPresl' это массив - AND jsonb_array_length(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') > 0 -- массив не пустой - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') AS criminal_prosecution - WHERE - criminal_prosecution->>'dataPrekrashh' IS NULL -- дата прекращения отсутствует - ) - AND ri.info->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' IS NULL - THEN true - - WHEN - jsonb_typeof(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -- проверяем, что 'faktyUgolovPresl' это массив - AND jsonb_array_length(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') > 0 -- массив не пустой - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') AS criminal_prosecution - WHERE - criminal_prosecution->>'dataPrekrashh' IS NOT NULL -- дата прекращения не отсутствует - ) - AND ri.info->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' IS NULL - THEN false - - WHEN - ri.info->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' = '1' - THEN NULL - - ELSE NULL - END AS criminal_prosecution - FROM public.recruits_info ri -), - -employment AS ( - SELECT - ri.recruit_id, - COALESCE( - CASE - WHEN ( - jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' IN ('1', '2', '4') - ) - ) OR ( - jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' IN ('1', '2', '4') - ) - ) THEN 'Обучается' - ELSE NULL - END || - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) THEN - CASE - WHEN ( - jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' IN ('1', '2', '4') - ) - ) OR ( - jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' IN ('1', '2', '4') - ) - ) THEN ', Работает' - ELSE 'Работает' - END - ELSE NULL - END, - CASE - WHEN - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' -- Отсутствие сведений о вузе - AND info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' -- Отсутствие сведений о колледже - AND info->'svedTrud'->>'prOtsSvedTrud' = '1' -- Отсутствие сведений о работе - THEN 'Нет информации' - ELSE 'Нет информации' - END - ) AS employment_status - FROM public.recruits_info ri ) - SELECT r.full_name, r.last_name, r.first_name, r.middle_name, - r.gender, + r.gender, + r.snils, + r.inn, r.birth_date, - EXTRACT(YEAR FROM AGE(r.birth_date)) AS age, + r.age, r.birth_place, r.phone, - r.conscription AS deferment_liberation, - + r.email, + r.deferment_liberation, CASE - WHEN (EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 18 AND 70 AND r.gender = 'MALE' AND - (r.conscription IS NULL OR r.conscription = false) AND - COALESCE(cc.children_under_16, 0) < 5 - AND r.vu_current_info ->> 'isMilitaryRegistered' = 'true') - OR - (EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 18 AND 45 AND r.gender = 'FEMALE' AND - (r.conscription IS NULL OR r.conscription = false) AND - COALESCE(cc.children_under_16, 0) < 5 - AND r.vu_current_info ->> 'isMilitaryRegistered' = 'true') + WHEN (EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 30 AND 50 AND r.gender = 'MALE') -- мужчины от 30 до 50 лет + OR (EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 30 AND 45 AND r.gender = 'FEMALE') -- женщины от 30 до 45 лет + AND COALESCE(cc.children_under_16, 0) < 5 THEN true ELSE false END AS mobilization, - CASE - WHEN (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 - AND gender = 'MALE' -- мужчины от 18 до 30 лет - AND (conscription IS NULL OR conscription = false) - AND r.vu_current_info ->> 'isMilitaryRegistered' = 'true') + CASE + WHEN EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 18 AND 30 + AND r.gender = 'MALE' + AND r.deferment_liberation IS true -- нет отсрочки и нет освобождения от службы THEN true ELSE false END AS urgent_service, - CASE WHEN (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 - AND gender = 'MALE' -- мужчины от 18 до 50 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки - AND ri.info->'svedSudim'->>'prOtsSvedSudim' = '1' -- признак отсутствия данных о судимости - AND r.vu_current_info ->> 'isMilitaryRegistered' = 'true') + CASE + WHEN EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 18 AND 50 + AND r.gender = 'MALE' + AND (r.info->'svedFL'->'svedPND'->>'prOtsSvedPND' = '1' + OR uchet_pnd IS false) + AND r.info->'svedFL'->'svedUchetVICH'->>'prOtsSvedUchetVICH' = '1' -- признак отсутствия сведений о заболевании ВИЧ THEN true ELSE false END AS contract_service, @@ -388,98 +698,47 @@ SELECT ELSE 'Нет информации' END AS is_registered, -CASE - WHEN (EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - )) THEN 'Высшее' - WHEN (EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' = '10' - )) THEN 'Среднее профессиональное' - WHEN (EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('7', '9') - )) THEN 'Общее' - WHEN ((ri.info->'svedRObr'->>'prOtsRObr' = '1' OR ri.info->'svedInObr'->>'prOtsInObr' = '1')) THEN 'Нет данных' - ELSE 'Не указано' -- Добавлено условие по умолчанию - END AS education, - - ri.info->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + r.education, + r.marital_status, + r.number_children, (SELECT COUNT(*) - FROM jsonb_array_elements(ri.info->'svedDeti'->'rebenok') AS childs - WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND age(make_date(NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'den','')::int)) < make_interval(years => 18) - ) AS number_children, - - (SELECT COUNT(*) - FROM jsonb_array_elements(ri.info->'svedDeti'->'rebenok') AS childs - WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' + FROM jsonb_array_elements(r.info->'svedFL'->'svedDeti'->'rebenok') AS childs + WHERE jsonb_typeof(r.info->'svedFL'->'svedDeti'->'rebenok') = 'array' AND age(make_date(NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'den','')::int)) >= make_interval(years => 18) ) AS number_children_18_old, - - ri.info->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, - ri.info->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, - ri.info->'svedVoin'->'voin'->>'dataReg' AS issue_date, - ri.recruit_id, -- ID рекрута - r.target_recruitment_id AS recruitment_id, - rr.reason_registration, -- причина постановки на учет char - sc.sports_category, -- наличие спортивной категории bool + r.passport_number, + r.passport_series, + r.issue_date, + r.recruit_id, -- ID рекрута + r.recruitment_id, + r.reason_registration, -- причина постановки на учет char + r.date_registration, -- дата постановки на учет date + r.date_deregistration, -- дата снятия с учета date + r.sports_category, -- наличие спортивной категории bool dl.driver_license, -- категории водительских удостоверений char - dg.disability_group, -- группа инвалидности char - tl.tractor_license, -- наличие удостоверения тракториста bool - iw.criminal_prosecution AS is_wanted, -- наличие уголовного преследования bool - em.employment_status AS employment -- занятость char -FROM - public.recruits_info ri -JOIN - public.recruits r ON ri.recruit_id = r.id -LEFT JOIN - children_count cc ON r.id = cc.recruit_id -- Присоединение для получения количества детей -JOIN - registration_reasons rr ON rr.recruit_id = ri.recruit_id -JOIN - sports_category sc ON sc.recruit_id = ri.recruit_id -JOIN - driver_license dl ON dl.recruit_id = ri.recruit_id -JOIN - disability_group dg ON dg.recruit_id = ri.recruit_id -JOIN - tractor_license tl ON tl.recruit_id = ri.recruit_id -JOIN - is_wanted iw ON iw.recruit_id = ri.recruit_id -JOIN - employment em ON em.recruit_id = ri.recruit_id -WHERE - r.target_recruitment_id IS NOT NULL - AND r.current_recruitment_id IS NOT NULL; - N + r.disability_group, -- группа инвалидности char + r.tractor_license, -- наличие удостоверения тракториста bool + r.criminal_prosecution AS is_wanted, -- наличие уголовного преследования bool + r.employment_status AS employment, -- занятость char + r.update_date, + adr.actualAddress as residence, + adr.actualAddress_regDateStart as start_date_residence, + adr.actualAddress_regDateEnd as end_date_residence, + adr.residenceAddress as address_place_stay, + adr.residenceAddress_regDateStart as start_date_place_stay, + adr.residenceAddress_regDateEnd as end_date_place_stay, + case when adr.residenceAddress_kodTipReg='1' then 'В жилом помещении, не являющимся местом жительства физического лица' + when adr.residenceAddress_kodTipReg='2' then 'В учреждении уголовно-исполнительной системы' + else null end as type_place_stay, + r.system_pgs_status +FROM base_recruit_data r +LEFT JOIN children_count cc ON r.recruit_id = cc.recruit_id -- Присоединение для получения количества детей +JOIN driver_license dl ON dl.recruit_id = r.recruit_id +join adresses adr ON r.recruit_id=adr.recruit_id + Y 208 @@ -516,8 +775,8 @@ WHERE Y - 672 - 208 + 656 + 64 diff --git a/mappings/info_recruits/job_general_citizen.hwf b/mappings/info_recruits/job_general_citizen.hwf new file mode 100644 index 0000000..e4410b7 --- /dev/null +++ b/mappings/info_recruits/job_general_citizen.hwf @@ -0,0 +1,143 @@ + + + job_general_citizen + Y + + + + - + 2025/04/14 16:31:08.086 + - + 2025/04/14 16:31:08.086 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 480 + 352 + + + + job_info_recruits.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/job_info_recruits.hwf + Nothing + + Y + + N + local + N + N + Y + N + 688 + 352 + + + + supportive_count_citizen.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/supportive_count_citizen.hpl + Basic + + Y + + N + local + N + N + Y + N + 1008 + 352 + + + + Success + + SUCCESS + + N + 1216 + 352 + + + + SQL + + SQL + + ervu-dashboard + N + delete from public.count_citizen + + N + N + N + 864 + 352 + + + + + + Start + job_info_recruits.hwf + Y + Y + Y + + + supportive_count_citizen.hpl + Success + Y + N + Y + + + job_info_recruits.hwf + SQL + Y + N + Y + + + SQL + supportive_count_citizen.hpl + Y + Y + Y + + + + + + diff --git a/mappings/info_recruits/job_info_recruits.hwf b/mappings/info_recruits/job_info_recruits.hwf index f7aa501..422887c 100644 --- a/mappings/info_recruits/job_info_recruits.hwf +++ b/mappings/info_recruits/job_info_recruits.hwf @@ -5,12 +5,23 @@ + 0 - 2024/08/16 15:32:20.489 - 2024/08/16 15:32:20.489 - + + ST_CH_D + + + + + UP_D + + + + Start @@ -25,19 +36,9 @@ N 0 1 - N - 368 - 624 - - - - Success - - SUCCESS - - N - 1056 - 624 + Y + 1328 + 2112 @@ -48,69 +49,28 @@ N N N - Y + N N - N + Y ${Internal.Entry.Current.Folder}/info_recruits.hpl - - - Basic + txt + ${PROJECT_HOME}/log_jobs/log_job_info_recruits + Rowlevel + + UP_D + UPDATE_DATE + Y - N + Y local N N Y N - 784 - 256 - - - - SQL.ri - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen - N - N - N - 640 - 256 - - - - SQL.opekun - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_guardianship - N - N - N - 640 - 192 - - - - SQL.spouse - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_spouse - N - N - N - 640 - 320 + 1856 + 1664 @@ -124,8 +84,8 @@ N N N - 640 - 384 + 1216 + 2400 @@ -138,22 +98,24 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/opekun.hpl - - Basic + + UP_D + UPDATE_DATE + Y - N + Y local N N Y N - 784 - 192 + 1856 + 1728 @@ -166,22 +128,24 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/spouse.hpl - - Basic + + UP_D + UPDATE_DATE + Y - N + Y local N N Y N - 784 - 320 + 1856 + 1792 @@ -194,22 +158,24 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/child.hpl - - Basic + + UP_D + UPDATE_DATE + Y - N + Y local N N Y N - 784 - 384 + 1856 + 1856 @@ -223,8 +189,8 @@ N N N - 640 - 448 + 1216 + 2464 @@ -237,22 +203,24 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/disease.hpl - - Basic + + UP_D + UPDATE_DATE + Y - N + Y local N N Y N - 784 - 448 + 1856 + 1920 @@ -266,8 +234,8 @@ N N N - 640 - 512 + 1216 + 2528 @@ -280,22 +248,24 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/medical_authorities.hpl - - Basic + + UP_D + UPDATE_DATE + Y - N + Y local N N Y N - 784 - 512 + 1856 + 1984 @@ -309,8 +279,8 @@ N N N - 640 - 576 + 1216 + 2592 @@ -323,22 +293,24 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/disability.hpl - - Basic + + UP_D + UPDATE_DATE + Y - N + Y local N N Y N - 784 - 576 + 1856 + 2048 @@ -352,8 +324,8 @@ N N N - 640 - 640 + 1216 + 2656 @@ -366,22 +338,24 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/drivers_licence.hpl - - Basic + + UP_D + UPDATE_DATE + Y - N + Y local N N Y N - 784 - 640 + 1856 + 2112 @@ -395,8 +369,8 @@ N N N - 640 - 704 + 1216 + 2720 @@ -409,22 +383,24 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/property.hpl - - Basic + + UP_D + UPDATE_DATE + Y - N + Y local N N Y N - 784 - 704 + 1856 + 2176 @@ -438,8 +414,8 @@ N N N - 640 - 768 + 1216 + 2784 @@ -452,22 +428,24 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/citizen_foreign.hpl - - Basic + + UP_D + UPDATE_DATE + Y - N + Y local N N Y N - 784 - 768 + 1856 + 2240 @@ -481,8 +459,8 @@ N N N - 640 - 832 + 1216 + 2848 @@ -495,22 +473,24 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/citizenship.hpl - - Basic + + UP_D + UPDATE_DATE + Y - N + Y local N N Y N - 784 - 832 + 1856 + 2304 @@ -524,8 +504,8 @@ N N N - 640 - 896 + 1216 + 2912 @@ -538,22 +518,24 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/deputy.hpl - - Basic + + UP_D + UPDATE_DATE + Y - N + Y local N N Y N - 784 - 896 + 1856 + 2368 @@ -567,8 +549,8 @@ N N N - 640 - 960 + 1216 + 2976 @@ -581,22 +563,24 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/prosecution.hpl - - Basic + + UP_D + UPDATE_DATE + Y - N + Y local N N Y N - 784 - 960 + 1856 + 2432 @@ -610,8 +594,8 @@ N N N - 640 - 1024 + 1216 + 3040 @@ -624,22 +608,24 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/punishment.hpl - - Basic + + UP_D + UPDATE_DATE + Y - N + Y local N N Y N - 784 - 1024 + 1856 + 2496 @@ -653,8 +639,8 @@ N N N - 640 - 1088 + 1216 + 3104 @@ -667,22 +653,24 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/passport.hpl - - Basic + + UP_D + UPDATE_DATE + Y - N + Y local N N Y N - 784 - 1088 + 1856 + 2560 @@ -696,8 +684,8 @@ N N N - 640 - 1152 + 1216 + 3168 @@ -710,22 +698,24 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/subpoena.hpl - - Basic + + ST_CH_D + STATUS_CHANGE_DATE + Y - N + Y local N N Y N - 784 - 1152 + 800 + 2112 @@ -739,8 +729,8 @@ N N N - 640 - 1216 + 1216 + 3232 @@ -753,10 +743,270 @@ N Y N - N + Y ${Internal.Entry.Current.Folder}/temporary_measure.hpl - - + Basic + + + ST_CH_D + STATUS_CHANGE_DATE + + Y + + Y + local + N + N + Y + N + 800 + 2176 + + + + select_delta_time.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/select_delta_time.hpl + Basic + + Y + + N + local + N + N + Y + Y + 1488 + 2112 + + + + Success 2 + + SUCCESS + + N + 1072 + 2784 + + + + select_delta_time_subpoena.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/select_delta_time_subpoena.hpl + Basic + + Y + + N + local + N + N + Y + Y + 1120 + 2112 + + + + Success opekun + + SUCCESS + + N + 2016 + 1728 + + + + Success info_recruits + + SUCCESS + + N + 2016 + 1664 + + + + Success spouse + + SUCCESS + + N + 2016 + 1792 + + + + Success child + + SUCCESS + + N + 2016 + 1856 + + + + Success desease + + SUCCESS + + N + 2016 + 1920 + + + + Success medical_autorities + + SUCCESS + + N + 2048 + 1984 + + + + Success disability + + SUCCESS + + N + 2016 + 2048 + + + + Success driver_license + + SUCCESS + + N + 2016 + 2112 + + + + Success property + + SUCCESS + + N + 2016 + 2176 + + + + Success citizen_foreign + + SUCCESS + + N + 2016 + 2240 + + + + Success citizenship + + SUCCESS + + N + 2016 + 2304 + + + + Success deputy + + SUCCESS + + N + 2016 + 2368 + + + + Success prosecution + + SUCCESS + + N + 2016 + 2432 + + + + Success punishment + + SUCCESS + + N + 2016 + 2496 + + + + Success passport + + SUCCESS + + N + 2016 + 2560 + + + + Success subpoena + + SUCCESS + + N + 496 + 2112 + + + + Success temporary_measure + + SUCCESS + + N + 496 + 2176 + + + + incident.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/incident.hpl Basic Y @@ -767,371 +1017,1016 @@ N Y N - 784 - 1216 + 1856 + 3264 + + + + citizen_individual_decisions.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_individual_decisions.hpl + Basic + + Y + + N + local + N + N + Y + N + 1856 + 3200 + + + + citizen_complex_filters.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_complex_filters.hpl + Basic + + Y + + N + local + N + N + Y + N + 1856 + 3136 + + + + citizen_appealing_violations_fz53.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_appealing_violations_fz53.hpl + Basic + + Y + + N + local + N + N + Y + N + 1856 + 3072 + + + + citizen_criminal_liability_fz53.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_criminal_liability_fz53.hpl + Basic + + Y + + N + local + N + N + Y + N + 1856 + 3008 + + + + citizen_information_search.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_information_search.hpl + Basic + + Y + + N + local + N + N + Y + N + 1856 + 2944 + + + + citizen_criminal_record.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_criminal_record.hpl + Basic + + Y + + N + local + N + N + Y + N + 1856 + 2880 + + + + citizen_sports_categories.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_sports_categories.hpl + Basic + + Y + + N + local + N + N + Y + N + 1856 + 2816 + + + + citizen_education_diplomas_received.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_education_diplomas_received.hpl + Basic + + + UP_D + UPDATE_DATE + + Y + + Y + local + N + N + Y + N + 1856 + 2752 + + + + citizen_work_activity.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_work_activity.hpl + Basic + + Y + + N + local + N + N + Y + N + 1856 + 2688 + + + + Success citizen_work_activity + + SUCCESS + + N + 2256 + 2688 + + + + Success citizen_education_diplomas_received + + SUCCESS + + N + 2256 + 2752 + + + + Success citizen_sports_categories + + SUCCESS + + N + 2256 + 2816 + + + + Success citizen_criminal_record + + SUCCESS + + N + 2256 + 2880 + + + + Success citizen_information_search + + SUCCESS + + N + 2256 + 2944 + + + + Success citizen_criminal_liability_fz53 + + SUCCESS + + N + 2256 + 3008 + + + + Success citizen_appealing_violations_fz53 + + SUCCESS + + N + 2256 + 3072 + + + + Success citizen_complex_filters + + SUCCESS + + N + 2256 + 3136 + + + + Success citizen_individual_decisions + + SUCCESS + + N + 2256 + 3200 + + + + Success incident + + SUCCESS + + N + 2256 + 3264 + + + + Success deferment + + SUCCESS + + N + 2256 + 3344 + + + + deferments + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/deferments.hpl + Basic + + Y + + N + local + N + N + Y + N + 1856 + 3344 - - info_recruits - Success - Y - Y - N - - - Start - SQL.ri - Y - Y - Y - - - SQL.ri - info_recruits - Y - Y - N - - - SQL.opekun - opekun - Y - Y - N - - - SQL.spouse - spouse - Y - Y - N - - - SQL.child - child - Y - Y - N - - - child - Success - Y - Y - N - - - spouse - Success - Y - Y - N - - - opekun - Success - Y - Y - N - - - Start - SQL.opekun - Y - Y - Y - - - Start - SQL.spouse - Y - Y - Y - Start SQL.child - Y + N Y Y Start SQL.disease + N + Y + Y + + + Start + SQL.medical_authorities + N + Y + Y + + + Start + SQL.disability + N + Y + Y + + + Start + SQL.drivers_licence + N + Y + Y + + + Start + SQL.property + N + Y + Y + + + Start + SQL.citizen_foreign + N + Y + Y + + + Start + SQL.citizenship + N + Y + Y + + + Start + SQL.deputy + N + Y + Y + + + Start + SQL.prosecution + N + Y + Y + + + Start + SQL.punishment + N + Y + Y + + + Start + SQL.passport + N + Y + Y + + + Start + SQL.subpoena + N + Y + Y + + + Start + SQL.tempmeas + N + Y + Y + + + Start + select_delta_time.hpl Y Y Y + + select_delta_time.hpl + spouse + Y + Y + N + + + select_delta_time.hpl + opekun + Y + Y + N + + + select_delta_time.hpl + info_recruits + Y + Y + N + + + select_delta_time.hpl + child + Y + Y + N + + + SQL.child + Success 2 + N + Y + N + SQL.disease + Success 2 + N + Y + N + + + SQL.disability + Success 2 + N + Y + N + + + SQL.property + Success 2 + N + Y + N + + + SQL.citizen_foreign + Success 2 + N + Y + N + + + SQL.citizenship + Success 2 + N + Y + N + + + SQL.deputy + Success 2 + N + Y + N + + + SQL.prosecution + Success 2 + N + Y + N + + + SQL.punishment + Success 2 + N + Y + N + + + SQL.passport + Success 2 + N + Y + N + + + SQL.subpoena + Success 2 + N + Y + N + + + SQL.tempmeas + Success 2 + N + Y + N + + + select_delta_time.hpl disease Y Y N - Start - SQL.medical_authorities - Y - Y - Y - - - SQL.medical_authorities - medical_authorities - Y - Y - N - - - disease - Success - Y - Y - N - - - medical_authorities - Success - Y - Y - N - - - Start - SQL.disability - Y - Y - Y - - - SQL.disability - disability - Y - Y - N - - - disability - Success - Y - Y - N - - - Start - SQL.drivers_licence - Y - Y - Y - - - SQL.drivers_licence + select_delta_time.hpl drivers_licence Y Y N - drivers_licence - Success + select_delta_time.hpl + medical_authorities Y Y N - Start - SQL.property + select_delta_time.hpl + disability Y Y - Y + N - SQL.property + select_delta_time.hpl property Y Y N - property - Success - Y - Y - N - - - Start - SQL.citizen_foreign - Y - Y - Y - - - SQL.citizen_foreign + select_delta_time.hpl citizen_foreign Y Y N - citizen_foreign - Success - Y - Y - N - - - SQL.citizenship + select_delta_time.hpl citizenship Y Y N - citizenship - Success - Y - Y - N - - - Start - SQL.citizenship - Y - Y - Y - - - SQL.deputy + select_delta_time.hpl deputy Y Y N - deputy - Success - Y - Y - N - - - Start - SQL.deputy - Y - Y - Y - - - SQL.prosecution + select_delta_time.hpl prosecution Y Y N - Start - SQL.prosecution - Y - Y - Y - - - prosecution - Success - Y - Y - N - - - SQL.punishment + select_delta_time.hpl punishment Y Y N - Start - SQL.punishment - Y - Y - Y - - - punishment - Success - Y - Y - N - - - Start - SQL.passport - Y - Y - Y - - - SQL.passport + select_delta_time.hpl passport Y Y N - passport - Success + Start + select_delta_time_subpoena.hpl Y Y - N + Y - SQL.subpoena + select_delta_time_subpoena.hpl subpoena Y Y N - subpoena - Success - Y - Y - N - - - Start - SQL.subpoena - Y - Y - Y - - - SQL.tempmeas + select_delta_time_subpoena.hpl temporary_measure Y Y N - Start - SQL.tempmeas + info_recruits + Success info_recruits Y - Y + N + Y + + + opekun + Success opekun + Y + N + Y + + + spouse + Success spouse + Y + N + Y + + + child + Success child + Y + N + Y + + + disease + Success desease + Y + N + Y + + + medical_authorities + Success medical_autorities + Y + N + Y + + + disability + Success disability + Y + N + Y + + + drivers_licence + Success driver_license + Y + N + Y + + + property + Success property + Y + N + Y + + + citizen_foreign + Success citizen_foreign + Y + N + Y + + + citizenship + Success citizenship + Y + N + Y + + + deputy + Success deputy + Y + N + Y + + + prosecution + Success prosecution + Y + N + Y + + + punishment + Success punishment + Y + N + Y + + + passport + Success passport + Y + N + Y + + + subpoena + Success subpoena + Y + N Y temporary_measure - Success + Success temporary_measure + Y + N + Y + + + incident.hpl + Success incident + Y + N + Y + + + citizen_individual_decisions.hpl + Success citizen_individual_decisions + Y + N + Y + + + citizen_complex_filters.hpl + Success citizen_complex_filters + Y + N + Y + + + citizen_appealing_violations_fz53.hpl + Success citizen_appealing_violations_fz53 + Y + N + Y + + + citizen_criminal_liability_fz53.hpl + Success citizen_criminal_liability_fz53 + Y + N + Y + + + citizen_information_search.hpl + Success citizen_information_search + Y + N + Y + + + citizen_criminal_record.hpl + Success citizen_criminal_record + Y + N + Y + + + citizen_sports_categories.hpl + Success citizen_sports_categories + Y + N + Y + + + citizen_education_diplomas_received.hpl + Success citizen_education_diplomas_received + Y + N + Y + + + citizen_work_activity.hpl + Success citizen_work_activity + Y + N + Y + + + select_delta_time.hpl + citizen_work_activity.hpl + Y + Y + N + + + select_delta_time.hpl + citizen_education_diplomas_received.hpl + Y + Y + N + + + select_delta_time.hpl + citizen_sports_categories.hpl + Y + Y + N + + + select_delta_time.hpl + citizen_criminal_record.hpl + N + Y + N + + + select_delta_time.hpl + citizen_information_search.hpl + N + Y + N + + + select_delta_time.hpl + citizen_criminal_liability_fz53.hpl + N + Y + N + + + select_delta_time.hpl + citizen_appealing_violations_fz53.hpl + N + Y + N + + + select_delta_time.hpl + citizen_complex_filters.hpl + N + Y + N + + + select_delta_time.hpl + citizen_individual_decisions.hpl + N + Y + N + + + select_delta_time.hpl + incident.hpl + N + Y + N + + + deferments + Success deferment + Y + N + Y + + + select_delta_time.hpl + deferments Y Y N + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 2352 + 1616 + доработать дельту, сделать дельту для остальных таблиц + 325 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 2336 + 1568 + status_change_date добавить колонку в ervu_dashboard.subpoena + 367 + diff --git a/mappings/info_recruits/job_last_update_date.hwf b/mappings/info_recruits/job_last_update_date.hwf new file mode 100644 index 0000000..487e2fb --- /dev/null +++ b/mappings/info_recruits/job_last_update_date.hwf @@ -0,0 +1,76 @@ + + + job_last_update_date + Y + + + + - + 2025/01/10 15:06:41.340 + - + 2025/01/10 15:06:41.340 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 480 + 224 + + + + Pipeline + + PIPELINE + + N + N + N + N + N + N + Basic + + Y + + N + N + N + Y + N + 848 + 224 + + + + SQL + + SQL + + N + N + N + N + 656 + 224 + + + + + + + + + diff --git a/mappings/info_recruits/medical_authorities.hpl b/mappings/info_recruits/medical_authorities.hpl index 04877f0..75fb3ff 100644 --- a/mappings/info_recruits/medical_authorities.hpl +++ b/mappings/info_recruits/medical_authorities.hpl @@ -1,3 +1,4 @@ + medical_authorities @@ -6,7 +7,6 @@ Normal - / N @@ -16,8 +16,6 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -25,14 +23,128 @@ Table input hiv Table output - Y + N Table input 2 Table output 2 + N + + + Table input hiv + Insert / update + Y + + + Table input 2 + Insert / update 2 Y + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + ervu_dashboard + medical_authorities
+ + recruit_id + recruit_id + N + + + close_date + close_date + Y + + + hiv + hiv + Y + + + start_date + start_date + Y + +
+ N + + + 672 + 208 + +
+ + Insert / update 2 + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + medical_authorities
+ + recruit_id + recruit_id + N + + + change_date + change_date + Y + + + close_date + close_date + Y + + + start_date + start_date + Y + + + registered_in_pnd + registered_in_pnd + Y + +
+ N + + + 672 + 352 + +
Table input 2 TableInput @@ -45,29 +157,32 @@ ervu_person_registry - with uchet as -(select jsonb_array_elements(ri.info->'svedPND'->'svedUchetDisp'->'svedUchet') u, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedPND'->'svedUchetDisp'->'svedUchet') = 'array') -select - r.id recruit_id, - u->>'dataPostUchet' start_date, - u->>'dataSnyatUchet' close_date, - u->>'dataPlan' change_date -from public.recruits r -join uchet on r.id = uchet.recruit_id; - 0 - N - N - N + 0 + with uchet as + (select ri.recruit_id, + jsonb_array_elements(ri.info -> 'svedFL' -> 'svedPND' -> 'svedUchetDisp' -> + 'svedUchet') u, + ri.info -> 'svedFL' -> 'svedPND' -> 'svedUchetDisp' -> 'svedUchet' ->> + 'priznakNalichSved' = '1' as registered_in_pnd + from public.recruits_info ri + join public.recruits r + ON r.id = ri.recruit_id + AND r.system_update_date >= '${UP_D}' + where jsonb_typeof(ri.info -> 'svedFL' -> 'svedPND' -> 'svedUchetDisp' -> 'svedUchet') = + 'array') +select recruit_id, + u ->> 'dataPostUchet' start_date, + u ->> 'dataSnyatUchet' close_date, + u ->> 'dataPlan' change_date, + registered_in_pnd +from uchet; + + Y - 208 352 - Y @@ -82,29 +197,28 @@ join uchet on r.id = uchet.recruit_id; ervu_person_registry - with uchet as -(select jsonb_array_elements(ri.info->'svedUchetVICH'->'uchetVICH') u, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedUchetVICH'->'uchetVICH') = 'array') -select - r.id recruit_id, - to_date(u->>'dataPostUchet', 'YYYY-MM-DD') start_date, - to_date(u->>'dataSnyat', 'YYYY-MM-DD') close_date, - true HIV -from public.recruits r -join uchet on r.id = uchet.recruit_id; - 0 - N - N - N + 0 + with uchet as + (select ri.recruit_id, + jsonb_array_elements(ri.info->'svedFL'->'svedUchetVICH'->'uchetVICH') u, + ri.info->'svedFL'->'svedUchetVICH'->>'priznakNalichSved' = '1' has_vich + from public.recruits_info ri + join public.recruits r + ON r.id = ri.recruit_id + AND r.system_update_date >= '${UP_D}' + where jsonb_typeof(ri.info->'svedFL'->'svedUchetVICH'->'uchetVICH') = 'array') +select + recruit_id, + to_date(u->>'dataPostUchet', 'YYYY-MM-DD') start_date, + to_date(u->>'dataSnyat', 'YYYY-MM-DD') close_date, + true HIV +from uchet; + Y - 208 208 - Y @@ -118,31 +232,27 @@ join uchet on r.id = uchet.recruit_id; none - ervu-dashboard - ervu_dashboard - medical_authorities
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + medical_authorities
+ N + Y + N + Y - 416 - 208 - Y + 80
@@ -156,31 +266,27 @@ join uchet on r.id = uchet.recruit_id; none - ervu-dashboard - ervu_dashboard - medical_authorities
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + medical_authorities
+ N + Y + N + Y - - 416 - 352 - Y + 432 + 480
diff --git a/mappings/info_recruits/opekun.hpl b/mappings/info_recruits/opekun.hpl index 9d8da56..0dc4a86 100644 --- a/mappings/info_recruits/opekun.hpl +++ b/mappings/info_recruits/opekun.hpl @@ -1,3 +1,4 @@ + opekun @@ -6,7 +7,6 @@ Normal - / N @@ -16,8 +16,6 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -25,9 +23,64 @@ Table input Table output + N + + + Table input + Insert / update Y + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + ervu_dashboard + citizen_guardianship
+ + recruit_id + recruit_id + N + + + full_name + full_name + Y + + + birth_date + birth_date + Y + + + snils + snils + Y + +
+ N + + + 560 + 240 + +
Table input TableInput @@ -40,11 +93,14 @@ ervu_person_registry + N + 0 with person as -(select jsonb_array_elements(ri.info->'svedOpekun'->'svedSoczPod') ch, +(select jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') ch, ri.recruit_id from public.recruits_info ri -where jsonb_typeof(ri.info->'svedOpekun'->'svedSoczPod') = 'array') +join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' +where jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array') select r.id recruit_id, concat_ws(' ', ch->'fioOpek'->>'familiya', @@ -52,21 +108,15 @@ select ch->'fioOpek'->>'otchestvo') full_name, make_date(NULLIF(ch->'dataRozhdDok'->>'god', '')::int, NULLIF(ch->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(ch->'dataRozhdDok'->>'den','')::int) birth_date, + NULLIF(ch->'dataRozhdDok'->>'den','')::int) birth_date, ch->>'snils' snils from public.recruits r join person on r.id = person.recruit_id - 0 - - N - N - N + Y - - 208 - 208 - Y + 288 + 240 @@ -80,31 +130,27 @@ join person on r.id = person.recruit_id none - ervu-dashboard - ervu_dashboard - citizen_guardianship
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + citizen_guardianship
+ N + Y + N + Y - - 416 - 208 - Y + 496 + 112
diff --git a/mappings/info_recruits/passport.hpl b/mappings/info_recruits/passport.hpl index 04f3564..cc9b43b 100644 --- a/mappings/info_recruits/passport.hpl +++ b/mappings/info_recruits/passport.hpl @@ -1,3 +1,4 @@ + passport @@ -6,7 +7,6 @@ Normal - / N @@ -16,8 +16,6 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -25,14 +23,178 @@ Table input Table output - Y + N Table input 2 Table output 2 + N + + + Table input + Insert / update Y + + Table input 2 + Insert / update 2 + N + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + + = + passport_number + passport_number + + + + = + passport_series + passport_series + + + ervu_dashboard + passport
+ + recruit_id + recruit_id + N + + + actual + actual + Y + + + issue_date + issue_date + Y + + + organization_name + organization_name + Y + + + passport_number + passport_number + Y + + + passport_series + passport_series + Y + + + unit_code + unit_code + Y + +
+ N + + + 752 + 384 + +
+ + Insert / update 2 + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + + = + passport_number + passport_number + + + + = + passport_series + passport_series + + + ervu_dashboard + passport
+ + recruit_id + recruit_id + N + + + actual + actual + Y + + + issue_date + issue_date + Y + + + organization_name + organization_name + Y + + + passport_number + passport_number + Y + + + passport_series + passport_series + Y + + + unit_code + unit_code + Y + +
+ N + + + 752 + 480 + +
Table input TableInput @@ -45,29 +207,31 @@ ervu_person_registry - select r.id recruit_id, -ri.info->'pasportRF'->'aktPasportRF'->>'nomDok' passport_number, -ri.info->'pasportRF'->'aktPasportRF'->>'serDok' passport_series, -ri.info->'pasportRF'->'aktPasportRF'->>'vydDok' organization_name, -ri.info->'pasportRF'->'aktPasportRF'->>'kodVydDok' unit_code, -to_date(ri.info->'pasportRF'->'aktPasportRF'->>'dataDok', 'YYYY-MM-DD') issue_date, -case when ri.info->'pasportRF'->'aktPasportRF'->>'kodStatus'='1' then true -else false -end actual -from public.recruits_info ri -join public.recruits r ON ri.recruit_id = r.id -where ri.info->'pasportRF'->'aktPasportRF'->>'nomDok' is not null; - 0 - N - N - N + 0 + SELECT + r.id AS recruit_id, + ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, + ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, + ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'vydDok' AS organization_name, + ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'kodVydDok' AS unit_code, + TO_DATE(ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'dataDok', 'YYYY-MM-DD') AS issue_date, + CASE + WHEN ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'kodStatus' = '1' + THEN TRUE ELSE FALSE + END AS actual +FROM public.recruits_info ri +JOIN public.recruits r ON ri.recruit_id = r.id AND r.system_update_date >= '${UP_D}' +WHERE ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'nomDok' IS NOT NULL +AND LENGTH(ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'serDok') = 4 +AND LENGTH(ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'nomDok') = 6 + --AND r.system_update_date >= '${UP_D}' + + Y - - 208 - 208 - Y + 416 + 384 @@ -82,6 +246,8 @@ where ri.info->'pasportRF'->'aktPasportRF'->>'nomDok' is not null; ervu_person_registry + N + 0 select r.id recruit_id, ri.info->'pasportRF'->'predPasportRF'->>'nomDok' passport_number, ri.info->'pasportRF'->'predPasportRF'->>'serDok' passport_series, @@ -94,17 +260,11 @@ end actual from public.recruits_info ri join public.recruits r ON ri.recruit_id = r.id where ri.info->'pasportRF'->'predPasportRF'->>'nomDok' is not null; - 0 - - N N - N - - 208 - 304 - Y + 416 + 480 @@ -118,31 +278,27 @@ where ri.info->'pasportRF'->'predPasportRF'->>'nomDok' is not null; none - ervu-dashboard - ervu_dashboard - passport
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + passport
+ N + Y + N + Y - - 672 - 208 - Y + 736 + 144
@@ -156,31 +312,27 @@ where ri.info->'pasportRF'->'predPasportRF'->>'nomDok' is not null; none - ervu-dashboard - ervu_dashboard - passport
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + passport
+ N + Y + N + Y - - 672 - 304 - Y + 736 + 704
diff --git a/mappings/info_recruits/property.hpl b/mappings/info_recruits/property.hpl index 338eb6f..654be0b 100644 --- a/mappings/info_recruits/property.hpl +++ b/mappings/info_recruits/property.hpl @@ -1,3 +1,4 @@ + property @@ -6,7 +7,6 @@ Normal - / N @@ -16,36 +16,54 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - Table input + Table input realty Table output - Y + N - Table input 2 + Table input ground_transportation Table output 2 - Y + N - Table input 2 2 + Table input water_vehicles Table output 2 2 + N + + + Table input air_vehicles + Table output 2 2 2 + N + + + Table input realty + Insert / update Y - Table input 2 2 2 - Table output 2 2 2 + Table input air_vehicles + Insert / update 2 + Y + + + Table input ground_transportation + Insert / update 4 + Y + + + Table input water_vehicles + Insert / update 3 Y - Table input - TableInput + Insert / update + InsertUpdate Y @@ -54,36 +72,300 @@ none - ervu_person_registry - with prop as -(select jsonb_array_elements(ri.info->'svedON'->'on') u, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedON'->'on') = 'array') -select - r.id recruit_id, - u->>'naimVidPrav' kind_right, - u->'adrObSob'->>'adrObSobTekst' address, - to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, - to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, - 'realty' type_property -from public.recruits r -join prop on r.id = prop.recruit_id; - 0 - - N - N - N + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + + = + start_date + start_date + + + + = + type_property + type_property + + + ervu_dashboard + property
+ + recruit_id + recruit_id + N + + + address + address + Y + + + close_date + close_date + Y + + + kind_right + kind_right + Y + + + start_date + start_date + N + + + type_property + type_property + N + +
+ N - - 480 + 720 208 - Y
- Table input 2 + Insert / update 2 + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + + = + start_date + start_date + + + + = + type_property + type_property + + + ervu_dashboard + property
+ + recruit_id + recruit_id + N + + + type_property + type_property + N + + + close_date + close_date + Y + + + start_date + start_date + N + + + vehicle_category + vehicle_category + Y + + + vehicle_type + vehicle_type + Y + +
+ N + + + 720 + 432 + +
+ + Insert / update 3 + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + + = + start_date + start_date + + + + = + type_property + type_property + + + ervu_dashboard + property
+ + recruit_id + recruit_id + N + + + close_date + close_date + Y + + + start_date + start_date + N + + + type_property + type_property + N + + + vehicle_category + vehicle_category + Y + + + vehicle_type + vehicle_type + Y + +
+ N + + + 1200 + 432 + +
+ + Insert / update 4 + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + + = + type_property + type_property + + + + = + start_date + start_date + + + ervu_dashboard + property
+ + recruit_id + recruit_id + N + + + type_property + type_property + N + + + brand_model + brand_model + Y + + + close_date + close_date + Y + + + issue_year + issue_year + Y + + + reg_plate + reg_plate + Y + + + start_date + start_date + N + + + vehicle_type + vehicle_type + Y + + + vin + vin + Y + +
+ N + + + 1200 + 208 + +
+ + Table input air_vehicles TableInput Y @@ -94,11 +376,55 @@ join prop on r.id = prop.recruit_id; ervu_person_registry + N + 0 with prop as -(select jsonb_array_elements(ri.info->'svedNazTS'->'nazTS') u, +(select jsonb_array_elements(ri.info->'svedFL'->'svedVozTS'->'vozTS') u, ri.recruit_id from public.recruits_info ri -where jsonb_typeof(ri.info->'svedNazTS'->'nazTS') = 'array') + join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' +where jsonb_typeof(ri.info->'svedFL'->'svedVozTS'->'vozTS') = 'array' +--AND r.system_update_date >= '${UP_D}' +) +select + r.id recruit_id, + u->>'naimVid' vehicle_type, + u->>'naznKat' vehicle_category, + to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, + to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, + 'air_vehicles' type_property +from public.recruits r +join prop on r.id = prop.recruit_id + + Y + + + 464 + 432 + + + + Table input ground_transportation + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + with prop as +(select jsonb_array_elements(ri.info->'svedFL'->'svedNazTS'->'nazTS') u, + ri.recruit_id +from public.recruits_info ri + join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' +where jsonb_typeof(ri.info->'svedFL'->'svedNazTS'->'nazTS') = 'array' +--AND r.system_update_date >= '${UP_D}' +) select r.id recruit_id, u->>'vidTS' vehicle_type, @@ -110,22 +436,17 @@ select to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, 'ground_transportation' type_property from public.recruits r -join prop on r.id = prop.recruit_id; - 0 - - N - N - N +join prop on r.id = prop.recruit_id + + Y - - 480 - 304 - Y + 928 + 208 - Table input 2 2 + Table input realty TableInput Y @@ -136,35 +457,35 @@ join prop on r.id = prop.recruit_id; ervu_person_registry + N + 0 with prop as -(select jsonb_array_elements(ri.info->'svedVozTS'->'vozTS') u, +(select jsonb_array_elements(ri.info->'svedFL'->'svedON'->'on') u, ri.recruit_id from public.recruits_info ri -where jsonb_typeof(ri.info->'svedVozTS'->'vozTS') = 'array') + join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' +where jsonb_typeof(ri.info->'svedFL'->'svedON'->'on') = 'array' +--AND r.system_update_date >= '${UP_D}' +) select r.id recruit_id, - u->>'naimVid' vehicle_type, - u->>'naznKat' vehicle_category, + u->>'naimVidPrav' kind_right, + u->'adrObSob'->>'adrObSobTekst' address, to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, - 'air_vehicles' type_property + 'realty' type_property from public.recruits r -join prop on r.id = prop.recruit_id; - 0 - - N - N - N +join prop on r.id = prop.recruit_id + + Y - 480 - 384 - Y + 208 - Table input 2 2 2 + Table input water_vehicles TableInput Y @@ -175,31 +496,32 @@ join prop on r.id = prop.recruit_id; ervu_person_registry + N + 0 with prop as -(select jsonb_array_elements(ri.info->'svedVozTS'->'vozTS') u, +(select jsonb_array_elements(ri.info->'svedFL'->'svedVodTS'->'vodTS') u, ri.recruit_id from public.recruits_info ri -where jsonb_typeof(ri.info->'svedVozTS'->'vozTS') = 'array') + join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' +where jsonb_typeof(ri.info->'svedFL'->'svedVodTS'->'vodTS') = 'array' +--AND r.system_update_date >= '${UP_D}' +) select r.id recruit_id, u->>'naimVid' vehicle_type, u->>'naznKat' vehicle_category, to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, - 'air_vehicles' type_property + 'water_vehicles' type_property from public.recruits r -join prop on r.id = prop.recruit_id; - 0 - - N - N - N +join prop on r.id = prop.recruit_id + + + Y - - 480 - 464 - Y + 928 + 432 @@ -213,31 +535,27 @@ join prop on r.id = prop.recruit_id; none - ervu-dashboard - ervu_dashboard - property
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + property
+ N + Y + N + Y - 688 - 208 - Y + 80
@@ -251,31 +569,27 @@ join prop on r.id = prop.recruit_id; none - ervu-dashboard - ervu_dashboard - property
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + property
+ N + Y + N + Y - - 688 - 304 - Y + 1136 + 96
@@ -289,31 +603,27 @@ join prop on r.id = prop.recruit_id; none - ervu-dashboard - ervu_dashboard - property
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + property
+ N + Y + N + Y - - 688 - 384 - Y + 1152 + 576
@@ -327,31 +637,27 @@ join prop on r.id = prop.recruit_id; none - ervu-dashboard - ervu_dashboard - property
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + property
+ N + Y + N + Y - - 688 - 464 - Y + 672 + 576
diff --git a/mappings/info_recruits/prosecution.hpl b/mappings/info_recruits/prosecution.hpl index 3d19252..1f8acb4 100644 --- a/mappings/info_recruits/prosecution.hpl +++ b/mappings/info_recruits/prosecution.hpl @@ -1,3 +1,4 @@ + prosecution @@ -6,7 +7,6 @@ Normal - / N @@ -16,8 +16,6 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -25,9 +23,83 @@ Table input Table output + N + + + Table input + Insert / update Y + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + create_date + create_date + + ervu_dashboard + prosecution
+ + recruit_id + recruit_id + N + + + authority_name + authority_name + Y + + + close_date + close_date + Y + + + create_date + create_date + Y + + + kind + kind + Y + + + law_point + law_point + Y + + + termination_basis + termination_basis + Y + +
+ N + + + 784 + 304 + +
Table input TableInput @@ -40,32 +112,34 @@ ervu_person_registry - with ugol as -(select jsonb_array_elements(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') u, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') = 'array') -select - r.id recruit_id, - u->>'vidPreslNaim' kind, - to_date(u->>'dataSved', 'YYYY-MM-DD') create_date, - to_date(u->>'dataPrekrashh', 'YYYY-MM-DD') close_date, - u->>'naimOrgan' authority_name, - u->>'ugolovZakon' law_point, - u->>'osnovPrekrashh' termination_basis -from public.recruits r -join ugol on r.id = ugol.recruit_id; - 0 - N - N - N + 0 + WITH ugol AS ( + SELECT + jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS u, + ri.recruit_id + FROM public.recruits_info ri + join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' + WHERE jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' + --AND r.system_update_date >= '${UP_D}' +) +SELECT + r.id AS recruit_id, + u->'sledSud'->>'naimSud' AS kind, + TO_DATE(u->'sledSud'->>'dataVozbUD', 'YYYY-MM-DD') AS create_date, + TO_DATE(u->'sledSud'->'svedSnyat'->>'dataSnyatSud', 'YYYY-MM-DD') AS close_date, + u->'sledSud'->>'naimOrgan' AS authority_name, + STRING_AGG(TRIM(BOTH ' "' FROM law.f), ', ') AS law_point, + u->'sledSud'->'svedSnyat'->>'osnSnyatSud' AS termination_basis +FROM public.recruits r +JOIN ugol ON r.id = ugol.recruit_id +LEFT JOIN LATERAL jsonb_array_elements_text(u->'sledSud'->'statiUK') AS law(f) ON true +GROUP BY r.id, kind, create_date, close_date, authority_name, termination_basis + Y - 528 304 - Y @@ -79,31 +153,27 @@ join ugol on r.id = ugol.recruit_id; none - ervu-dashboard - ervu_dashboard - prosecution
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + prosecution
+ N + Y + N + Y - - 736 - 304 - Y + 752 + 144
diff --git a/mappings/info_recruits/punishment.hpl b/mappings/info_recruits/punishment.hpl index 2c7831f..cd5eab1 100644 --- a/mappings/info_recruits/punishment.hpl +++ b/mappings/info_recruits/punishment.hpl @@ -1,3 +1,4 @@ + punishment @@ -6,7 +7,6 @@ Normal - / N @@ -16,8 +16,6 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -25,9 +23,103 @@ Table input Table output + N + + + Table input + Insert / update Y + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + punishment
+ + authority_name + authority_name + Y + + + law_point + law_point + Y + + + punishment_code + punishment_code + Y + + + punishment_type + punishment_type + Y + + + recruit_id + recruit_id + N + + + release_date + release_date + Y + + + release_reason + release_reason + Y + + + sentence + sentence + Y + + + sentence_changed + sentence_changed + Y + + + sentence_place + sentence_place + Y + + + sentense_date + sentense_date + Y + + + start_date + start_date + Y + +
+ N + + + 784 + 304 + +
Table input TableInput @@ -40,11 +132,16 @@ ervu_person_registry + N + 0 with ugol as -(select jsonb_array_elements(ri.info->'svedSudim'->'sudim'->'osuzhdenie') u, +(select jsonb_array_elements(ri.info->'svedFL'->'svedSudim'->'sudim'->'osuzhdenie') u, ri.recruit_id from public.recruits_info ri -where jsonb_typeof(ri.info->'svedSudim'->'sudim'->'osuzhdenie') = 'array') + join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' +where jsonb_typeof(ri.info->'svedFL'->'svedSudim'->'sudim'->'osuzhdenie') = 'array' +--AND r.system_update_date >= '${UP_D}' +) select r.id recruit_id, u->>'naimSuda' authority_name, @@ -59,18 +156,12 @@ select u->>'ugolovZakon' law_point, u->>'osnovOsvobozhd' release_reason from public.recruits r -join ugol on r.id = ugol.recruit_id; - 0 - - N - N - N +join ugol on r.id = ugol.recruit_id + Y - 528 304 - Y @@ -84,31 +175,27 @@ join ugol on r.id = ugol.recruit_id; none - ervu-dashboard - ervu_dashboard - punishment
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + punishment
+ N + Y + N + Y - - 736 - 304 - Y + 752 + 176
diff --git a/mappings/info_recruits/select_delta_time.hpl b/mappings/info_recruits/select_delta_time.hpl new file mode 100644 index 0000000..e5cf5f4 --- /dev/null +++ b/mappings/info_recruits/select_delta_time.hpl @@ -0,0 +1,100 @@ + + + + select_delta_time + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/01/10 14:32:39.906 + - + 2025/01/10 14:32:39.906 + + + + + + Table input + Insert / update + N + + + Table input + Copy rows to result + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + select max(update_date) AS UPDATE_DATE +from ervu_dashboard.citizen + N + + + 464 + 240 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + + + lookup table
+
+ N + + + 768 + 384 + +
+ + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 768 + 240 + + + + + +
diff --git a/mappings/info_recruits/select_delta_time_subpoena.hpl b/mappings/info_recruits/select_delta_time_subpoena.hpl new file mode 100644 index 0000000..581126d --- /dev/null +++ b/mappings/info_recruits/select_delta_time_subpoena.hpl @@ -0,0 +1,100 @@ + + + + select_delta_time_subpoena + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/01/10 14:32:39.906 + - + 2025/01/10 14:32:39.906 + + + + + + Table input + Insert / update + N + + + Table input + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 768 + 240 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + + + lookup table
+
+ N + + + 768 + 384 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + select max(status_change_date) AS STATUS_CHANGE_DATE +from ervu_dashboard.subpoena + N + + + 464 + 240 + + + + + +
diff --git a/mappings/info_recruits/spouse.hpl b/mappings/info_recruits/spouse.hpl index 9ba14b4..8c14d39 100644 --- a/mappings/info_recruits/spouse.hpl +++ b/mappings/info_recruits/spouse.hpl @@ -1,3 +1,4 @@ + spouse @@ -6,7 +7,6 @@ Normal - / N @@ -16,8 +16,6 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -25,14 +23,108 @@ Select values Table output - Y + N Table input Select values Y + + Select values + Insert / update + Y + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + full_name + full_name + + ervu_dashboard + citizen_spouse
+ + recruit_id + recruit_id + N + + + birth_date + birth_date + Y + + + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + divorce_az_number + divorce_az_number + Y + + + divorce_date + divorce_date + Y + + + full_name + full_name + N + + + information_excluded + information_excluded + Y + + + kinship_type + kinship_type + Y + + + marriage_az_number + marriage_az_number + Y + + + marriage_date + marriage_date + Y + +
+ N + + + 704 + 208 + +
Select values SelectValues @@ -82,11 +174,9 @@ - 448 208 - Y @@ -101,48 +191,56 @@ ervu_person_registry - with suprug as -(select jsonb_array_elements(ri.info->'svedSemPolozh'->'suprugi') supr, - ri.info->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' marriage_az_number, - ri.info->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend' marriage_date, - ri.info->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' divorce_az_number, - ri.info->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend' divorce_date, - case when (ri.info->'svedSemPolozh'->>'svedSuprIskl' = '1') then true - else false - end information_excluded, - ri.recruit_id -from public.recruits_info ri) -select - r.id recruit_id, - supr->>'rodstvSvyazSuprugNaim' kinship_type, - concat_ws(' ', supr->'svedFLBS'->'fio'->>'familiya', - supr->'svedFLBS'->'fio'->>'imya', - supr->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(supr->'svedSmert'->>'god', '')::int, - NULLIF(supr->'svedSmert'->>'mesyacz','')::int, - NULLIF(supr->'svedSmert'->>'den','')::int) death_date, - supr->'svedSmert'->>'nomerZapis' death_az_number, - marriage_az_number, - marriage_date, - divorce_az_number, - divorce_date, - information_excluded -from public.recruits r -join suprug on r.id = suprug.recruit_id - 0 - N - N - 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 public.recruits_info ri + join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' + 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.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, + divorce_az_number, + divorce_date, + information_excluded +FROM public.recruits r +JOIN suprug ON r.id = suprug.recruit_id + + + Y - 192 208 - Y @@ -156,31 +254,27 @@ join suprug on r.id = suprug.recruit_id none - ervu-dashboard - ervu_dashboard - citizen_spouse
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + citizen_spouse
+ N + Y + N + Y - - 704 - 208 - Y + 688 + 64
diff --git a/mappings/info_recruits/subpoena.hpl b/mappings/info_recruits/subpoena.hpl index 22cc79f..0c134df 100644 --- a/mappings/info_recruits/subpoena.hpl +++ b/mappings/info_recruits/subpoena.hpl @@ -1,3 +1,4 @@ + subpoena @@ -6,7 +7,6 @@ Normal - / N @@ -16,8 +16,6 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -25,9 +23,170 @@ Table input Table output + N + + + Table input + Insert / update Y + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + subpoena_id + subpoena_id + + + + = + status_change_date + status_change_date + + + ervu_dashboard + subpoena
+ + subpoena_id + subpoena_id + N + + + status_change_date + status_change_date + N + + + act_number + act_number + Y + + + address + address + Y + + + appearance + appearance + Y + + + appearance_status + appearance_status + Y + + + create_date + create_date + Y + + + delivery_date + delivery_date + Y + + + delivery_fio + delivery_fio + Y + + + delivery_status + delivery_status + Y + + + department_id + department_id + Y + + + fio_commiss + fio_commiss + Y + + + method_delivery + method_delivery + Y + + + method_sending + method_sending + Y + + + number + number + Y + + + recruit_id + recruit_id + Y + + + recruitment_name + recruitment_name + Y + + + send_date + send_date + Y + + + series + series + Y + + + sig_info + sig_info + Y + + + subpoena_reason + subpoena_reason + Y + + + subpoena_status + subpoena_status + Y + + + track_number + track_number + Y + + + visit_date + visit_date + Y + +
+ N + + + 1008 + 400 + +
Table input TableInput @@ -40,8 +199,11 @@ postgres.subpoena + N + 0 SELECT s.id AS subpoena_id, -- идентификатор повестки + s.status_change_date, s.recruit_id, -- идентификатор рекрута s.department_id, -- идентификатор ВК s.series, -- серия повестки @@ -98,18 +260,13 @@ LEFT JOIN public.send_dictionary AS sd LEFT JOIN public.subpoena_status AS ss ON ss.id = s.status_id LEFT JOIN public.subpoena_appearance AS sa - ON sa.subpoena_id = s.id; - 0 - - N - N - N + ON sa.subpoena_id = s.id +WHERE s.status_change_date >= '${ST_CH_D}'; + Y - - 208 - 208 - Y + 688 + 400 @@ -123,31 +280,27 @@ LEFT JOIN public.subpoena_appearance AS sa none - ervu-dashboard - ervu_dashboard - subpoena
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + subpoena
+ N + Y + N + Y - - 416 - 208 - Y + 1056 + 688
diff --git a/mappings/info_recruits/supportive_count_citizen.hpl b/mappings/info_recruits/supportive_count_citizen.hpl new file mode 100644 index 0000000..1911aef --- /dev/null +++ b/mappings/info_recruits/supportive_count_citizen.hpl @@ -0,0 +1,89 @@ + + + + supportive_count_citizen + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/14 16:34:33.840 + - + 2025/04/14 16:34:33.840 + + + + + + Table input + Insert / update + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + count_citizen + citizen_count + + + public + count_citizen
+ + count_citizen + citizen_count + N + +
+ N + + + 768 + 288 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT count(*) AS citizen_count FROM ervu_dashboard.citizen + N + + + 464 + 288 + + + + + +
diff --git a/mappings/info_recruits/temporary_measure.hpl b/mappings/info_recruits/temporary_measure.hpl index 9dbe087..eb30476 100644 --- a/mappings/info_recruits/temporary_measure.hpl +++ b/mappings/info_recruits/temporary_measure.hpl @@ -1,3 +1,4 @@ + temporary_measure @@ -6,7 +7,6 @@ Normal - / N @@ -16,8 +16,6 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -25,9 +23,109 @@ Table input Table output + N + + + Table input + Insert / update Y + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 10000 + ervu-dashboard + + + = + subpoena_id + subpoena_id + + + ervu_dashboard + temporary_measures
+ + applied_fact + applied_fact + Y + + + cancel_date + cancel_date + Y + + + decision_date_cancel + decision_date_cancel + Y + + + decision_date_create + decision_date_create + Y + + + decision_number_cancel + decision_number_cancel + Y + + + decision_number_create + decision_number_create + Y + + + recruit_id + recruit_id + Y + + + recruitment_id + recruitment_id + Y + + + recruitment_name + recruitment_name + Y + + + restriction_name + restriction_name + Y + + + status_measure + status_measure + Y + + + subpoena_id + subpoena_id + N + + + type + type + Y + +
+ N + + + 480 + 208 + +
Table input TableInput @@ -40,6 +138,8 @@ postgres.subpoena + N + 0 SELECT rd.subpoena_id, rd.vk_id AS recruitment_id, @@ -81,18 +181,13 @@ LEFT JOIN public.restriction AS rn LEFT JOIN public.restriction_document_status AS rds ON rds.code = rd.status LEFT JOIN public.subpoena AS s - ON s.id = rd.subpoena_id - 0 - - N - N - N + ON s.id = rd.subpoena_id +WHERE s.status_change_date >= '${ST_CH_D}' + Y - 208 208 - Y @@ -106,31 +201,27 @@ LEFT JOIN public.subpoena AS s none - ervu-dashboard - ervu_dashboard - temporary_measures
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + temporary_measures
+ N + Y + N + Y - - 416 - 208 - Y + 432 + 400
diff --git a/mappings/instruction.txt b/mappings/instruction.txt new file mode 100644 index 0000000..7787b16 --- /dev/null +++ b/mappings/instruction.txt @@ -0,0 +1,2 @@ +/jobs_once_a_day/job_info_recruits.kjb - запустить при старте 1 раз +/info_recruits/job_info_recruits.kjb - подождать час и запускать раз в 10 минут \ No newline at end of file diff --git a/mappings/job_copy_deferment_punishment_fz53_info.hwf b/mappings/job_copy_deferment_punishment_fz53_info.hwf new file mode 100644 index 0000000..42428bd --- /dev/null +++ b/mappings/job_copy_deferment_punishment_fz53_info.hwf @@ -0,0 +1,119 @@ + + + job_copy_deferment_punishment_fz53_info + Y + + + + 0 + - + 2025/04/25 17:38:51.703 + - + 2025/04/25 17:38:51.703 + + + + + Start 2 + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 528 + 320 + + + + Success + + SUCCESS + + N + 1408 + 320 + + + + copy_punishment_and_deferment_once.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/copy_punishment_and_deferment_once.hwf + Nothing + + Y + + N + local + N + N + Y + N + 800 + 320 + + + + citizen_flags.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/citizen_flags.hwf + Nothing + + Y + + N + local + N + N + Y + N + 1072 + 320 + + + + + + Start 2 + copy_punishment_and_deferment_once.hwf + Y + Y + Y + + + copy_punishment_and_deferment_once.hwf + citizen_flags.hwf + Y + Y + N + + + citizen_flags.hwf + Success + Y + Y + N + + + + + + diff --git a/mappings/job_general.hwf b/mappings/job_general.hwf index 3da75e7..93eb1fd 100644 --- a/mappings/job_general.hwf +++ b/mappings/job_general.hwf @@ -5,6 +5,7 @@ + 0 - 2024/08/21 17:23:33.592 - @@ -26,7 +27,7 @@ 0 1 N - 320 + 288 240 @@ -36,7 +37,7 @@ SUCCESS N - 1056 + 1296 240 @@ -50,6 +51,8 @@ N N ${Internal.Entry.Current.Folder}/job_pack.pub_recruitment.hwf + + Nothing Y @@ -60,7 +63,7 @@ N Y N - 688 + 512 240 @@ -74,7 +77,9 @@ N N ${Internal.Entry.Current.Folder}/job_recruitments_all.hwf - Nothing + txt + ${PROJECT_HOME}/log_jobs/log_job_recruitments_all + Minimal Y @@ -84,7 +89,7 @@ N Y N - 848 + 720 240 @@ -108,8 +113,32 @@ N Y N - 512 - 368 + 1120 + 240 + + + + job_info_recruits.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/job_info_recruits.hwf + Nothing + + Y + + N + local + N + N + Y + N + 928 + 128 @@ -118,35 +147,42 @@ job_pack.pub_recruitment job_recruitments_all Y - Y - N - - - job_recruitments_all - Success - Y - Y - N + N + Y Start - job_last_recording_date + job_pack.pub_recruitment Y Y Y job_last_recording_date - job_pack.pub_recruitment + Success Y - Y - N + N + Y - Start - job_pack.pub_recruitment + job_info_recruits.hwf + job_last_recording_date N - Y + N + Y + + + job_recruitments_all + job_info_recruits.hwf + N + N + Y + + + job_recruitments_all + job_last_recording_date + Y + N Y diff --git a/mappings/job_pack.pub_recruitment.hwf b/mappings/job_pack.pub_recruitment.hwf index a233bd5..b31f616 100644 --- a/mappings/job_pack.pub_recruitment.hwf +++ b/mappings/job_pack.pub_recruitment.hwf @@ -78,7 +78,7 @@ N N 240 - 224 + 112 @@ -104,6 +104,13 @@ Y Y + + Start + pack.pub_recruitment + N + Y + Y + diff --git a/mappings/job_recruitments_all.hwf b/mappings/job_recruitments_all.hwf index 3516cf7..e0e59ed 100644 --- a/mappings/job_recruitments_all.hwf +++ b/mappings/job_recruitments_all.hwf @@ -5,12 +5,38 @@ + 0 - 2024/08/21 15:46:54.029 - 2024/08/21 15:46:54.029 - + + MD_ARRAY + + + + + MD_ID + + + + + PRNT_ID + + + + + REC_ID + + + + + SCM + + + + Start @@ -31,7 +57,7 @@ - job_recruitments_region + job_recruitments_region.hwf WORKFLOW @@ -39,10 +65,10 @@ N N N - ${Internal.Entry.Current.Folder}/\region\job_recruitments_region.hwf - - - Nothing + ${PROJECT_HOME}/region/job_recruitments_region.hwf + txt + ${PROJECT_HOME}/log_jobs/log_job_recruitments_region + Basic Y @@ -51,13 +77,13 @@ N N Y - N - 560 - 144 + Y + 704 + 352 - job_recruitments_country + job_recruitments_country.hwf WORKFLOW @@ -65,10 +91,10 @@ N N N - ${Internal.Entry.Current.Folder}/\country\job_recruitments_country.hwf - - - Nothing + ${PROJECT_HOME}/country/job_recruitments_country.hwf + txt + ${PROJECT_HOME}/log_jobs/log_job_recruitments_country + Basic Y @@ -78,8 +104,132 @@ N Y N - 560 - 240 + 1120 + 352 + + + + job_recruitments_milcom.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/mil_com/job_recruitments_milcom.hwf + txt + ${PROJECT_HOME}/log_jobs/log_job_recruitments_milcom + Basic + + Y + + N + local + N + N + Y + N + 320 + 352 + + + + job_recruitments_mildis.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/mil_district/job_recruitments_mildis.hwf + txt + ${PROJECT_HOME}/log_jobs/log_job_recruitments_mildis + Basic + + Y + + N + local + N + N + Y + N + 896 + 352 + + + + Success 2 + + SUCCESS + + N + 1520 + 352 + + + + Success 3 + + SUCCESS + + N + 1072 + 464 + + + + job_ratings.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/ratings/job_ratings.hwf + txt + ${PROJECT_HOME}/log_jobs/log_job_ratings + Basic + + Y + + N + local + N + N + Y + N + 896 + 464 + + + + add_schema.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}\mil_com\parameters\add_schema.hpl + Basic + + Y + + N + local + N + N + Y + N + 528 + 352 @@ -88,115 +238,151 @@ SUCCESS N - 768 - 240 + 1024 + 192 - job_recruitments_mil_com + percent_for_waiting_reg.hpl - WORKFLOW + PIPELINE N N + N + N N N - ${Internal.Entry.Current.Folder}/\mil_com\job_recruitments_mil_com.hwf - Nothing + ${PROJECT_HOME}/supportive_jobs/percent_for_waiting_reg.hpl + Basic Y N + local N N Y N - 560 - 336 - - - - job_recruitment_mil_district - - WORKFLOW - - N - N - N - N - Nothing - - Y - - N - N - N - Y - N - 560 - 416 + 1344 + 352 - - job_recruitments_country - Success - Y - Y - N - - - job_recruitments_region - Success - Y - Y - N - Start - job_recruitments_mil_com - N - Y - Y - - - job_recruitments_mil_com - Success - N - Y - N - - - Start - job_recruitment_mil_district - N - Y - Y - - - job_recruitment_mil_district - Success - N - Y - N - - - Start - job_recruitments_region + job_recruitments_milcom.hwf Y Y Y - Start - job_recruitments_country + job_recruitments_region.hwf + job_recruitments_mildis.hwf + Y + N + Y + + + job_ratings.hwf + Success 3 + Y + Y + N + + + job_recruitments_region.hwf + job_ratings.hwf + Y + Y + N + + + job_recruitments_mildis.hwf + job_recruitments_country.hwf + Y + N + Y + + + job_recruitments_milcom.hwf + add_schema.hpl + Y + N + Y + + + add_schema.hpl + job_recruitments_region.hwf + Y + N + Y + + + add_schema.hpl + Success + N + Y + N + + + job_recruitments_region.hwf + Success + N + Y + N + + + job_recruitments_mildis.hwf + Success + N + Y + N + + + job_recruitments_milcom.hwf + Success + N + Y + N + + + job_recruitments_country.hwf + percent_for_waiting_reg.hpl + Y + N + Y + + + percent_for_waiting_reg.hpl + Success 2 Y Y Y + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 416 + 544 + на шаге загрузки данных по регионам заполняется таблица ervu_dashboard.array_reg, рейтинги обращаются в эту таблицу за массивами + 766 + diff --git a/mappings/jobs_once_a_day/child_once.hpl b/mappings/jobs_once_a_day/child_once.hpl new file mode 100644 index 0000000..d1adb47 --- /dev/null +++ b/mappings/jobs_once_a_day/child_once.hpl @@ -0,0 +1,182 @@ + + + + child_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + + + Table input + Table output + Y + + + Table input + Insert / update + N + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen_child
+ + recruit_id + recruit_id + N + + + birth_az_number + birth_az_number + Y + + + birth_date + birth_date + Y + + + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + full_name + full_name + Y + + + kinship_type + kinship_type + Y + +
+ N + + + 624 + 256 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + with child as +(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, + ri.recruit_id +from public.recruits_info ri +join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +) +select + r.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 public.recruits r +join child on r.id = child.recruit_id + Y + + + 400 + 256 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + citizen_child
+ + N + Y + N + Y + + + 608 + 400 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/children_flags.hpl b/mappings/jobs_once_a_day/children_flags.hpl new file mode 100644 index 0000000..f628ad7 --- /dev/null +++ b/mappings/jobs_once_a_day/children_flags.hpl @@ -0,0 +1,106 @@ + + + + children_flags + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/25 13:09:28.624 + - + 2025/04/25 13:09:28.624 + + + + + + children_flags + Update_children_flags + Y + + + + Update_children_flags + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_dead_child + has_dead_child + + + has_minor_child + has_minor_child + + + minors_count + minors + +
+ N + Y + + + 512 + 128 + +
+ + children_flags + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + WITH age_threshold AS ( + SELECT current_date - interval '18 years' AS cutoff +) +select + recruit_id, + COUNT(*) FILTER (WHERE birth_date > cutoff) AS minors, + bool_or(death_date is not null) as has_dead_child, + bool_or(birth_date > cutoff) as has_minor_child +from citizen_child, age_threshold +group by recruit_id; + N + + + 336 + 128 + + + + + +
diff --git a/mappings/jobs_once_a_day/citizen_appealing_violations_fz53_once.hpl b/mappings/jobs_once_a_day/citizen_appealing_violations_fz53_once.hpl new file mode 100644 index 0000000..76bd199 --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_appealing_violations_fz53_once.hpl @@ -0,0 +1,179 @@ + + + + citizen_appealing_violations_fz53_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 11:29:46.684 + - + 2025/02/14 11:29:46.684 + + + + + + Table input + Table output + Y + + + Table input + Update + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + postgres.decision-document-service + N + 0 + SELECT + recruit_id, + appeal_number AS number_appealed, -- номер обжалуемого решения + appeal_date AS date_appealed, -- дата обжалуемого решения + result_number AS case_number, -- номер принятого решения + result_date AS decision_date, -- дата принятия решения + CASE + WHEN result = '1' THEN 'Удовлетворена' + WHEN result = '2' THEN 'Частично удовлетворена' + WHEN result = '3' THEN 'Отказано в удовлетворении' + ELSE NULL + END AS result_appeal, -- код рассмотрения + commission_name AS name_commission, -- наименование комиссии, принявшей решение + reason_for_add_entry AS grounds, -- основание для внесения записи + true AS has_appealing_violations_fz53 +FROM public.appeal_document_dto +WHERE hidden IS FALSE + N + + + 608 + 256 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + recruit_id + recruit_id + + + case_number + case_number + + + date_appealed + date_appealed + + + decision_date + decision_date + + + grounds + grounds + + + name_commission + name_commission + + + number_appealed + number_appealed + + + result_appeal + result_appeal + + + N + N + N + N + + Y + + N + ervu_dashboard + Y + citizen_appealing_violations_fz53
+ + N + Y + N + Y + + + 912 + 256 + +
+ + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_appealing_violations_fz53 + has_appealing_violations_fz53 + +
+ N + Y + + + 912 + 368 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/citizen_complex_filters_once.hpl b/mappings/jobs_once_a_day/citizen_complex_filters_once.hpl new file mode 100644 index 0000000..f781935 --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_complex_filters_once.hpl @@ -0,0 +1,27 @@ + + + + citizen_complex_filters_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 12:08:11.450 + - + 2025/02/14 12:08:11.450 + + + + + + + + + diff --git a/mappings/jobs_once_a_day/citizen_criminal_liability_fz53_once.hpl b/mappings/jobs_once_a_day/citizen_criminal_liability_fz53_once.hpl new file mode 100644 index 0000000..5cb4a01 --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_criminal_liability_fz53_once.hpl @@ -0,0 +1,178 @@ + + + + citizen_criminal_liability_fz53_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 11:26:43.276 + - + 2025/02/14 11:26:43.276 + + + + + + Table input decision-document-service + Table output ervu_dashboard.citizen_criminal_liability_fz53 + Y + + + Table input decision-document-service + Update + Y + + + + Table input decision-document-service + TableInput + + Y + + 1 + + none + + + postgres.decision-document-service + N + 0 + SELECT + recruit_id, + --, -- сведения о факте уголовного преследования + extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный) + extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела + extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело + decision_number AS case_number, -- номер уголовного дела (судебный) + decision_date AS sentence_date, -- дата приговора + extra_info->>'court' AS court_decision, -- суд вынесший приговор + CASE + WHEN extra_info->>'punishment' = '1' THEN 'Штраф' + WHEN extra_info->>'punishment' = '2' THEN 'Обязательные работы' + WHEN extra_info->>'punishment' = '3' THEN 'Арест' + WHEN extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок' + ELSE NULL + END AS type_punishment, -- вид наказания + true has_criminal_liability_fz53 +FROM public.infringement +WHERE hidden IS FALSE +AND type = 'CRIMINAL' + N + + + 464 + 272 + + + + Table output ervu_dashboard.citizen_criminal_liability_fz53 + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + recruit_id + recruit_id + + + case_number_before + case_number_before + + + court_decision + court_decision + + + date_initiation + date_initiation + + + body_initiated + body_initiated + + + sentence_date + sentence_date + + + type_punishment + type_punishment + + + N + N + N + N + + Y + + N + ervu_dashboard + Y + citizen_criminal_liability_fz53
+ + N + Y + N + Y + + + 864 + 272 + +
+ + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_criminal_liability_fz53 + has_criminal_liability_fz53 + +
+ N + Y + + + 864 + 384 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/citizen_criminal_record_once.hpl b/mappings/jobs_once_a_day/citizen_criminal_record_once.hpl new file mode 100644 index 0000000..6cdda36 --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_criminal_record_once.hpl @@ -0,0 +1,91 @@ + + + + citizen_criminal_record_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 11:23:58.362 + - + 2025/02/14 11:23:58.362 + + + + + + Table input + Table output ervu_dashboard.citizen_criminal_record + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + SELECT <values> FROM <table name> WHERE <conditions> + N + + + 384 + 256 + + + + Table output ervu_dashboard.citizen_criminal_record + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + citizen_criminal_record
+ + N + Y + N + Y + + + 864 + 256 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/citizen_diploma_once.hpl b/mappings/jobs_once_a_day/citizen_diploma_once.hpl new file mode 100644 index 0000000..1b5f94d --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_diploma_once.hpl @@ -0,0 +1,187 @@ + + + + citizen_diploma_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/29 15:56:35.792 + - + 2025/04/29 15:56:35.792 + + + + + + Table input + Table output + Y + + + Table output + Dummy (do nothing) + Y + + + + Dummy (do nothing) + Dummy + + Y + + 1 + + none + + + + + 608 + 352 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select ri.recruit_id, + to_date(diploma_item->>'dataVyd', 'YYYY-MM-DD') as issue_date, + diploma_item->>'naimOrg' as education_institution_name, + diploma_item->>'kodUrObr' as education_level_code, + diploma_item->>'regNomer' as reg_number, + diploma_item->>'prVUSpecz' = '1' as vus_spec, + diploma_item->>'nomerBlank' as blank_number, + diploma_item->>'seriyaBlank' as blank_series, + diploma_item->'vidDokMinobr'->>'kodVidDok' as doc_type_code_minobr, + diploma_item->'vidDokMinprosv'->>'kodVidDok' as doc_type_code_minprosv, + diploma_item->'svedSpeczMinobr'->>'kodSpecz' as education_speciality_minpobr_code, + diploma_item->'svedSpeczMinprosv'->>'kodSpecz' as education_speciality_minprosv_code +from recruits_info ri + join recruits r + ON ri.recruit_id = r.id + and '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id), + jsonb_array_elements(info->'svedFL'->'svedRObr'->'robr') as diploma_item +where info->'svedFL'->'svedRObr'->'robr' != 'null'; + Y + + + 336 + 208 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + recruit_id + recruit_id + + + issue_date + issue_date + + + education_institution_name + education_institution_name + + + education_level_code + education_level_code + + + reg_number + reg_number + + + vus_spec + vus_spec + + + blank_number + blank_number + + + blank_series + blank_series + + + doc_type_code_minobr + doc_type_code_minobr + + + doc_type_code_minprosv + doc_type_code_minprosv + + + education_speciality_minpobr_code + education_speciality_minpobr_code + + + education_speciality_minprosv_code + education_speciality_minprosv_code + + + N + N + N + N + Y + N + ervu_dashboard + Y + citizen_education_diploma
+ N + Y + N + Y + + + 496 + 208 + +
+ + + Table output + Dummy (do nothing) + Y + + + + + + + + + + +
diff --git a/mappings/jobs_once_a_day/citizen_education_diplomas_received_once.hpl b/mappings/jobs_once_a_day/citizen_education_diplomas_received_once.hpl new file mode 100644 index 0000000..6856f3a --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_education_diplomas_received_once.hpl @@ -0,0 +1,130 @@ + + + + citizen_education_diplomas_received_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 11:15:24.095 + - + 2025/02/14 11:15:24.095 + + + + + + Table input + Table output + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + with vuz as +(select jsonb_array_elements(ri.info->'svedFL'->'svedVUZ'->'vuz') as vuz, + ri.recruit_id recruit_id +from public.recruits_info ri +join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +where jsonb_typeof(ri.info->'svedFL'->'svedVUZ'->'vuz') = 'array' --limit 2 +) +select + r.id recruit_id, + --vuz->'svedOrg'->>'kodTipOrg', + vuz->'svedOrg'->>'naimTipOrg' as type_organization, + vuz->'svedOrg'->>'naimOrg' as name_edu_organization, + vuz->'svedOrg'->>'inn' as inn, + vuz->'svedOrg'->>'kpp' as kpp, + coalesce (vuz->'svedOrg'->>'ogrn', vuz->'svedOrg'->>'ogrnip') as ogrn, + vuz->'svedOrg'->>'adresOrg' as address_edu_organization, + + vuz->>'naimStatus' as student_status, + vuz->>'naimUrovObr' as education_level_org, + vuz->>'nomerKursa' as course_training, + vuz->>'dataZachisl' as receipt_date, + --vuz->>'prPervObuch' , + vuz->>'nomPrikazZachisl' as order_number, + vuz->>'dataPrikazZachisl' as order_date, + --vuz->'svedObrProg'->>'prVUSpecz', + --vuz->'svedObrProg'->>'dataNachObuch', + --vuz->'svedObrProg'->>'kodFormaObuch', + --vuz->'svedObrProg'->>'naimFormaObuch', + --vuz->'svedObrProg'->>'planDataOkonch', + --vuz->'svedObrProg'->'svedSpeczMinobr'->>'kodSpecz', + --vuz->'svedObrProg'->'svedSpeczMinobr'->>'naimSpecz', + --vuz->'svedObrProg'->'svedSpeczMinprosv'->>'kodSpecz', + --vuz->'svedObrProg'->'svedSpeczMinprosv'->>'naimSpecz', + + vuz->'svedVosst'->>'dataVosst' as restore_date, + vuz->'svedVosst'->>'nomPrikazVosst' as order_number_restore, + vuz->'svedVosst'->>'dataPrikazVosst' as order_date_restore +from public.recruits r +join vuz on r.id = vuz.recruit_id + + Y + + + 496 + 320 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + citizen_education_diplomas_received
+ + N + Y + N + Y + + + 832 + 320 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/citizen_flags.hpl b/mappings/jobs_once_a_day/citizen_flags.hpl new file mode 100644 index 0000000..0651614 --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_flags.hpl @@ -0,0 +1,619 @@ + + + + citizen_flags + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/22 16:26:01.929 + - + 2025/04/22 16:26:01.929 + + + + + + children_flags + Update_children_flags + Y + + + opekun_flag + Update_opekun_flag + Y + + + driver_licence_output + Update_driver_licence_flag + Y + + + citizenship_flag_output + Update_citizenship_flag + Y + + + property_flag_output + Update_property_flag + Y + + + deputy_input + Update_deputy_flag + Y + + + has_criminal_prosecution + Update_has_criminal_prosecution + Y + + + criminal_record + Update_criminal_record + Y + + + + Update_children_flags + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_dead_child + has_dead_child + + + has_minor_child + has_minor_child + + + minors_count + minors + +
+ N + Y + + + 384 + 304 + +
+ + Update_citizenship_flag + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_russian_citizenship + has_russian_citizenship + + + has_foreign_citizenship + has_foreign_citizenship + +
+ N + Y + + + 384 + 672 + +
+ + Update_deputy_flag + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + is_deputy + is_deputy + + + is_deputy_candidate + is_deputy_candidate + +
+ N + Y + + + 384 + 912 + +
+ + Update_driver_licence_flag + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + tractor_license + has_tractor_licence + + + has_driver_license + has_driver_license + +
+ N + Y + + + 384 + 560 + +
+ + Update_opekun_flag + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + is_guardian + is_guardian + +
+ N + Y + + + 384 + 432 + +
+ + Update_property_flag + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_ground_transport + has_ground_transport + + + has_air_transport + has_air_transport + + + has_water_transport + has_water_transport + + + has_property + has_property + +
+ N + Y + + + 384 + 800 + +
+ + children_flags + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + WITH age_threshold AS ( + SELECT current_date - interval '18 years' AS cutoff +) +select + recruit_id, + COUNT(*) FILTER (WHERE birth_date > cutoff) AS minors, + bool_or(death_date is not null) as has_dead_child, + bool_or(birth_date > cutoff) as has_minor_child +from citizen_child, age_threshold +group by recruit_id; + N + + + 208 + 304 + + + + citizenship_flag_output + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with foreign_citizenship as ( + select recruit_id, true as has_foreign_citizenship + from citizenship_foreign +) +select + citizenship.recruit_id, + true as has_russian_citizenship, + coalesce(has_foreign_citizenship, false) as has_foreign_citizenship + from citizenship + left join foreign_citizenship + on foreign_citizenship.recruit_id = citizenship.recruit_id +where renunciation_number is null; + N + + + 208 + 672 + + + + deputy_input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + +SELECT + recruit_id, + COALESCE(deputy.deputy, false) AS is_deputy, + NOT COALESCE(deputy.deputy, false) AS is_deputy_candidate +FROM deputy; + N + + + 208 + 912 + + + + driver_licence_output + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + select + recruit_id, + bool_or(not tractor_driver) as has_driver_license, + bool_or(tractor_driver) as has_tractor_licence +from drivers_licence +group by recruit_id; + N + + + 208 + 560 + + + + opekun_flag + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + select distinct + recruit_id, + true as is_guardian + from citizen_guardianship; + N + + + 208 + 432 + + + + property_flag_output + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + select + recruit_id, + bool_or(type_property = 'ground_transportation') as has_ground_transport, + bool_or(type_property = 'air_vehicles') as has_air_transport, + bool_or(type_property = 'water_vehicles') as has_water_transport, + bool_or(type_property = 'realty') as has_property + from property +group by recruit_id; + N + + + 208 + 800 + + + + Update_has_criminal_prosecution + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + + = + recruit_id + recruit_id + + + ervu_dashboard + citizen
+ + has_criminal_prosecution + has_criminal_prosecution + +
+ N + Y + + + 432 + 1024 + +
+ + has_criminal_prosecution + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + +SELECT +distinct +recruit_id, +true as has_criminal_prosecution +FROM prosecution +where close_date is null; + N + + + 208 + 1024 + + + + Update_criminal_record + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + + = + recruit_id + recruit_id + + + ervu_dashboard + citizen
+ + serving_sentence + serving_sentence + + + has_sentence + has_sentence + + + has_criminal_record + has_criminal_record + +
+ N + Y + + + 432 + 1120 + +
+ + criminal_record + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +recruit_id, +bool_or(start_date < current_date and (release_date isnull or release_date > current_date)) as serving_sentence, +true as has_sentence, +true as has_criminal_record +FROM ervu_dashboard.punishment +group by recruit_id; + N + + + 208 + 1120 + + + + + +
diff --git a/mappings/jobs_once_a_day/citizen_flags.hwf b/mappings/jobs_once_a_day/citizen_flags.hwf new file mode 100644 index 0000000..2805409 --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_flags.hwf @@ -0,0 +1,386 @@ + + + citizen_flags + N + + + + 0 + - + 2025/04/25 13:38:56.431 + - + 2025/04/25 13:38:56.431 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 304 + 224 + + + + Success sitizen_flags + + SUCCESS + + N + 1760 + 224 + + + + children_flags.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}\jobs_once_a_day\children_flags.hpl + Basic + + Y + + N + local + N + N + Y + N + 480 + 128 + + + + opekun_flags.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}\jobs_once_a_day\opekun_flags.hpl + Basic + + Y + + N + local + N + N + Y + N + 624 + 128 + + + + driver_licenses_flags.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}\jobs_once_a_day\driver_licenses_flags.hpl + Basic + + Y + + N + local + N + N + Y + N + 768 + 128 + + + + citizenship_flags.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}\jobs_once_a_day\citizenship_flags.hpl + Basic + + Y + + N + local + N + N + Y + N + 928 + 128 + + + + property_flags.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}\jobs_once_a_day\property_flags.hpl + Basic + + Y + + N + local + N + N + Y + N + 1072 + 128 + + + + deputy_flags.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}\jobs_once_a_day\deputy_flags.hpl + Basic + + Y + + N + local + N + N + Y + N + 1200 + 128 + + + + criminal_prosecution_flags.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}\jobs_once_a_day\criminal_prosecution_flags.hpl + Basic + + Y + + N + local + N + N + Y + N + 960 + 224 + + + + criminal_record_flags.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}\jobs_once_a_day\criminal_record_flags.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 1184 + 224 + + + + temporary_measure_flag.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}\jobs_once_a_day\temporary_measure_flag.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 1376 + 224 + + + + subpoena_flags.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}\jobs_once_a_day\subpoena_flags.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 1584 + 224 + + + + + + children_flags.hpl + opekun_flags.hpl + Y + N + Y + + + opekun_flags.hpl + driver_licenses_flags.hpl + Y + N + Y + + + driver_licenses_flags.hpl + citizenship_flags.hpl + Y + N + Y + + + citizenship_flags.hpl + property_flags.hpl + Y + N + Y + + + property_flags.hpl + deputy_flags.hpl + Y + N + Y + + + criminal_prosecution_flags.hpl + criminal_record_flags.hpl + Y + N + Y + + + Start + criminal_prosecution_flags.hpl + Y + Y + Y + + + temporary_measure_flag.hpl + subpoena_flags.hpl + Y + N + Y + + + criminal_record_flags.hpl + temporary_measure_flag.hpl + Y + Y + Y + + + subpoena_flags.hpl + Success sitizen_flags + Y + Y + Y + + + + + + diff --git a/mappings/jobs_once_a_day/citizen_foreign_diploma_once.hpl b/mappings/jobs_once_a_day/citizen_foreign_diploma_once.hpl new file mode 100644 index 0000000..c192220 --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_foreign_diploma_once.hpl @@ -0,0 +1,200 @@ + + + + citizen_foreign_diploma_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/29 16:01:18.326 + - + 2025/04/29 16:01:18.326 + + + + + + Table input + Table output + Y + + + Table output + Dummy (do nothing) + Y + + + + Dummy (do nothing) + Dummy + + Y + + 1 + + none + + + + + 928 + 352 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select ri.recruit_id, + diploma_item->>'kvalif' as qualification, + diploma_item->>'kodOKSM' as oksm_code, + diploma_item->>'naprPod' as study_field, + diploma_item->>'nomSved' as education_certificate_number, + diploma_item->>'kodUrObr' as education_level_code, + to_date(diploma_item->>'dataPriz', 'YYYY-MM-DD') as recognition_date, + diploma_item->>'prVUSpecz' = '1' as vus_spec, + diploma_item->>'regNomDok' as doc_reg_num, + diploma_item->>'serNomDok' as doc_reg_series, + diploma_item->>'naimInoDok' as foreign_doc_name, + diploma_item->>'naimUchZaved' as education_institution_name, + diploma_item->'svedSpeczMinobr'->>'kodSpecz' as education_speciality_minpobr_code, + diploma_item->'svedSpeczMinprosv'->>'kodSpecz' as education_speciality_minprosv_code +from recruits_info ri + join recruits r + ON ri.recruit_id = r.id + and '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id), + jsonb_array_elements(info->'svedFL'->'svedInObr'->'inObr') as diploma_item +where info->'svedFL'->'svedInObr'->'inObr' != 'null'; + Y + + + 656 + 208 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + recruit_id + recruit_id + + + qualification + qualification + + + oksm_code + oksm_code + + + study_field + study_field + + + education_certificate_number + education_certificate_number + + + education_level_code + education_level_code + + + recognition_date + recognition_date + + + vus_spec + vus_spec + + + doc_reg_num + doc_reg_num + + + doc_reg_series + doc_reg_series + + + foreign_doc_name + foreign_doc_name + + + education_institution_name + education_institution_name + + + education_speciality_minpobr_code + education_speciality_minpobr_code + + + education_speciality_minprosv_code + education_speciality_minprosv_code + + + N + N + N + N + + Y + + N + ervu_dashboard + Y + citizen_foreign_education_diploma
+ + N + Y + N + Y + + + 816 + 208 + +
+ + + Table output + Dummy (do nothing) + Y + + + + + + + + + + +
diff --git a/mappings/jobs_once_a_day/citizen_foreign_once.hpl b/mappings/jobs_once_a_day/citizen_foreign_once.hpl new file mode 100644 index 0000000..4007ee2 --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_foreign_once.hpl @@ -0,0 +1,179 @@ + + + + citizen_foreign_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + + + Table input + Table output + Y + + + Table input 2 + Table output 2 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + with citizen as +(select jsonb_array_elements(ri.info->'svedFL'->'svedIGPP'->'svedIG') cit, + ri.recruit_id +from public.recruits_info ri +join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +where jsonb_typeof(ri.info->'svedFL'->'svedIGPP'->'svedIG') = 'array') +select + r.id recruit_id, + cit->'oksm'->>'naimOKSM' country_name, + cit->>'osnovPriobrIG' citizenship_basis, + to_date(cit->>'dataPriobrIG', 'YYYY-MM-DD') citizenship_date +from public.recruits r +join citizen on r.id = citizen.recruit_id; + Y + + + 208 + 208 + + + + Table input 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + with citizen as +(select jsonb_array_elements(ri.info->'svedFL'->'svedIGPP'->'svedPP') cit, + ri.recruit_id +from public.recruits_info ri +join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +where jsonb_typeof(ri.info->'svedFL'->'svedIGPP'->'svedPP') = 'array') +select + r.id recruit_id, + cit->'oksm'->>'naimOKSM' country_name, + cit->>'osnovPriobrPP' residense_right_basis, + to_date(cit->>'dataPriobrPP', 'YYYY-MM-DD') residense_right_date +from public.recruits r +join citizen on r.id = citizen.recruit_id; + Y + + + 208 + 304 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + citizenship_foreign
+ + N + Y + N + Y + + + 672 + 208 + +
+ + Table output 2 + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + citizenship_foreign
+ + N + Y + N + Y + + + 672 + 304 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/citizen_individual_decisions_once.hpl b/mappings/jobs_once_a_day/citizen_individual_decisions_once.hpl new file mode 100644 index 0000000..2be7224 --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_individual_decisions_once.hpl @@ -0,0 +1,27 @@ + + + + citizen_individual_decisions_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 12:09:58.568 + - + 2025/02/14 12:09:58.568 + + + + + + + + + diff --git a/mappings/jobs_once_a_day/citizen_information_search_once.hpl b/mappings/jobs_once_a_day/citizen_information_search_once.hpl new file mode 100644 index 0000000..0b8f469 --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_information_search_once.hpl @@ -0,0 +1,27 @@ + + + + citizen_information_search_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 11:25:30.220 + - + 2025/02/14 11:25:30.220 + + + + + + + + + diff --git a/mappings/jobs_once_a_day/citizen_kolledzh_once.hpl b/mappings/jobs_once_a_day/citizen_kolledzh_once.hpl new file mode 100644 index 0000000..9f19331 --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_kolledzh_once.hpl @@ -0,0 +1,276 @@ + + + + citizen_kolledzh_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/28 19:08:50.902 + - + 2025/04/28 19:08:50.902 + + + + + + Table input + Table output + Y + + + Table output + Dummy (do nothing) + N + + + + Dummy (do nothing) + Dummy + + Y + + 1 + + none + + + + + 656 + 368 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select ri.recruit_id, + kolledzh_item->'svedOrg'->>'inn' as inn, + kolledzh_item->'svedOrg'->>'kpp' as kpp, + coalesce(kolledzh_item->'svedOrg'->>'ogrn', kolledzh_item->'svedOrg'->>'ogrnip') as ogrn, + kolledzh_item->'svedOrg'->>'naimOrg' as educational_institution_name, + kolledzh_item->'svedOrg'->>'adresOrg' as educational_institution_address, + kolledzh_item->'svedOrg'->>'kodTipOrg' as educational_institution_type_code, + kolledzh_item->>'kodStatus' as education_status_code, + to_date(kolledzh_item->'svedVosst'->>'dataVosst', 'YYYY-MM-DD') as recovery_date, + to_date(kolledzh_item->'svedVosst'->>'nomPrikazVosstnomPrikazVosst', 'YYYY-MM-DD') as recovery_order_date, + kolledzh_item->'svedVosst'->>'nomPrikazVosst' recovery_order_number, + kolledzh_item->>'kodUrovObr' as education_level_code, + kolledzh_item->>'nomerKursa' as grade_number, + to_date(kolledzh_item->'svedOtpusk'->0->>'dataNach', 'YYYY-MM-DD') as leave_start_date, + to_date(kolledzh_item->'svedOtpusk'->0->>'dataOkonch', 'YYYY-MM-DD') as leave_end_date, + kolledzh_item->'svedOtpusk'->0->>'kodPrichOtpusk' as leave_reason_code, + to_date(kolledzh_item->>'dataZachisl', 'YYYY-MM-DD') as admission_date, + kolledzh_item->>'prPervObuch' = '1' as first_education, + kolledzh_item->'svedObrProg'->>'prVUSpecz' = '1' as vus_spec, + to_date(kolledzh_item->'svedObrProg'->>'dataNachObuch', 'YYYY-MM-DD') as education_start_date, + kolledzh_item->'svedObrProg'->>'kodFormaObuch' as education_form_code, + to_date(kolledzh_item->'svedObrProg'->>'planDataOkonch', 'YYYY-MM-DD') as planned_education_end_date, + kolledzh_item->'svedObrProg'->'svedSpeczMinobr'->>'kodSpecz' as minobr_spec_code, + kolledzh_item->'svedObrProg'->'svedSpeczMinprosv'->>'kodSpecz' as minprosv_spec_code, + to_date(kolledzh_item->'svedObrProg'->'svedOtchisl'->>'dataOtchisl', 'YYYY-MM-DD') as expulsion_date, + to_date(kolledzh_item->'svedObrProg'->'svedOtchisl'->>'dataPrikazOtchisl', 'YYYY-MM-DD') as expulsion_order_date, + kolledzh_item->'svedObrProg'->'svedOtchisl'->>'nomPrikazOtchisl' as expulsion_order_number, + to_date(kolledzh_item->>'dataPrikazZachisl', 'YYYY-MM-DD') as admission_order_date, + kolledzh_item->>'nomPrikazZachisl' as admission_order_number +from recruits_info ri, + --join recruits r + --ON ri.recruit_id = r.id + --and '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id), + jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') as kolledzh_item +where info->'svedFL'->'svedKolledzh'->'kolledzh' != 'null'; + + N + + + 384 + 192 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + recruit_id + recruit_id + + + inn + inn + + + kpp + kpp + + + ogrn + ogrn + + + educational_institution_name + educational_institution_name + + + educational_institution_address + educational_institution_address + + + educational_institution_type_code + educational_institution_type_code + + + education_status_code + education_status_code + + + recovery_date + recovery_date + + + recovery_order_date + recovery_order_date + + + recovery_order_number + recovery_order_number + + + education_level_code + education_level_code + + + grade_number + grade_number + + + leave_start_date + leave_start_date + + + leave_end_date + leave_end_date + + + leave_reason_code + leave_reason_code + + + admission_date + admission_date + + + first_education + first_education + + + vus_spec + vus_spec + + + education_start_date + education_start_date + + + education_form_code + education_form_code + + + planned_education_end_date + planned_education_end_date + + + minobr_spec_code + minobr_spec_code + + + minprosv_spec_code + minprosv_spec_code + + + expulsion_date + expulsion_date + + + expulsion_order_date + expulsion_order_date + + + expulsion_order_number + expulsion_order_number + + + admission_order_date + admission_order_date + + + admission_order_number + admission_order_number + + + N + N + N + N + + Y + + N + ervu_dashboard + Y + citizen_education
+ + N + Y + N + Y + + + 560 + 192 + +
+ + + Table output + Dummy (do nothing) + Y + + + + + + + + + + +
diff --git a/mappings/jobs_once_a_day/citizen_liability_fz53_once.hpl b/mappings/jobs_once_a_day/citizen_liability_fz53_once.hpl new file mode 100644 index 0000000..17b6678 --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_liability_fz53_once.hpl @@ -0,0 +1,209 @@ + + + + citizen_liability_fz53_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/22 17:49:36.858 + - + 2025/04/22 17:49:36.858 + + + + + + Table input decision-document-service + Table output ervu_dashboard.citizen_liability_fz53 + Y + + + Table input decision-document-service + Update + Y + + + + Table input decision-document-service + TableInput + + Y + + 1 + + none + + + postgres.decision-document-service + N + 0 + SELECT + recruit_id, + extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный) + extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении + extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении + decision_number AS case_number, -- номер дела об административном правонарушении + decision_date AS date_resolution, -- дата постановления + extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ + extra_info->>'court' AS court_decision, -- суд, вынесший постановление + extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер + CASE + WHEN decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету' + WHEN decision_reason = '2' THEN 'Уклонение от медицинского обследования' + WHEN decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета' + ELSE NULL + END AS reason_use, -- причина применения + extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера + extra_info->>'description' AS size_term_punishment, -- размер и срок наказания + CASE + WHEN extra_info->>'punishment' = '1' THEN 'Предупреждение' + WHEN extra_info->>'punishment' = '2' THEN 'Административный штраф' + ELSE NULL + END AS type_punishment, -- вид наказания + true AS has_liability_fz53 +FROM public.infringement +WHERE hidden IS FALSE +AND type = 'ADMINISTRATIVE' + N + + + 608 + 288 + + + + Table output ervu_dashboard.citizen_liability_fz53 + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + recruit_id + recruit_id + + + article_koap_rf + article_koap_rf + + + body_initiated + body_initiated + + + case_number + case_number + + + case_number_before + case_number_before + + + court_decision + court_decision + + + date_initiation + date_initiation + + + date_resolution + date_resolution + + + name_vc + name_vc + + + reason_use + reason_use + + + size_term_punishment + size_term_punishment + + + start_date + start_date + + + type_punishment + type_punishment + + + N + N + N + N + + Y + + N + ervu_dashboard + Y + citizen_liability_fz53
+ + N + Y + N + Y + + + 1008 + 288 + +
+ + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_liability_fz53 + has_liability_fz53 + +
+ N + Y + + + 1008 + 400 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/citizen_school_once.hpl b/mappings/jobs_once_a_day/citizen_school_once.hpl new file mode 100644 index 0000000..dceb807 --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_school_once.hpl @@ -0,0 +1,193 @@ + + + + citizen_school_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/28 19:08:48.700 + - + 2025/04/28 19:08:48.700 + + + + + + Table input + Table output + Y + + + Table output + Dummy (do nothing) + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select ri.recruit_id, + shkola_item->'svedOrg'->>'inn' as inn, + shkola_item->'svedOrg'->>'kpp' as kpp, + coalesce(shkola_item->'svedOrg'->>'ogrn', shkola_item->'svedOrg'->>'ogrnip') as ogrn, + shkola_item->'svedOrg'->>'naimOrg' as educational_institution_name, + shkola_item->'svedOrg'->>'adresOrg' as educational_institution_address, + shkola_item->>'kodStatus' as education_status_code, + '9' as education_level_code, -- костыль + shkola_item->>'klass' as grade_number, + to_date(shkola_item->>'dataPostup', 'YYYY-MM-DD') as admission_date, + to_date(shkola_item->>'dataOkonch', 'YYYY-MM-DD') as planned_education_end_date, + to_date(shkola_item->>'dataPrikazZachisl', 'YYYY-MM-DD') as admission_order_date, + shkola_item->>'nomPrikazZachisl' as admission_order_number +from recruits_info ri + join recruits r + ON ri.recruit_id = r.id + and '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id), + jsonb_array_elements(info->'svedFL'->'svedSHkola'->'shkola') as shkola_item +where info->'svedFL'->'svedSHkola'->'shkola' != 'null'; + + Y + + + 352 + 208 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + recruit_id + recruit_id + + + inn + inn + + + kpp + kpp + + + ogrn + ogrn + + + educational_institution_name + educational_institution_name + + + educational_institution_address + educational_institution_address + + + education_status_code + education_status_code + + + education_level_code + education_level_code + + + grade_number + grade_number + + + admission_date + admission_date + + + planned_education_end_date + planned_education_end_date + + + admission_order_date + admission_order_date + + + admission_order_number + admission_order_number + + + N + N + N + N + Y + N + ervu_dashboard + Y + citizen_education
+ N + Y + N + Y + + + 528 + 208 + +
+ + Dummy (do nothing) + Dummy + + Y + + 1 + + none + + + + + 608 + 352 + + + + + Table output + Dummy (do nothing) + Y + + + + + + + + + + +
diff --git a/mappings/jobs_once_a_day/citizen_sports_categories_once.hpl b/mappings/jobs_once_a_day/citizen_sports_categories_once.hpl new file mode 100644 index 0000000..2e5f40e --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_sports_categories_once.hpl @@ -0,0 +1,172 @@ + + + + citizen_sports_categories_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 11:19:01.880 + - + 2025/02/14 11:19:01.880 + + + + + + Table output + Update + Y + + + Table input + Table output + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + SELECT recruit_id, + (sport_info->'sportRazr'->>'dataPrisv')::date start_date_category, + (sport_info->'sportRazr'->>'dataDeistv')::date as end_date_category, + sport_info->'sportRazr'->>'razryadNaim' as sports_category_name, + sport_info->'sportRazr'->>'sportNaim' as type_sport, + sport_info->>'sportZvan' as sport_title, + case when sport_info->>'sportRazr' != 'null' + then true else false end as having_sport_category, + (case when sport_info->>'sportZvan' != 'null' + then true else false end) as having_sport_title +FROM public.recruits_info ri +join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}'), + jsonb_array_elements(ri.info->'svedFL'->'svedSport'->'sport') AS sport_info +WHERE info->'svedFL'->'svedSport'->>'sport' != 'null' + and info->'svedFL'->'svedSport'->>'sport' != '[]'; + Y + + + 208 + 160 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + recruit_id + recruit_id + + + start_date_category + start_date_category + + + end_date_category + end_date_category + + + sports_category_name + sports_category_name + + + type_sport + type_sport + + + sport_title + sport_title + + + N + N + N + N + + Y + + N + ervu_dashboard + Y + citizen_sports_categories
+ + N + Y + N + Y + + + 400 + 160 + +
+ + Update + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + sports_category + having_sport_category + + + having_sport_title + having_sport_title + +
+ N + Y + + + 528 + 160 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/citizen_vuz_education_once.hpl b/mappings/jobs_once_a_day/citizen_vuz_education_once.hpl new file mode 100644 index 0000000..02672be --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_vuz_education_once.hpl @@ -0,0 +1,295 @@ + + + + citizen_vuz_education_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/27 19:55:49.026 + - + 2025/04/27 19:55:49.026 + + + + + + vuz_input + Table output + Y + + + Table output + Dummy (do nothing) + N + + + + Dummy (do nothing) + Dummy + + Y + + 1 + + none + + + + + 624 + 416 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + recruit_id + recruit_id + + + inn + inn + + + kpp + kpp + + + ogrn + ogrn + + + educational_institution_name + educational_institution_name + + + educational_institution_address + educational_institution_address + + + educational_institution_type_code + educational_institution_type_code + + + education_status_code + education_status_code + + + recovery_date + recovery_date + + + recovery_order_date + recovery_order_date + + + recovery_order_number + recovery_order_number + + + education_level_code + education_level_code + + + grade_number + grade_number + + + leave_start_date + leave_start_date + + + leave_end_date + leave_end_date + + + leave_reason_code + leave_reason_code + + + admission_date + admission_date + + + first_education + first_education + + + vus_spec + vus_spec + + + education_start_date + education_start_date + + + education_form_code + education_form_code + + + planned_education_end_date + planned_education_end_date + + + minobr_spec_code + minobr_spec_code + + + minprosv_spec_code + minprosv_spec_code + + + expulsion_date + expulsion_date + + + expulsion_order_date + expulsion_order_date + + + expulsion_order_number + expulsion_order_number + + + military_education_start_date + military_education_start_date + + + military_education_end_date + military_education_end_date + + + admission_order_date + admission_order_date + + + admission_order_number + admission_order_number + + + military_department_education_start_date + military_department_education_start_date + + + military_department_education_end_date + military_department_education_end_date + + + N + N + N + N + Y + N + ervu_dashboard + Y + citizen_education
+ N + Y + N + Y + + + 480 + 304 + +
+ + vuz_input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select ri.recruit_id, + vuz_item->'svedOrg'->>'inn' as inn, + vuz_item->'svedOrg'->>'kpp' as kpp, + coalesce(vuz_item->'svedOrg'->>'ogrn', vuz_item->'svedOrg'->>'ogrnip') as ogrn, + vuz_item->'svedOrg'->>'naimOrg' as educational_institution_name, + vuz_item->'svedOrg'->>'adresOrg' as educational_institution_address, + vuz_item->'svedOrg'->>'kodTipOrg' as educational_institution_type_code, + vuz_item->>'kodStatus' as education_status_code, + to_date(vuz_item->'svedVosst'->>'dataVosst', 'YYYY-MM-DD') as recovery_date, + to_date(vuz_item->'svedVosst'->>'nomPrikazVosstnomPrikazVosst', 'YYYY-MM-DD') as recovery_order_date, + vuz_item->'svedVosst'->>'nomPrikazVosst' recovery_order_number, + vuz_item->>'kodUrovObr' as education_level_code, + vuz_item->>'nomerKursa' as grade_number, + to_date(vuz_item->'svedOtpusk'->0->>'dataNach', 'YYYY-MM-DD') as leave_start_date, + to_date(vuz_item->'svedOtpusk'->0->>'dataOkonch', 'YYYY-MM-DD') as leave_end_date, + vuz_item->'svedOtpusk'->0->>'kodPrichOtpusk' as leave_reason_code, + to_date(vuz_item->>'dataZachisl', 'YYYY-MM-DD') as admission_date, + vuz_item->>'prPervObuch' = '1' as first_education, + vuz_item->'svedObrProg'->>'prVUSpecz' = '1' as vus_spec, + to_date(vuz_item->'svedObrProg'->>'dataNachObuch', 'YYYY-MM-DD') as education_start_date, + vuz_item->'svedObrProg'->>'kodFormaObuch' as education_form_code, + to_date(vuz_item->'svedObrProg'->>'planDataOkonch', 'YYYY-MM-DD') as planned_education_end_date, + vuz_item->'svedObrProg'->'svedSpeczMinobr'->>'kodSpecz' as minobr_spec_code, + vuz_item->'svedObrProg'->'svedSpeczMinprosv'->>'kodSpecz' as minprosv_spec_code, + to_date(vuz_item->'svedObrProg'->'svedOtchisl'->>'dataOtchisl', 'YYYY-MM-DD') as expulsion_date, + to_date(vuz_item->'svedObrProg'->'svedOtchisl'->>'dataPrikazOtchisl', 'YYYY-MM-DD') as expulsion_order_date, + vuz_item->'svedObrProg'->'svedOtchisl'->>'nomPrikazOtchisl' as expulsion_order_number, + to_date(vuz_item->'svedVoenObuch'->>'dataNach', 'YYYY-MM-DD') as military_education_start_date, + to_date(vuz_item->'svedVoenObuch'->>'dataOkonch', 'YYYY-MM-DD') as military_education_end_date, + to_date(vuz_item->>'dataPrikazZachisl', 'YYYY-MM-DD') as admission_order_date, + vuz_item->>'nomPrikazZachisl' as admission_order_number, + to_date(vuz_item->'extend'->'svedVoenKaf'->>'dataNach', 'YYYY-MM-DD') as military_department_education_start_date, + to_date(vuz_item->'extend'->'svedVoenKaf'->>'dataOkonch', 'YYYY-MM-DD') as military_department_education_end_date, + to_date(vuz_item->'extend'->'svedVoenKaf'->>'dataOkonch', 'YYYY-MM-DD') is not null as has_military_training_center_education, + to_date(vuz_item->'extend'->'svedVoenKaf'->>'dataOkonch', 'YYYY-MM-DD') is not null as has_military_department_education +from recruits_info ri, + --join recruits r + --ON ri.recruit_id = r.id + -- and '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id), + jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') as vuz_item +where info->'svedFL'->'svedVUZ'->'vuz' != 'null'; + + N + + + 304 + 304 + + + + + Table output + Dummy (do nothing) + N + + + + + + + + + + +
diff --git a/mappings/jobs_once_a_day/citizen_work_activity_once.hpl b/mappings/jobs_once_a_day/citizen_work_activity_once.hpl new file mode 100644 index 0000000..d8b22df --- /dev/null +++ b/mappings/jobs_once_a_day/citizen_work_activity_once.hpl @@ -0,0 +1,289 @@ + + + + citizen_work_activity_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 11:02:25.713 + - + 2025/02/14 11:02:25.713 + + + + + + Table input + Table output + Y + + + Table output + Update + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH trud_info AS ( + SELECT + ri.info, + ri.recruit_id::uuid, + case when ri.info->'svedFL'->'svedTrud'->'trudDeyat' IS NULL THEN NULL + WHEN jsonb_typeof(ri.info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN + (ri.info->'svedFL'->'svedTrud'->'trudDeyat'->0) end as trud_deyat, + case when ri.info->'svedFL'->'svedTrud'->'trudDeyat' IS NULL THEN NULL + WHEN jsonb_typeof(ri.info->'svedFL'->'svedTrud'->'trudDeyat'->0->'svedUhodReb') = 'array' + then ri.info->'svedFL'->'svedTrud'->'trudDeyat'->0->'svedUhodReb'->0 end AS parental_leave_info, + coalesce( + ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat', + ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'predRabotodat' + ) AS employer, + (CASE + WHEN info->'svedFL'->'svedRegIP'->'regIP' IS NULL THEN NULL + WHEN jsonb_typeof(info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN + (info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP'->0) + ELSE + info->'svedFL'->'svedRegIP'->'regIP'->'predRegIP' + END) AS reg_ip, + COALESCE( + ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD', + ri.info->'svedFL'->'svedNPD'->'npd'->'predNPD' + ) AS self_employment + FROM public.recruits_info ri + join public.recruits r + ON r.id = ri.recruit_id + AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +) +SELECT + ti.recruit_id::uuid, + (ti.trud_deyat->>'dataMeropr')::date AS personnel_event_date, + ti.trud_deyat->>'naimTipKadrMeropr' AS personnel_event_type, + case when ti.trud_deyat->>'prAktMestRab' = '1' then true else false end AS current_workplace, + ti.trud_deyat->>'trudFunkcziya' AS position, + ti.trud_deyat->'svedOrg'->>'naimOrg' AS employer_name, + ti.employer->'svedYUL'->>'kpp' AS employer_kpp, + CASE + WHEN ti.employer->>'svedYUL' != 'null' THEN 'Юридическое лицо' + WHEN ti.employer->>'svedIP' != 'null' THEN 'Индивидуальный предприниматель' + END AS employer_category, + COALESCE( + ti.employer->'svedYUL'->>'innyul', + ti.employer->'svedIP'->>'innyfl' + ) AS employer_inn, + ti.employer->'svedYUL'->'svedOPK'->>'region' AS employer_address, + COALESCE( + ti.employer->'svedIP'->>'ogrnip', + ti.employer->'svedYUL'->'extend'->>'ogrn' + ) AS employer_ogrnip, + ti.employer->'extend'->>'tipPodrazdRabotodat' as employer_unit_type, + ti.employer->'extend'->>'adresPodrazdRabotodat' as employer_unit_address, + (ti.parental_leave_info->>'dataNachUhodReb')::date as parental_leave_start_date, + (ti.parental_leave_info->>'dataKonUhodReb')::date as parental_leave_end_date, + case when (ti.parental_leave_info->>'dataNachUhodReb')::date <= current_date + and ((ti.parental_leave_info->>'dataKonUhodReb')::date is null + or (ti.parental_leave_info->>'dataKonUhodReb')::date > current_date) + then true + else false end as parental_leave_active, + (ti.reg_ip->>'dataRegIP')::date as reg_ip_date, + (ti.reg_ip->>'dataINNNed')::date as dereg_ip_date, + ti.reg_ip->>'ogrnip' as ogrnip_ip, + case when ti.reg_ip != 'null' + then true else false end as active_ip, + ti.self_employment->>'dataUchNPD' as reg_self_employment_date, + ti.self_employment->>'dataSnUchNPD' as dereg_self_employment_date, + case when ti.self_employment != 'null' + then true else false end as active_self_employment +FROM trud_info ti + + Y + + + 0 + 0 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + recruit_id + recruit_id + + + employer_category + employer_category + + + organization_name + employer_name + + + inn + employer_inn + + + ogrn + employer_ogrnip + + + kpp + employer_kpp + + + organization_address + employer_address + + + type_separate_division + employer_unit_type + + + address_separate_division + employer_unit_address + + + type_hr_event + personnel_event_type + + + date_hr_event + personnel_event_date + + + job_title + position + + + start_date_parental_leave + parental_leave_start_date + + + end_date_parental_leave + parental_leave_end_date + + + ogrn_ip + ogrnip_ip + + + date_reg_ip + reg_ip_date + + + date_dereg_ip + dereg_ip_date + + + date_reg_self + reg_self_employment_date + + + date_dereg_self + dereg_self_employment_date + + + N + N + N + N + + Y + + N + ervu_dashboard + Y + citizen_work_activity
+ + N + Y + N + Y + + + 144 + 0 + +
+ + Update + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + employed + current_workplace + + + active_reg_ip + active_ip + + + active_parental_leave + parental_leave_active + + + self_employed + active_self_employment + +
+ N + Y + + + 320 + 0 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/citizenship_flags.hpl b/mappings/jobs_once_a_day/citizenship_flags.hpl new file mode 100644 index 0000000..5ebf506 --- /dev/null +++ b/mappings/jobs_once_a_day/citizenship_flags.hpl @@ -0,0 +1,104 @@ + + + + citizenship_flags + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/25 13:12:27.341 + - + 2025/04/25 13:12:27.341 + + + + + + citizenship_flag_output + Update_citizenship_flag + Y + + + + Update_citizenship_flag + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_russian_citizenship + has_russian_citizenship + + + has_foreign_citizenship + has_foreign_citizenship + +
+ N + Y + + + 720 + 208 + +
+ + citizenship_flag_output + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with foreign_citizenship as ( + select recruit_id, true as has_foreign_citizenship + from citizenship_foreign +) +select + citizenship.recruit_id, + true as has_russian_citizenship, + coalesce(has_foreign_citizenship, false) as has_foreign_citizenship + from citizenship + left join foreign_citizenship + on foreign_citizenship.recruit_id = citizenship.recruit_id +where renunciation_number is null; + N + + + 544 + 208 + + + + + +
diff --git a/mappings/jobs_once_a_day/citizenship_once.hpl b/mappings/jobs_once_a_day/citizenship_once.hpl new file mode 100644 index 0000000..8ac82ca --- /dev/null +++ b/mappings/jobs_once_a_day/citizenship_once.hpl @@ -0,0 +1,103 @@ + + + + citizenship_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + + + Table input + Table output + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select r.id recruit_id, +ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'osnPriob' acquiring_basis, +ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshPriob' acquiring_number, +to_date(ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'dataReshPriob', 'YYYY-MM-DD') acquiring_date, +ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'organReshPriob' acquiring_authority, +ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'osnVyh' renunciation_basis, +ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshVyh' renunciation_number, +to_date(ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'dataReshVyh', 'YYYY-MM-DD') renunciation_date, +ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'organReshVyh' renunciation_authority +from public.recruits_info ri +join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +where ri.info->'svedFL'->'svedGrazhdanRF'->>'prOtsGrazhdanRF' is null and +(ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshPriob' is not null or ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'osnVyh' is not null) + Y + + + 432 + 224 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + citizenship
+ + N + Y + N + Y + + + 672 + 224 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/copy_punishment_and_deferment_once.hwf b/mappings/jobs_once_a_day/copy_punishment_and_deferment_once.hwf new file mode 100644 index 0000000..994ccc3 --- /dev/null +++ b/mappings/jobs_once_a_day/copy_punishment_and_deferment_once.hwf @@ -0,0 +1,1310 @@ + + + copy_punishment_and_deferment_once + Y + + + + - + 2025/01/10 15:49:30.690 + - + 2025/01/10 15:49:30.690 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 240 + 1024 + + + + SQL.punishment + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.punishment + N + N + N + 656 + 768 + + + + punishment_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/punishment_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1024 + 768 + + + + Success punishment_once + + SUCCESS + + N + 1424 + 768 + + + + citizen_appealing_violations_fz53_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/citizen_appealing_violations_fz53_once.hpl + Basic + + Y + + N + local + N + N + Y + N + 1008 + 1136 + + + + citizen_criminal_liability_fz53_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/citizen_criminal_liability_fz53_once.hpl + Basic + + Y + + N + local + N + N + Y + N + 1008 + 1072 + + + + Success citizen_criminal_liability_fz53_once + + SUCCESS + + N + 1408 + 1072 + + + + Success citizen_appealing_violations_fz53_once + + SUCCESS + + N + 1408 + 1136 + + + + SQL.citizen_criminal_liability_fz53 + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_criminal_liability_fz53 + N + N + N + 640 + 1072 + + + + SQL.citizen_appealing_violations_fz53 + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_appealing_violations_fz53 + N + N + N + 640 + 1136 + + + + recruitment_rows.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/supportive_jobs/recruitment_rows.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + N + local + N + N + Y + Y + 512 + 848 + + + + SQL.citizen_deferments + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_deferment_right; +delete from ervu_dashboard.citizen_deferment; + + N + N + N + 656 + 704 + + + + deferments_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/deferments_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1200 + 704 + + + + Success + + SUCCESS + + N + 1440 + 704 + + + + deferment_reason_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/deferment_reason_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 912 + 704 + + + + citizen_liability_fz53_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/citizen_liability_fz53_once.hpl + Basic + + Y + + N + local + N + N + Y + N + 1008 + 1200 + + + + SQL.citizen_liability_fz53 + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_liability_fz53 + N + N + N + 640 + 1200 + + + + Success citizen_liability_fz53_once + + SUCCESS + + N + 1408 + 1200 + + + + Success sitizen_flags + + SUCCESS + + N + 1888 + 1296 + + + + children_flags.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}\jobs_once_a_day\children_flags.hpl + Basic + + Y + + N + local + N + N + Y + N + 640 + 1296 + + + + opekun_flags.hpl + + PIPELINE + + N + N + N + N + N + N + C:\WORK\ervu-dashboard-etl-RT\v1_apache-hop dash mapping\jobs_once_a_day\opekun_flags.hpl + Basic + + Y + + N + local + N + N + Y + N + 784 + 1296 + + + + driver_licenses_flags.hpl + + PIPELINE + + N + N + N + N + N + N + C:\WORK\ervu-dashboard-etl-RT\v1_apache-hop dash mapping\jobs_once_a_day\driver_licenses_flags.hpl + Basic + + Y + + N + local + N + N + Y + N + 928 + 1296 + + + + citizenship_flags.hpl + + PIPELINE + + N + N + N + N + N + N + C:\WORK\ervu-dashboard-etl-RT\v1_apache-hop dash mapping\jobs_once_a_day\citizenship_flags.hpl + Basic + + Y + + N + local + N + N + Y + N + 1088 + 1296 + + + + property_flags.hpl + + PIPELINE + + N + N + N + N + N + N + C:\WORK\ervu-dashboard-etl-RT\v1_apache-hop dash mapping\jobs_once_a_day\property_flags.hpl + Basic + + Y + + N + local + N + N + Y + N + 1232 + 1296 + + + + deputy_flags.hpl + + PIPELINE + + N + N + N + N + N + N + C:\WORK\ervu-dashboard-etl-RT\v1_apache-hop dash mapping\jobs_once_a_day\deputy_flags.hpl + Basic + + Y + + N + local + N + N + Y + N + 1360 + 1296 + + + + criminal_prosecution_flags.hpl + + PIPELINE + + N + N + N + N + N + N + C:\WORK\ervu-dashboard-etl-RT\v1_apache-hop dash mapping\jobs_once_a_day\criminal_prosecution_flags.hpl + Basic + + Y + + N + local + N + N + Y + N + 1520 + 1296 + + + + criminal_record_flags.hpl + + PIPELINE + + N + N + N + N + N + N + C:\WORK\ervu-dashboard-etl-RT\v1_apache-hop dash mapping\jobs_once_a_day\criminal_record_flags.hpl + Basic + + Y + + N + local + N + N + Y + N + 1712 + 1296 + + + + id_ern_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}\jobs_once_a_day\id_ern_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 656 + 832 + + + + recruitment_code_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}\jobs_once_a_day\recruitment_code_once.hpl + Basic + + Y + + N + local + N + N + Y + N + 640 + 992 + + + + Success_id_ern + + SUCCESS + + N + 848 + 832 + + + + Success_recruitment_code + + SUCCESS + + N + 848 + 992 + + + + recruit_ervu_status_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/recruit_ervu_status_once.hpl + Basic + + Y + + N + local + N + N + Y + N + 656 + 912 + + + + success_recruit_ervu_sratus + + SUCCESS + + N + 848 + 912 + + + + education_constants_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/education_constants_once.hpl + Basic + + Y + + N + local + N + N + Y + N + 720 + 496 + + + + citizen_vuz_education_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/citizen_vuz_education_once.hpl + Basic + + Y + + N + local + N + N + Y + N + 1024 + 496 + + + + citizen_kolledzh_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/citizen_kolledzh_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + N + local + N + N + Y + N + 1232 + 496 + + + + citizen_school_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/citizen_school_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + N + local + N + N + Y + N + 1088 + 432 + + + + SQL + + SQL + + ervu-dashboard + N + DELETE FROM ervu_dashboard.citizen_education; + N + N + N + 848 + 496 + + + + Success 2 + + SUCCESS + + N + 1232 + 432 + + + + citizen_diploma_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/citizen_diploma_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + N + local + N + N + Y + N + 672 + 432 + + + + citizen_foreign_diploma_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/citizen_foreign_diploma_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + N + local + N + N + Y + N + 880 + 432 + + + + Success 2 2 + + SUCCESS + + N + 1712 + 608 + + + + SQL 2 + + SQL + + ervu-dashboard + N + WITH updated_citizens AS ( + SELECT DISTINCT recruit_id + FROM ervu_dashboard.citizen_education_diploma + UNION + SELECT DISTINCT recruit_id + FROM ervu_dashboard.citizen_foreign_education_diploma +) +UPDATE ervu_dashboard.citizen c +SET + has_education_diploma = EXISTS ( + SELECT 1 FROM ervu_dashboard.citizen_education_diploma ced + WHERE ced.recruit_id = c.recruit_id + ), + has_foreign_education_diploma = EXISTS ( + SELECT 1 FROM ervu_dashboard.citizen_foreign_education_diploma cfed + WHERE cfed.recruit_id = c.recruit_id + ), + educated = ( + EXISTS ( + SELECT 1 FROM ervu_dashboard.citizen_education_diploma ced + WHERE ced.recruit_id = c.recruit_id + ) OR EXISTS ( + SELECT 1 FROM ervu_dashboard.citizen_foreign_education_diploma cfed + WHERE cfed.recruit_id = c.recruit_id + ) + ) +FROM updated_citizens uc +WHERE c.recruit_id = uc.recruit_id; + + N + N + N + 1328 + 608 + + + + SQL 3 + + SQL + + ervu-dashboard + N + UPDATE ervu_dashboard.citizen AS c +SET has_actual_academic_leave = true +FROM ( + SELECT DISTINCT recruit_id + FROM ervu_dashboard.citizen_education + WHERE leave_end_date > current_date +) AS active_leave +WHERE c.recruit_id = active_leave.recruit_id; + + + N + N + N + 1456 + 608 + + + + SQL 4 + + SQL + + ervu-dashboard + N + WITH active_education AS ( + SELECT + recruit_id, + military_education_end_date > current_date AS has_military_training_center_education, + military_department_education_end_date > current_date AS has_military_department_education + FROM ervu_dashboard.citizen_education + GROUP BY recruit_id, military_education_end_date, military_department_education_end_date +) +UPDATE ervu_dashboard.citizen c +SET + has_military_training_center_education = ae.has_military_training_center_education, + has_military_department_education = ae.has_military_department_education +FROM active_education ae +WHERE c.recruit_id = ae.recruit_id + AND ( + c.has_military_training_center_education IS DISTINCT FROM ae.has_military_training_center_education OR + c.has_military_department_education IS DISTINCT FROM ae.has_military_department_education + ); + + + N + N + N + 1584 + 608 + + + + + + SQL.punishment + punishment_once.hpl + Y + Y + N + + + punishment_once.hpl + Success punishment_once + Y + N + Y + + + citizen_criminal_liability_fz53_once.hpl + Success citizen_criminal_liability_fz53_once + Y + N + Y + + + citizen_appealing_violations_fz53_once.hpl + Success citizen_appealing_violations_fz53_once + Y + N + Y + + + SQL.citizen_criminal_liability_fz53 + citizen_criminal_liability_fz53_once.hpl + Y + Y + N + + + Start + SQL.citizen_criminal_liability_fz53 + N + Y + Y + + + SQL.citizen_appealing_violations_fz53 + citizen_appealing_violations_fz53_once.hpl + Y + Y + N + + + Start + SQL.citizen_appealing_violations_fz53 + N + Y + Y + + + Start + recruitment_rows.hpl + N + Y + Y + + + recruitment_rows.hpl + SQL.punishment + N + Y + N + + + deferments_once.hpl + Success + Y + N + Y + + + deferment_reason_once.hpl + deferments_once.hpl + Y + Y + N + + + recruitment_rows.hpl + SQL.citizen_deferments + N + Y + N + + + SQL.citizen_deferments + deferment_reason_once.hpl + Y + Y + N + + + SQL.citizen_liability_fz53 + citizen_liability_fz53_once.hpl + Y + Y + N + + + citizen_liability_fz53_once.hpl + Success citizen_liability_fz53_once + Y + N + Y + + + Start + SQL.citizen_liability_fz53 + N + Y + Y + + + children_flags.hpl + opekun_flags.hpl + Y + N + Y + + + opekun_flags.hpl + driver_licenses_flags.hpl + Y + N + Y + + + driver_licenses_flags.hpl + citizenship_flags.hpl + Y + N + Y + + + citizenship_flags.hpl + property_flags.hpl + Y + N + Y + + + property_flags.hpl + deputy_flags.hpl + Y + N + Y + + + deputy_flags.hpl + criminal_prosecution_flags.hpl + Y + N + Y + + + criminal_prosecution_flags.hpl + criminal_record_flags.hpl + Y + N + Y + + + criminal_record_flags.hpl + Success sitizen_flags + Y + N + Y + + + Start + children_flags.hpl + N + Y + Y + + + Start + recruitment_code_once.hpl + N + Y + Y + + + id_ern_once.hpl + Success_id_ern + Y + Y + N + + + recruitment_code_once.hpl + Success_recruitment_code + Y + Y + N + + + recruitment_rows.hpl + id_ern_once.hpl + N + Y + N + + + Start + recruit_ervu_status_once.hpl + N + Y + Y + + + recruit_ervu_status_once.hpl + success_recruit_ervu_sratus + Y + Y + N + + + education_constants_once.hpl + SQL + Y + N + Y + + + SQL + citizen_vuz_education_once.hpl + Y + Y + N + + + citizen_vuz_education_once.hpl + citizen_kolledzh_once.hpl + Y + N + Y + + + citizen_diploma_once.hpl + citizen_foreign_diploma_once.hpl + Y + N + Y + + + citizen_foreign_diploma_once.hpl + citizen_school_once.hpl + Y + N + Y + + + citizen_school_once.hpl + Success 2 + Y + N + Y + + + Start + citizen_diploma_once.hpl + N + Y + Y + + + citizen_kolledzh_once.hpl + SQL 2 + N + Y + N + + + SQL 2 + SQL 3 + Y + Y + Y + + + Start + SQL 2 + Y + Y + Y + + + SQL 3 + SQL 4 + Y + N + Y + + + SQL 4 + Success 2 2 + Y + Y + Y + + + + + + diff --git a/mappings/jobs_once_a_day/criminal_prosecution_flags.hpl b/mappings/jobs_once_a_day/criminal_prosecution_flags.hpl new file mode 100644 index 0000000..f2363a1 --- /dev/null +++ b/mappings/jobs_once_a_day/criminal_prosecution_flags.hpl @@ -0,0 +1,95 @@ + + + + criminal_prosecution_flags + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/25 13:19:11.456 + - + 2025/04/25 13:19:11.456 + + + + + + has_criminal_prosecution + Update_has_criminal_prosecution + Y + + + + Update_has_criminal_prosecution + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_criminal_prosecution + has_criminal_prosecution + +
+ N + Y + + + 592 + 208 + +
+ + has_criminal_prosecution + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + +SELECT +distinct +recruit_id, +true as has_criminal_prosecution +FROM prosecution +where close_date is null; + N + + + 368 + 208 + + + + + +
diff --git a/mappings/jobs_once_a_day/criminal_record_flags.hpl b/mappings/jobs_once_a_day/criminal_record_flags.hpl new file mode 100644 index 0000000..4bc529f --- /dev/null +++ b/mappings/jobs_once_a_day/criminal_record_flags.hpl @@ -0,0 +1,103 @@ + + + + criminal_record_flags + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/25 13:20:20.487 + - + 2025/04/25 13:20:20.487 + + + + + + criminal_record + Update_criminal_record + Y + + + + Update_criminal_record + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + serving_sentence + serving_sentence + + + has_sentence + has_sentence + + + has_criminal_record + has_criminal_record + +
+ N + Y + + + 816 + 208 + +
+ + criminal_record + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +recruit_id, +bool_or(start_date < current_date and (release_date isnull or release_date > current_date)) as serving_sentence, +true as has_sentence, +true as has_criminal_record +FROM ervu_dashboard.punishment +group by recruit_id; + N + + + 592 + 208 + + + + + +
diff --git a/mappings/jobs_once_a_day/deferment_reason_once.hpl b/mappings/jobs_once_a_day/deferment_reason_once.hpl new file mode 100644 index 0000000..e8ac9c3 --- /dev/null +++ b/mappings/jobs_once_a_day/deferment_reason_once.hpl @@ -0,0 +1,104 @@ + + + + deferment_reason_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/20 13:49:26.080 + - + 2025/04/20 13:49:26.080 + + + + + + Table input 2 + Insert / update + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + = + code + code + + + ervu_dashboard + deferment_reason
+ + code + code + N + + + value + value + N + + + actual + actual + N + +
+ Y + + + 496 + 304 + +
+ + Table input 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select + code, + value, + true as actual + from ervu_reason_for_deferment + where hidden is false; + N + + + 304 + 304 + + + + + +
diff --git a/mappings/jobs_once_a_day/deferments_once.hpl b/mappings/jobs_once_a_day/deferments_once.hpl new file mode 100644 index 0000000..440cf60 --- /dev/null +++ b/mappings/jobs_once_a_day/deferments_once.hpl @@ -0,0 +1,341 @@ + + + + deferments_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/20 11:21:19.116 + - + 2025/04/20 11:21:19.116 + + + + + + deferment_right_input + deferment_right_output + Y + + + deferment_input + deferment_output + Y + + + deferment_right_output + Update + Y + + + deferment_output + Update 2 + Y + + + deferment_output + Dummy (do nothing) + Y + + + + Dummy (do nothing) + Dummy + + Y + + 1 + + none + + + + + 768 + 480 + + + + Update + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_deferment_right + has_deferment_right + +
+ N + Y + + + 720 + 208 + +
+ + Update 2 + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_deferment + has_active_deferment + + + has_exemption + has_exemption + +
+ N + Y + + + 768 + 336 + +
+ + deferment_input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select + ddd.recruit_id, + ddd.decision_number, + ddd.type->>'value' as deferment_type, + ddd.decision_date as start_date, + ddd.postponement_date as end_date, + ddd.base_deferment as reason_code, + ddd.type->>'code' = '1' as has_active_deferment, + ddd.type->>'code' = '2' as has_exemption, + not ddd.hidden as active +from decision_deferment_dto ddd + join public.recruits r + ON r.id = ddd.recruit_id + AND '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id) +where hidden is false; + Y + + + 272 + 336 + + + + deferment_output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + recruit_id + recruit_id + + + decision_number + decision_number + + + type + deferment_type + + + start_date + start_date + + + end_date + end_date + + + reason_code + reason_code + + + active + active + + + N + N + N + N + Y + N + ervu_dashboard + Y + citizen_deferment
+ N + Y + N + Y + + + 544 + 336 + +
+ + deferment_right_input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select + rd.recruit_id, + rd.date_of_information as start_date, + rd.postponement_date as end_date, + erfd.code, + true as has_deferment_right +from recruits_deferment rd + join ervu_reason_for_deferment erfd + on erfd.id = rd.ervu_reason_for_deferment_id + join public.recruits r + ON r.id = rd.recruit_id + AND '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id) +where rd.hidden is false; + Y + + + 272 + 208 + + + + deferment_right_output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + recruit_id + recruit_id + + + start_date + start_date + + + end_date + end_date + + + code + code + + + actual + has_deferment_right + + + N + N + N + N + Y + N + ervu_dashboard + Y + citizen_deferment_right
+ N + Y + N + Y + + + 544 + 208 + +
+ + + deferment_output + Dummy (do nothing) + Y + + + + + + + + + + +
diff --git a/mappings/jobs_once_a_day/deputy_flags.hpl b/mappings/jobs_once_a_day/deputy_flags.hpl new file mode 100644 index 0000000..4822243 --- /dev/null +++ b/mappings/jobs_once_a_day/deputy_flags.hpl @@ -0,0 +1,98 @@ + + + + deputy_flags + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/25 13:15:05.259 + - + 2025/04/25 13:15:05.259 + + + + + + deputy_input + Update_deputy_flag + Y + + + + Update_deputy_flag + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + is_deputy + is_deputy + + + is_deputy_candidate + is_deputy_candidate + +
+ N + Y + + + 560 + 240 + +
+ + deputy_input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + +SELECT + recruit_id, + COALESCE(deputy.deputy, false) AS is_deputy, + NOT COALESCE(deputy.deputy, false) AS is_deputy_candidate +FROM deputy; + N + + + 384 + 240 + + + + + +
diff --git a/mappings/jobs_once_a_day/deputy_once.hpl b/mappings/jobs_once_a_day/deputy_once.hpl new file mode 100644 index 0000000..fa7c33e --- /dev/null +++ b/mappings/jobs_once_a_day/deputy_once.hpl @@ -0,0 +1,221 @@ + + + + deputy_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + + + Table input 2 + Table output 2 + Y + + + Table input + Insert / update + N + + + Table input + Table output + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + deputy
+ + recruit_id + recruit_id + N + + + end_date + end_date + Y + + + information + information + Y + + + period_office + period_office + Y + +
+ N + + + 720 + 160 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select r.id recruit_id, +ri.info->'svedFL'->'svedDeputat'->'deputat'->>'srokiPolnomochii' period_office, +to_date(ri.info->'svedFL'->'svedDeputat'->'deputat'->>'dataDosrochPrekr', 'YYYY-MM-DD') end_date, +ri.info->'svedFL'->'svedDeputat'->'deputat'->>'svedIzbrDeputatom' information +from public.recruits_info ri +join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +where ri.info->'svedFL'->'svedDeputat'->'deputat'->>'svedIzbrDeputatom' is not null; + Y + + + 432 + 224 + + + + Table input 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select r.id recruit_id, +to_date(ri.info->'svedFL'->'svedKandidat'->'kandidat'->>'dataSnyatKandidat', 'YYYY-MM-DD') end_date, +ri.info->'svedFL'->'svedKandidat'->'kandidat'->>'svedRegKandidata' information, +false deputy +from public.recruits_info ri +join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +where ri.info->'svedFL'->'svedKandidat'->>'kandidat' is not null + Y + + + 432 + 320 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + deputy
+ + N + Y + N + Y + + + 800 + 224 + +
+ + Table output 2 + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + deputy
+ + N + Y + N + Y + + + 800 + 320 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/disability_once.hpl b/mappings/jobs_once_a_day/disability_once.hpl new file mode 100644 index 0000000..c602ba2 --- /dev/null +++ b/mappings/jobs_once_a_day/disability_once.hpl @@ -0,0 +1,312 @@ + + + + disability_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + + + Table input + Table output + Y + + + Table input 2 + Table output 2 + Y + + + Table output 2 + Update 2 + Y + + + Table output + Update + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select + recruit_id, + case when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='1' then 'I группа' + when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='2' then 'II группа' + when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='3' then 'III группа' + when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='4' then 'ребенок-инвалид' + end disability_group, + ri.info->'svedFL'->'svedInvalid'->'invalid'->>'ustanOrg' organization_name, + to_date(ri.info->'svedFL'->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataUstan', 'YYYY-MM-DD') start_date, + to_date(ri.info->'svedFL'->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataSnyat', 'YYYY-MM-DD') close_date, + to_date(ri.info->'svedFL'->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataPodtverzhdPlan', 'YYYY-MM-DD') confirmation_date, + true disability +from public.recruits_info ri + join public.recruits r + ON r.id = ri.recruit_id + AND (r.target_recruitment_id = '${RCRT_C}' or + r.current_recruitment_id = '${RCRT_C}') +where ri.info->'svedFL'->'svedInvalid'->>'invalid' != 'null'; + Y + + + 208 + 208 + + + + Table input 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select + recruit_id, + ri.info->'svedNedeesp'->'nedeesposob'->>'naimOrg' organization_name, + to_date(ri.info->'svedNedeesp'->'nedeesposob'->>'dataPrisv', 'YYYY-MM-DD') start_date, + to_date(ri.info->'svedNedeesp'->'nedeesposob'->>'dataOtmeny', 'YYYY-MM-DD') close_date, + false disability, + true is_incompetent +from public.recruits_info ri + join public.recruits r + ON r.id = ri.recruit_id + AND (r.target_recruitment_id = '${RCRT_C}' or + r.current_recruitment_id = '${RCRT_C}') +where ri.info->'svedNedeesp'->>'nedeesposob' != 'null'; + Y + + + 208 + 304 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + recruit_id + recruit_id + + + disability_group + disability_group + + + organization_name + organization_name + + + start_date + start_date + + + close_date + close_date + + + confirmation_date + confirmation_date + + + disability + disability + + + N + N + N + N + + Y + + N + ervu_dashboard + Y + disability
+ + N + Y + N + Y + + + 416 + 208 + +
+ + Table output 2 + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + recruit_id + recruit_id + + + organization_name + organization_name + + + start_date + start_date + + + close_date + close_date + + + disability + disability + + + N + N + N + N + + Y + + N + ervu_dashboard + Y + disability
+ + N + Y + N + Y + + + 416 + 304 + +
+ + Update + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_disability + disability + +
+ N + Y + + + 576 + 208 + +
+ + Update 2 + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + is_incompetent + is_incompetent + +
+ N + Y + + + 576 + 304 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/disease_once.hpl b/mappings/jobs_once_a_day/disease_once.hpl new file mode 100644 index 0000000..c4ccb5f --- /dev/null +++ b/mappings/jobs_once_a_day/disease_once.hpl @@ -0,0 +1,168 @@ + + + + disease_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + + + Table input + Table output + Y + + + Table output + Update + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + with zdorov as (select ri.recruit_id, + jsonb_array_elements( + ri.info -> 'svedFL' -> 'svedSostZdorov' -> 'svedZdorov' -> + 'sostZdorov') z, + case + when ri.info -> 'svedFL' -> 'svedSostZdorov' -> 'svedZdorov' ->> + 'priznakNalichSved' = '1' + then true + else false end as has_disease + from public.recruits_info ri + join public.recruits r + ON r.id = ri.recruit_id + AND (r.target_recruitment_id = '${RCRT_C}' or + r.current_recruitment_id = '${RCRT_C}') + where jsonb_typeof(ri.info -> 'svedFL' -> 'svedSostZdorov' -> 'svedZdorov' -> + 'sostZdorov') = 'array') +select recruit_id, + z ->> 'kodZabol' code, + z ->> 'naimZabol' name, + has_disease, + to_date(z ->> 'dataDiagn', 'YYYY-MM-DD') reg_date +from zdorov; + Y + + + 208 + 208 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + recruit_id + recruit_id + + + code + code + + + name + name + + + reg_date + reg_date + + + N + N + N + N + + Y + + N + ervu_dashboard + Y + disease
+ + N + Y + N + Y + + + 416 + 208 + +
+ + Update + Update + + Y + + 1 + + none + + + 50000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_disease + has_disease + +
+ N + Y + + + 592 + 208 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/driver_licenses_flags.hpl b/mappings/jobs_once_a_day/driver_licenses_flags.hpl new file mode 100644 index 0000000..e8fae90 --- /dev/null +++ b/mappings/jobs_once_a_day/driver_licenses_flags.hpl @@ -0,0 +1,98 @@ + + + + driver_licenses_flags + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/25 13:11:28.008 + - + 2025/04/25 13:11:28.008 + + + + + + driver_licence_output + Update_driver_licence_flag + Y + + + + Update_driver_licence_flag + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + tractor_license + has_tractor_licence + + + has_driver_license + has_driver_license + +
+ N + Y + + + 464 + 320 + +
+ + driver_licence_output + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + select + recruit_id, + bool_or(not tractor_driver) as has_driver_license, + bool_or(tractor_driver) as has_tractor_licence +from drivers_licence +group by recruit_id; + N + + + 288 + 320 + + + + + +
diff --git a/mappings/jobs_once_a_day/drivers_licence_once.hpl b/mappings/jobs_once_a_day/drivers_licence_once.hpl new file mode 100644 index 0000000..c3211dc --- /dev/null +++ b/mappings/jobs_once_a_day/drivers_licence_once.hpl @@ -0,0 +1,183 @@ + + + + drivers_licence_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + + + Table input + Table output + Y + + + Table input 2 + Table output 2 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select + ri.recruit_id recruit_id, + ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'serNomDok' licence_series, + --ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'nomVodUd' licence_number, + to_date(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'dataVydDok', 'YYYY-MM-DD') start_date, + to_date(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'srokDeistvDok', 'YYYY-MM-DD') close_date, + array_to_string(array( + select kat->>'naimKatTS' + from jsonb_array_elements(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') as kat + where jsonb_typeof(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array'), ',') categories +from public.recruits r +join public.recruits_info ri on r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +where jsonb_typeof(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array' + Y + + + 208 + 208 + + + + Table input 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select + r.id recruit_id, + ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'serUTM' licence_series, + ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'nomUTM' licence_number, + to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataVydUTM', 'YYYY-MM-DD') start_date, + to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataOkonchUTM', 'YYYY-MM-DD') close_date, + to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataIztUTM', 'YYYY-MM-DD') seizure_date, -- + to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataZameny', 'YYYY-MM-DD') replacement_date,-- + to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataVozvr', 'YYYY-MM-DD') return_date,-- + array_to_string(array( + select kat->>'naimKatTS' + from jsonb_array_elements(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') as kat + where jsonb_typeof(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array'), ',') categories, + true tractor_driver +from public.recruits r +join public.recruits_info ri on r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +where ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM' is not null + Y + + + 208 + 304 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + drivers_licence
+ + N + Y + N + Y + + + 416 + 208 + +
+ + Table output 2 + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + drivers_licence
+ + N + Y + N + Y + + + 416 + 304 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/education_constants_once.hpl b/mappings/jobs_once_a_day/education_constants_once.hpl new file mode 100644 index 0000000..ed1023a --- /dev/null +++ b/mappings/jobs_once_a_day/education_constants_once.hpl @@ -0,0 +1,1029 @@ + + + + education_constants_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/27 10:44:44.077 + - + 2025/04/27 10:44:44.077 + + + + + + education_form_input + education_form_upsert + Y + + + education_form_upsert + Dummy (do nothing) + Y + + + education_leave_reason_input + education_leave_reason_upsert + Y + + + learning_status_input + learning_status_upsert + Y + + + education_level_input + education_level_upsert + Y + + + education_minobr_doc_type_input + education_minobr_doc_type_upsert + Y + + + education_minprosv_doc_type_input + education_minprosv_doc_type_upsert + Y + + + education_institution_type_input + education_institution_type_upsert + Y + + + education_minobr_speciality_input + education_minobr_speciality_upsert + Y + + + education_leave_reason_upsert + Dummy (do nothing) + Y + + + learning_status_upsert + Dummy (do nothing) + Y + + + education_level_upsert + Dummy (do nothing) + Y + + + education_minobr_doc_type_upsert + Dummy (do nothing) + Y + + + education_minprosv_doc_type_upsert + Dummy (do nothing) + Y + + + education_institution_type_upsert + Dummy (do nothing) + Y + + + education_minobr_speciality_upsert + Dummy (do nothing) + Y + + + education_minprosv_speciality_input + education_minprosv_speciality_upsert + Y + + + education_minprosv_speciality_upsert + Dummy (do nothing) + Y + + + country_oksm_input + country_oksm_upsert + Y + + + country_oksm_upsert + Dummy (do nothing) + Y + + + + Dummy (do nothing) + Dummy + + Y + + 1 + + none + + + + + 928 + 592 + + + + country_oksm_input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select code, + value, + description, + not hidden as actual +from countries_oksm +where code is not null and value is not null; + N + + + 256 + 960 + + + + country_oksm_upsert + InsertUpdate + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + = + code + code + + ervu_dashboard + country_oksm
+ + code + code + N + + + value + value + Y + + + description + description + Y + + + actual + actual + Y + +
+ N + + + 528 + 960 + +
+ + education_form_input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select code, + value, + description, + not hidden as actual +from education_kod_forma_obuch +where code is not null and value is not null; + N + + + 256 + 240 + + + + education_form_upsert + InsertUpdate + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + = + code + code + + ervu_dashboard + education_form
+ + code + code + N + + + value + value + Y + + + description + description + Y + + + actual + actual + Y + +
+ N + + + 528 + 240 + +
+ + education_institution_type_input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select code, + value, + description, + not hidden as actual +from education_kod_tip_org +where code is not null and value is not null; + + N + + + 256 + 720 + + + + education_institution_type_upsert + InsertUpdate + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + = + code + code + + ervu_dashboard + education_institution_type
+ + code + code + N + + + value + value + Y + + + description + description + Y + + + actual + actual + Y + +
+ N + + + 528 + 720 + +
+ + education_leave_reason_input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select code, + value, + description, + not hidden as actual +from education_kod_prich_otpusk +where code is not null and value is not null; + N + + + 256 + 320 + + + + education_leave_reason_upsert + InsertUpdate + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + = + code + code + + + ervu_dashboard + education_leave_reason
+ + code + code + N + + + value + value + Y + + + description + description + Y + + + actual + actual + Y + +
+ N + + + 528 + 320 + +
+ + education_level_input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select code, + value, + description, + not hidden as actual +from education_level +where code is not null and value is not null; + + N + + + 256 + 480 + + + + education_level_upsert + InsertUpdate + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + = + code + code + + ervu_dashboard + education_level
+ + code + code + N + + + value + value + Y + + + description + description + Y + + + actual + actual + Y + +
+ N + + + 528 + 480 + +
+ + education_minobr_doc_type_input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select code, + value, + description, + not hidden as actual +from education_naim_vid_doc_minobr +where code is not null and value is not null; + N + + + 256 + 560 + + + + education_minobr_doc_type_upsert + InsertUpdate + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + = + code + code + + ervu_dashboard + education_minobr_doc_type
+ + code + code + N + + + value + value + Y + + + description + description + Y + + + actual + actual + Y + +
+ N + + + 528 + 560 + +
+ + education_minobr_speciality_input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select extra_info->>'kodSpecz' as code, + extra_info->>'naimSpecz' as value, + description, + not hidden as actual +from education_speciality_minobr +where extra_info->>'kodSpecz' != 'null' and extra_info->>'naimSpecz' != 'null'; + N + + + 256 + 800 + + + + education_minobr_speciality_upsert + InsertUpdate + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + = + code + code + + ervu_dashboard + education_minobr_speciality
+ + code + code + N + + + value + value + Y + + + description + description + Y + + + actual + actual + Y + +
+ N + + + 528 + 800 + +
+ + education_minprosv_doc_type_input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select code, + value, + description, + not hidden as actual +from education_naim_vid_doc_minprosv +where code is not null and value is not null; + N + + + 256 + 640 + + + + education_minprosv_doc_type_upsert + InsertUpdate + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + = + code + code + + ervu_dashboard + education_minprosv_doc_type
+ + code + code + N + + + value + value + Y + + + description + description + Y + + + actual + actual + Y + +
+ N + + + 528 + 640 + +
+ + education_minprosv_speciality_input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select extra_info->>'kodSpecz' as code, + extra_info->>'naimSpecz' as value, + description, + not hidden as actual +from education_speciality_minprosv +where extra_info->>'kodSpecz' != 'null' and extra_info->>'naimSpecz' != 'null'; + + N + + + 256 + 880 + + + + education_minprosv_speciality_upsert + InsertUpdate + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + = + code + code + + ervu_dashboard + education_minprosv_speciality
+ + code + code + N + + + value + value + Y + + + description + description + Y + + + actual + actual + Y + +
+ N + + + 528 + 880 + +
+ + learning_status_input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select code, + value, + description, + not hidden as actual +from education_kod_status +where code is not null and value is not null; + + N + + + 256 + 400 + + + + learning_status_upsert + InsertUpdate + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + = + code + code + + ervu_dashboard + learning_status
+ + code + code + N + + + value + value + Y + + + description + description + Y + + + actual + actual + Y + +
+ N + + + 528 + 400 + +
+ + + country_oksm_upsert + Dummy (do nothing) + Y + + + + + + + + + + education_form_upsert + Dummy (do nothing) + Y + + + + + + + + + + education_institution_type_upsert + Dummy (do nothing) + Y + + + + + + + + + + education_leave_reason_upsert + Dummy (do nothing) + Y + + + + + + + + + + education_level_upsert + Dummy (do nothing) + Y + + + + + + + + + + education_minobr_doc_type_upsert + Dummy (do nothing) + Y + + + + + + + + + + education_minobr_speciality_upsert + Dummy (do nothing) + Y + + + + + + + + + + education_minprosv_doc_type_upsert + Dummy (do nothing) + Y + + + + + + + + + + education_minprosv_speciality_upsert + Dummy (do nothing) + Y + + + + + + + + + + learning_status_upsert + Dummy (do nothing) + Y + + + + + + + + + + +
diff --git a/mappings/jobs_once_a_day/id_ern_once.hpl b/mappings/jobs_once_a_day/id_ern_once.hpl new file mode 100644 index 0000000..0ba343d --- /dev/null +++ b/mappings/jobs_once_a_day/id_ern_once.hpl @@ -0,0 +1,91 @@ + + + + id_ern_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/26 13:25:08.953 + - + 2025/04/26 13:25:08.953 + + + + + + Table input + Update + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select id, system_id_ern as id_ern + from recruits as r + where '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id); + Y + + + 352 + 240 + + + + Update + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + id + + ervu_dashboard + citizen
+ + id_ern + id_ern + +
+ N + Y + + + 528 + 240 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/incident_once.hpl b/mappings/jobs_once_a_day/incident_once.hpl new file mode 100644 index 0000000..8ec0b85 --- /dev/null +++ b/mappings/jobs_once_a_day/incident_once.hpl @@ -0,0 +1,27 @@ + + + + incident_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/14 12:11:41.789 + - + 2025/02/14 12:11:41.789 + + + + + + + + + diff --git a/mappings/jobs_once_a_day/info_recruits.hpl b/mappings/jobs_once_a_day/info_recruits.hpl new file mode 100644 index 0000000..6a044a4 --- /dev/null +++ b/mappings/jobs_once_a_day/info_recruits.hpl @@ -0,0 +1,759 @@ + + + + info_recruits + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 394 + 960 + 16 + acquired_citizenship +address_actual +address_place_stay +city_birth +date_info_actual +date_loss_info_actual +died_date +dispensary_registration_code +email +end_date_place_stay +end_date_residence +inn +is_in_prison +medic +medical_requirements +region_birth +residence +right_deferment +snils +source_info_actual +start_date_place_stay +start_date_residence +took_break +type_place_stay + 163 + + + + + Select values 4 + Table output + N + + + Table input + Select values 4 + Y + + + Select values 4 + Insert / update + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + recruit_id + recruit_id + N + + + age + age + Y + + + birth_date + birth_date + Y + + + birth_place + birth_place + Y + + + contract_service + contract_service + Y + + + deferment_liberation + deferment_liberation + Y + + + disability_group + disability_group + Y + + + driver_license + driver_license + Y + + + education + education + Y + + + employment + employment + Y + + + first_name + first_name + Y + + + full_name + full_name + Y + + + gender + gender + Y + + + is_registered + is_registered + Y + + + is_wanted + is_wanted + Y + + + issue_date + issue_date + Y + + + last_name + last_name + Y + + + marital_status + marital_status + Y + + + middle_name + middle_name + Y + + + mobilization + mobilization + Y + + + number_children + number_children + Y + + + number_children_18_old + number_children_18_old + Y + + + passport_number + passport_number + Y + + + passport_series + passport_series + Y + + + phone + phone + Y + + + reason_registration + reason_registration + Y + + + recruitment_id + recruitment_id + Y + + + sports_category + sports_category + Y + + + tractor_license + tractor_license + Y + + + update_date + update_date + Y + + + urgent_service + urgent_service + Y + +
+ N + + + 688 + 208 + +
+ + Select values 4 + SelectValues + + Y + + 1 + + none + + + + N + + issue_date + issue_date + Date + -2 + -2 + yyyy-MM-dd + false + + + false + + + + + + + + + + 448 + 208 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH extracted_children AS ( + SELECT + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child + FROM + public.recruits_info ri + WHERE + jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' +), +children_birth_dates AS ( + SELECT + recruit_id, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year + FROM + extracted_children +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) AS children_under_16 + FROM + children_birth_dates + WHERE + AGE(make_date(year, month, day)) < interval '16 years' + GROUP BY + recruit_id +), +registration_reasons AS ( + SELECT mrr.value AS reason_registration, + r.id AS recruit_id + FROM public.recruits AS r + JOIN public.military_registration_reason AS mrr + ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) +), + +driver_license AS ( + SELECT + ri.recruit_id, + COALESCE( + string_agg(sved_vodit->>'kategoriya', ', '), + 'Нет информации' + ) AS driver_license + FROM + public.recruits_info ri + LEFT JOIN LATERAL + jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS sved_vodit + ON true + GROUP BY ri.recruit_id +), + +sports_category AS ( -- проверка на наличие спортивного разряда или звания + SELECT + ri.recruit_id, + CASE + WHEN + -- Условия для "true" (спортивная категория) + ri.info->'svedSport' ? 'sport' -- Проверяем, что ключ 'sport' существует + AND jsonb_typeof(ri.info->'svedSport'->'sport') = 'array' -- Проверяем, что 'sport' это массив + AND jsonb_array_length(ri.info->'svedSport'->'sport') > 0 -- И массив не пустой + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedSport'->'sport') AS sport_elem + WHERE + ( + -- Проверяем, что 'sportRazr' существует и срок действия актуален + jsonb_typeof(sport_elem->'sportRazr') = 'object' + AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL + AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') > CURRENT_DATE + ) + OR ( + -- Проверяем, что 'sportZvan' существует и не пусто + sport_elem->>'sportZvan' IS NOT NULL + AND sport_elem->>'sportZvan' <> '' + ) + OR ( + -- Проверяем, что 'sportRazr' существует и срок действия истек + jsonb_typeof(sport_elem->'sportRazr') = 'object' + AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL + AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') <= CURRENT_DATE + ) + ) + AND ri.info->'svedSport'->>'prOtsSvedSport' IS NULL + THEN true + + WHEN + -- Условия для "false" (не является спортивной категорией) + ( + ri.info->'svedSport'->'sport' IS NULL -- Если 'sport' = NULL + OR ( + ri.info->'svedSport' ? 'sport' -- Проверяем, что ключ 'sport' существует + AND jsonb_typeof(ri.info->'svedSport'->'sport') = 'array' -- Поле 'sport' должно быть массивом + AND jsonb_array_length(ri.info->'svedSport'->'sport') > 0 -- И массив не пустой + ) + ) + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedSport'->'sport') AS sport_elem + WHERE + ( + -- Проверяем 'sportZvan' и если оно не существует или пусто + sport_elem->>'sportZvan' IS NULL OR sport_elem->>'sportZvan' = '' + ) + OR ( + -- Проверяем 'sportRazr' и срок действия истек + jsonb_typeof(sport_elem->'sportRazr') = 'object' + AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL + AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') > CURRENT_DATE + -- И 'sportZvan' также не должно существовать или быть пустым + AND (sport_elem->>'sportZvan' IS NULL OR sport_elem->>'sportZvan' = '') + ) + ) + AND ri.info->'svedSport'->>'prOtsSvedSport' IS NULL + THEN false + + WHEN + -- Условия для "null" (нет информации) + ri.info->'svedSport'->>'prOtsSvedSport' = '1' + OR ri.info->'svedSport' IS NULL -- Проверяем, что 'svedSport' отсутствует + THEN null + + ELSE null -- Неопределенное значение для всех других случаев + END AS sports_category + FROM public.recruits_info ri +), + +disability_group AS ( + SELECT + ri.recruit_id, + CASE + WHEN ri.info->'svedInvalid'->'invalid'->>'gruppa' IS NOT NULL + AND ri.info->'svedInvalid'->>'prOtsSvedInvalid' IS NULL + AND (ri.info->'sportRazr'->>'dataSnyat' IS NULL + OR TO_DATE(ri.info->'sportRazr'->>'dataSnyat', 'YYYY-MM-DD') <= CURRENT_DATE) + THEN ri.info->'svedInvalid'->'invalid'->>'gruppa' + WHEN ri.info->'svedInvalid'->>'prOtsSvedInvalid' = '1' THEN 'Нет информации об инвалидности' + ELSE 'Нет информации об инвалидности' + END AS disability_group + FROM public.recruits_info ri +), + +tractor_license AS ( + SELECT + ri.recruit_id, + CASE + WHEN ri.info->'svedUdostrTraktMash'->>'udostrTraktMash' IS NOT NULL + AND TO_DATE(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataOkonchUTM', 'YYYY-MM-DD') > CURRENT_DATE + THEN true + WHEN ri.info->'svedUdostrTraktMash'->>'udostrTraktMash' IS NOT NULL + AND TO_DATE(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataOkonchUTM', 'YYYY-MM-DD') <= CURRENT_DATE + THEN false + WHEN ri.info->'svedUdostrTraktMash'->>'prOtsSvedUTM' = '1' THEN null + ELSE null + END AS tractor_license + FROM public.recruits_info ri +), + +is_wanted AS ( + SELECT + ri.recruit_id, + CASE + WHEN + jsonb_typeof(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -- проверяем, что 'faktyUgolovPresl' это массив + AND jsonb_array_length(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') > 0 -- массив не пустой + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') AS criminal_prosecution + WHERE + criminal_prosecution->>'dataPrekrashh' IS NULL -- дата прекращения отсутствует + ) + AND ri.info->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' IS NULL + THEN true + + WHEN + jsonb_typeof(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -- проверяем, что 'faktyUgolovPresl' это массив + AND jsonb_array_length(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') > 0 -- массив не пустой + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') AS criminal_prosecution + WHERE + criminal_prosecution->>'dataPrekrashh' IS NOT NULL -- дата прекращения не отсутствует + ) + AND ri.info->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' IS NULL + THEN false + + WHEN + ri.info->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' = '1' + THEN NULL + + ELSE NULL + END AS criminal_prosecution + FROM public.recruits_info ri +), + +employment AS ( + SELECT + ri.recruit_id, + COALESCE( + CASE + WHEN ( + jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ('1', '2', '4') + ) + ) OR ( + jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ('1', '2', '4') + ) + ) THEN 'Обучается' + ELSE NULL + END || + CASE + WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud + WHERE trud->>'prAktMestRab' = '1' + ) THEN + CASE + WHEN ( + jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ('1', '2', '4') + ) + ) OR ( + jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ('1', '2', '4') + ) + ) THEN ', Работает' + ELSE 'Работает' + END + ELSE NULL + END, + CASE + WHEN + info->'svedVUZ'->>'prOtsSvedVUZ' = '1' -- Отсутствие сведений о вузе + AND info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' -- Отсутствие сведений о колледже + AND info->'svedTrud'->>'prOtsSvedTrud' = '1' -- Отсутствие сведений о работе + THEN 'Нет информации' + ELSE 'Нет информации' + END + ) AS employment_status + FROM public.recruits_info ri +) + +SELECT + r.full_name, + r.last_name, + r.first_name, + r.middle_name, + r.gender, + r.birth_date, + EXTRACT(YEAR FROM AGE(r.birth_date)) AS age, + r.birth_place, + r.phone, + r.conscription AS deferment_liberation, + + CASE + WHEN (EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 18 AND 70 AND r.gender = 'MALE' AND + (r.conscription IS NULL OR r.conscription = false) AND + COALESCE(cc.children_under_16, 0) < 5 + AND r.vu_current_info ->> 'isMilitaryRegistered' = 'true') + OR + (EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 18 AND 45 AND r.gender = 'FEMALE' AND + (r.conscription IS NULL OR r.conscription = false) AND + COALESCE(cc.children_under_16, 0) < 5 + AND r.vu_current_info ->> 'isMilitaryRegistered' = 'true') + THEN true + ELSE false + END AS mobilization, + + CASE + WHEN (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 + AND gender = 'MALE' -- мужчины от 18 до 30 лет + AND (conscription IS NULL OR conscription = false) + AND r.vu_current_info ->> 'isMilitaryRegistered' = 'true') + THEN true + ELSE false + END AS urgent_service, + + CASE WHEN (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 + AND gender = 'MALE' -- мужчины от 18 до 50 лет + AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки + AND ri.info->'svedSudim'->>'prOtsSvedSudim' = '1' -- признак отсутствия данных о судимости + AND r.vu_current_info ->> 'isMilitaryRegistered' = 'true') + THEN true + ELSE false + END AS contract_service, + + CASE + WHEN r.vu_current_info ->> 'isMilitaryRegistered' = 'true' THEN 'Состоит на воинском учете' + WHEN r.vu_current_info ->> 'isMilitaryRegistered' = 'false' THEN 'Не состоит на воинском учете' + ELSE 'Нет информации' + END AS is_registered, + +CASE + WHEN (EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education + WHERE jsonb_typeof(ri.info->'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' + AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') + )) THEN 'Высшее' + WHEN (EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education + WHERE jsonb_typeof(ri.info->'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' + AND education->>'kodUrObr' = '10' + )) THEN 'Среднее профессиональное' + WHEN (EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education + WHERE jsonb_typeof(ri.info->'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' + AND education->>'kodUrObr' IN ('7', '9') + )) THEN 'Общее' + WHEN ((ri.info->'svedRObr'->>'prOtsRObr' = '1' OR ri.info->'svedInObr'->>'prOtsInObr' = '1')) THEN 'Нет данных' + ELSE 'Не указано' -- Добавлено условие по умолчанию + END AS education, + + ri.info->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, + + (SELECT COUNT(*) + FROM jsonb_array_elements(ri.info->'svedDeti'->'rebenok') AS childs + WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' + AND age(make_date(NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, + NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'den','')::int)) < make_interval(years => 18) + ) AS number_children, + + (SELECT COUNT(*) + FROM jsonb_array_elements(ri.info->'svedDeti'->'rebenok') AS childs + WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' + AND age(make_date(NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, + NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'den','')::int)) >= make_interval(years => 18) + ) AS number_children_18_old, + + ri.info->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, + ri.info->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, + ri.info->'svedVoin'->'voin'->>'dataReg' AS issue_date, + ri.recruit_id, -- ID рекрута + r.target_recruitment_id AS recruitment_id, + rr.reason_registration, -- причина постановки на учет char + sc.sports_category, -- наличие спортивной категории bool + dl.driver_license, -- категории водительских удостоверений char + dg.disability_group, -- группа инвалидности char + tl.tractor_license, -- наличие удостоверения тракториста bool + iw.criminal_prosecution AS is_wanted, -- наличие уголовного преследования bool + em.employment_status AS employment, -- занятость char + r.system_update_date AS update_date +FROM + public.recruits_info ri +JOIN + public.recruits r ON ri.recruit_id = r.id +LEFT JOIN + children_count cc ON r.id = cc.recruit_id -- Присоединение для получения количества детей +JOIN + registration_reasons rr ON rr.recruit_id = ri.recruit_id +JOIN + sports_category sc ON sc.recruit_id = ri.recruit_id +JOIN + driver_license dl ON dl.recruit_id = ri.recruit_id +JOIN + disability_group dg ON dg.recruit_id = ri.recruit_id +JOIN + tractor_license tl ON tl.recruit_id = ri.recruit_id +JOIN + is_wanted iw ON iw.recruit_id = ri.recruit_id +JOIN + employment em ON em.recruit_id = ri.recruit_id +WHERE + r.target_recruitment_id IS NOT NULL + AND r.current_recruitment_id IS NOT NULL; + Y + + + 208 + 208 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + N + N + N + N + Y + N + ervu_dashboard + N + citizen
+ N + Y + N + Y + + + 656 + 64 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/info_recruits_once.hpl b/mappings/jobs_once_a_day/info_recruits_once.hpl new file mode 100644 index 0000000..cacaf81 --- /dev/null +++ b/mappings/jobs_once_a_day/info_recruits_once.hpl @@ -0,0 +1,808 @@ + + + + info_recruits_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 394 + 960 + 16 + acquired_citizenship +address_actual +address_place_stay +city_birth +date_info_actual +date_loss_info_actual +died_date +dispensary_registration_code +email +end_date_place_stay +end_date_residence +inn +is_in_prison +medic +medical_requirements +region_birth +residence +right_deferment +snils +source_info_actual +start_date_place_stay +start_date_residence +took_break +type_place_stay + 163 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 687 + 482 + +target_recruitment_id + 132 + + + + + Select values 4 + Table output (citizen) + Y + + + Table input (info_recruits_once) + Select values 4 + Y + + + Select values 4 + Insert / update + N + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + recruit_id + recruit_id + N + + + age + age + Y + + + birth_date + birth_date + Y + + + birth_place + birth_place + Y + + + contract_service + contract_service + Y + + + deferment_liberation + deferment_liberation + Y + + + disability_group + disability_group + Y + + + driver_license + driver_license + Y + + + education + education + Y + + + employment + employment + Y + + + first_name + first_name + Y + + + full_name + full_name + Y + + + gender + gender + Y + + + is_registered + is_registered + Y + + + is_wanted + is_wanted + Y + + + issue_date + issue_date + Y + + + last_name + last_name + Y + + + marital_status + marital_status + Y + + + middle_name + middle_name + Y + + + mobilization + mobilization + Y + + + number_children + number_children + Y + + + number_children_18_old + number_children_18_old + Y + + + passport_number + passport_number + Y + + + passport_series + passport_series + Y + + + phone + phone + Y + + + reason_registration + reason_registration + Y + + + recruitment_id + recruitment_id + Y + + + sports_category + sports_category + Y + + + tractor_license + tractor_license + Y + + + update_date + update_date + Y + + + urgent_service + urgent_service + Y + +
+ N + + + 688 + 208 + +
+ + Select values 4 + SelectValues + + Y + + 1 + + none + + + + N + + issue_date + issue_date + Date + -2 + -2 + yyyy-MM-dd + false + + + false + + + + + + + + + + 448 + 208 + + + + Table input (info_recruits_once) + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +base_recruit_data AS ( + SELECT + distinct + r.system_pgs_status, + r.full_name, + r.last_name, + r.first_name, + r.middle_name, + r.gender, + ri.info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils' AS snils, + ri.info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn' AS inn, + r.birth_date, + EXTRACT(YEAR FROM AGE(r.birth_date)) AS age, + r.birth_place, + r.phone, + r.email, + 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, + 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, + r.system_update_date AS update_date, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + r.current_recruitment_id AS recruitment_id, + r.target_recruitment_id, + 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, + CASE + WHEN ddd.hidden IS false then ddd.hidden + ELSE true END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет + CASE + WHEN + -- Условия для "true" (спортивная категория) + ri.info->'svedFL'->'svedSport' ? 'sport' -- Проверяем, что ключ 'sport' существует + AND jsonb_typeof(ri.info->'svedFL'->'svedSport'->'sport') = 'array' -- Проверяем, что 'sport' это массив + AND jsonb_array_length(ri.info->'svedFL'->'svedSport'->'sport') > 0 -- И массив не пустой + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedSport'->'sport') AS sport_elem + WHERE + ( + -- Проверяем, что 'sportRazr' существует и срок действия актуален + jsonb_typeof(sport_elem->'sportRazr') = 'object' + AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL + AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') > CURRENT_DATE + ) + OR ( + -- Проверяем, что 'sportZvan' существует и не пусто + sport_elem->>'sportZvan' IS NOT NULL + AND sport_elem->>'sportZvan' <> '' + ) + OR ( + -- Проверяем, что 'sportRazr' существует и срок действия истек + jsonb_typeof(sport_elem->'sportRazr') = 'object' + AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL + AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') <= CURRENT_DATE + ) + ) + AND ri.info->'svedFL'->'svedSport'->>'prOtsSvedSport' IS NULL + THEN true + + WHEN + -- Условия для "false" (не является спортивной категорией) + ( + ri.info->'svedFL'->'svedSport'->'sport' IS NULL -- Если 'sport' = NULL + OR ( + ri.info->'svedSport' ? 'sport' -- Проверяем, что ключ 'sport' существует + AND jsonb_typeof(ri.info->'svedFL'->'svedSport'->'sport') = 'array' -- Поле 'sport' должно быть массивом + AND jsonb_array_length(ri.info->'svedFL'->'svedSport'->'sport') > 0 -- И массив не пустой + ) + ) + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedSport'->'sport') AS sport_elem + WHERE + ( + -- Проверяем 'sportZvan' и если оно не существует или пусто + sport_elem->>'sportZvan' IS NULL OR sport_elem->>'sportZvan' = '' + ) + OR ( + -- Проверяем 'sportRazr' и срок действия истек + jsonb_typeof(sport_elem->'sportRazr') = 'object' + AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL + AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') > CURRENT_DATE + -- И 'sportZvan' также не должно существовать или быть пустым + AND (sport_elem->>'sportZvan' IS NULL OR sport_elem->>'sportZvan' = '') + ) + ) + AND ri.info->'svedFL'->'svedSport'->>'prOtsSvedSport' IS NULL + THEN false + + WHEN + -- Условия для "null" (нет информации) + ri.info->'svedSport'->>'prOtsSvedSport' = '1' + OR ri.info->'svedSport' IS NULL -- Проверяем, что 'svedSport' отсутствует + THEN null + + ELSE null -- Неопределенное значение для всех других случаев + END AS sports_category, + + mrr.value AS reason_registration, + + CASE + WHEN ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa' IS NOT NULL + AND ri.info->'svedFL'->'svedInvalid'->>'prOtsSvedInvalid' IS NULL + AND (ri.info->'svedFL'->'sportRazr'->>'dataSnyat' IS NULL + OR TO_DATE(ri.info->'svedFL'->'sportRazr'->>'dataSnyat', 'YYYY-MM-DD') <= CURRENT_DATE) + THEN ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa' + WHEN ri.info->'svedFL'->'svedInvalid'->>'prOtsSvedInvalid' = '1' THEN 'Нет информации об инвалидности' + ELSE 'Нет информации об инвалидности' + END AS disability_group, + + CASE + WHEN ri.info->'svedFL'->'svedUdostTraktMash'->>'udostTraktMash' IS NOT NULL + AND TO_DATE(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataOkonchUTM', 'YYYY-MM-DD') > CURRENT_DATE + THEN true + WHEN ri.info->'svedFL'->'svedUdostTraktMash'->>'udostTraktMash' IS NOT NULL + AND TO_DATE(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataOkonchUTM', 'YYYY-MM-DD') <= CURRENT_DATE + THEN false + WHEN ri.info->'svedFL'->'svedUdostTraktMash'->>'prOtsSvedUTM' = '1' THEN null + ELSE null + END AS tractor_license, + + CASE + WHEN + jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -- проверяем, что 'faktyUgolovPresl' это массив + AND jsonb_array_length(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') > 0 -- массив не пустой + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS criminal_prosecution + WHERE + criminal_prosecution->>'dataPrekrashh' IS NULL -- дата прекращения отсутствует + ) + AND ri.info->'svedFL'->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' IS NULL + THEN true + + WHEN + jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -- проверяем, что 'faktyUgolovPresl' это массив + AND jsonb_array_length(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') > 0 -- массив не пустой + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS criminal_prosecution + WHERE + criminal_prosecution->>'dataPrekrashh' IS NOT NULL -- дата прекращения не отсутствует + ) + AND ri.info->'svedFL'->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' IS NULL + THEN false + + WHEN + ri.info->'svedFL'->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' = '1' + THEN NULL + + ELSE NULL + END AS criminal_prosecution, + + COALESCE( + CASE + WHEN ( + jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ('1', '2', '4') + ) + ) OR ( + jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ('1', '2', '4') + ) + ) THEN 'Обучается' + ELSE NULL + END || + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud + WHERE trud->>'prAktMestRab' = '1' + ) THEN + CASE + WHEN ( + jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ('1', '2', '4') + ) + ) OR ( + jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' + AND EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ('1', '2', '4') + ) + ) THEN ', Работает' + ELSE 'Работает' + END + ELSE NULL + END, + CASE + WHEN + info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' -- Отсутствие сведений о вузе + AND info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' -- Отсутствие сведений о колледже + AND info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' -- Отсутствие сведений о работе + THEN 'Нет информации' + ELSE 'Нет информации' + END + ) AS employment_status, + + CASE + WHEN (EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') + )) THEN 'Высшее' + WHEN (EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' = '10' + )) THEN 'Среднее профессиональное' + WHEN (EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('7', '9') + )) THEN 'Общее' + WHEN ((ri.info->'svedFL'->'svedRObr'->>'prOtsRObr' = '1' OR ri.info->'svedFL'->'svedInObr'->>'prOtsInObr' = '1')) THEN 'Нет данных' + ELSE 'Не указано' -- Добавлено условие по умолчанию + END AS education, + ( + SELECT COUNT(*) + FROM jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') AS childs + WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' + AND age(make_date(NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, + NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'den','')::int)) < make_interval(years => 18) + ) AS number_children + FROM public.recruits AS r + LEFT JOIN public.decision_deferment_dto ddd ON ddd.recruit_id = r.id and ddd.hidden is false + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') + JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) + --JOIN public.recruits_history rh on rh.recruit_id=r.id +), +adresses as ( +SELECT + r.id as recruit_id, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS actualAddress, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateStart' END) AS actualAddress_regDateStart, + MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateEnd' END) AS actualAddress_regDateEnd, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS residenceAddress, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateStart' END) AS residenceAddress_regDateStart, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateEnd' END) AS residenceAddress_regDateEnd, + MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) AS residenceAddress_kodTipReg +FROM + public.recruits AS r +LEFT JOIN + LATERAL jsonb_array_elements(r.addresses) AS addr ON true +WHERE r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}' +GROUP BY + r.id +), +extracted_children AS ( + SELECT + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child + FROM base_recruit_data ri + WHERE + jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +), +children_birth_dates AS ( + SELECT + recruit_id, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year + FROM extracted_children +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) AS children_under_16 + FROM + children_birth_dates + WHERE + AGE(make_date(year, month, day)) < interval '16 years' + GROUP BY + recruit_id +), + +driver_license AS ( + SELECT + ri.recruit_id, + COALESCE( + string_agg(sved_vodit->>'naimKatTS', ', '), + 'Нет информации' + ) AS driver_license + FROM base_recruit_data ri + LEFT JOIN LATERAL + jsonb_array_elements(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS sved_vodit + ON true + GROUP BY ri.recruit_id +) +SELECT + r.full_name, + r.last_name, + r.first_name, + r.middle_name, + r.gender, + regexp_replace(r.snils, '[^0-9]', '', 'g') AS snils, + r.inn, + r.birth_date, + r.age, + r.birth_place, + r.phone, + r.email, + r.deferment_liberation, + CASE + WHEN (EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 30 AND 50 AND r.gender = 'MALE') -- мужчины от 30 до 50 лет + OR (EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 30 AND 45 AND r.gender = 'FEMALE') -- женщины от 30 до 45 лет + AND COALESCE(cc.children_under_16, 0) < 5 + THEN true + ELSE false + END AS mobilization, + + CASE + WHEN EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 18 AND 30 + AND r.gender = 'MALE' + AND r.deferment_liberation IS true -- нет отсрочки и нет освобождения от службы + THEN true + ELSE false + END AS urgent_service, + + CASE + WHEN EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 18 AND 50 + AND r.gender = 'MALE' + AND (r.info->'svedFL'->'svedPND'->>'prOtsSvedPND' = '1' + OR uchet_pnd IS false) + AND r.info->'svedFL'->'svedUchetVICH'->>'prOtsSvedUchetVICH' = '1' -- признак отсутствия сведений о заболевании ВИЧ + THEN true + ELSE false + END AS contract_service, + + CASE + WHEN r.vu_current_info ->> 'isMilitaryRegistered' = 'true' THEN 'Состоит на воинском учете' + WHEN r.vu_current_info ->> 'isMilitaryRegistered' = 'false' THEN 'Не состоит на воинском учете' + ELSE 'Нет информации' + END AS is_registered, + + r.education, + r.marital_status, + r.number_children, + + (SELECT COUNT(*) + FROM jsonb_array_elements(r.info->'svedFL'->'svedDeti'->'rebenok') AS childs + WHERE jsonb_typeof(r.info->'svedFL'->'svedDeti'->'rebenok') = 'array' + AND age(make_date(NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, + NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'den','')::int)) >= make_interval(years => 18) + ) AS number_children_18_old, + r.passport_number, + r.passport_series, + r.issue_date, + r.recruit_id, -- ID рекрута + r.recruitment_id, -- текущий вк + r.target_recruitment_id, -- целевой вк + r.reason_registration, -- причина постановки на учет char + r.date_registration, -- дата постановки на учет date + r.date_deregistration, -- дата снятия с учета date + r.sports_category, -- наличие спортивной категории bool + dl.driver_license, -- категории водительских удостоверений char + r.disability_group, -- группа инвалидности char + r.tractor_license, -- наличие удостоверения тракториста bool + r.criminal_prosecution AS is_wanted, -- наличие уголовного преследования bool + r.employment_status AS employment, -- занятость char + r.update_date, + adr.actualAddress as residence, + adr.actualAddress_regDateStart as start_date_residence, + adr.actualAddress_regDateEnd as end_date_residence, + adr.residenceAddress as address_place_stay, + adr.residenceAddress_regDateStart as start_date_place_stay, + adr.residenceAddress_regDateEnd as end_date_place_stay, + case when adr.residenceAddress_kodTipReg='1' then 'В жилом помещении, не являющимся местом жительства физического лица' + when adr.residenceAddress_kodTipReg='2' then 'В учреждении уголовно-исполнительной системы' + else null end as type_place_stay, + r.system_pgs_status +FROM base_recruit_data r +LEFT JOIN children_count cc ON r.recruit_id = cc.recruit_id -- Присоединение для получения количества детей +JOIN driver_license dl ON dl.recruit_id = r.recruit_id +join adresses adr ON r.recruit_id=adr.recruit_id + Y + + + 208 + 208 + + + + Table output (citizen) + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + citizen
+ + N + Y + N + Y + + + 656 + 64 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/job_info_recruits_once.hwf b/mappings/jobs_once_a_day/job_info_recruits_once.hwf new file mode 100644 index 0000000..02923ad --- /dev/null +++ b/mappings/jobs_once_a_day/job_info_recruits_once.hwf @@ -0,0 +1,2390 @@ + + + job_info_recruits_once + Y + + + + - + 2025/01/10 15:49:30.690 + - + 2025/01/10 15:49:30.690 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + Y + 0 + 960 + + + + info_recruits_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/info_recruits_once.hpl + txt + ${PROJECT_HOME}/log_jobs/log_job_info_recruits_once + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1008 + 192 + + + + SQL.citizen + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen + N + N + N + 640 + 192 + + + + Success opekun_once + + SUCCESS + + N + 1408 + 96 + + + + SQL.spouse + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_spouse + N + N + N + 640 + 272 + + + + SQL.child + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_child + N + N + N + 640 + 352 + + + + spouse_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/spouse_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1008 + 272 + + + + child_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/child_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1008 + 352 + + + + SQL.disease + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.disease + N + N + N + 640 + 432 + + + + disease_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/disease_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1008 + 432 + + + + SQL.medical_authorities + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.medical_authorities + N + N + N + 640 + 496 + + + + medical_authorities_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/medical_authorities_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1008 + 496 + + + + SQL.disability + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.disability + N + N + N + 640 + 560 + + + + disability_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/disability_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1008 + 560 + + + + SQL.drivers_licence + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.drivers_licence + N + N + N + 640 + 624 + + + + drivers_licence_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/drivers_licence_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1008 + 624 + + + + SQL.property + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.property + N + N + N + 640 + 688 + + + + property_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/property_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1008 + 688 + + + + SQL.citizen_foreign + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizenship_foreign + N + N + N + 640 + 752 + + + + citizen_foreign_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/citizen_foreign_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1008 + 752 + + + + SQL.citizenship + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizenship + N + N + N + 640 + 816 + + + + citizenship_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/citizenship_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1008 + 816 + + + + SQL.deputy + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.deputy + N + N + N + 640 + 880 + + + + deputy_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/deputy_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1008 + 880 + + + + SQL.prosecution + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.prosecution + N + N + N + 640 + 944 + + + + prosecution_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/prosecution_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1008 + 944 + + + + SQL.punishment + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.punishment + N + N + N + 640 + 1008 + + + + punishment_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/punishment_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1008 + 1008 + + + + SQL.passport + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.passport + N + N + N + 640 + 1072 + + + + passport_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/passport_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1008 + 1072 + + + + SQL.subpoena + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.subpoena + N + N + N + 640 + 1136 + + + + subpoena_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/subpoena_once.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 1008 + 1136 + + + + SQL.tempmeas + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.temporary_measures + N + N + N + 640 + 1200 + + + + temporary_measure_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/temporary_measure_once.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 1008 + 1200 + + + + opekun_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/opekun_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1008 + 96 + + + + SQL.opekun + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_guardianship + N + N + N + 640 + 96 + + + + Success info_recruits_once + + SUCCESS + + N + 1408 + 192 + + + + Success spouse_once + + SUCCESS + + N + 1408 + 272 + + + + Success child_once + + SUCCESS + + N + 1408 + 352 + + + + Success desease_once + + SUCCESS + + N + 1408 + 432 + + + + Success medical_autorities_once + + SUCCESS + + N + 1408 + 496 + + + + Success disability_once + + SUCCESS + + N + 1408 + 560 + + + + Success driver_license_once + + SUCCESS + + N + 1408 + 624 + + + + Success property_once + + SUCCESS + + N + 1408 + 688 + + + + Success citizen_foreign_once + + SUCCESS + + N + 1408 + 752 + + + + Success citizenship_once + + SUCCESS + + N + 1408 + 816 + + + + Success deputy_once + + SUCCESS + + N + 1408 + 880 + + + + Success prosecution_once + + SUCCESS + + N + 1408 + 944 + + + + Success punishment_once + + SUCCESS + + N + 1408 + 1008 + + + + Success passport_once + + SUCCESS + + N + 1408 + 1072 + + + + Success subpoena_once + + SUCCESS + + N + 1408 + 1136 + + + + Success temporary_measure_once + + SUCCESS + + N + 1408 + 1200 + + + + incident_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/incident_once.hpl + Basic + + Y + + N + local + N + N + Y + N + 1008 + 2112 + + + + citizen_individual_decisions_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/citizen_individual_decisions_once.hpl + Basic + + Y + + N + local + N + N + Y + N + 1008 + 2048 + + + + citizen_complex_filters_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/citizen_complex_filters_once.hpl + Basic + + Y + + N + local + N + N + Y + N + 1008 + 1984 + + + + citizen_appealing_violations_fz53_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/citizen_appealing_violations_fz53_once.hpl + Basic + + Y + + N + local + N + N + Y + N + 1008 + 1840 + + + + citizen_criminal_liability_fz53_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/citizen_criminal_liability_fz53_once.hpl + Basic + + Y + + N + local + N + N + Y + N + 1008 + 1776 + + + + citizen_information_search_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/citizen_information_search_once.hpl + Basic + + Y + + N + local + N + N + Y + N + 1008 + 1712 + + + + citizen_criminal_record_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/citizen_criminal_record_once.hpl + Basic + + Y + + N + local + N + N + Y + N + 1008 + 1648 + + + + citizen_sports_categories_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/citizen_sports_categories_once.hpl + + + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + + Y + + Y + local + N + N + Y + N + 1008 + 1584 + + + + citizen_education_diplomas_received_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/citizen_education_diplomas_received_once.hpl + + + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + + Y + + Y + local + N + N + Y + N + 1008 + 1520 + + + + citizen_work_activity_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/citizen_work_activity_once.hpl + + + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + + Y + + Y + local + N + N + Y + N + 1008 + 1456 + + + + Success citizen_work_activity_once + + SUCCESS + + N + 1408 + 1456 + + + + Success citizen_education_diplomas_received_once + + SUCCESS + + N + 1408 + 1520 + + + + Success citizen_sports_categories_once + + SUCCESS + + N + 1408 + 1584 + + + + Success citizen_criminal_record_once + + SUCCESS + + N + 1408 + 1648 + + + + Success citizen_information_search_once + + SUCCESS + + N + 1408 + 1712 + + + + Success citizen_criminal_liability_fz53_once + + SUCCESS + + N + 1408 + 1776 + + + + Success citizen_appealing_violations_fz53_once + + SUCCESS + + N + 1408 + 1840 + + + + Success citizen_complex_filters_once + + SUCCESS + + N + 1408 + 1984 + + + + Success citizen_individual_decisions_once + + SUCCESS + + N + 1408 + 2048 + + + + Success incident_once + + SUCCESS + + N + 1408 + 2112 + + + + SQL.citizen_work_activity + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_work_activity + N + N + N + 640 + 1456 + + + + SQL.citizen_education_diplomas_received + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_education_diplomas_received + N + N + N + 640 + 1520 + + + + SQL.citizen_sports_categories + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_sports_categories + N + N + N + 640 + 1584 + + + + SQL.citizen_criminal_record + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_criminal_record + N + N + N + 640 + 1648 + + + + SQL.citizen_information_search + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_information_search + N + N + N + 640 + 1712 + + + + SQL.citizen_criminal_liability_fz53 + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_criminal_liability_fz53 + N + N + N + 640 + 1776 + + + + SQL.citizen_appealing_violations_fz53 + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_appealing_violations_fz53 + N + N + N + 640 + 1840 + + + + SQL.citizen_complex_filters + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_complex_filters + N + N + N + 640 + 1984 + + + + SQL.citizen_individual_decisions + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_individual_decisions + N + N + N + 640 + 2048 + + + + SQL.incident + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.incident + N + N + N + 640 + 2112 + + + + recruitment_rows.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/supportive_jobs/recruitment_rows.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + N + local + N + N + Y + Y + 208 + 960 + + + + SQL.citizen_deferments + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_deferment_right; +delete from ervu_dashboard.citizen_deferment; + + N + N + N + 640 + 2192 + + + + deferments_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once_a_day/deferments_once.hpl + + + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + + Y + + Y + local + N + N + Y + N + 1184 + 2192 + + + + Success + + SUCCESS + + N + 1408 + 2192 + + + + deferment_reason_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/deferment_reason_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 896 + 2192 + + + + citizen_liability_fz53_once.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/citizen_liability_fz53_once.hpl + Basic + + Y + + N + local + N + N + Y + N + 1008 + 1904 + + + + SQL.citizen_liability_fz53 + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.citizen_liability_fz53 + N + N + N + 640 + 1904 + + + + Success citizen_liability_fz53_once + + SUCCESS + + N + 1408 + 1904 + + + + citizen_flags.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once_a_day/citizen_flags.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 640 + 2272 + + + + Success sitizen_flags + + SUCCESS + + N + 832 + 2272 + + + + + + SQL.citizen + info_recruits_once.hpl + Y + Y + N + + + SQL.spouse + spouse_once.hpl + Y + Y + N + + + SQL.child + child_once.hpl + Y + Y + N + + + SQL.disease + disease_once.hpl + Y + Y + N + + + SQL.medical_authorities + medical_authorities_once.hpl + Y + Y + N + + + SQL.disability + disability_once.hpl + Y + Y + N + + + SQL.drivers_licence + drivers_licence_once.hpl + Y + Y + N + + + SQL.property + property_once.hpl + Y + Y + N + + + SQL.citizen_foreign + citizen_foreign_once.hpl + Y + Y + N + + + SQL.citizenship + citizenship_once.hpl + Y + Y + N + + + SQL.deputy + deputy_once.hpl + Y + Y + N + + + SQL.prosecution + prosecution_once.hpl + Y + Y + N + + + SQL.punishment + punishment_once.hpl + Y + Y + N + + + SQL.passport + passport_once.hpl + Y + Y + N + + + SQL.subpoena + subpoena_once.hpl + Y + Y + N + + + SQL.tempmeas + temporary_measure_once.hpl + Y + Y + N + + + SQL.opekun + opekun_once.hpl + Y + Y + N + + + opekun_once.hpl + Success opekun_once + Y + N + Y + + + info_recruits_once.hpl + Success info_recruits_once + Y + N + Y + + + spouse_once.hpl + Success spouse_once + Y + N + Y + + + child_once.hpl + Success child_once + Y + N + Y + + + disease_once.hpl + Success desease_once + Y + N + Y + + + medical_authorities_once.hpl + Success medical_autorities_once + Y + N + Y + + + disability_once.hpl + Success disability_once + Y + N + Y + + + drivers_licence_once.hpl + Success driver_license_once + Y + N + Y + + + property_once.hpl + Success property_once + Y + N + Y + + + citizen_foreign_once.hpl + Success citizen_foreign_once + Y + N + Y + + + citizenship_once.hpl + Success citizenship_once + Y + N + Y + + + deputy_once.hpl + Success deputy_once + Y + N + Y + + + prosecution_once.hpl + Success prosecution_once + Y + N + Y + + + punishment_once.hpl + Success punishment_once + Y + N + Y + + + passport_once.hpl + Success passport_once + Y + N + Y + + + subpoena_once.hpl + Success subpoena_once + Y + N + Y + + + temporary_measure_once.hpl + Success temporary_measure_once + Y + N + Y + + + citizen_work_activity_once.hpl + Success citizen_work_activity_once + Y + N + Y + + + citizen_education_diplomas_received_once.hpl + Success citizen_education_diplomas_received_once + Y + N + Y + + + citizen_sports_categories_once.hpl + Success citizen_sports_categories_once + Y + N + Y + + + citizen_criminal_record_once.hpl + Success citizen_criminal_record_once + Y + N + Y + + + citizen_information_search_once.hpl + Success citizen_information_search_once + Y + N + Y + + + citizen_criminal_liability_fz53_once.hpl + Success citizen_criminal_liability_fz53_once + Y + N + Y + + + citizen_appealing_violations_fz53_once.hpl + Success citizen_appealing_violations_fz53_once + Y + N + Y + + + citizen_complex_filters_once.hpl + Success citizen_complex_filters_once + Y + N + Y + + + citizen_individual_decisions_once.hpl + Success citizen_individual_decisions_once + Y + N + Y + + + incident_once.hpl + Success incident_once + Y + N + Y + + + SQL.citizen_work_activity + citizen_work_activity_once.hpl + Y + Y + N + + + Start + SQL.citizen_work_activity + N + Y + Y + + + SQL.citizen_education_diplomas_received + citizen_education_diplomas_received_once.hpl + Y + Y + N + + + SQL.citizen_sports_categories + citizen_sports_categories_once.hpl + Y + Y + N + + + SQL.citizen_criminal_record + citizen_criminal_record_once.hpl + Y + Y + N + + + Start + SQL.citizen_criminal_record + N + Y + Y + + + SQL.citizen_information_search + citizen_information_search_once.hpl + Y + Y + N + + + Start + SQL.citizen_information_search + N + Y + Y + + + SQL.citizen_criminal_liability_fz53 + citizen_criminal_liability_fz53_once.hpl + Y + Y + N + + + Start + SQL.citizen_criminal_liability_fz53 + Y + Y + Y + + + SQL.citizen_appealing_violations_fz53 + citizen_appealing_violations_fz53_once.hpl + Y + Y + N + + + Start + SQL.citizen_appealing_violations_fz53 + Y + Y + Y + + + SQL.citizen_complex_filters + citizen_complex_filters_once.hpl + Y + Y + N + + + Start + SQL.citizen_complex_filters + N + Y + Y + + + SQL.citizen_individual_decisions + citizen_individual_decisions_once.hpl + Y + Y + N + + + Start + SQL.citizen_individual_decisions + N + Y + Y + + + SQL.incident + incident_once.hpl + Y + Y + N + + + Start + SQL.incident + N + Y + Y + + + Start + recruitment_rows.hpl + Y + Y + Y + + + recruitment_rows.hpl + SQL.opekun + Y + Y + N + + + recruitment_rows.hpl + SQL.citizen + Y + Y + N + + + recruitment_rows.hpl + SQL.drivers_licence + Y + Y + N + + + recruitment_rows.hpl + SQL.child + Y + Y + N + + + recruitment_rows.hpl + SQL.spouse + Y + Y + N + + + recruitment_rows.hpl + SQL.disease + Y + Y + N + + + recruitment_rows.hpl + SQL.medical_authorities + Y + Y + N + + + recruitment_rows.hpl + SQL.disability + Y + Y + N + + + recruitment_rows.hpl + SQL.property + Y + Y + N + + + recruitment_rows.hpl + SQL.citizen_foreign + Y + Y + N + + + recruitment_rows.hpl + SQL.citizenship + Y + Y + N + + + recruitment_rows.hpl + SQL.deputy + Y + Y + N + + + recruitment_rows.hpl + SQL.prosecution + Y + Y + N + + + recruitment_rows.hpl + SQL.punishment + Y + Y + N + + + recruitment_rows.hpl + SQL.passport + Y + Y + N + + + recruitment_rows.hpl + SQL.subpoena + Y + Y + N + + + recruitment_rows.hpl + SQL.tempmeas + Y + Y + N + + + recruitment_rows.hpl + SQL.citizen_education_diplomas_received + Y + Y + N + + + recruitment_rows.hpl + SQL.citizen_sports_categories + Y + Y + N + + + Start + SQL.subpoena + N + Y + Y + + + Start + SQL.tempmeas + N + Y + Y + + + recruitment_rows.hpl + SQL.citizen_work_activity + Y + Y + N + + + deferments_once.hpl + Success + Y + N + Y + + + deferment_reason_once.hpl + deferments_once.hpl + Y + Y + N + + + recruitment_rows.hpl + SQL.citizen_deferments + Y + Y + N + + + SQL.citizen_deferments + deferment_reason_once.hpl + Y + Y + N + + + SQL.citizen_liability_fz53 + citizen_liability_fz53_once.hpl + Y + Y + N + + + citizen_liability_fz53_once.hpl + Success citizen_liability_fz53_once + Y + N + Y + + + Start + SQL.citizen_liability_fz53 + Y + Y + Y + + + citizen_flags.hpl + Success sitizen_flags + Y + Y + N + + + Start + citizen_flags.hpl + Y + Y + Y + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 80 + 880 + без лимитов не запускать + 152 + + + + diff --git a/mappings/jobs_once_a_day/medical_authorities_once.hpl b/mappings/jobs_once_a_day/medical_authorities_once.hpl new file mode 100644 index 0000000..61dd927 --- /dev/null +++ b/mappings/jobs_once_a_day/medical_authorities_once.hpl @@ -0,0 +1,300 @@ + + + + medical_authorities_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + + + Table input hiv + Table output + Y + + + Table input 2 + Table output 2 + Y + + + Table output + Update + Y + + + Table output 2 + Update 2 + Y + + + + Table input 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + with uchet as + (select ri.recruit_id, + jsonb_array_elements(ri.info -> 'svedFL' -> 'svedPND' -> 'svedUchetDisp' -> + 'svedUchet') u, + ri.info -> 'svedFL' -> 'svedPND' -> 'svedUchetDisp' -> 'svedUchet' ->> + 'priznakNalichSved' = '1' as registered_in_pnd + from public.recruits_info ri + join public.recruits r + ON r.id = ri.recruit_id + AND (r.target_recruitment_id = '${RCRT_C}' or + r.current_recruitment_id = '${RCRT_C}') + where jsonb_typeof(ri.info -> 'svedFL' -> 'svedPND' -> 'svedUchetDisp' -> 'svedUchet') = + 'array') +select recruit_id, + u ->> 'dataPostUchet' start_date, + u ->> 'dataSnyatUchet' close_date, + u ->> 'dataPlan' change_date, + registered_in_pnd +from uchet; + Y + + + 208 + 352 + + + + Table input hiv + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + with uchet as + (select ri.recruit_id, + jsonb_array_elements(ri.info->'svedFL'->'svedUchetVICH'->'uchetVICH') u, + ri.info->'svedFL'->'svedUchetVICH'->>'priznakNalichSved' = '1' has_vich + from public.recruits_info ri + join public.recruits r + ON r.id = ri.recruit_id + AND (r.target_recruitment_id = '${RCRT_C}' or + r.current_recruitment_id = '${RCRT_C}') + where jsonb_typeof(ri.info->'svedFL'->'svedUchetVICH'->'uchetVICH') = 'array') +select + recruit_id, + to_date(u->>'dataPostUchet', 'YYYY-MM-DD') start_date, + to_date(u->>'dataSnyat', 'YYYY-MM-DD') close_date, + true HIV +from uchet; + Y + + + 208 + 208 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + recruit_id + recruit_id + + + start_date + start_date + + + close_date + close_date + + + hiv + has_vich + + + N + N + N + N + + Y + + N + ervu_dashboard + Y + medical_authorities
+ + N + Y + N + Y + + + 416 + 208 + +
+ + Table output 2 + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + recruit_id + recruit_id + + + start_date + start_date + + + close_date + close_date + + + change_date + change_date + + + N + N + N + N + + Y + + N + ervu_dashboard + Y + medical_authorities
+ + N + Y + N + Y + + + 416 + 352 + +
+ + Update + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_vich + has_vich + +
+ N + Y + + + 576 + 208 + +
+ + Update 2 + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + registered_in_pnd + registered_in_pnd + +
+ N + Y + + + 576 + 352 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/opekun_flags.hpl b/mappings/jobs_once_a_day/opekun_flags.hpl new file mode 100644 index 0000000..cee18f7 --- /dev/null +++ b/mappings/jobs_once_a_day/opekun_flags.hpl @@ -0,0 +1,92 @@ + + + + opekun_flags + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/25 13:10:21.355 + - + 2025/04/25 13:10:21.355 + + + + + + opekun_flag + Update_opekun_flag + Y + + + + Update_opekun_flag + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + is_guardian + is_guardian + +
+ N + Y + + + 688 + 208 + +
+ + opekun_flag + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + select distinct + recruit_id, + true as is_guardian + from citizen_guardianship; + N + + + 512 + 208 + + + + + +
diff --git a/mappings/jobs_once_a_day/opekun_once.hpl b/mappings/jobs_once_a_day/opekun_once.hpl new file mode 100644 index 0000000..d86da54 --- /dev/null +++ b/mappings/jobs_once_a_day/opekun_once.hpl @@ -0,0 +1,162 @@ + + + + opekun_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + + + Table input + Table output + Y + + + Table input + Insert / update + N + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen_guardianship
+ + recruit_id + recruit_id + N + + + full_name + full_name + Y + + + birth_date + birth_date + Y + + + snils + snils + Y + +
+ N + + + 560 + 240 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + with person as +(select jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') ch, + ri.recruit_id +from public.recruits_info ri +join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +where jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array') +select + r.id 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 public.recruits r +join person on r.id = person.recruit_id + + Y + + + 288 + 240 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + citizen_guardianship
+ + N + Y + N + Y + + + 480 + 112 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/passport_once.hpl b/mappings/jobs_once_a_day/passport_once.hpl new file mode 100644 index 0000000..7ee3673 --- /dev/null +++ b/mappings/jobs_once_a_day/passport_once.hpl @@ -0,0 +1,181 @@ + + + + passport_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + + + Table input + Table output + Y + + + Table input 2 + Table output 2 + N + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + SELECT + r.id AS recruit_id, + ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, + ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, + ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'vydDok' AS organization_name, + ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'kodVydDok' AS unit_code, + TO_DATE(ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'dataDok', 'YYYY-MM-DD') AS issue_date, + CASE + WHEN ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'kodStatus' = '1' + THEN TRUE ELSE FALSE + END AS actual +FROM public.recruits_info ri +join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +WHERE ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'nomDok' IS NOT NULL +AND LENGTH(ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'serDok') = 4 +AND LENGTH(ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'nomDok') = 6; + Y + + + 208 + 208 + + + + Table input 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select r.id recruit_id, +ri.info->'pasportRF'->'predPasportRF'->>'nomDok' passport_number, +ri.info->'pasportRF'->'predPasportRF'->>'serDok' passport_series, +ri.info->'pasportRF'->'predPasportRF'->>'vydDok' organization_name, +ri.info->'pasportRF'->'predPasportRF'->>'kodVydDok' unit_code, +to_date(ri.info->'pasportRF'->'predPasportRF'->>'dataDok', 'YYYY-MM-DD') issue_date, +case when ri.info->'pasportRF'->'predPasportRF'->>'kodStatus'='1' then true +else false +end actual +from public.recruits_info ri +join public.recruits r ON ri.recruit_id = r.id +where ri.info->'pasportRF'->'predPasportRF'->>'nomDok' is not null; + N + + + 528 + 480 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + passport
+ + N + Y + N + Y + + + 672 + 208 + +
+ + Table output 2 + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + passport
+ + N + Y + N + Y + + + 992 + 480 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/property_flags.hpl b/mappings/jobs_once_a_day/property_flags.hpl new file mode 100644 index 0000000..b77d3cd --- /dev/null +++ b/mappings/jobs_once_a_day/property_flags.hpl @@ -0,0 +1,104 @@ + + + + property_flags + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/25 13:13:44.087 + - + 2025/04/25 13:13:44.087 + + + + + + citizenship_flag_output + Update_citizenship_flag + Y + + + + Update_citizenship_flag + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen
+ + has_russian_citizenship + has_russian_citizenship + + + has_foreign_citizenship + has_foreign_citizenship + +
+ N + Y + + + 704 + 176 + +
+ + citizenship_flag_output + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with foreign_citizenship as ( + select recruit_id, true as has_foreign_citizenship + from citizenship_foreign +) +select + citizenship.recruit_id, + true as has_russian_citizenship, + coalesce(has_foreign_citizenship, false) as has_foreign_citizenship + from citizenship + left join foreign_citizenship + on foreign_citizenship.recruit_id = citizenship.recruit_id +where renunciation_number is null; + N + + + 528 + 176 + + + + + +
diff --git a/mappings/jobs_once_a_day/property_once.hpl b/mappings/jobs_once_a_day/property_once.hpl new file mode 100644 index 0000000..9e750b7 --- /dev/null +++ b/mappings/jobs_once_a_day/property_once.hpl @@ -0,0 +1,342 @@ + + + + property_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + + + Table input + Table output + Y + + + Table input 2 + Table output 2 + Y + + + Table input 2 2 + Table output 2 2 + Y + + + Table input 2 2 2 + Table output 2 2 2 + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + with prop as +(select jsonb_array_elements(ri.info->'svedFL'->'svedON'->'on') u, + ri.recruit_id +from public.recruits_info ri +join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +where jsonb_typeof(ri.info->'svedFL'->'svedON'->'on') = 'array') +select + r.id recruit_id, + u->>'naimVidPrav' kind_right, + u->'adrObSob'->>'adrObSobTekst' address, + to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, + to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, + 'realty' type_property +from public.recruits r +join prop on r.id = prop.recruit_id; + Y + + + 480 + 208 + + + + Table input 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + with prop as +(select jsonb_array_elements(ri.info->'svedFL'->'svedNazTS'->'nazTS') u, + ri.recruit_id +from public.recruits_info ri +join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +where jsonb_typeof(ri.info->'svedFL'->'svedNazTS'->'nazTS') = 'array') +select + r.id recruit_id, + u->>'vidTS' vehicle_type, + u->>'godVyp' issue_year, + u->>'markaTS' brand_model, + u->>'gosRegZn' reg_plate, + u->>'idenNom' vin, + to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, + to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, + 'ground_transportation' type_property +from public.recruits r +join prop on r.id = prop.recruit_id; + Y + + + 480 + 304 + + + + Table input 2 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + with prop as +(select jsonb_array_elements(ri.info->'svedFL'->'svedVozTS'->'vozTS') u, + ri.recruit_id +from public.recruits_info ri +join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +where jsonb_typeof(ri.info->'svedFL'->'svedVozTS'->'vozTS') = 'array') +select + r.id recruit_id, + u->>'naimVid' vehicle_type, + u->>'naznKat' vehicle_category, + to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, + to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, + 'air_vehicles' type_property +from public.recruits r +join prop on r.id = prop.recruit_id; + Y + + + 480 + 384 + + + + Table input 2 2 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + with prop as +(select jsonb_array_elements(ri.info->'svedFL'->'svedVodTS'->'vodTS') u, + ri.recruit_id +from public.recruits_info ri +join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +where jsonb_typeof(ri.info->'svedFL'->'svedVodTS'->'vodTS') = 'array') +select + r.id recruit_id, + u->>'naimVid' vehicle_type, + u->>'naznKat' vehicle_category, + to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, + to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, + 'water_vehicles' type_property +from public.recruits r +join prop on r.id = prop.recruit_id + Y + + + 480 + 464 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + property
+ + N + Y + N + Y + + + 688 + 208 + +
+ + Table output 2 + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + property
+ + N + Y + N + Y + + + 688 + 304 + +
+ + Table output 2 2 + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + property
+ + N + Y + N + Y + + + 688 + 384 + +
+ + Table output 2 2 2 + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + property
+ + N + Y + N + Y + + + 688 + 464 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/prosecution_once.hpl b/mappings/jobs_once_a_day/prosecution_once.hpl new file mode 100644 index 0000000..55af724 --- /dev/null +++ b/mappings/jobs_once_a_day/prosecution_once.hpl @@ -0,0 +1,169 @@ + + + + prosecution_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 328 + 976 + 144 + архив +WITH ugol AS ( + SELECT + jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS u, + ri.recruit_id + FROM public.recruits_info ri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' +) +SELECT + r.id AS recruit_id, + u->'sledSud'->>'naimSud' AS kind, + TO_DATE(u->'sledSud'->>'dataVozbUD', 'YYYY-MM-DD') AS create_date, + TO_DATE(u->'sledSud'->'svedSnyat'->>'dataSnyatSud', 'YYYY-MM-DD') AS close_date, + u->'sledSud'->>'naimOrgan' AS authority_name, + STRING_AGG(TRIM(BOTH ' "' FROM law.f), ', ') AS law_point, + u->'sledSud'->'svedSnyat'->>'osnSnyatSud' AS termination_basis +FROM public.recruits r +JOIN ugol ON r.id = ugol.recruit_id +LEFT JOIN LATERAL jsonb_array_elements_text(u->'sledSud'->'statiUK') AS law(f) ON true +GROUP BY r.id, kind, create_date, close_date, authority_name, termination_basis; + 486 + + + + + Table input (prosecution) + Table output (prosecution) + Y + + + + Table input (prosecution) + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ugolov_presl AS ( + SELECT + jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS up, + ri.recruit_id + --'prOtsSvedUgolovPresl' + FROM public.recruits_info ri + join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') + WHERE jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' +) +SELECT + r.id AS recruit_id, + --up->'sledSud'->>'uk', -- уголовный кодекс? + up->'sledSud'->'extend'->>'nomerUDPredv' AS case_number, -- номер уголовного дела (предварительный) + up->'sledSud'->'extend'->>'svedPerekvalif' AS reclassification, -- сведения о переквалификации деяния + --up->'sledSud'->'extend'->>'kodVidUgolovPresl', -- + up->'sledSud'->'extend'->>'naimVidUgolovPresl' AS kind, -- наименование вида уголовного преследования + CASE + WHEN up->'sledSud'->'extend'->>'priznakPeredachSud' = '1' THEN true -- передано в суд + ELSE false -- нет или нет инфы + END AS transfer_to_court, -- признак передачи в суд уголовного дела в отношении гражданина? + + --up->'sledSud'->>'naimSud', -- Наименование суда??? + up->'sledSud'->>'nomerUD' AS case_number_court, -- номер уголовного дела??? номер уголовного дела (судебный) + STRING_AGG(TRIM(BOTH ' "' FROM law.f), ', ') AS law_point, -- статьи уголовного кодекса + up->'sledSud'->>'naimOrgan' AS authority_name, -- наименование органа принявшего решение + --up->'sledSud'->'svedSnyat'->>'osnSnyatSud', -- основание прекращения уголовного преследования??? + --up->'sledSud'->'svedSnyat'->>'dataSnyatSud', -- дата прекращения уголовного преследования + --up->'sledSud'->'svedSnyat'->>'dataOsuzhd', -- дата осуждения??? = + up->'sledSud'->'svedSnyat'->>'dataVozbUD' AS create_date, -- дата возбуждения уголовного дела + up->'sledSud'->'svedSnyat'->>'osnPrekrUD' AS termination_basis, -- основания прекращения уголовного дела = основания прекращения уголовного преследования? + --up->'sledSud'->'svedSnyat'->>'statusNaim' , -- ???? + up->'sledSud'->'svedSnyat'->>'dataPrekrUD' AS close_date--, -- дата прекращения уголовного дела + --up->>'sledSudTekst', -- ??? + --up->>'sledSudPriznak' -- ??? + --'UG_PRESL' AS info_type +FROM public.recruits r +JOIN ugolov_presl up ON r.id = up.recruit_id +LEFT JOIN LATERAL jsonb_array_elements_text(up->'sledSud'->'statiUK') AS law(f) ON true +GROUP BY r.id, up + Y + + + 432 + 304 + + + + Table output (prosecution) + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + prosecution
+ + N + Y + N + Y + + + 736 + 304 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/punishment_once.hpl b/mappings/jobs_once_a_day/punishment_once.hpl new file mode 100644 index 0000000..e263f80 --- /dev/null +++ b/mappings/jobs_once_a_day/punishment_once.hpl @@ -0,0 +1,108 @@ + + + + punishment_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + + + Table input 2 + Table output + Y + + + + Table input 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH ugol AS (SELECT ri.recruit_id, + jsonb_array_elements(ri.info -> 'svedFL' -> 'svedNakaz' -> 'nakaz') AS nakaz + FROM public.recruits_info ri + JOIN public.recruits r ON r.id = ri.recruit_id + WHERE ri.info -> 'svedFL' -> 'svedNakaz' ->> 'nakaz' != 'null' + AND '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id)) +SELECT recruit_id, + nakaz ->> 'naimSud' AS authority_name, + nakaz ->> 'srokNakaz' AS sentence, + nakaz ->> 'adresOrg' AS sentence_place, +-- nakaz->>'vidNakaz' AS punishment_code, + nakaz ->> 'naimIzmSrokNakaz' AS sentence_changed, + nakaz ->> 'vidNakaz' AS punishment_type, + TO_DATE(nakaz ->> 'dataNachSrok', 'YYYY-MM-DD') AS start_date, + TO_DATE(nakaz ->> 'dataOsvob', 'YYYY-MM-DD') AS release_date, + TO_DATE(nakaz ->> 'dataOsuzhd', 'YYYY-MM-DD') AS sentense_date, + string_agg(statiuk_elem, ', ') AS law_point, + nakaz ->> 'osnOsvob' AS release_reason +FROM ugol + LEFT JOIN LATERAL jsonb_array_elements_text(nakaz -> 'statiUK') AS statiuk_elem ON true +GROUP BY recruit_id, nakaz; + Y + + + 464 + 304 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 50000 + ervu-dashboard + + + N + N + N + N + Y + N + ervu_dashboard + N + punishment
+ N + Y + N + Y + + + 736 + 304 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/recruit_ervu_status_once.hpl b/mappings/jobs_once_a_day/recruit_ervu_status_once.hpl new file mode 100644 index 0000000..31af46d --- /dev/null +++ b/mappings/jobs_once_a_day/recruit_ervu_status_once.hpl @@ -0,0 +1,143 @@ + + + + recruit_ervu_status_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/26 14:56:32.115 + - + 2025/04/26 14:56:32.115 + + + + + + Table input + Insert / update + Y + + + Insert / update + Dummy (do nothing) + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select + code, + value, + description, + not hidden as actual + from recruit_ervu_status; + N + + + 304 + 256 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + = + code + code + + + ervu_dashboard + recruit_ervu_status
+ + code + code + N + + + value + value + Y + + + description + description + Y + + + actual + actual + Y + +
+ N + + + 512 + 256 + +
+ + Dummy (do nothing) + Dummy + + Y + + 1 + + none + + + + + 736 + 256 + + + + + Insert / update + Dummy (do nothing) + Y + + + + + + + + + + +
diff --git a/mappings/jobs_once_a_day/recruitment_code_once.hpl b/mappings/jobs_once_a_day/recruitment_code_once.hpl new file mode 100644 index 0000000..6e7cacb --- /dev/null +++ b/mappings/jobs_once_a_day/recruitment_code_once.hpl @@ -0,0 +1,94 @@ + + + + recruitment_code_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/26 16:42:00.557 + - + 2025/04/26 16:42:00.557 + + + + + + Table input + Update + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + select + id, + code + from recruitment; + N + + + 336 + 256 + + + + Update + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + + = + idm_id + id + + + ervu_dashboard + recruitment
+ + code + code + +
+ N + Y + + + 464 + 256 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/spouse_once.hpl b/mappings/jobs_once_a_day/spouse_once.hpl new file mode 100644 index 0000000..2b203d4 --- /dev/null +++ b/mappings/jobs_once_a_day/spouse_once.hpl @@ -0,0 +1,296 @@ + + + + spouse_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + + + Select values + Table output + Y + + + Table input + Select values + Y + + + Select values + Insert / update + N + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + = + full_name + full_name + + ervu_dashboard + citizen_spouse
+ + recruit_id + recruit_id + N + + + birth_date + birth_date + Y + + + death_az_number + divorce_az_number + Y + + + death_date + death_date + Y + + + divorce_az_number + divorce_az_number + Y + + + divorce_date + divorce_date + Y + + + full_name + full_name + Y + + + information_excluded + information_excluded + Y + + + kinship_type + kinship_type + Y + + + marriage_az_number + marriage_az_number + Y + + + marriage_date + marriage_date + Y + +
+ N + + + 704 + 208 + +
+ + Select values + SelectValues + + Y + + 1 + + none + + + + N + + marriage_date + marriage_date + Date + -2 + -2 + yyyy-MM-dd + false + + + false + + + + + + + + divorce_date + divorce_date + Date + -2 + -2 + yyyy-MM-dd + false + + + false + + + + + + + + + + 448 + 208 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + 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 public.recruits_info ri + JOIN public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') + 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.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, + divorce_az_number, + divorce_date, + information_excluded +FROM public.recruits r +JOIN suprug ON r.id = suprug.recruit_id + Y + + + 192 + 208 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 20000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + citizen_spouse
+ + N + Y + N + Y + + + 688 + 64 + +
+ + + Select values + + N + + + + + + + + + + +
diff --git a/mappings/jobs_once_a_day/subpoena_flags.hpl b/mappings/jobs_once_a_day/subpoena_flags.hpl new file mode 100644 index 0000000..7b700ae --- /dev/null +++ b/mappings/jobs_once_a_day/subpoena_flags.hpl @@ -0,0 +1,110 @@ + + + + subpoena_flags + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/25 16:50:55.585 + - + 2025/04/25 16:50:55.585 + + + + + + Table input + Update + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT distinct on (recruit_id) + recruit_id, + send_date is not null AS has_sent_summons, + subpoena_status = 'Повестка вручена' AS has_served_summons, + visit_date_true is not null AS appeared_to_recruitment_center, + date_recognition_reason is not null AS not_appeared_by_valid_excuse +FROM subpoena +order by recruit_id, send_date desc; + N + + + 272 + 224 + + + + Update + Update + + Y + + 1 + + none + + + 1000 + 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 + + + 448 + 224 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/subpoena_once.hpl b/mappings/jobs_once_a_day/subpoena_once.hpl new file mode 100644 index 0000000..403519f --- /dev/null +++ b/mappings/jobs_once_a_day/subpoena_once.hpl @@ -0,0 +1,150 @@ + + + + subpoena_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + + + Table input + Table output + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + 0 + SELECT + s.id AS subpoena_id, -- идентификатор повестки + s.status_change_date, + s.recruit_id, -- идентификатор рекрута + s.department_id, -- идентификатор ВК + s.series, -- серия повестки + s.create_date, -- дата создания повестки + s.number, -- номер повестки + s.send_date, -- дата направления повестки + s.sig_info, -- открепленная ЭП + sr.name AS subpoena_reason, -- причина вызова по повестке + s.full_name_responsible_user AS fio_commiss, -- фио комиссара + s.recruitment_name, -- наименование военного комиссариата, направившего повестку + rt.address, -- адрес, по которому нужно явиться по повестке + s.visit_date, -- дата и время явки в ВК + ssi.track_number, -- уникальный номер заказного почтового отправления, которым направлена повестка + ss.name AS subpoena_status, -- статус повестки + ssi.act_number, -- номер акта об отказе во вручении повестки + ssi.delivery_fio, -- фио лица, оповестившего гражданина о последствиях отказа от получения повестки + CASE + WHEN ssi.is_delivered = true THEN ssi.delivery_date + ELSE NULL + END AS delivery_date, -- дата вручения + CASE + WHEN ssi.is_delivered = true THEN 'Вручена' + WHEN ssi.is_delivered = false THEN 'Не вручена' + ELSE 'Нет информации' + END AS delivery_status, -- признак вручения повестки + CASE + WHEN sd.type = 'DIRECTION' THEN sd.name + ELSE NULL + END AS method_sending, -- способ направления повестки + CASE + WHEN sd.type = 'DELIVERY' THEN sd.name + ELSE NULL + END AS method_delivery, -- способ вручения повестки + CASE + WHEN sa.fact_appearance = true THEN 'Явился' + WHEN sa.fact_appearance = false THEN 'Не явился' + ELSE 'Нет информации' + END AS appearance_status, -- признак явки или неявки + CASE + WHEN ss.code = '5.1' THEN 'Неявка по уважительной причине' + WHEN ss.code = '5' THEN 'Гражданин не явился' + ELSE NULL + END AS appearance -- уважительная или нет причина +-- нет версии повестки +FROM public.subpoena AS s +LEFT JOIN public.subpoena_reason AS sr + ON sr.id = s.reason_id +LEFT JOIN public.recruitment AS rt + ON rt.id = s.department_id +LEFT JOIN public.subpoena_send_info AS ssi + ON ssi.subpoena_id = s.id +LEFT JOIN public.send_dictionary AS sd + ON sd.code = ssi.send_code +LEFT JOIN public.subpoena_status AS ss + ON ss.id = s.status_id +LEFT JOIN public.subpoena_appearance AS sa + ON sa.subpoena_id = s.id; + N + + + 208 + 208 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 5000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + subpoena
+ + N + Y + N + Y + + + 416 + 208 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/supportive_jobs/recruitment_rows.hpl b/mappings/jobs_once_a_day/supportive_jobs/recruitment_rows.hpl new file mode 100644 index 0000000..f8d3471 --- /dev/null +++ b/mappings/jobs_once_a_day/supportive_jobs/recruitment_rows.hpl @@ -0,0 +1,72 @@ + + + + recruitment_rows + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Table input + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 832 + 304 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT idm_id AS RECRUITMENT_CITIZEN FROM ervu_dashboard.recruitment +--limit 3 + N + + + 464 + 304 + + + + + + diff --git a/mappings/jobs_once_a_day/temporary_measure_flag.hpl b/mappings/jobs_once_a_day/temporary_measure_flag.hpl new file mode 100644 index 0000000..84a5d37 --- /dev/null +++ b/mappings/jobs_once_a_day/temporary_measure_flag.hpl @@ -0,0 +1,94 @@ + + + + temporary_measure_flag + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/25 16:48:10.260 + - + 2025/04/25 16:48:10.260 + + + + + + Table input + Update + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + select + recruit_id, + status_measure != 'Временные меры отменены' as has_active_temporary_measure + from temporary_measures; + N + + + 256 + 240 + + + + Update + Update + + Y + + 1 + + none + + + 1000 + ervu-dashboard + Y + + + + = + recruit_id + recruit_id + + + ervu_dashboard + citizen
+ + has_active_temporary_measure + has_active_temporary_measure + +
+ N + Y + + + 416 + 240 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/temporary_measure_once.hpl b/mappings/jobs_once_a_day/temporary_measure_once.hpl new file mode 100644 index 0000000..c6cc5e0 --- /dev/null +++ b/mappings/jobs_once_a_day/temporary_measure_once.hpl @@ -0,0 +1,132 @@ + + + + temporary_measure_once + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/08/15 14:02:51.713 + - + 2024/08/15 14:02:51.713 + + + + + + Table input + Table output + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + 0 + SELECT + rd.subpoena_id, + rd.vk_id AS recruitment_id, + s.recruit_id, + rds.name AS status_measure, -- статус временной меры + rd.recruitment_name, -- наименоване ВК + rdi.cancel_date, -- дата, с которой отменена временная мера + rn.name AS restriction_name, -- наименование ограничения (тип временной меры) + CASE + WHEN rd.type='CREATE' THEN 'Применение временной меры' + WHEN rd.type='CANCEL' THEN 'Отмена временной меры' + END AS type, -- тип документа ограничения + CASE + WHEN rd.type='CREATE' THEN rd.decision_number + ELSE NULL + END AS decision_number_create, -- номер решения о применении временной меры + CASE + WHEN rd.type='CANCEL' THEN rd.decision_number + ELSE NULL + END AS decision_number_cancel, -- номер решения об отмене временной меры + CASE + WHEN rd.type='CREATE' THEN rd.decision_date + ELSE NULL + END AS decision_date_create, -- дата решения о применении временной меры + CASE + WHEN rd.type='CANCEL' THEN rd.decision_date + ELSE NULL + END AS decision_date_cancel, -- дата решения об отмене временной меры + CASE + WHEN rdi.applied_fact = 'true' THEN 'Временная мера применена' + WHEN rdi.applied_fact = 'false' THEN 'Временная мера не применена' + ELSE 'Нет информации' + END AS applied_fact -- факт применения временной меры +FROM public.restriction_document AS rd +LEFT JOIN public.restriction_document_item AS rdi + ON rdi.restriction_document_create_id = rd.id +LEFT JOIN public.restriction AS rn + ON rn.id = rdi.restriction_id +LEFT JOIN public.restriction_document_status AS rds + ON rds.code = rd.status +LEFT JOIN public.subpoena AS s + ON s.id = rd.subpoena_id + N + + + 208 + 208 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 5000 + ervu-dashboard + + + N + N + N + N + + Y + + N + ervu_dashboard + N + temporary_measures
+ + N + Y + N + Y + + + 416 + 208 + +
+ + + +
diff --git a/mappings/log.txt b/mappings/log.txt new file mode 100644 index 0000000..e69de29 diff --git a/mappings/log_jobs/log_job_info_recruits.txt b/mappings/log_jobs/log_job_info_recruits.txt new file mode 100644 index 0000000..e69de29 diff --git a/mappings/log_jobs/log_job_info_recruits_once.txt b/mappings/log_jobs/log_job_info_recruits_once.txt new file mode 100644 index 0000000..e69de29 diff --git a/mappings/log_jobs/log_job_ratings.txt b/mappings/log_jobs/log_job_ratings.txt new file mode 100644 index 0000000..e69de29 diff --git a/mappings/log_jobs/log_job_recruitments_all.txt b/mappings/log_jobs/log_job_recruitments_all.txt new file mode 100644 index 0000000..e69de29 diff --git a/mappings/log_jobs/log_job_recruitments_country.txt b/mappings/log_jobs/log_job_recruitments_country.txt new file mode 100644 index 0000000..e69de29 diff --git a/mappings/log_jobs/log_job_recruitments_milcom.txt b/mappings/log_jobs/log_job_recruitments_milcom.txt new file mode 100644 index 0000000..e69de29 diff --git a/mappings/log_jobs/log_job_recruitments_mildis.txt b/mappings/log_jobs/log_job_recruitments_mildis.txt new file mode 100644 index 0000000..e69de29 diff --git a/mappings/log_jobs/log_job_recruitments_region.txt b/mappings/log_jobs/log_job_recruitments_region.txt new file mode 100644 index 0000000..e69de29 diff --git a/mappings/metadata/rdbms/118_ervu-person-registry.json b/mappings/metadata/rdbms/118_ervu-person-registry.json new file mode 100644 index 0000000..f58b973 --- /dev/null +++ b/mappings/metadata/rdbms/118_ervu-person-registry.json @@ -0,0 +1,26 @@ +{ + "rdbms": { + "POSTGRESQL": { + "databaseName": "ervu-person-registry", + "pluginId": "POSTGRESQL", + "accessType": 0, + "hostname": "10.10.31.118", + "password": "Encrypted 2be98afc86aa7f2e4b11ba562feabf7eb", + "pluginName": "PostgreSQL", + "port": "5432", + "attributes": { + "SUPPORTS_TIMESTAMP_DATA_TYPE": "Y", + "QUOTE_ALL_FIELDS": "N", + "SUPPORTS_BOOLEAN_DATA_TYPE": "Y", + "FORCE_IDENTIFIERS_TO_LOWERCASE": "N", + "PRESERVE_RESERVED_WORD_CASE": "Y", + "SQL_CONNECT": "", + "FORCE_IDENTIFIERS_TO_UPPERCASE": "N", + "PREFERRED_SCHEMA_NAME": "" + }, + "manualUrl": "", + "username": "postgres" + } + }, + "name": "118_ervu-person-registry" +} \ No newline at end of file diff --git a/mappings/metadata/rdbms/118_ervu-subpoena-registry.json b/mappings/metadata/rdbms/118_ervu-subpoena-registry.json new file mode 100644 index 0000000..f2bd116 --- /dev/null +++ b/mappings/metadata/rdbms/118_ervu-subpoena-registry.json @@ -0,0 +1,26 @@ +{ + "rdbms": { + "POSTGRESQL": { + "databaseName": "ervu-subpoena-registry", + "pluginId": "POSTGRESQL", + "accessType": 0, + "hostname": "10.10.31.118", + "password": "Encrypted 2be98afc86aa7f2e4b11ba562feabf7eb", + "pluginName": "PostgreSQL", + "port": "5432", + "attributes": { + "SUPPORTS_TIMESTAMP_DATA_TYPE": "Y", + "QUOTE_ALL_FIELDS": "N", + "SUPPORTS_BOOLEAN_DATA_TYPE": "Y", + "FORCE_IDENTIFIERS_TO_LOWERCASE": "N", + "PRESERVE_RESERVED_WORD_CASE": "Y", + "SQL_CONNECT": "", + "FORCE_IDENTIFIERS_TO_UPPERCASE": "N", + "PREFERRED_SCHEMA_NAME": "" + }, + "manualUrl": "", + "username": "postgres" + } + }, + "name": "118_ervu-subpoena-registry" +} \ No newline at end of file diff --git a/mappings/metadata/rdbms/119_ervu-dashboard-copy.json b/mappings/metadata/rdbms/119_ervu-dashboard-copy.json new file mode 100644 index 0000000..25ade15 --- /dev/null +++ b/mappings/metadata/rdbms/119_ervu-dashboard-copy.json @@ -0,0 +1,27 @@ +{ + "rdbms": { + "POSTGRESQL": { + "databaseName": "ervu-dashboard-copy", + "pluginId": "POSTGRESQL", + "accessType": 0, + "hostname": "10.10.31.119", + "password": "Encrypted 2be98caba1cd2df80aa0aa672d193bdde", + "pluginName": "PostgreSQL", + "port": "5432", + "attributes": { + "SUPPORTS_TIMESTAMP_DATA_TYPE": "Y", + "QUOTE_ALL_FIELDS": "N", + "EXTRA_OPTION_POSTGRESQL.stringtype": "unspecified", + "SUPPORTS_BOOLEAN_DATA_TYPE": "Y", + "FORCE_IDENTIFIERS_TO_LOWERCASE": "N", + "PRESERVE_RESERVED_WORD_CASE": "Y", + "SQL_CONNECT": "", + "FORCE_IDENTIFIERS_TO_UPPERCASE": "N", + "PREFERRED_SCHEMA_NAME": "" + }, + "manualUrl": "", + "username": "ervu-dashboard" + } + }, + "name": "119_ervu-dashboard-copy" +} \ No newline at end of file diff --git a/mappings/metadata/rdbms/ervu-journal.json b/mappings/metadata/rdbms/ervu-journal.json new file mode 100644 index 0000000..da61575 --- /dev/null +++ b/mappings/metadata/rdbms/ervu-journal.json @@ -0,0 +1,26 @@ +{ + "rdbms": { + "POSTGRESQL": { + "databaseName": "${DB_JOURNAL_NAME}", + "pluginId": "POSTGRESQL", + "accessType": 0, + "hostname": "${DB_JOURNAL_HOST}", + "password": "${DB_JOURNAL_PASSWORD}", + "pluginName": "PostgreSQL", + "port": "${DB_JOURNAL_PORT}", + "attributes": { + "SUPPORTS_TIMESTAMP_DATA_TYPE": "Y", + "QUOTE_ALL_FIELDS": "N", + "SUPPORTS_BOOLEAN_DATA_TYPE": "Y", + "FORCE_IDENTIFIERS_TO_LOWERCASE": "N", + "PRESERVE_RESERVED_WORD_CASE": "Y", + "SQL_CONNECT": "", + "FORCE_IDENTIFIERS_TO_UPPERCASE": "N", + "PREFERRED_SCHEMA_NAME": "" + }, + "manualUrl": "", + "username": "${DB_JOURNAL_USERNAME}" + } + }, + "name": "ervu-journal" +} \ No newline at end of file diff --git a/mappings/metadata/rdbms/incident.json b/mappings/metadata/rdbms/incident.json new file mode 100644 index 0000000..3cb4185 --- /dev/null +++ b/mappings/metadata/rdbms/incident.json @@ -0,0 +1,26 @@ +{ + "rdbms": { + "POSTGRESQL": { + "databaseName": "${DB_INCIDENTS_NAME}", + "pluginId": "POSTGRESQL", + "accessType": 0, + "hostname": "${DB_INCIDENTS_HOST}", + "password": "${DB_INCIDENTS_PASSWORD}", + "pluginName": "PostgreSQL", + "port": "${DB_INCIDENTS_PORT}", + "attributes": { + "SUPPORTS_TIMESTAMP_DATA_TYPE": "Y", + "QUOTE_ALL_FIELDS": "N", + "SUPPORTS_BOOLEAN_DATA_TYPE": "Y", + "FORCE_IDENTIFIERS_TO_LOWERCASE": "N", + "PRESERVE_RESERVED_WORD_CASE": "Y", + "SQL_CONNECT": "", + "FORCE_IDENTIFIERS_TO_UPPERCASE": "N", + "PREFERRED_SCHEMA_NAME": "" + }, + "manualUrl": "", + "username": "${DB_INCIDENTS_USERNAME}" + } + }, + "name": "incident" +} \ No newline at end of file diff --git a/mappings/metadata/rdbms/metrics.json b/mappings/metadata/rdbms/metrics.json new file mode 100644 index 0000000..fe7601d --- /dev/null +++ b/mappings/metadata/rdbms/metrics.json @@ -0,0 +1,27 @@ +{ + "rdbms": { + "POSTGRESQL": { + "databaseName": "${DB_METRICS_NAME}", + "pluginId": "POSTGRESQL", + "accessType": 0, + "hostname": "${DB_METRICS_HOST}", + "password": "${DB_METRICS_PASSWORD}", + "pluginName": "PostgreSQL", + "port": "${DB_METRICS_PORT}", + "attributes": { + "SUPPORTS_TIMESTAMP_DATA_TYPE": "Y", + "QUOTE_ALL_FIELDS": "N", + "EXTRA_OPTION_POSTGRESQL.stringtype": "unspecified", + "SUPPORTS_BOOLEAN_DATA_TYPE": "Y", + "FORCE_IDENTIFIERS_TO_LOWERCASE": "N", + "PRESERVE_RESERVED_WORD_CASE": "Y", + "SQL_CONNECT": "", + "FORCE_IDENTIFIERS_TO_UPPERCASE": "N", + "PREFERRED_SCHEMA_NAME": "" + }, + "manualUrl": "", + "username": "${DB_METRICS_USERNAME}" + } + }, + "name": "metrics" +} \ No newline at end of file diff --git a/mappings/mil_com/job_recruitments_milcom.hwf b/mappings/mil_com/job_recruitments_milcom.hwf new file mode 100644 index 0000000..6fb1a77 --- /dev/null +++ b/mappings/mil_com/job_recruitments_milcom.hwf @@ -0,0 +1,2336 @@ + + + job_recruitments_milcom + Y + + + + 0 + - + 2024/08/15 16:02:12.821 + - + 2024/08/15 16:02:12.821 + + + ARR_MC + + + + + REC_ID + + + + + SCM + + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + Y + 1008 + 1552 + + + + main_dashboard.appeals(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.appeals(m_c).hpl + txt + ${Internal.Entry.Current.Folder}/\logs\appeals + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 1840 + 944 + + + + Success + + SUCCESS + + N + 2048 + 944 + + + + Success 2 + + SUCCESS + + N + 2592 + 1152 + + + + main_dashboard.total_registered(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered(m_c).hpl + txt + ${PROJECT_HOME}/log + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 320 + 1248 + + + + Success main_dashboard.total_registered(m_c)_pll + + SUCCESS + + N + 2592 + 1312 + + + + Success main_dashboard.waiting_registration(m_c)_pll + + SUCCESS + + N + 2592 + 1232 + + + + Success 6 + + SUCCESS + + N + 2592 + 1072 + + + + total_registered.reg_mil_cat(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat(m_c).hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 320 + 1312 + + + + Success 7 + + SUCCESS + + N + 0 + 1312 + + + + total_registered.removed_registry(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry(m_c).hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 320 + 1376 + + + + Success 8 + + SUCCESS + + N + 0 + 1376 + + + + total_registered.subpoenas(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas(m_c).hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 320 + 1440 + + + + Success 9 + + SUCCESS + + N + 0 + 1440 + + + + total_registered.driver_license(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license(m_c).hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 320 + 1504 + + + + Success 10 + + SUCCESS + + N + 0 + 1504 + + + + total_registered.child_minor(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor(m_c).hpl + txt + C:\Users\acer\Desktop\лог + Rowlevel + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 320 + 1568 + + + + Success 11 + + SUCCESS + + N + 0 + 1568 + + + + total_registered.age(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.age(m_c)/total_registered.age(m_c).hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 320 + 1632 + + + + Success 12 + + SUCCESS + + N + 0 + 1632 + + + + total_registered.marital_status(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status(m_c).hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 320 + 1696 + + + + Success 13 + + SUCCESS + + N + 0 + 1696 + + + + total_registered.education_level(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.education_level(m_c)/total_registered.education_level(m_c).hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 320 + 1760 + + + + Success 14 + + SUCCESS + + N + 0 + 1760 + + + + total_registered.busyness(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.busyness(m_c)/total_registered.busyness(m_c).hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 320 + 1824 + + + + Success 15 + + SUCCESS + + N + 0 + 1824 + + + + recruitment_campaign.appeals(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/recruitment_campaign.appeals(m_c).hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 320 + 1968 + + + + Success 16 + + SUCCESS + + N + 0 + 1968 + + + + array_recruitments.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_com/parameters/array_recruitments.hpl + Basic + + Y + + N + local + N + N + Y + Y + 848 + 1552 + + + + Dummy + + DUMMY + + N + 1648 + 944 + + + + SQL total_registered.reg_mil_cat + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.reg_mil_cat +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 624 + 1312 + + + + SQL main_dashboard.total_registered + + SQL + + ervu-dashboard + N + DELETE FROM main_dashboard.total_registered +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 624 + 1248 + + + + SQL total_registered.removed_registry + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.removed_registry +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + N + N + N + 624 + 1376 + + + + SQL total_registered.subpoenas + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.subpoenas +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 624 + 1440 + + + + SQL total_registered.driver_license + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.driver_license +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + N + N + N + 624 + 1504 + + + + SQL total_registered.child_minor + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.child_minor +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 624 + 1568 + + + + SQL total_registered.age + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.age +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 624 + 1632 + + + + SQL total_registered.marital_status + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.marital_status +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 624 + 1696 + + + + SQL total_registered.education_level + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.education_level +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + N + N + N + 624 + 1760 + + + + SQL total_registered.busyness + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.busyness +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 624 + 1824 + + + + SQL recruitment_campaign.appeals + + SQL + + ervu-dashboard + N + DELETE FROM recruitment_campaign.appeals +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + N + N + N + 624 + 1968 + + + + main_dashboard.recruitment_campaign(m_c).hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/mil_com/main_dashboard.recruitment_campaign(m_c).hwf + Nothing + + Y + + N + local + N + N + Y + N + 1712 + 1152 + + + + SQL main_dashboard.recruitment_campaign clearing null + + SQL + + ervu-dashboard + N + DELETE FROM main_dashboard.recruitment_campaign +WHERE recording_date = current_date +AND new_recruits IS NULL +AND subpoenas_sent IS NULL +AND appeared_on_subpoenas IS NULL +AND postponement_have_right IS NULL +AND postponement_granted IS NULL; + N + N + N + 2336 + 1152 + + + + postponement_percents.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_com/main_dashboard.recruitment_campaign(m_c)/postponement_percents.hpl + Basic + + Y + + N + local + N + N + Y + N + 2032 + 1152 + + + + recruitment_campaign.subpoenas(m_c).hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_campaign.subpoenas(m_c).hwf + Nothing + + Y + + N + local + N + N + Y + N + 1712 + 1072 + + + + main_dashboard.waiting_registration(m_c).hwf + + WORKFLOW + + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration(m_c).hwf + Nothing + + + ARR_PR_1 + PART_RECRUITMENT_1 + + + ARR_PR_2 + PART_RECRUITMENT_2 + + + ARR_PR_3 + PART_RECRUITMENT_3 + + + ARR_PR_4 + PART_RECRUITMENT_4 + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 2032 + 1232 + + + + SQL main_dashboard.waiting_registration + + SQL + + ervu-dashboard + N + DELETE FROM main_dashboard.waiting_registration +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 624 + 1184 + + + + Success main_dashboard.waiting_registration(m_c) + + SUCCESS + + N + 0 + 1184 + + + + main_dashboard.waiting_registration(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration(m_c).hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 320 + 1184 + + + + Success main_dashboard.total_registered(m_c) + + SUCCESS + + N + 0 + 1248 + + + + array_recruitment_for_parallel.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_com/parameters/array_recruitment_for_parallel.hpl + txt + C:\Users\acer\Desktop\logii + Rowlevel + + Y + + N + local + N + N + Y + Y + 1152 + 1552 + + + + SQL main_dashboard.waiting_registration 2 + + SQL + + ervu-dashboard + N + DELETE FROM main_dashboard.waiting_registration +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 1712 + 1232 + + + + main_dashboard.total_registered(m_c).hwf + + WORKFLOW + + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered(m_c).hwf + Nothing + + + ARR_PR_1 + PART_RECRUITMENT_1 + + + ARR_PR_2 + PART_RECRUITMENT_2 + + + ARR_PR_3 + PART_RECRUITMENT_3 + + + ARR_PR_4 + PART_RECRUITMENT_4 + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 2032 + 1312 + + + + SQL main_dashboard.total_registered 2 + + SQL + + ervu-dashboard + N + DELETE FROM main_dashboard.total_registered +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 1712 + 1312 + + + + SQL total_registered.reg_mil_cat 2 + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.reg_mil_cat +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 1712 + 1392 + + + + total_registered.reg_mil_cat(m_c).hwf + + WORKFLOW + + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat(m_c).hwf + Nothing + + + ARR_PR_1 + PART_RECRUITMENT_1 + + + ARR_PR_2 + PART_RECRUITMENT_2 + + + ARR_PR_3 + PART_RECRUITMENT_3 + + + ARR_PR_4 + PART_RECRUITMENT_4 + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 2032 + 1392 + + + + Success total_registered.reg_mil_cat(m_c)_pll + + SUCCESS + + N + 2592 + 1392 + + + + SQL total_registered.removed_registry 2 + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.removed_registry +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + N + N + N + 1712 + 1472 + + + + total_registered.removed_registry(m_c).hwf + + WORKFLOW + + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry(m_c).hwf + Nothing + + + ARR_PR_1 + PART_RECRUITMENT_1 + + + ARR_PR_2 + PART_RECRUITMENT_2 + + + ARR_PR_3 + PART_RECRUITMENT_3 + + + ARR_PR_4 + PART_RECRUITMENT_4 + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 2032 + 1472 + + + + Success total_registered.removed_registry(m_c)_pll + + SUCCESS + + N + 2592 + 1472 + + + + SQL total_registered.subpoenas 2 + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.subpoenas +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 1712 + 1552 + + + + total_registered.subpoenas(m_c).hwf + + WORKFLOW + + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas(m_c).hwf + Nothing + + + ARR_PR_1 + PART_RECRUITMENT_1 + + + ARR_PR_2 + PART_RECRUITMENT_2 + + + ARR_PR_3 + PART_RECRUITMENT_3 + + + ARR_PR_4 + PART_RECRUITMENT_4 + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 2032 + 1552 + + + + Success total_registered.subpoenas(m_c)_pll + + SUCCESS + + N + 2592 + 1552 + + + + total_registered.driver_license(m_c).hwf + + WORKFLOW + + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license(m_c).hwf + Nothing + + + ARR_PR_1 + PART_RECRUITMENT_1 + + + ARR_PR_2 + PART_RECRUITMENT_2 + + + ARR_PR_3 + PART_RECRUITMENT_3 + + + ARR_PR_4 + PART_RECRUITMENT_4 + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 2032 + 1632 + + + + SQL total_registered.driver_license 2 + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.driver_license +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + N + N + N + 1712 + 1632 + + + + Success total_registered.driver_license(m_c)_pll + + SUCCESS + + N + 2592 + 1632 + + + + SQL total_registered.child_minor 2 + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.child_minor +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 1712 + 1712 + + + + total_registered.child_minor(m_c).hwf + + WORKFLOW + + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor(m_c).hwf + Nothing + + + ARR_PR_1 + PART_RECRUITMENT_1 + + + ARR_PR_2 + PART_RECRUITMENT_2 + + + ARR_PR_3 + PART_RECRUITMENT_3 + + + ARR_PR_4 + PART_RECRUITMENT_4 + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 2032 + 1712 + + + + Success total_registered.child_minor(m_c)_pll + + SUCCESS + + N + 2592 + 1712 + + + + SQL total_registered.age 2 + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.age +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 1712 + 1792 + + + + total_registered.age(m_c).hwf + + WORKFLOW + + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.age(m_c)/total_registered.age(m_c).hwf + Nothing + + + ARR_PR_1 + PART_RECRUITMENT_1 + + + ARR_PR_2 + PART_RECRUITMENT_2 + + + ARR_PR_3 + PART_RECRUITMENT_3 + + + ARR_PR_4 + PART_RECRUITMENT_4 + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 2032 + 1792 + + + + Success total_registered.age(m_c)_pll + + SUCCESS + + N + 2592 + 1792 + + + + SQL total_registered.marital_status 2 + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.marital_status +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 1712 + 1872 + + + + total_registered.marital_status(m_c).hwf + + WORKFLOW + + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status(m_c).hwf + Nothing + + + ARR_PR_1 + PART_RECRUITMENT_1 + + + ARR_PR_2 + PART_RECRUITMENT_2 + + + ARR_PR_3 + PART_RECRUITMENT_3 + + + ARR_PR_4 + PART_RECRUITMENT_4 + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 2032 + 1872 + + + + Success total_registered.marital_status(m_c)_pll + + SUCCESS + + N + 2592 + 1872 + + + + SQL total_registered.education_level 2 + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.education_level +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + N + N + N + 1712 + 1952 + + + + total_registered.education_level(m_c).hwf + + WORKFLOW + + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.education_level(m_c)/total_registered.education_level(m_c).hwf + Nothing + + + ARR_PR_1 + PART_RECRUITMENT_1 + + + ARR_PR_2 + PART_RECRUITMENT_2 + + + ARR_PR_3 + PART_RECRUITMENT_3 + + + ARR_PR_4 + PART_RECRUITMENT_4 + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 2032 + 1952 + + + + Success total_registered.education_level(m_c)_pll + + SUCCESS + + N + 2592 + 1952 + + + + SQL total_registered.busyness 2 + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.busyness +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + + N + N + N + 1712 + 2032 + + + + total_registered.busyness(m_c).hwf + + WORKFLOW + + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.busyness(m_c)/total_registered.busyness(m_c).hwf + Nothing + + + ARR_PR_1 + PART_RECRUITMENT_1 + + + ARR_PR_2 + PART_RECRUITMENT_2 + + + ARR_PR_3 + PART_RECRUITMENT_3 + + + ARR_PR_4 + PART_RECRUITMENT_4 + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 2032 + 2032 + + + + Success total_registered.busyness(m_c)_pll + + SUCCESS + + N + 2592 + 2032 + + + + + + total_registered.reg_mil_cat(m_c).hpl + Success 7 + Y + Y + N + + + total_registered.removed_registry(m_c).hpl + Success 8 + Y + Y + N + + + total_registered.subpoenas(m_c).hpl + Success 9 + Y + Y + N + + + total_registered.driver_license(m_c).hpl + Success 10 + Y + Y + N + + + total_registered.child_minor(m_c).hpl + Success 11 + Y + Y + N + + + total_registered.age(m_c).hpl + Success 12 + Y + Y + N + + + total_registered.marital_status(m_c).hpl + Success 13 + Y + Y + N + + + total_registered.education_level(m_c).hpl + Success 14 + Y + Y + N + + + total_registered.busyness(m_c).hpl + Success 15 + Y + Y + N + + + recruitment_campaign.appeals(m_c).hpl + Success 16 + Y + Y + N + + + main_dashboard.appeals(m_c).hpl + Success + Y + Y + N + + + Start + array_recruitments.hpl + Y + Y + Y + + + array_recruitments.hpl + Dummy + N + Y + N + + + Dummy + main_dashboard.appeals(m_c).hpl + Y + Y + Y + + + array_recruitments.hpl + SQL total_registered.reg_mil_cat + N + Y + N + + + SQL total_registered.reg_mil_cat + total_registered.reg_mil_cat(m_c).hpl + Y + Y + Y + + + array_recruitments.hpl + SQL main_dashboard.total_registered + N + Y + N + + + SQL main_dashboard.total_registered + main_dashboard.total_registered(m_c).hpl + Y + Y + Y + + + array_recruitments.hpl + SQL total_registered.removed_registry + N + Y + N + + + SQL total_registered.removed_registry + total_registered.removed_registry(m_c).hpl + Y + Y + Y + + + array_recruitments.hpl + SQL total_registered.subpoenas + N + Y + N + + + SQL total_registered.subpoenas + total_registered.subpoenas(m_c).hpl + Y + Y + Y + + + array_recruitments.hpl + SQL total_registered.driver_license + N + Y + N + + + SQL total_registered.driver_license + total_registered.driver_license(m_c).hpl + Y + Y + Y + + + array_recruitments.hpl + SQL total_registered.child_minor + N + Y + N + + + SQL total_registered.child_minor + total_registered.child_minor(m_c).hpl + Y + Y + Y + + + array_recruitments.hpl + SQL total_registered.age + N + Y + N + + + SQL total_registered.age + total_registered.age(m_c).hpl + Y + Y + Y + + + array_recruitments.hpl + SQL total_registered.marital_status + N + Y + N + + + SQL total_registered.marital_status + total_registered.marital_status(m_c).hpl + Y + Y + Y + + + array_recruitments.hpl + SQL total_registered.education_level + N + Y + N + + + SQL total_registered.education_level + total_registered.education_level(m_c).hpl + Y + Y + Y + + + array_recruitments.hpl + SQL total_registered.busyness + N + Y + N + + + SQL total_registered.busyness + total_registered.busyness(m_c).hpl + Y + N + Y + + + array_recruitments.hpl + SQL recruitment_campaign.appeals + N + Y + N + + + SQL recruitment_campaign.appeals + recruitment_campaign.appeals(m_c).hpl + Y + Y + Y + + + Start + main_dashboard.recruitment_campaign(m_c).hwf + Y + Y + Y + + + SQL main_dashboard.recruitment_campaign clearing null + Success 2 + Y + Y + Y + + + main_dashboard.recruitment_campaign(m_c).hwf + postponement_percents.hpl + Y + N + Y + + + postponement_percents.hpl + SQL main_dashboard.recruitment_campaign clearing null + Y + Y + Y + + + Start + recruitment_campaign.subpoenas(m_c).hwf + Y + Y + Y + + + recruitment_campaign.subpoenas(m_c).hwf + Success 6 + Y + N + Y + + + main_dashboard.waiting_registration(m_c).hwf + Success main_dashboard.waiting_registration(m_c)_pll + Y + N + Y + + + array_recruitments.hpl + SQL main_dashboard.waiting_registration + N + Y + N + + + SQL main_dashboard.waiting_registration + main_dashboard.waiting_registration(m_c).hpl + Y + N + Y + + + main_dashboard.waiting_registration(m_c).hpl + Success main_dashboard.waiting_registration(m_c) + Y + Y + N + + + main_dashboard.total_registered(m_c).hpl + Success main_dashboard.total_registered(m_c) + Y + Y + N + + + Start + array_recruitment_for_parallel.hpl + Y + Y + Y + + + array_recruitment_for_parallel.hpl + SQL main_dashboard.waiting_registration 2 + Y + Y + Y + + + SQL main_dashboard.waiting_registration 2 + main_dashboard.waiting_registration(m_c).hwf + Y + Y + Y + + + SQL main_dashboard.total_registered 2 + main_dashboard.total_registered(m_c).hwf + Y + N + Y + + + main_dashboard.total_registered(m_c).hwf + Success main_dashboard.total_registered(m_c)_pll + Y + N + Y + + + array_recruitment_for_parallel.hpl + SQL main_dashboard.total_registered 2 + Y + N + Y + + + array_recruitment_for_parallel.hpl + SQL total_registered.reg_mil_cat 2 + Y + Y + Y + + + SQL total_registered.reg_mil_cat 2 + total_registered.reg_mil_cat(m_c).hwf + Y + N + Y + + + total_registered.reg_mil_cat(m_c).hwf + Success total_registered.reg_mil_cat(m_c)_pll + Y + N + Y + + + SQL total_registered.removed_registry 2 + total_registered.removed_registry(m_c).hwf + Y + N + Y + + + total_registered.removed_registry(m_c).hwf + Success total_registered.removed_registry(m_c)_pll + Y + N + Y + + + array_recruitment_for_parallel.hpl + SQL total_registered.removed_registry 2 + Y + Y + Y + + + SQL total_registered.subpoenas 2 + total_registered.subpoenas(m_c).hwf + Y + N + Y + + + total_registered.subpoenas(m_c).hwf + Success total_registered.subpoenas(m_c)_pll + Y + N + Y + + + array_recruitment_for_parallel.hpl + SQL total_registered.subpoenas 2 + Y + Y + Y + + + SQL total_registered.driver_license 2 + total_registered.driver_license(m_c).hwf + Y + N + Y + + + total_registered.driver_license(m_c).hwf + Success total_registered.driver_license(m_c)_pll + Y + N + Y + + + array_recruitment_for_parallel.hpl + SQL total_registered.driver_license 2 + Y + Y + Y + + + array_recruitment_for_parallel.hpl + SQL total_registered.child_minor 2 + Y + Y + Y + + + SQL total_registered.child_minor 2 + total_registered.child_minor(m_c).hwf + Y + N + Y + + + total_registered.child_minor(m_c).hwf + Success total_registered.child_minor(m_c)_pll + Y + N + Y + + + SQL total_registered.age 2 + total_registered.age(m_c).hwf + Y + N + Y + + + total_registered.age(m_c).hwf + Success total_registered.age(m_c)_pll + Y + N + Y + + + array_recruitment_for_parallel.hpl + SQL total_registered.age 2 + Y + Y + Y + + + array_recruitment_for_parallel.hpl + SQL total_registered.marital_status 2 + Y + Y + Y + + + SQL total_registered.marital_status 2 + total_registered.marital_status(m_c).hwf + Y + N + Y + + + total_registered.marital_status(m_c).hwf + Success total_registered.marital_status(m_c)_pll + Y + N + Y + + + array_recruitment_for_parallel.hpl + SQL total_registered.education_level 2 + Y + Y + Y + + + SQL total_registered.education_level 2 + total_registered.education_level(m_c).hwf + Y + N + Y + + + total_registered.education_level(m_c).hwf + Success total_registered.education_level(m_c)_pll + Y + N + Y + + + array_recruitment_for_parallel.hpl + SQL total_registered.busyness 2 + Y + Y + Y + + + SQL total_registered.busyness 2 + total_registered.busyness(m_c).hwf + Y + N + Y + + + total_registered.busyness(m_c).hwf + Success total_registered.busyness(m_c)_pll + Y + N + Y + + + + + + + METASTORE.pentaho + + Default Run Configuration + {"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null} + + + + {"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"} + + Pentaho local + {"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"pentaho","value":"N"},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]} + + + + diff --git a/mappings/mil_com/main_dashboard.appeals(m_c).hpl b/mappings/mil_com/main_dashboard.appeals(m_c).hpl new file mode 100644 index 0000000..91bc951 --- /dev/null +++ b/mappings/mil_com/main_dashboard.appeals(m_c).hpl @@ -0,0 +1,314 @@ + + + + main_dashboard.appeals(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 2 + Select values 3 2 + N + + + Select values 3 2 + Insert / update (main_dashboard.appeals) 2 + N + + + Table input (appeal_document) регионы + Get variables 3 2 + N + + + Execute SQL script + Table input (appeal_document) регионы + Y + + + Table input (appeal_document) регионы + Insert / update (main_dashboard.appeals) 2 + Y + + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + + N + + N + + Y + N + N + DELETE FROM main_dashboard.appeals +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty') + + + + + 224 + 192 + + + + Get variables 3 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REС_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 672 + 384 + + + + Insert / update (main_dashboard.appeals) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + main_dashboard + appeals
+ + total_appeals + total_appeals + Y + + + average_consideration + average_consideration + Y + + + resolved + resolved + Y + + + average_rating + average_rating + Y + + + average_to_face + average_to_face + Y + + + "average_EPGU" + average_epgu + Y + + + average_to_face_percent + average_to_face_percent + Y + + + "average_EPGU_percent" + average_epgu_percent + Y + + + recruitment_id + recruitment_id + N + +
+ Y + + + 1024 + 192 + +
+ + Select values 3 2 + SelectValues + + Y + + 1 + + none + + + + N + + REС_ID + REС_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 816 + 384 + + + + Table input (appeal_document) регионы + TableInput + + N + + 1 + + none + + + postgres.appeal-document-service + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +t1 AS ( + SELECT + COUNT(*) AS total_appeals, + vk_id::uuid AS recruitment_id + FROM public.appeal_document + WHERE vk_id::uuid IN (SELECT recruitment_id FROM ids) + GROUP BY vk_id +), +t2 AS ( + SELECT + ROUND(AVG((TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date)), 2) AS average_consideration, + vk_id::uuid AS recruitment_id + FROM public.appeal_document ad + WHERE vk_id::uuid IN (SELECT recruitment_id FROM ids) + AND ad.extra_info ->> 'resultDate' IS NOT NULL + AND ad.extra_info ->> 'resultDate' != '' + GROUP BY vk_id +), +resolved AS ( + SELECT + COUNT(*) AS resolved, + vk_id::uuid AS recruitment_id + FROM public.appeal_document ad + WHERE ad.extra_info ->> 'result' = '1' + AND vk_id::uuid IN (SELECT recruitment_id FROM ids) + GROUP BY vk_id +) +SELECT + COALESCE(t1.total_appeals, 0) AS total_appeals, + COALESCE(t2.average_consideration, 0) AS average_consideration, + COALESCE(resolved.resolved, 0) AS resolved, + ids.recruitment_id, + current_date AS recording_date, + 0 AS average_rating, + 0 AS average_to_face, + 0 AS average_epgu, + 0 AS average_to_face_percent, + 0 AS average_epgu_percent +FROM ids +LEFT JOIN t1 ON ids.recruitment_id = t1.recruitment_id +LEFT JOIN t2 ON ids.recruitment_id = t2.recruitment_id +LEFT JOIN resolved ON ids.recruitment_id = resolved.recruitment_id; + Y + + + 448 + 192 + + + + + +
diff --git a/mappings/mil_com/main_dashboard.recruitment_campaign(m_c).hwf b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c).hwf new file mode 100644 index 0000000..cd9c18a --- /dev/null +++ b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c).hwf @@ -0,0 +1,769 @@ + + + main_dashboard.recruitment_campaign(m_c) + Y + + + + - + 2025/03/19 10:26:06.313 + - + 2025/03/19 10:26:06.313 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 48 + 256 + + + + m_d.rec_cam(m_c)_to_person_registry_uniq.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry_uniq.hpl + Basic + + + ARR_MC_SP + ARRAY_MIL_COM_SP + + + ARR_MC_AU + ARRAY_MIL_COM_AU + + Y + + Y + local + N + N + Y + N + 1104 + 0 + + + + m_d.rec_cam(m_c)_to_subpoena_registry_uniq.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_subpoena_registry_uniq.hpl + Basic + + + ARR_MC_SP + ARRAY_MIL_COM_SP + + + ARR_MC_AU + ARRAY_MIL_COM_AU + + Y + + Y + local + N + N + Y + N + 1648 + 112 + + + + m_d.rec_cam(m_c)_to_decision_service_uniq.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_decision_service_uniq.hpl + Basic + + + ARR_MC_SP + ARRAY_MIL_COM_SP + + + ARR_MC_AU + ARRAY_MIL_COM_AU + + Y + + Y + local + N + N + Y + N + 2000 + 112 + + + + recruitment_season_combination_uniq.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.recruitment_campaign(m_c)/recruitment_season_combination_uniq.hpl + Basic + + + ARR_MC_SP + ARRAY_MIL_COM_SP + + + ARR_MC_AU + ARRAY_MIL_COM_AU + + Y + + Y + local + N + N + Y + N + 672 + 112 + + + + array_season_recruitments_all.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_com/parameters/season_separation/array_season_recruitments_all.hpl + Basic + + Y + + N + local + N + N + Y + N + 416 + 368 + + + + array_season_recruitments.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_com/parameters/season_separation/array_season_recruitments.hpl + Basic + + Y + + N + local + N + N + Y + N + 416 + 112 + + + + m_d.rec_cam(m_c)_to_person_registry.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry.hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 1040 + 480 + + + + m_d.rec_cam(m_c)_to_subpoena_registry.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_subpoena_registry.hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 1408 + 368 + + + + m_d.rec_cam(m_c)_to_decision_service.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_decision_service.hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 1984 + 368 + + + + recruitment_season_combination.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.recruitment_campaign(m_c)/recruitment_season_combination.hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 672 + 368 + + + + Success all + + SUCCESS + + N + 2352 + 368 + + + + SQL main_dashboard.recruitment_campaign + + SQL + + ervu-dashboard + N + DELETE FROM main_dashboard.recruitment_campaign +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + N + N + Y + 256 + 256 + + + + Success uniq + + SUCCESS + + N + 2352 + 112 + + + + array_season_recruitments_all.hpl 2 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_com/parameters/season_separation/array_season_recruitments_all.hpl + Basic + + Y + + N + local + N + N + Y + N + 768 + 480 + + + + array_season_recruitments_all.hpl 2 2 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_com/parameters/season_separation/array_season_recruitments_all.hpl + Basic + + Y + + N + local + N + N + Y + N + 1312 + 480 + + + + array_season_recruitments_all.hpl 2 2 2 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_com/parameters/season_separation/array_season_recruitments_all.hpl + Basic + + Y + + N + local + N + N + Y + N + 1616 + 480 + + + + array_season_recruitments.hpl 2 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_com/parameters/season_separation/array_season_recruitments.hpl + Basic + + Y + + N + local + N + N + Y + N + 800 + 0 + + + + array_season_recruitments.hpl 3 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_com/parameters/season_separation/array_season_recruitments.hpl + Basic + + Y + + N + local + N + N + Y + N + 1408 + 0 + + + + array_season_recruitments.hpl 4 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_com/parameters/season_separation/array_season_recruitments.hpl + Basic + + Y + + N + local + N + N + Y + N + 1840 + 16 + + + + + + m_d.rec_cam(m_c)_to_person_registry_uniq.hpl + m_d.rec_cam(m_c)_to_subpoena_registry_uniq.hpl + N + N + Y + + + m_d.rec_cam(m_c)_to_subpoena_registry_uniq.hpl + m_d.rec_cam(m_c)_to_decision_service_uniq.hpl + N + N + Y + + + recruitment_season_combination_uniq.hpl + m_d.rec_cam(m_c)_to_person_registry_uniq.hpl + N + Y + Y + + + array_season_recruitments.hpl + recruitment_season_combination_uniq.hpl + Y + Y + Y + + + m_d.rec_cam(m_c)_to_subpoena_registry.hpl + m_d.rec_cam(m_c)_to_decision_service.hpl + N + N + Y + + + recruitment_season_combination.hpl + m_d.rec_cam(m_c)_to_person_registry.hpl + N + N + Y + + + array_season_recruitments_all.hpl + recruitment_season_combination.hpl + Y + N + Y + + + m_d.rec_cam(m_c)_to_decision_service.hpl + Success all + Y + Y + N + + + Start + SQL main_dashboard.recruitment_campaign + Y + Y + Y + + + recruitment_season_combination.hpl + m_d.rec_cam(m_c)_to_subpoena_registry.hpl + N + N + Y + + + recruitment_season_combination_uniq.hpl + m_d.rec_cam(m_c)_to_subpoena_registry_uniq.hpl + N + N + Y + + + SQL main_dashboard.recruitment_campaign + array_season_recruitments.hpl + Y + N + Y + + + SQL main_dashboard.recruitment_campaign + array_season_recruitments_all.hpl + Y + Y + Y + + + m_d.rec_cam(m_c)_to_decision_service_uniq.hpl + Success uniq + Y + Y + N + + + m_d.rec_cam(m_c)_to_person_registry.hpl + m_d.rec_cam(m_c)_to_subpoena_registry.hpl + N + Y + N + + + recruitment_season_combination.hpl + array_season_recruitments_all.hpl 2 + Y + Y + N + + + array_season_recruitments_all.hpl 2 + m_d.rec_cam(m_c)_to_person_registry.hpl + Y + Y + N + + + m_d.rec_cam(m_c)_to_person_registry.hpl + array_season_recruitments_all.hpl 2 2 + Y + Y + N + + + array_season_recruitments_all.hpl 2 2 + m_d.rec_cam(m_c)_to_subpoena_registry.hpl + Y + Y + N + + + m_d.rec_cam(m_c)_to_subpoena_registry.hpl + array_season_recruitments_all.hpl 2 2 2 + Y + Y + N + + + array_season_recruitments_all.hpl 2 2 2 + m_d.rec_cam(m_c)_to_decision_service.hpl + Y + Y + N + + + recruitment_season_combination_uniq.hpl + array_season_recruitments.hpl 2 + Y + Y + N + + + array_season_recruitments.hpl 2 + m_d.rec_cam(m_c)_to_person_registry_uniq.hpl + Y + Y + N + + + m_d.rec_cam(m_c)_to_person_registry_uniq.hpl + array_season_recruitments.hpl 3 + Y + Y + N + + + array_season_recruitments.hpl 3 + m_d.rec_cam(m_c)_to_subpoena_registry_uniq.hpl + Y + Y + N + + + m_d.rec_cam(m_c)_to_subpoena_registry_uniq.hpl + array_season_recruitments.hpl 4 + Y + Y + N + + + array_season_recruitments.hpl 4 + m_d.rec_cam(m_c)_to_decision_service_uniq.hpl + Y + Y + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 0 + 112 + особенные регионы + 123 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 0 + 400 + обычные регионы + 113 + + + + diff --git a/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_decision_service.hpl b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_decision_service.hpl new file mode 100644 index 0000000..85504aa --- /dev/null +++ b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_decision_service.hpl @@ -0,0 +1,142 @@ + + + + m_d.rec_cam(m_c)_to_decision_service + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input отчрочки из decisions + Update + Y + + + + Table input отчрочки из decisions + TableInput + + Y + + 1 + + none + + + postgres.decision-document-service + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +vse AS( + SELECT + CASE + WHEN dd.hidden is true THEN 'true' + ELSE 'false' + END AS postponement, + --COALESCE(dd.updated_at, dd.created_at) AS postponement_date, + dd.recruit_id, + dd.postponement_date, + COALESCE(r.current_recruitment, r.target_recruitment) AS recruitment_id, + ROW_NUMBER() OVER (PARTITION BY dd.recruit_id ORDER BY COALESCE(dd.updated_at, dd.created_at) DESC) AS rn + FROM recruit r + JOIN deferment_decision dd ON dd.recruit_id = r.id + JOIN deferment_decision_type ddt on ddt.id = dd.type_id AND ddt.code in ('1', '2') + WHERE COALESCE(r.current_recruitment, r.target_recruitment)::uuid IN (SELECT recruitment_id FROM ids) +), +last_status AS( + SELECT * + FROM vse + WHERE rn = 1 +) +SELECT + --COALESCE(COUNT(ls.postponement) FILTER (WHERE ls.postponement = 'true'), 0) AS postponement_have_right, + COALESCE(COUNT(ls.postponement) FILTER (WHERE ls.postponement = 'false'), 0) AS postponement_granted, + --COALESCE((COUNT(ls.postponement) FILTER (WHERE ls.postponement = 'true') * 100 / NULLIF(COUNT(ls.postponement), 0)), 0) AS postponement_have_right_percent, + --COALESCE((COUNT(ls.postponement) FILTER (WHERE ls.postponement = 'false') * 100 / NULLIF(COUNT(ls.postponement), 0)), 0) AS postponement_granted_percent, + CASE + WHEN (ls.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '6 months' + INTERVAL '14 days') + THEN 'Весна' + WHEN (ls.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '12 months') + THEN 'Осень' + END AS spring_autumn, + ls.recruitment_id, + current_date AS recording_date +FROM last_status ls +WHERE ls.recruitment_id IS NOT NULL + AND ((ls.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '12 months') or + (ls.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '6 months' + INTERVAL '14 days')) +GROUP BY spring_autumn, ls.recruitment_id + Y + + + 400 + 320 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + spring_autumn + spring_autumn + + + = + recording_date + recording_date + + main_dashboard + recruitment_campaign
+ + postponement_granted + postponement_granted + +
+ N + Y + + + 1024 + 320 + +
+ + + +
diff --git a/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_decision_service_uniq.hpl b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_decision_service_uniq.hpl new file mode 100644 index 0000000..8a4475b --- /dev/null +++ b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_decision_service_uniq.hpl @@ -0,0 +1,178 @@ + + + + m_d.rec_cam(m_c)_to_decision_service_uniq + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input отчрочки из decisions + Update + Y + + + + Table input отчрочки из decisions + TableInput + + Y + + 1 + + none + + + postgres.decision-document-service + N + 0 + WITH +ids AS ( + -- Весенние ID + SELECT unnest(string_to_array(nullif(trim(both '{}' from '${ARR_MC_SP}'), ''), ','))::uuid AS recruitment_id, + 'Весна' AS spring_autumn + UNION ALL + -- Осенние ID + SELECT unnest(string_to_array(nullif(trim(both '{}' from '${ARR_MC_AU}'), ''), ','))::uuid AS recruitment_id, + 'Осень' AS spring_autumn +), +vse AS( + SELECT + CASE + WHEN dd.hidden is true THEN 'true' + ELSE 'false' + END AS postponement, + --COALESCE(dd.updated_at, dd.created_at) AS postponement_date, + dd.recruit_id, + COALESCE(r.current_recruitment, r.target_recruitment) AS recruitment_id, + 'Весна' AS season, + dd.postponement_date, + ROW_NUMBER() OVER (PARTITION BY dd.recruit_id ORDER BY COALESCE(dd.updated_at, dd.created_at) DESC) AS rn + FROM recruit r + JOIN deferment_decision dd ON dd.recruit_id = r.id + JOIN deferment_decision_type ddt on ddt.id = dd.type_id AND ddt.code = '1' + WHERE COALESCE(r.current_recruitment, r.target_recruitment)::uuid IN (SELECT recruitment_id FROM ids WHERE spring_autumn = 'Весна') + + UNION ALL + + SELECT + CASE + WHEN dd.hidden is true THEN 'true' + ELSE 'false' + END AS postponement, + --COALESCE(dd.updated_at, dd.created_at) AS postponement_date, + dd.recruit_id, + COALESCE(r.current_recruitment, r.target_recruitment) AS recruitment_id, + 'Осень' AS season, + dd.postponement_date, + ROW_NUMBER() OVER (PARTITION BY dd.recruit_id ORDER BY COALESCE(dd.updated_at, dd.created_at) DESC) AS rn + FROM recruit r + JOIN deferment_decision dd ON dd.recruit_id = r.id + JOIN deferment_decision_type ddt on ddt.id = dd.type_id AND ddt.code = '1' + WHERE COALESCE(r.current_recruitment, r.target_recruitment)::uuid IN (SELECT recruitment_id FROM ids WHERE spring_autumn = 'Осень') +), +last_status AS( + SELECT * + FROM vse + WHERE rn = 1 +) +SELECT + --COUNT(ls.postponement) FILTER (WHERE ls.postponement = 'true') AS postponement_have_right, + COUNT(ls.postponement) FILTER (WHERE ls.postponement = 'false') AS postponement_granted, + 'Весна' AS spring_autumn, + ls.recruitment_id, + CURRENT_DATE AS recording_date +FROM last_status ls +WHERE ls.recruitment_id IS NOT NULL + AND ls.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '6 months' + INTERVAL '14 days' -- 15 июля текущего года + AND ls.season = 'Весна' +GROUP BY ls.recruitment_id + +UNION ALL + +SELECT + --COUNT(ls.postponement) FILTER (WHERE ls.postponement = 'true') AS postponement_have_right, + COUNT(ls.postponement) FILTER (WHERE ls.postponement = 'false') AS postponement_granted, + 'Осень' AS spring_autumn, + ls.recruitment_id, + CURRENT_DATE AS recording_date +FROM last_status ls +WHERE ls.recruitment_id IS NOT NULL + AND ls.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '12 months' -- 1 января следующего года + AND ls.season = 'Осень' +GROUP BY ls.recruitment_id; + Y + + + 400 + 320 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + + = + recruitment_id + recruitment_id + + + + = + spring_autumn + spring_autumn + + + + = + recording_date + recording_date + + + main_dashboard + recruitment_campaign
+ + postponement_granted + postponement_granted + +
+ N + Y + + + 1024 + 320 + +
+ + + +
diff --git a/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry.hpl b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry.hpl new file mode 100644 index 0000000..ff15055 --- /dev/null +++ b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry.hpl @@ -0,0 +1,274 @@ + + + + m_d.rec_cam(m_c)_to_person_registry + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регион/осень + Update + Y + + + + Table input (person_registry) регион/осень + TableInput + + Y + + 1 + + none + + + postgres.person_registry + N + 0 + WITH +ids AS ( + -- Преобразуем строковый массив в таблицу UUID + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id), +registered as ( + select + distinct rh.recruit_id, + 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') -- критерии от 03.06.2025 + --and rh.source is not null + ), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +recruit_data AS ( + SELECT + r.id AS r_id, + ri.recruit_id AS recruit_id, + r.gender, + r.current_recruitment_id AS recruitment_id, + -- coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + CASE + WHEN (r.birth_date BETWEEN DATE (extract(year from now())-30||'-04-02') and DATE (extract(year from now())-18||'-07-13')) + THEN 'Весна' + WHEN (r.birth_date BETWEEN DATE (extract(year from now())-30||'-10-02') and DATE (extract(year from now())-18||'-12-30')) + THEN 'Осень' + END AS spring_autumn, + r.birth_date, + ddd.hidden--, -- когда фолс отсрочка есть, когда тру или нулл - нет + --ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + -- JOIN public.recruits_history rh ON rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE r.gender = 'MALE' AND +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) and + coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND + ((r.birth_date BETWEEN DATE (extract(year from now())-30||'-04-02') and DATE (extract(year from now())-18||'-07-13')) + OR + (r.birth_date BETWEEN DATE (extract(year from now())-30||'-10-02') and DATE (extract(year from now())-18||'-12-30'))) + + UNION ALL + + SELECT + r.id AS r_id, + ri.recruit_id AS recruit_id, + r.gender, + --r.current_recruitment_id AS recruitment_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + CASE + WHEN (r.birth_date BETWEEN DATE (extract(year from now())-30||'-04-02') and DATE (extract(year from now())-18||'-07-13')) + THEN 'Весна' + WHEN (r.birth_date BETWEEN DATE (extract(year from now())-30||'-10-02') and DATE (extract(year from now())-18||'-12-30')) + THEN 'Осень' + END AS spring_autumn, + r.birth_date, + ddd.hidden--, -- когда фолс отсрочка есть, когда тру или нулл - нет + --ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE r.gender = 'MALE' AND + + 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 + -- r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND + ((r.birth_date BETWEEN DATE (extract(year from now())-30||'-04-02') and DATE (extract(year from now())-18||'-07-13')) + OR + (r.birth_date BETWEEN DATE (extract(year from now())-30||'-10-02') and DATE (extract(year from now())-18||'-12-30'))) + +), +vse as ( + SELECT + rd.hidden as postponement, + 'Весна' AS spring_autumn, + --COALESCE(dd.updated_at, dd.created_at) AS postponement_date, + r.recruit_id, + rd.postponement_date, + r.recruitment_id, + r.hidden + FROM recruit_data r + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY rd.recruit_id ORDER BY COALESCE(rd.system_update_date, rd.system_create_date) DESC) AS rn, + rd.recruit_id, + rd.hidden, + rd.postponement_date + FROM recruits_deferment rd + WHERE rd.hidden is false + AND (rd.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '6 months' + INTERVAL '14 days') + -- AND (rd.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '12 months') + ) rd on rd.recruit_id = r.recruit_id AND rd.rn = 1 + WHERE r.spring_autumn = 'Весна' + + UNION ALL + + SELECT + rd.hidden as postponement, + 'Осень' AS spring_autumn, + --COALESCE(dd.updated_at, dd.created_at) AS postponement_date, + r.recruit_id, + rd.postponement_date, + r.recruitment_id, + r.hidden + FROM recruit_data r + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY rd.recruit_id ORDER BY COALESCE(rd.system_update_date, rd.system_create_date) DESC) AS rn, + rd.recruit_id, + rd.hidden, + rd.postponement_date + FROM recruits_deferment rd + WHERE rd.hidden is false + -- AND (rs.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '6 months' + INTERVAL '14 days') + AND (rd.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '12 months') + ) rd on rd.recruit_id = r.recruit_id AND rd.rn = 1 + WHERE r.spring_autumn = 'Осень' +) +SELECT + r.recruitment_id, + r.spring_autumn, + current_date as recording_date, + COUNT(r.recruit_id) FILTER (WHERE r.hidden IS NOT true) AS recruit, + COUNT(r.recruit_id) FILTER (WHERE r.postponement IS NOT null) AS postponement_have_right +FROM vse r +GROUP BY recruitment_id, spring_autumn + Y + + + 464 + 320 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + spring_autumn + spring_autumn + + + = + recording_date + recording_date + + main_dashboard + recruitment_campaign
+ + new_recruits + recruit + + + postponement_have_right + postponement_have_right + +
+ N + Y + + + 1056 + 320 + +
+ + + +
diff --git a/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry_postponement.hpl b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry_postponement.hpl new file mode 100644 index 0000000..7452855 --- /dev/null +++ b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry_postponement.hpl @@ -0,0 +1,137 @@ + + + + m_d.rec_cam(m_c)_to_person_registry_postponement + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регион/осень + Update + Y + + + + Table input (person_registry) регион/осень + TableInput + + Y + + 1 + + none + + + postgres.person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +vse AS( + SELECT + CASE + WHEN dd.hidden is true THEN 'true' + ELSE 'false' + END AS postponement, + --COALESCE(dd.updated_at, dd.created_at) AS postponement_date, + dd.recruit_id, + dd.postponement_date, + COALESCE(r.current_recruitment_id, r.target_recruitment_id) AS recruitment_id, + ROW_NUMBER() OVER (PARTITION BY dd.recruit_id ORDER BY COALESCE(dd.system_update_date, dd.system_create_date) DESC) AS rn + FROM recruits r + JOIN recruits_deferment dd ON dd.recruit_id = r.id + WHERE COALESCE(r.current_recruitment_id, r.target_recruitment_id)::uuid IN (SELECT recruitment_id FROM ids) +), +last_status AS( + SELECT * + FROM vse + WHERE rn = 1 +) +SELECT + COALESCE(COUNT(ls.postponement) FILTER (WHERE ls.postponement = 'false'), 0) AS postponement_have_right, + CASE + WHEN (ls.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '6 months' + INTERVAL '14 days') + THEN 'Весна' + WHEN (ls.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '12 months') + THEN 'Осень' + END AS spring_autumn, + ls.recruitment_id, + current_date AS recording_date +FROM last_status ls +WHERE ls.recruitment_id IS NOT NULL + AND ls.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '12 months' +GROUP BY spring_autumn, ls.recruitment_id + Y + + + 464 + 320 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + spring_autumn + spring_autumn + + + = + recording_date + recording_date + + main_dashboard + recruitment_campaign
+ + postponement_have_right + postponement_have_right + +
+ N + Y + + + 1056 + 320 + +
+ + + +
diff --git a/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry_postponement_uniq.hpl b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry_postponement_uniq.hpl new file mode 100644 index 0000000..d12b342 --- /dev/null +++ b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry_postponement_uniq.hpl @@ -0,0 +1,170 @@ + + + + m_d.rec_cam(m_c)_to_person_registry_postponement_uniq + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регион/осень + Update + Y + + + + Table input (person_registry) регион/осень + TableInput + + Y + + 1 + + none + + + postgres.person_registry + N + 0 + WITH +ids AS ( + -- Весенние ID + SELECT unnest(string_to_array(nullif(trim(both '{}' from '${ARR_MC_SP}'), ''), ','))::uuid AS recruitment_id, + 'Весна' AS spring_autumn + UNION ALL + -- Осенние ID + SELECT unnest(string_to_array(nullif(trim(both '{}' from '${ARR_MC_AU}'), ''), ','))::uuid AS recruitment_id, + 'Осень' AS spring_autumn +), +vse AS( + SELECT + CASE + WHEN dd.hidden is true THEN 'true' + ELSE 'false' + END AS postponement, + --COALESCE(dd.updated_at, dd.created_at) AS postponement_date, + dd.recruit_id, + dd.postponement_date, + COALESCE(r.current_recruitment_id, r.target_recruitment_id) AS recruitment_id, + ROW_NUMBER() OVER (PARTITION BY dd.recruit_id ORDER BY COALESCE(dd.system_update_date, dd.system_create_date) DESC) AS rn + FROM recruits r + JOIN recruits_deferment dd ON dd.recruit_id = r.id + WHERE COALESCE(r.current_recruitment_id, r.target_recruitment_id)::uuid IN (SELECT recruitment_id FROM ids WHERE spring_autumn = 'Весна') + + UNION ALL + + SELECT + CASE + WHEN dd.hidden is true THEN 'true' + ELSE 'false' + END AS postponement, + --COALESCE(dd.updated_at, dd.created_at) AS postponement_date, + dd.recruit_id, + dd.postponement_date, + COALESCE(r.current_recruitment_id, r.target_recruitment_id) AS recruitment_id, + ROW_NUMBER() OVER (PARTITION BY dd.recruit_id ORDER BY COALESCE(dd.system_update_date, dd.system_create_date) DESC) AS rn + FROM recruits r + JOIN recruits_deferment dd ON dd.recruit_id = r.id + WHERE COALESCE(r.current_recruitment_id, r.target_recruitment_id)::uuid IN (SELECT recruitment_id FROM ids WHERE spring_autumn = 'Осень') +), +last_status AS( + SELECT * + FROM vse + WHERE rn = 1 +) +SELECT + COUNT(ls.postponement) FILTER (WHERE ls.postponement = 'true') AS postponement_have_right, + --COUNT(ls.postponement) FILTER (WHERE ls.postponement = 'false') AS postponement_granted, + 'Весна' AS spring_autumn, + ls.recruitment_id, + CURRENT_DATE AS recording_date +FROM last_status ls +WHERE ls.recruitment_id IS NOT NULL + AND ls.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '6 months' + INTERVAL '14 days' -- 15 июля текущего года + AND ls.season = 'Весна' +GROUP BY ls.recruitment_id + +UNION ALL + +SELECT + COUNT(ls.postponement) FILTER (WHERE ls.postponement = 'true') AS postponement_have_right, + --COUNT(ls.postponement) FILTER (WHERE ls.postponement = 'false') AS postponement_granted, + 'Осень' AS spring_autumn, + ls.recruitment_id, + CURRENT_DATE AS recording_date +FROM last_status ls +WHERE ls.recruitment_id IS NOT NULL + AND ls.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '12 months' -- 1 января следующего года + AND ls.season = 'Осень' +GROUP BY ls.recruitment_id; + Y + + + 464 + 320 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + N + + + = + recruitment_id + recruitment_id + + + = + spring_autumn + spring_autumn + + + = + recording_date + recording_date + + main_dashboard + recruitment_campaign
+ + postponement_have_right + postponement_have_right + +
+ N + N + + + 1024 + 320 + +
+ + + +
diff --git a/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry_uniq.hpl b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry_uniq.hpl new file mode 100644 index 0000000..dd44b39 --- /dev/null +++ b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_person_registry_uniq.hpl @@ -0,0 +1,342 @@ + + + + m_d.rec_cam(m_c)_to_person_registry_uniq + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регион/осень + Update + Y + + + + Table input (person_registry) регион/осень + TableInput + + Y + + 1 + + none + + + postgres.person_registry + N + 0 + WITH +ids AS ( + -- Весенние ID + SELECT unnest(string_to_array(nullif(trim(both '{}' from '${ARR_MC_SP}'), ''), ','))::uuid AS recruitment_id, + 'Весна' AS spring_autumn + UNION ALL + -- Осенние ID + SELECT unnest(string_to_array(nullif(trim(both '{}' from '${ARR_MC_AU}'), ''), ','))::uuid AS recruitment_id, + 'Осень' AS spring_autumn +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id), +registered as ( + select + distinct rh.recruit_id, + 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') -- критерии от 03.06.2025 + --and rh.source is not null + ), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +recruit_data AS ( + SELECT + r.id AS r_id, + ri.recruit_id AS recruit_id, + r.gender, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + 'Весна' AS spring_autumn, + r.birth_date, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history rh ON rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE r.gender = 'MALE' AND +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) and + coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids WHERE spring_autumn = 'Весна') +*/ + r.current_recruitment_id ::uuid IN (SELECT recruitment_id FROM ids WHERE spring_autumn = 'Весна') + AND (r.birth_date BETWEEN DATE (extract(year from now())-30||'-04-02') and DATE (extract(year from now())-18||'-07-13')) + + + UNION ALL + + SELECT + r.id AS r_id, + ri.recruit_id AS recruit_id, + r.gender, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + 'Осень' AS spring_autumn, + r.birth_date, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history rh ON rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE r.gender = 'MALE' AND +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) and + coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids WHERE spring_autumn = 'Осень') +*/ + r.current_recruitment_id ::uuid IN (SELECT recruitment_id FROM ids WHERE spring_autumn = 'Осень') + AND (r.birth_date BETWEEN DATE (extract(year from now())-30||'-10-02') and DATE (extract(year from now())-18||'-12-30')) + + UNION ALL + + SELECT + r.id AS r_id, + ri.recruit_id AS recruit_id, + r.gender, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + --r.current_recruitment_id AS recruitment_id, + 'Весна' AS spring_autumn, + r.birth_date, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE r.gender = 'MALE' AND +--/* + 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 WHERE spring_autumn = 'Весна') +--*/ + --AND r.current_recruitment_id ::uuid IN (SELECT recruitment_id FROM ids WHERE spring_autumn = 'Весна') + AND (r.birth_date BETWEEN DATE (extract(year from now())-30||'-04-02') and DATE (extract(year from now())-18||'-07-13')) + AND r.current_recruitment_id is null + + UNION ALL + + SELECT + r.id AS r_id, + ri.recruit_id AS recruit_id, + r.gender, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + --r.current_recruitment_id AS recruitment_id, + 'Осень' AS spring_autumn, + r.birth_date, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE r.gender = 'MALE' AND +--/* + 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 WHERE spring_autumn = 'Осень') +--*/ + --AND r.current_recruitment_id ::uuid IN (SELECT recruitment_id FROM ids WHERE spring_autumn = 'Осень') + AND (r.birth_date BETWEEN DATE (extract(year from now())-30||'-10-02') and DATE (extract(year from now())-18||'-12-30')) + AND r.current_recruitment_id is null + +), +vse as ( + SELECT + rd.hidden as postponement, + 'Весна' AS spring_autumn, + --COALESCE(dd.updated_at, dd.created_at) AS postponement_date, + r.recruit_id, + rd.postponement_date, + r.recruitment_id, + r.hidden + FROM recruit_data r + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY rd.recruit_id ORDER BY COALESCE(rd.system_update_date, rd.system_create_date) DESC) AS rn, + rd.recruit_id, + rd.hidden, + rd.postponement_date + FROM recruits_deferment rd + WHERE rd.hidden is false + AND (rd.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '6 months' + INTERVAL '14 days') + -- AND (rd.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '12 months') + ) rd on rd.recruit_id = r.recruit_id AND rd.rn = 1 + WHERE r.spring_autumn = 'Весна' + + UNION ALL + + SELECT + rd.hidden as postponement, + 'Осень' AS spring_autumn, + --COALESCE(dd.updated_at, dd.created_at) AS postponement_date, + r.recruit_id, + rd.postponement_date, + r.recruitment_id, + r.hidden + FROM recruit_data r + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY rd.recruit_id ORDER BY COALESCE(rd.system_update_date, rd.system_create_date) DESC) AS rn, + rd.recruit_id, + rd.hidden, + rd.postponement_date + FROM recruits_deferment rd + WHERE rd.hidden is false + -- AND (rs.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '6 months' + INTERVAL '14 days') + AND (rd.postponement_date > DATE_TRUNC('year', CURRENT_DATE) + INTERVAL '12 months') + ) rd on rd.recruit_id = r.recruit_id AND rd.rn = 1 + WHERE r.spring_autumn = 'Осень' +) +SELECT + r.recruitment_id, + r.spring_autumn, + current_date as recording_date, + COUNT(r.recruit_id) FILTER (WHERE r.hidden IS NOT true) AS recruit, + COUNT(r.recruit_id) FILTER (WHERE r.postponement IS NOT null) AS postponement_have_right +FROM vse r +GROUP BY recruitment_id, spring_autumn + Y + + + 464 + 320 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + N + + + = + recruitment_id + recruitment_id + + + = + spring_autumn + spring_autumn + + + = + recording_date + recording_date + + main_dashboard + recruitment_campaign
+ + new_recruits + recruit + + + postponement_have_right + postponement_have_right + +
+ N + N + + + 1024 + 320 + +
+ + + +
diff --git a/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_subpoena_registry.hpl b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_subpoena_registry.hpl new file mode 100644 index 0000000..fd1ff82 --- /dev/null +++ b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_subpoena_registry.hpl @@ -0,0 +1,272 @@ + + + + m_d.rec_cam(m_c)_to_subpoena_registry + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (subpoena) регион/осень + Update + Y + + + + Table input (subpoena) регион/осень + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +subpoena_data AS ( + SELECT + s.id AS subpoena_id, + s.create_date, + s.visit_date, + s.department_id::uuid AS recruitment_id, + s.status_id, + ssh.code AS sub_stat_hist, + s.send_date, + sh.date_time::timestamp AS history_date, + rdi.restriction_document_cancel_id AS restr_dc, + rdi.applied_date AS ap_date, + rdi.id AS rdi_id, + ssi.delivery_code AS d_code, + ssi.act_number, +sh.rn, +rd.rn_d, +--rdi.rn_di, +ssi.rn_si + FROM subpoena s + JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY date_time DESC) AS rn, + subpoena_id, + status_id, + date_time + FROM subpoena_history sh + ) sh on sh.subpoena_id = s.id + JOIN subpoena_status AS ssh ON ssh.id = sh.status_id + JOIN subpoena_reason AS sr ON sr.id = s.reason_id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY created_at DESC) AS rn_d, + subpoena_id, + id + FROM restriction_document + ) AS rd ON rd.subpoena_id = s.id + LEFT JOIN ( + SELECT + restriction_document_create_id, + restriction_document_cancel_id, + applied_date, + id + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY restriction_document_create_id ORDER BY created_at DESC) AS rn_di, + * + FROM restriction_document_item + ) sub + WHERE rn_di = 1 + ) AS rdi ON rdi.restriction_document_create_id = rd.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY send_date DESC) AS rn_si, + subpoena_id, + delivery_code, + act_number + FROM subpoena_send_info + ) AS ssi ON ssi.subpoena_id = s.id + WHERE --sh.rn = 1 AND rd.rn_d = 1 /*AND rdi.rn_di = 1*/ --AND ssi.rn_si = 1 + --AND +sr.type = '3' + AND ssh.code NOT IN ('3.7','3.72', '3.71') -- 3.14 снесено от 14.03.2025 + AND s.department_id::uuid IN (SELECT recruitment_id FROM ids) + AND EXISTS ( + SELECT 1 + FROM subpoena_history sh2 + WHERE sh2.subpoena_id = s.id + AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') + ) +), +season_separations AS ( + SELECT DISTINCT + ls.recruitment_id, + ls.create_date, + ls.visit_date, + ls.sub_stat_hist, + ls.subpoena_id, + ls.history_date, + ls.send_date, + ls.restr_dc, + ls.ap_date, + ls.d_code, + ls.act_number, + ls.rdi_id, +ls.rn, +ls.rn_d, +--rdi.rn_di, +ls.rn_si, + CASE + WHEN (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '3 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '6 months' + INTERVAL '15 days') + THEN 'Весна' + WHEN (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '9 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '12 months' + INTERVAL '31 days') + THEN 'Осень' + END AS spring_autumn + FROM subpoena_data ls + WHERE --ls.create_date >= DATE_TRUNC('year', CURRENT_DATE) + ((ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '3 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '6 months' + INTERVAL '15 days') + or + (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '9 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '12 months' + INTERVAL '31 days')) +), +season_separations_clean AS ( + SELECT DISTINCT recruitment_id, spring_autumn FROM season_separations +), +t1 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT subpoena_id) AS count_subpoena + FROM season_separations ss + WHERE sub_stat_hist IS NOT NULL and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t2 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT subpoena_id) AS count_appeared + FROM season_separations ss + WHERE sub_stat_hist IN ('4.1', '4.2') and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t3 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT subpoena_id) AS count_not_appeared + FROM season_separations ss + WHERE sub_stat_hist = '5' and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +) +SELECT + current_date AS recording_date, + COALESCE(t1.count_subpoena, 0) AS count_subpoena, + COALESCE(t2.count_appeared, 0) AS count_appeared, + COALESCE(t3.count_not_appeared, 0) AS count_not_appeared, + COALESCE(ROUND(COALESCE(t2.count_appeared, 0) * 100.0 / NULLIF(COALESCE(t1.count_subpoena, 0), 0), 2), 0) AS appeared_on_subpoenas_percent, + COALESCE(ROUND(COALESCE(t3.count_not_appeared, 0) * 100.0 / NULLIF(COALESCE(t1.count_subpoena, 0), 0), 2), 0) AS not_appeared_on_subpoenas_percent, + 0 AS new_recruits, + 0 AS postponement_have_right, + 0 AS postponement_granted, + 0 AS postponement_have_right_percent, + 0 AS postponement_granted_percent, + ss.spring_autumn, + ss.recruitment_id +FROM season_separations_clean ss +LEFT JOIN t1 ON ss.recruitment_id = t1.recruitment_id AND ss.spring_autumn = t1.spring_autumn +LEFT JOIN t2 ON ss.recruitment_id = t2.recruitment_id AND ss.spring_autumn = t2.spring_autumn +LEFT JOIN t3 ON ss.recruitment_id = t3.recruitment_id AND ss.spring_autumn = t3.spring_autumn + Y + + + 288 + 320 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + spring_autumn + spring_autumn + + + = + recording_date + recording_date + + main_dashboard + recruitment_campaign
+ + subpoenas_sent + count_subpoena + + + appeared_on_subpoenas + count_appeared + + + not_appeared_on_subpoenas + count_not_appeared + + + appeared_on_subpoenas_percent + appeared_on_subpoenas_percent + + + not_appeared_on_subpoenas_percent + not_appeared_on_subpoenas_percent + +
+ N + Y + + + 928 + 320 + +
+ + + +
diff --git a/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_subpoena_registry_uniq.hpl b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_subpoena_registry_uniq.hpl new file mode 100644 index 0000000..28fed23 --- /dev/null +++ b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/m_d.rec_cam(m_c)_to_subpoena_registry_uniq.hpl @@ -0,0 +1,369 @@ + + + + m_d.rec_cam(m_c)_to_subpoena_registry_uniq + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (subpoena) регион/осень + Update + Y + + + + Table input (subpoena) регион/осень + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + 0 + WITH +ids AS ( + -- Весенние ID + SELECT unnest(string_to_array(nullif(trim(both '{}' from '${ARR_MC_SP}'), ''), ','))::uuid AS recruitment_id, + 'Весна' AS spring_autumn + UNION ALL + -- Осенние ID + SELECT unnest(string_to_array(nullif(trim(both '{}' from '${ARR_MC_AU}'), ''), ','))::uuid AS recruitment_id, + 'Осень' AS spring_autumn +), +subpoena_data AS ( + SELECT + s.id AS subpoena_id, + s.create_date, + s.visit_date, + s.department_id::uuid AS recruitment_id, + s.status_id, + ssh.code AS sub_stat_hist, + s.send_date, + sh.date_time::timestamp AS history_date, + rdi.restriction_document_cancel_id AS restr_dc, + rdi.applied_date AS ap_date, + rdi.id AS rdi_id, + ssi.delivery_code AS d_code, + ssi.act_number, + 'Весна' AS season, +sh.rn, +rd.rn_d, +--rdi.rn_di, +ssi.rn_si + FROM subpoena s + JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY date_time DESC) AS rn, + subpoena_id, + status_id, + date_time + FROM subpoena_history sh + ) sh on sh.subpoena_id = s.id + JOIN subpoena_status AS ssh ON ssh.id = sh.status_id + JOIN subpoena_reason AS sr ON sr.id = s.reason_id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY created_at DESC) AS rn_d, + subpoena_id, + id + FROM restriction_document + ) AS rd ON rd.subpoena_id = s.id + LEFT JOIN ( + SELECT + restriction_document_create_id, + restriction_document_cancel_id, + applied_date, + id + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY restriction_document_create_id ORDER BY created_at DESC) AS rn_di, + * + FROM restriction_document_item + ) sub + WHERE rn_di = 1 + ) AS rdi ON rdi.restriction_document_create_id = rd.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY send_date DESC) AS rn_si, + subpoena_id, + delivery_code, + act_number + FROM subpoena_send_info + ) AS ssi ON ssi.subpoena_id = s.id + WHERE --sh.rn = 1 AND rd.rn_d = 1 /*AND rdi.rn_di = 1*/ --AND ssi.rn_si = 1 + --AND +sr.type = '3' + AND ssh.code NOT IN ('3.7','3.72', '3.71') -- 3.14 снесено от 14.03.2025 + AND s.department_id::uuid IN (SELECT recruitment_id FROM ids WHERE spring_autumn = 'Весна') + AND EXISTS ( + SELECT 1 + FROM subpoena_history sh2 + WHERE sh2.subpoena_id = s.id + AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') + ) + UNION ALL + SELECT + s.id AS subpoena_id, + s.create_date, + s.visit_date, + s.department_id::uuid AS recruitment_id, + s.status_id, + ssh.code AS sub_stat_hist, + s.send_date, + sh.date_time::timestamp AS history_date, + rdi.restriction_document_cancel_id AS restr_dc, + rdi.applied_date AS ap_date, + rdi.id AS rdi_id, + ssi.delivery_code AS d_code, + ssi.act_number, + 'Осень' AS season, +sh.rn, +rd.rn_d, +--rdi.rn_di, +ssi.rn_si + FROM subpoena s + JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY date_time DESC) AS rn, + subpoena_id, + status_id, + date_time + FROM subpoena_history sh + ) sh on sh.subpoena_id = s.id + JOIN subpoena_status AS ssh ON ssh.id = sh.status_id + JOIN subpoena_reason AS sr ON sr.id = s.reason_id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY created_at DESC) AS rn_d, + subpoena_id, + id + FROM restriction_document + ) AS rd ON rd.subpoena_id = s.id + LEFT JOIN ( + SELECT + restriction_document_create_id, + restriction_document_cancel_id, + applied_date, + id + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY restriction_document_create_id ORDER BY created_at DESC) AS rn_di, + * + FROM restriction_document_item + ) sub + WHERE rn_di = 1 + ) AS rdi ON rdi.restriction_document_create_id = rd.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY send_date DESC) AS rn_si, + subpoena_id, + delivery_code, + act_number + FROM subpoena_send_info + ) AS ssi ON ssi.subpoena_id = s.id + WHERE --sh.rn = 1 AND rd.rn_d = 1 /*AND rdi.rn_di = 1 AND*/ --ssi.rn_si = 1 + --AND +sr.type = '3' + AND ssh.code NOT IN ('3.7','3.72', '3.71') -- 3.14 снесено от 14.03.2025 + AND s.department_id::uuid IN (SELECT recruitment_id FROM ids WHERE spring_autumn = 'Осень') + AND EXISTS ( + SELECT 1 + FROM subpoena_history sh2 + WHERE sh2.subpoena_id = s.id + AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') + ) +), +season_separations AS ( + SELECT DISTINCT + ls.recruitment_id, + ls.create_date, + ls.visit_date, + ls.sub_stat_hist, + ls.subpoena_id, + ls.history_date, + ls.send_date, + ls.restr_dc, + ls.ap_date, + ls.d_code, + ls.act_number, + ls.rdi_id, + ls.season AS spring_autumn, +ls.rn, +ls.rn_d, +--rdi.rn_di, +ls.rn_si + FROM subpoena_data ls + WHERE (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '4 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '7 months' + INTERVAL '14 days') + AND ls.season = 'Весна' + + --WHERE ls.create_date >= DATE_TRUNC('year', CURRENT_DATE) + + UNION ALL + + SELECT DISTINCT + ls.recruitment_id, + ls.create_date, + ls.visit_date, + ls.sub_stat_hist, + ls.subpoena_id, + ls.history_date, + ls.send_date, + ls.restr_dc, + ls.ap_date, + ls.d_code, + ls.act_number, + ls.rdi_id, + ls.season AS spring_autumn, +ls.rn, +ls.rn_d, +--rdi.rn_di, +ls.rn_si + FROM subpoena_data ls + WHERE (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '10 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '12 months' + INTERVAL '30 days') + AND ls.season = 'Осень' + + --WHERE ls.create_date >= DATE_TRUNC('year', CURRENT_DATE) +), +season_separations_clean AS ( + SELECT DISTINCT recruitment_id, spring_autumn FROM season_separations +), +t1 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT subpoena_id) AS count_subpoena + FROM season_separations ss + WHERE sub_stat_hist IS NOT NULL and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t2 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT subpoena_id) AS count_appeared + FROM season_separations ss + WHERE sub_stat_hist IN ('4.1', '4.2') and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t3 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT subpoena_id) AS count_not_appeared + FROM season_separations ss + WHERE sub_stat_hist = '5' and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +) +SELECT + current_date AS recording_date, + COALESCE(t1.count_subpoena, 0) AS count_subpoena, + COALESCE(t2.count_appeared, 0) AS count_appeared, + COALESCE(t3.count_not_appeared, 0) AS count_not_appeared, + COALESCE(ROUND(COALESCE(t2.count_appeared, 0) * 100.0 / NULLIF(COALESCE(t1.count_subpoena, 0), 0), 2), 0) AS appeared_on_subpoenas_percent, + COALESCE(ROUND(COALESCE(t3.count_not_appeared, 0) * 100.0 / NULLIF(COALESCE(t1.count_subpoena, 0), 0), 2), 0) AS not_appeared_on_subpoenas_percent, + 0 AS new_recruits, + 0 AS postponement_have_right, + 0 AS postponement_granted, + 0 AS postponement_have_right_percent, + 0 AS postponement_granted_percent, + ss.spring_autumn, + ss.recruitment_id +FROM season_separations_clean ss +LEFT JOIN t1 ON ss.recruitment_id = t1.recruitment_id AND ss.spring_autumn = t1.spring_autumn +LEFT JOIN t2 ON ss.recruitment_id = t2.recruitment_id AND ss.spring_autumn = t2.spring_autumn +LEFT JOIN t3 ON ss.recruitment_id = t3.recruitment_id AND ss.spring_autumn = t3.spring_autumn; + Y + + + 656 + 336 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + spring_autumn + spring_autumn + + + = + recording_date + recording_date + + main_dashboard + recruitment_campaign
+ + subpoenas_sent + count_subpoena + + + appeared_on_subpoenas + count_appeared + + + not_appeared_on_subpoenas + count_not_appeared + + + appeared_on_subpoenas_percent + appeared_on_subpoenas_percent + + + not_appeared_on_subpoenas_percent + not_appeared_on_subpoenas_percent + +
+ N + Y + + + 1056 + 336 + +
+ + + +
diff --git a/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/postponement_percents.hpl b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/postponement_percents.hpl new file mode 100644 index 0000000..c2efea3 --- /dev/null +++ b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/postponement_percents.hpl @@ -0,0 +1,112 @@ + + + + postponement_percents + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/03/21 14:21:43.089 + - + 2025/03/21 14:21:43.089 + + + + + + Table input + Update + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + current_date AS recording_date, + spring_autumn, + recruitment_id, + ROUND(COALESCE(SUM(postponement_have_right) * 100 / NULLIF(SUM(new_recruits), 0), 0), 1) AS postponement_have_right_percent, + ROUND(COALESCE(SUM(postponement_granted) * 100 / NULLIF(SUM(new_recruits), 0), 0), 1) AS postponement_granted_percent +FROM main_dashboard.recruitment_campaign +WHERE recording_date = current_date + AND schema = 'empty' +GROUP BY recruitment_id, spring_autumn; + N + + + 480 + 256 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + spring_autumn + spring_autumn + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + main_dashboard + recruitment_campaign
+ + postponement_have_right_percent + postponement_have_right_percent + + + postponement_granted_percent + postponement_granted_percent + +
+ N + Y + + + 800 + 256 + +
+ + + +
diff --git a/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/recruitment_season_combination.hpl b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/recruitment_season_combination.hpl new file mode 100644 index 0000000..9d5387b --- /dev/null +++ b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/recruitment_season_combination.hpl @@ -0,0 +1,126 @@ + + + + recruitment_season_combination + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/03/20 14:06:15.043 + - + 2025/03/20 14:06:15.043 + + + + + + Table input (person_registry) регион/осень + Insert / update (main_dashboard.recruitment_campaign) + Y + + + + Insert / update (main_dashboard.recruitment_campaign) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + + = + recording_date + recording_date + + + + = + spring_autumn + spring_autumn + + + main_dashboard + recruitment_campaign
+ + recruitment_id + recruitment_id + N + + + spring_autumn + spring_autumn + N + + + recording_date + recording_date + N + +
+ N + + + 1168 + 304 + +
+ + Table input (person_registry) регион/осень + TableInput + + Y + + 1 + + none + + + postgres.person_registry + N + 0 + WITH +ids AS ( + -- Преобразуем строковый массив в таблицу UUID + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +season_separations AS ( + SELECT 'Весна' AS spring_autumn + UNION ALL + SELECT 'Осень' AS spring_autumn +) +SELECT + current_date AS recording_date, + i.recruitment_id AS recruitment_id, + ss.spring_autumn +FROM ids i +CROSS JOIN season_separations ss + Y + + + 624 + 304 + + + + + +
diff --git a/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/recruitment_season_combination_uniq.hpl b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/recruitment_season_combination_uniq.hpl new file mode 100644 index 0000000..9d87a89 --- /dev/null +++ b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/recruitment_season_combination_uniq.hpl @@ -0,0 +1,124 @@ + + + + recruitment_season_combination_uniq + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/03/20 14:06:15.043 + - + 2025/03/20 14:06:15.043 + + + + + + Table input (person_registry) регион/осень + Insert / update (main_dashboard.recruitment_campaign) + Y + + + + Insert / update (main_dashboard.recruitment_campaign) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + + = + recording_date + recording_date + + + + = + spring_autumn + spring_autumn + + + main_dashboard + recruitment_campaign
+ + recruitment_id + recruitment_id + N + + + spring_autumn + spring_autumn + N + + + recording_date + recording_date + N + +
+ N + + + 1056 + 320 + +
+ + Table input (person_registry) регион/осень + TableInput + + Y + + 1 + + none + + + postgres.person_registry + N + 0 + WITH ids AS ( + -- Весенние ID + SELECT unnest(string_to_array(nullif(trim(both '{}' from '${ARR_MC_SP}'), ''), ','))::uuid AS recruitment_id, + 'Весна' AS spring_autumn + UNION ALL + -- Осенние ID + SELECT unnest(string_to_array(nullif(trim(both '{}' from '${ARR_MC_AU}'), ''), ','))::uuid AS recruitment_id, + 'Осень' AS spring_autumn +) +SELECT + current_date AS recording_date, + i.recruitment_id AS recruitment_id, + i.spring_autumn +FROM ids i; + Y + + + 512 + 320 + + + + + +
diff --git a/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered(m_c).hpl b/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered(m_c).hpl new file mode 100644 index 0000000..2667286 --- /dev/null +++ b/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered(m_c).hpl @@ -0,0 +1,436 @@ + + + + main_dashboard.total_registered(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 2 2 + Select values 2 2 + N + + + Select values 2 2 + Insert / update (main_dashboard.total_registered) 2 + N + + + Table input (person_registry) регион + Get variables 2 2 + N + + + Table input (person_registry) регион + Insert / update (main_dashboard.total_registered) 2 + Y + + + + Get variables 2 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REC_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 704 + 480 + + + + Insert / update (main_dashboard.total_registered) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + convicts + convicts + + main_dashboard + total_registered
+ + total_registered + total_count + Y + + + "total_registered_M" + male_count + Y + + + "total_registered_W" + female_count + Y + + + mobilization_criterion + mobilization_criterion + Y + + + volunteer_criterion + volunteer_criterion + Y + + + contract_criterion + contract_criterion + Y + + + mobilization_criterion_percent + mobilization_criterion_percent + Y + + + volunteer_criterion_percent + volunteer_criterion_percent + Y + + + contract_criterion_percent + contract_criterion_percent + Y + + + recruitment_id + recruitment_id + N + + + convicts + convicts + N + +
+ N + + + 1168 + 320 + +
+ + Select values 2 2 + SelectValues + + Y + + 1 + + none + + + + N + + REC_ID + REC_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 912 + 480 + + + + Table input (person_registry) регион + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id), +registered as ( + select + distinct rh.recruit_id, + 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') -- критерии от 03.06.2025 + --and rh.source is not null + ), +*/ +vse AS ( + SELECT + --distinct + r.id AS r_id, + ri.recruit_id AS recruit_id, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS r_current_recruitment_id, + r.current_recruitment_id AS r_current_recruitment_id, + 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, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) and + coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ +), +extracted_children AS ( + SELECT + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' +), +children_birth_dates AS ( + SELECT + recruit_id, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year + FROM extracted_children +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) AS children_under_16 + FROM children_birth_dates + WHERE AGE(make_date(year, month, day)) < interval '16 years' + GROUP BY recruit_id +), +recruit_data AS ( + SELECT + ri.r_current_recruitment_id::uuid AS recruitment_id, + ri.convicts, + COUNT(distinct ri.recruit_id) AS total_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'MALE') AS male_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'FEMALE') AS female_count, + COUNT(distinct ri.recruit_id) FILTER ( + 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(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 + AND gender = 'MALE' + AND hidden IS true -- нет отсрочки и нет освобождения от службы + ) AS volunteer_criterion, -- критерии от 03.06.2025 + + COUNT(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 + AND gender = 'MALE' + 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 +), +recruit_data_all AS ( + SELECT + recruitment_id, + 'ALL' AS convicts, + SUM(total_count) AS total_count, + SUM(male_count) AS male_count, + SUM(female_count) AS female_count, + SUM(mobilization_criterion) AS mobilization_criterion, + SUM(volunteer_criterion) AS volunteer_criterion, + SUM(contract_criterion) AS contract_criterion + FROM recruit_data + GROUP BY recruitment_id +) +SELECT + ids.recruitment_id, + rd.convicts, + current_date AS recording_date, + COALESCE(rd.total_count, 0) AS total_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM ids +JOIN recruit_data AS rd ON ids.recruitment_id = rd.recruitment_id + +UNION ALL + +SELECT + ids.recruitment_id, + rd.convicts, + current_date AS recording_date, + COALESCE(rd.total_count, 0) AS total_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM ids +JOIN recruit_data_all AS rd ON ids.recruitment_id = rd.recruitment_id + Y + + + 496 + 320 + + + + + +
diff --git a/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered(m_c).hwf b/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered(m_c).hwf new file mode 100644 index 0000000..2f9cedc --- /dev/null +++ b/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered(m_c).hwf @@ -0,0 +1,309 @@ + + + main_dashboard.total_registered(m_c) + Y + + + + - + 2025/03/31 14:43:03.816 + - + 2025/03/31 14:43:03.816 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + Y + 544 + 304 + + + + main_dashboard.total_registered_pr1(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr1(m_c).hpl + Basic + + + ARR_PR_1 + PART_RECRUITMENT_1 + + Y + + Y + local + N + N + Y + N + 1120 + 144 + + + + main_dashboard.total_registered_pr2(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr2(m_c).hpl + Basic + + + ARR_PR_2 + PART_RECRUITMENT_2 + + Y + + Y + local + N + N + Y + N + 1120 + 224 + + + + main_dashboard.total_registered_pr3(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr3(m_c).hpl + Basic + + + ARR_PR_3 + PART_RECRUITMENT_3 + + Y + + Y + local + N + N + Y + N + 1120 + 304 + + + + main_dashboard.total_registered_pr4(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr4(m_c).hpl + Basic + + + ARR_PR_4 + PART_RECRUITMENT_4 + + Y + + Y + local + N + N + Y + N + 1120 + 384 + + + + main_dashboard.total_registered_pr5(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr5(m_c).hpl + Basic + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 1120 + 464 + + + + Success + + SUCCESS + + N + 1392 + 144 + + + + Success 2 + + SUCCESS + + N + 1392 + 224 + + + + Success 3 + + SUCCESS + + N + 1392 + 304 + + + + Success 4 + + SUCCESS + + N + 1392 + 384 + + + + Success 5 + + SUCCESS + + N + 1392 + 464 + + + + + + Start + main_dashboard.total_registered_pr1(m_c).hpl + Y + Y + Y + + + Start + main_dashboard.total_registered_pr2(m_c).hpl + Y + Y + Y + + + Start + main_dashboard.total_registered_pr3(m_c).hpl + Y + Y + Y + + + Start + main_dashboard.total_registered_pr4(m_c).hpl + Y + Y + Y + + + Start + main_dashboard.total_registered_pr5(m_c).hpl + Y + Y + Y + + + main_dashboard.total_registered_pr1(m_c).hpl + Success + Y + Y + N + + + main_dashboard.total_registered_pr2(m_c).hpl + Success 2 + Y + Y + N + + + main_dashboard.total_registered_pr3(m_c).hpl + Success 3 + Y + Y + N + + + main_dashboard.total_registered_pr4(m_c).hpl + Success 4 + Y + Y + N + + + main_dashboard.total_registered_pr5(m_c).hpl + Success 5 + Y + Y + N + + + + + + diff --git a/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr1(m_c).hpl b/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr1(m_c).hpl new file mode 100644 index 0000000..f75f382 --- /dev/null +++ b/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr1(m_c).hpl @@ -0,0 +1,334 @@ + + + + main_dashboard.total_registered_pr1(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регион + Insert / update (main_dashboard.total_registered) 2 + Y + + + + Insert / update (main_dashboard.total_registered) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + convicts + convicts + + main_dashboard + total_registered
+ + total_registered + total_count + Y + + + "total_registered_M" + male_count + Y + + + "total_registered_W" + female_count + Y + + + mobilization_criterion + mobilization_criterion + Y + + + volunteer_criterion + volunteer_criterion + Y + + + contract_criterion + contract_criterion + Y + + + mobilization_criterion_percent + mobilization_criterion_percent + Y + + + volunteer_criterion_percent + volunteer_criterion_percent + Y + + + contract_criterion_percent + contract_criterion_percent + Y + + + recruitment_id + recruitment_id + N + + + convicts + convicts + N + +
+ N + + + 1168 + 320 + +
+ + Table input (person_registry) регион + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_1}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id), +registered as ( + select + distinct rh.recruit_id, + 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') -- критерии от 03.06.2025 + --and rh.source is not null + ), +*/ +vse AS ( + SELECT + --distinct + r.id AS r_id, + ri.recruit_id AS recruit_id, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS r_current_recruitment_id, + r.current_recruitment_id AS r_current_recruitment_id, + 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, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) and + coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ +), +extracted_children AS ( + SELECT + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' +), +children_birth_dates AS ( + SELECT + recruit_id, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year + FROM extracted_children +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) AS children_under_16 + FROM children_birth_dates + WHERE AGE(make_date(year, month, day)) < interval '16 years' + GROUP BY recruit_id +), +recruit_data AS ( + SELECT + ri.r_current_recruitment_id::uuid AS recruitment_id, + ri.convicts, + COUNT(distinct ri.recruit_id) AS total_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'MALE') AS male_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'FEMALE') AS female_count, + COUNT(distinct ri.recruit_id) FILTER ( + 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(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 + AND gender = 'MALE' + AND hidden IS true -- нет отсрочки и нет освобождения от службы + ) AS volunteer_criterion, -- критерии от 03.06.2025 + + COUNT(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 + AND gender = 'MALE' + 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 +), +recruit_data_all AS ( + SELECT + recruitment_id, + 'ALL' AS convicts, + SUM(total_count) AS total_count, + SUM(male_count) AS male_count, + SUM(female_count) AS female_count, + SUM(mobilization_criterion) AS mobilization_criterion, + SUM(volunteer_criterion) AS volunteer_criterion, + SUM(contract_criterion) AS contract_criterion + FROM recruit_data + GROUP BY recruitment_id +) +SELECT + ids.recruitment_id, + rd.convicts, + current_date AS recording_date, + COALESCE(rd.total_count, 0) AS total_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM ids +JOIN recruit_data AS rd ON ids.recruitment_id = rd.recruitment_id + +UNION ALL + +SELECT + ids.recruitment_id, + rd.convicts, + current_date AS recording_date, + COALESCE(rd.total_count, 0) AS total_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM ids +JOIN recruit_data_all AS rd ON ids.recruitment_id = rd.recruitment_id + Y + + + 496 + 320 + + + + + +
diff --git a/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr2(m_c).hpl b/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr2(m_c).hpl new file mode 100644 index 0000000..18c15c8 --- /dev/null +++ b/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr2(m_c).hpl @@ -0,0 +1,334 @@ + + + + main_dashboard.total_registered_pr2(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регион + Insert / update (main_dashboard.total_registered) 2 + Y + + + + Insert / update (main_dashboard.total_registered) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + convicts + convicts + + main_dashboard + total_registered
+ + total_registered + total_count + Y + + + "total_registered_M" + male_count + Y + + + "total_registered_W" + female_count + Y + + + mobilization_criterion + mobilization_criterion + Y + + + volunteer_criterion + volunteer_criterion + Y + + + contract_criterion + contract_criterion + Y + + + mobilization_criterion_percent + mobilization_criterion_percent + Y + + + volunteer_criterion_percent + volunteer_criterion_percent + Y + + + contract_criterion_percent + contract_criterion_percent + Y + + + recruitment_id + recruitment_id + N + + + convicts + convicts + N + +
+ N + + + 1168 + 320 + +
+ + Table input (person_registry) регион + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_2}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id), +registered as ( + select + distinct rh.recruit_id, + 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') -- критерии от 03.06.2025 + --and rh.source is not null + ), +*/ +vse AS ( + SELECT + --distinct + r.id AS r_id, + ri.recruit_id AS recruit_id, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS r_current_recruitment_id, + r.current_recruitment_id AS r_current_recruitment_id, + 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, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) and + coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ +), +extracted_children AS ( + SELECT + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' +), +children_birth_dates AS ( + SELECT + recruit_id, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year + FROM extracted_children +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) AS children_under_16 + FROM children_birth_dates + WHERE AGE(make_date(year, month, day)) < interval '16 years' + GROUP BY recruit_id +), +recruit_data AS ( + SELECT + ri.r_current_recruitment_id::uuid AS recruitment_id, + ri.convicts, + COUNT(distinct ri.recruit_id) AS total_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'MALE') AS male_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'FEMALE') AS female_count, + COUNT(distinct ri.recruit_id) FILTER ( + 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(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 + AND gender = 'MALE' + AND hidden IS true -- нет отсрочки и нет освобождения от службы + ) AS volunteer_criterion, -- критерии от 03.06.2025 + + COUNT(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 + AND gender = 'MALE' + 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 +), +recruit_data_all AS ( + SELECT + recruitment_id, + 'ALL' AS convicts, + SUM(total_count) AS total_count, + SUM(male_count) AS male_count, + SUM(female_count) AS female_count, + SUM(mobilization_criterion) AS mobilization_criterion, + SUM(volunteer_criterion) AS volunteer_criterion, + SUM(contract_criterion) AS contract_criterion + FROM recruit_data + GROUP BY recruitment_id +) +SELECT + ids.recruitment_id, + rd.convicts, + current_date AS recording_date, + COALESCE(rd.total_count, 0) AS total_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM ids +JOIN recruit_data AS rd ON ids.recruitment_id = rd.recruitment_id + +UNION ALL + +SELECT + ids.recruitment_id, + rd.convicts, + current_date AS recording_date, + COALESCE(rd.total_count, 0) AS total_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM ids +JOIN recruit_data_all AS rd ON ids.recruitment_id = rd.recruitment_id + Y + + + 496 + 320 + + + + + +
diff --git a/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr3(m_c).hpl b/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr3(m_c).hpl new file mode 100644 index 0000000..3493467 --- /dev/null +++ b/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr3(m_c).hpl @@ -0,0 +1,334 @@ + + + + main_dashboard.total_registered_pr3(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регион + Insert / update (main_dashboard.total_registered) 2 + Y + + + + Insert / update (main_dashboard.total_registered) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + convicts + convicts + + main_dashboard + total_registered
+ + total_registered + total_count + Y + + + "total_registered_M" + male_count + Y + + + "total_registered_W" + female_count + Y + + + mobilization_criterion + mobilization_criterion + Y + + + volunteer_criterion + volunteer_criterion + Y + + + contract_criterion + contract_criterion + Y + + + mobilization_criterion_percent + mobilization_criterion_percent + Y + + + volunteer_criterion_percent + volunteer_criterion_percent + Y + + + contract_criterion_percent + contract_criterion_percent + Y + + + recruitment_id + recruitment_id + N + + + convicts + convicts + N + +
+ N + + + 1168 + 320 + +
+ + Table input (person_registry) регион + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_3}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id), +registered as ( + select + distinct rh.recruit_id, + 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') -- критерии от 03.06.2025 + --and rh.source is not null + ), +*/ +vse AS ( + SELECT + --distinct + r.id AS r_id, + ri.recruit_id AS recruit_id, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS r_current_recruitment_id, + r.current_recruitment_id AS r_current_recruitment_id, + 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, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) and + coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ +), +extracted_children AS ( + SELECT + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' +), +children_birth_dates AS ( + SELECT + recruit_id, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year + FROM extracted_children +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) AS children_under_16 + FROM children_birth_dates + WHERE AGE(make_date(year, month, day)) < interval '16 years' + GROUP BY recruit_id +), +recruit_data AS ( + SELECT + ri.r_current_recruitment_id::uuid AS recruitment_id, + ri.convicts, + COUNT(distinct ri.recruit_id) AS total_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'MALE') AS male_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'FEMALE') AS female_count, + COUNT(distinct ri.recruit_id) FILTER ( + 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(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 + AND gender = 'MALE' + AND hidden IS true -- нет отсрочки и нет освобождения от службы + ) AS volunteer_criterion, -- критерии от 03.06.2025 + + COUNT(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 + AND gender = 'MALE' + 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 +), +recruit_data_all AS ( + SELECT + recruitment_id, + 'ALL' AS convicts, + SUM(total_count) AS total_count, + SUM(male_count) AS male_count, + SUM(female_count) AS female_count, + SUM(mobilization_criterion) AS mobilization_criterion, + SUM(volunteer_criterion) AS volunteer_criterion, + SUM(contract_criterion) AS contract_criterion + FROM recruit_data + GROUP BY recruitment_id +) +SELECT + ids.recruitment_id, + rd.convicts, + current_date AS recording_date, + COALESCE(rd.total_count, 0) AS total_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM ids +JOIN recruit_data AS rd ON ids.recruitment_id = rd.recruitment_id + +UNION ALL + +SELECT + ids.recruitment_id, + rd.convicts, + current_date AS recording_date, + COALESCE(rd.total_count, 0) AS total_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM ids +JOIN recruit_data_all AS rd ON ids.recruitment_id = rd.recruitment_id + Y + + + 496 + 320 + + + + + +
diff --git a/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr4(m_c).hpl b/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr4(m_c).hpl new file mode 100644 index 0000000..293beaf --- /dev/null +++ b/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr4(m_c).hpl @@ -0,0 +1,334 @@ + + + + main_dashboard.total_registered_pr4(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регион + Insert / update (main_dashboard.total_registered) 2 + Y + + + + Insert / update (main_dashboard.total_registered) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + convicts + convicts + + main_dashboard + total_registered
+ + total_registered + total_count + Y + + + "total_registered_M" + male_count + Y + + + "total_registered_W" + female_count + Y + + + mobilization_criterion + mobilization_criterion + Y + + + volunteer_criterion + volunteer_criterion + Y + + + contract_criterion + contract_criterion + Y + + + mobilization_criterion_percent + mobilization_criterion_percent + Y + + + volunteer_criterion_percent + volunteer_criterion_percent + Y + + + contract_criterion_percent + contract_criterion_percent + Y + + + recruitment_id + recruitment_id + N + + + convicts + convicts + N + +
+ N + + + 1168 + 320 + +
+ + Table input (person_registry) регион + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_4}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id), +registered as ( + select + distinct rh.recruit_id, + 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') -- критерии от 03.06.2025 + --and rh.source is not null + ), +*/ +vse AS ( + SELECT + --distinct + r.id AS r_id, + ri.recruit_id AS recruit_id, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS r_current_recruitment_id, + r.current_recruitment_id AS r_current_recruitment_id, + 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, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) and + coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ +), +extracted_children AS ( + SELECT + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' +), +children_birth_dates AS ( + SELECT + recruit_id, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year + FROM extracted_children +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) AS children_under_16 + FROM children_birth_dates + WHERE AGE(make_date(year, month, day)) < interval '16 years' + GROUP BY recruit_id +), +recruit_data AS ( + SELECT + ri.r_current_recruitment_id::uuid AS recruitment_id, + ri.convicts, + COUNT(distinct ri.recruit_id) AS total_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'MALE') AS male_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'FEMALE') AS female_count, + COUNT(distinct ri.recruit_id) FILTER ( + 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(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 + AND gender = 'MALE' + AND hidden IS true -- нет отсрочки и нет освобождения от службы + ) AS volunteer_criterion, -- критерии от 03.06.2025 + + COUNT(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 + AND gender = 'MALE' + 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 +), +recruit_data_all AS ( + SELECT + recruitment_id, + 'ALL' AS convicts, + SUM(total_count) AS total_count, + SUM(male_count) AS male_count, + SUM(female_count) AS female_count, + SUM(mobilization_criterion) AS mobilization_criterion, + SUM(volunteer_criterion) AS volunteer_criterion, + SUM(contract_criterion) AS contract_criterion + FROM recruit_data + GROUP BY recruitment_id +) +SELECT + ids.recruitment_id, + rd.convicts, + current_date AS recording_date, + COALESCE(rd.total_count, 0) AS total_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM ids +JOIN recruit_data AS rd ON ids.recruitment_id = rd.recruitment_id + +UNION ALL + +SELECT + ids.recruitment_id, + rd.convicts, + current_date AS recording_date, + COALESCE(rd.total_count, 0) AS total_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM ids +JOIN recruit_data_all AS rd ON ids.recruitment_id = rd.recruitment_id + Y + + + 496 + 320 + + + + + +
diff --git a/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr5(m_c).hpl b/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr5(m_c).hpl new file mode 100644 index 0000000..001fcc8 --- /dev/null +++ b/mappings/mil_com/main_dashboard.total_registered(m_c)/main_dashboard.total_registered_pr5(m_c).hpl @@ -0,0 +1,334 @@ + + + + main_dashboard.total_registered_pr5(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регион + Insert / update (main_dashboard.total_registered) 2 + Y + + + + Insert / update (main_dashboard.total_registered) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + convicts + convicts + + main_dashboard + total_registered
+ + total_registered + total_count + Y + + + "total_registered_M" + male_count + Y + + + "total_registered_W" + female_count + Y + + + mobilization_criterion + mobilization_criterion + Y + + + volunteer_criterion + volunteer_criterion + Y + + + contract_criterion + contract_criterion + Y + + + mobilization_criterion_percent + mobilization_criterion_percent + Y + + + volunteer_criterion_percent + volunteer_criterion_percent + Y + + + contract_criterion_percent + contract_criterion_percent + Y + + + recruitment_id + recruitment_id + N + + + convicts + convicts + N + +
+ N + + + 1168 + 320 + +
+ + Table input (person_registry) регион + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_5}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id), +registered as ( + select + distinct rh.recruit_id, + 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') -- критерии от 03.06.2025 + --and rh.source is not null + ), +*/ +vse AS ( + SELECT + --distinct + r.id AS r_id, + ri.recruit_id AS recruit_id, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS r_current_recruitment_id, + r.current_recruitment_id AS r_current_recruitment_id, + 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, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) and + coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ +), +extracted_children AS ( + SELECT + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' +), +children_birth_dates AS ( + SELECT + recruit_id, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year + FROM extracted_children +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) AS children_under_16 + FROM children_birth_dates + WHERE AGE(make_date(year, month, day)) < interval '16 years' + GROUP BY recruit_id +), +recruit_data AS ( + SELECT + ri.r_current_recruitment_id::uuid AS recruitment_id, + ri.convicts, + COUNT(distinct ri.recruit_id) AS total_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'MALE') AS male_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'FEMALE') AS female_count, + COUNT(distinct ri.recruit_id) FILTER ( + 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(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 + AND gender = 'MALE' + AND hidden IS true -- нет отсрочки и нет освобождения от службы + ) AS volunteer_criterion, -- критерии от 03.06.2025 + + COUNT(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 + AND gender = 'MALE' + 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 +), +recruit_data_all AS ( + SELECT + recruitment_id, + 'ALL' AS convicts, + SUM(total_count) AS total_count, + SUM(male_count) AS male_count, + SUM(female_count) AS female_count, + SUM(mobilization_criterion) AS mobilization_criterion, + SUM(volunteer_criterion) AS volunteer_criterion, + SUM(contract_criterion) AS contract_criterion + FROM recruit_data + GROUP BY recruitment_id +) +SELECT + ids.recruitment_id, + rd.convicts, + current_date AS recording_date, + COALESCE(rd.total_count, 0) AS total_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM ids +JOIN recruit_data AS rd ON ids.recruitment_id = rd.recruitment_id + +UNION ALL + +SELECT + ids.recruitment_id, + rd.convicts, + current_date AS recording_date, + COALESCE(rd.total_count, 0) AS total_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.total_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.total_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM ids +JOIN recruit_data_all AS rd ON ids.recruitment_id = rd.recruitment_id + Y + + + 496 + 320 + + + + + +
diff --git a/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration(m_c).hpl b/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration(m_c).hpl new file mode 100644 index 0000000..acc5ecd --- /dev/null +++ b/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration(m_c).hpl @@ -0,0 +1,272 @@ + + + + main_dashboard.waiting_registration(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input 2 (person_registry) регион + Insert / update (main_dashboard.waiting_registration) 2 + Y + + + + Insert / update (main_dashboard.waiting_registration) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + main_dashboard + waiting_registration
+ + waiting_registration + waiting_count + Y + + + "waiting_registration_M" + male_count + Y + + + "waiting_registration_W" + female_count + Y + + + mobilization_criterion + mobilization_criterion + Y + + + volunteer_criterion + volunteer_criterion + Y + + + contract_criterion + contract_criterion + Y + + + mobilization_criterion_percent + mobilization_criterion_percent + Y + + + volunteer_criterion_percent + volunteer_criterion_percent + Y + + + contract_criterion_percent + contract_criterion_percent + Y + + + recruitment_id + recruitment_id + N + +
+ N + + + 1024 + 240 + +
+ + Table input 2 (person_registry) регион + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +last_status as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id), +notregistered as ( + select + distinct rh.recruit_id, + 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 in ('1', '12.7', '8.2', '8.3') +--and rh.source is not null +), +vse AS ( + SELECT + r.id AS r_id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS r_target_recruitment_id, + 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, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + JOIN public.recruits_history rh on rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE + 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 +), +extracted_children AS ( + SELECT + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +), +children_birth_dates AS ( + SELECT + recruit_id, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year + FROM extracted_children +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) AS children_under_16 + FROM children_birth_dates + WHERE AGE(make_date(year, month, day)) < interval '16 years' + GROUP BY recruit_id +), +recruit_data AS ( + SELECT + ri.r_target_recruitment_id::uuid AS recruitment_id, + COUNT(distinct ri.recruit_id) AS waiting_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'MALE') AS male_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'FEMALE') AS female_count, + COUNT(distinct ri.recruit_id) FILTER ( + 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(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 + AND gender = 'MALE' + AND hidden IS true -- нет отсрочки и нет освобождения от службы + ) AS volunteer_criterion, -- критерии от 03.06.2025 + + COUNT(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 + AND gender = 'MALE' + 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 +) +SELECT + rd.recruitment_id, + current_date AS recording_date, + COALESCE(rd.waiting_count, 0) AS waiting_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM recruit_data AS rd + Y + + + 336 + 240 + + + + + +
diff --git a/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration(m_c).hwf b/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration(m_c).hwf new file mode 100644 index 0000000..70f7f97 --- /dev/null +++ b/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration(m_c).hwf @@ -0,0 +1,309 @@ + + + main_dashboard.waiting_registration(m_c) + Y + + + + - + 2025/03/31 10:12:19.214 + - + 2025/03/31 10:12:19.214 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + Y + 688 + 416 + + + + main_dashboard.waiting_registration_pr1(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr1(m_c).hpl + Basic + + + ARR_PR_1 + PART_RECRUITMENT_1 + + Y + + Y + local + N + N + Y + N + 1568 + 256 + + + + main_dashboard.waiting_registration_pr2(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr2(m_c).hpl + Basic + + + ARR_PR_2 + PART_RECRUITMENT_2 + + Y + + Y + local + N + N + Y + N + 1568 + 336 + + + + main_dashboard.waiting_registration_pr3(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr3(m_c).hpl + Basic + + + ARR_PR_3 + PART_RECRUITMENT_3 + + Y + + Y + local + N + N + Y + N + 1568 + 416 + + + + main_dashboard.waiting_registration_pr4(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr4(m_c).hpl + Basic + + + ARR_PR_4 + PART_RECRUITMENT_4 + + Y + + Y + local + N + N + Y + N + 1568 + 496 + + + + Success + + SUCCESS + + N + 1808 + 256 + + + + Success 2 + + SUCCESS + + N + 1808 + 336 + + + + Success 3 + + SUCCESS + + N + 1808 + 416 + + + + Success 4 + + SUCCESS + + N + 1808 + 496 + + + + main_dashboard.waiting_registration_pr5(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr5(m_c).hpl + Basic + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 1568 + 576 + + + + Success 5 + + SUCCESS + + N + 1808 + 576 + + + + + + main_dashboard.waiting_registration_pr1(m_c).hpl + Success + Y + Y + N + + + main_dashboard.waiting_registration_pr2(m_c).hpl + Success 2 + Y + Y + N + + + main_dashboard.waiting_registration_pr3(m_c).hpl + Success 3 + Y + Y + N + + + main_dashboard.waiting_registration_pr4(m_c).hpl + Success 4 + Y + Y + N + + + main_dashboard.waiting_registration_pr5(m_c).hpl + Success 5 + Y + Y + N + + + Start + main_dashboard.waiting_registration_pr1(m_c).hpl + Y + Y + Y + + + Start + main_dashboard.waiting_registration_pr2(m_c).hpl + Y + Y + Y + + + Start + main_dashboard.waiting_registration_pr3(m_c).hpl + Y + Y + Y + + + Start + main_dashboard.waiting_registration_pr4(m_c).hpl + Y + Y + Y + + + Start + main_dashboard.waiting_registration_pr5(m_c).hpl + Y + Y + Y + + + + + + diff --git a/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr1(m_c).hpl b/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr1(m_c).hpl new file mode 100644 index 0000000..9e9b647 --- /dev/null +++ b/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr1(m_c).hpl @@ -0,0 +1,272 @@ + + + + main_dashboard.waiting_registration_pr1(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input 2 (person_registry) регион + Insert / update (main_dashboard.waiting_registration) 2 + Y + + + + Insert / update (main_dashboard.waiting_registration) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + main_dashboard + waiting_registration
+ + waiting_registration + waiting_count + Y + + + "waiting_registration_M" + male_count + Y + + + "waiting_registration_W" + female_count + Y + + + mobilization_criterion + mobilization_criterion + Y + + + volunteer_criterion + volunteer_criterion + Y + + + contract_criterion + contract_criterion + Y + + + mobilization_criterion_percent + mobilization_criterion_percent + Y + + + volunteer_criterion_percent + volunteer_criterion_percent + Y + + + contract_criterion_percent + contract_criterion_percent + Y + + + recruitment_id + recruitment_id + N + +
+ N + + + 1024 + 240 + +
+ + Table input 2 (person_registry) регион + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_1}'), ','))::uuid AS recruitment_id +), +last_status as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id), +notregistered as ( + select + distinct rh.recruit_id, + 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 in ('1', '12.7', '8.2', '8.3') +--and rh.source is not null +), +vse AS ( + SELECT + r.id AS r_id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS r_target_recruitment_id, + 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, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + JOIN public.recruits_history rh on rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE + 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 +), +extracted_children AS ( + SELECT + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +), +children_birth_dates AS ( + SELECT + recruit_id, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year + FROM extracted_children +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) AS children_under_16 + FROM children_birth_dates + WHERE AGE(make_date(year, month, day)) < interval '16 years' + GROUP BY recruit_id +), +recruit_data AS ( + SELECT + ri.r_target_recruitment_id::uuid AS recruitment_id, + COUNT(distinct ri.recruit_id) AS waiting_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'MALE') AS male_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'FEMALE') AS female_count, + COUNT(distinct ri.recruit_id) FILTER ( + 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(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 + AND gender = 'MALE' + AND hidden IS true -- нет отсрочки и нет освобождения от службы + ) AS volunteer_criterion, -- критерии от 03.06.2025 + + COUNT(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 + AND gender = 'MALE' + 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 +) +SELECT + rd.recruitment_id, + current_date AS recording_date, + COALESCE(rd.waiting_count, 0) AS waiting_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM recruit_data AS rd + Y + + + 336 + 240 + + + + + +
diff --git a/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr2(m_c).hpl b/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr2(m_c).hpl new file mode 100644 index 0000000..232eb01 --- /dev/null +++ b/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr2(m_c).hpl @@ -0,0 +1,272 @@ + + + + main_dashboard.waiting_registration_pr2(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input 2 (person_registry) регион + Insert / update (main_dashboard.waiting_registration) 2 + Y + + + + Insert / update (main_dashboard.waiting_registration) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + main_dashboard + waiting_registration
+ + waiting_registration + waiting_count + Y + + + "waiting_registration_M" + male_count + Y + + + "waiting_registration_W" + female_count + Y + + + mobilization_criterion + mobilization_criterion + Y + + + volunteer_criterion + volunteer_criterion + Y + + + contract_criterion + contract_criterion + Y + + + mobilization_criterion_percent + mobilization_criterion_percent + Y + + + volunteer_criterion_percent + volunteer_criterion_percent + Y + + + contract_criterion_percent + contract_criterion_percent + Y + + + recruitment_id + recruitment_id + N + +
+ N + + + 1024 + 240 + +
+ + Table input 2 (person_registry) регион + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_2}'), ','))::uuid AS recruitment_id +), +last_status as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id), +notregistered as ( + select + distinct rh.recruit_id, + 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 in ('1', '12.7', '8.2', '8.3') +--and rh.source is not null +), +vse AS ( + SELECT + r.id AS r_id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS r_target_recruitment_id, + 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, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + JOIN public.recruits_history rh on rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE + 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 +), +extracted_children AS ( + SELECT + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +), +children_birth_dates AS ( + SELECT + recruit_id, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year + FROM extracted_children +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) AS children_under_16 + FROM children_birth_dates + WHERE AGE(make_date(year, month, day)) < interval '16 years' + GROUP BY recruit_id +), +recruit_data AS ( + SELECT + ri.r_target_recruitment_id::uuid AS recruitment_id, + COUNT(distinct ri.recruit_id) AS waiting_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'MALE') AS male_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'FEMALE') AS female_count, + COUNT(distinct ri.recruit_id) FILTER ( + 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(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 + AND gender = 'MALE' + AND hidden IS true -- нет отсрочки и нет освобождения от службы + ) AS volunteer_criterion, -- критерии от 03.06.2025 + + COUNT(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 + AND gender = 'MALE' + 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 +) +SELECT + rd.recruitment_id, + current_date AS recording_date, + COALESCE(rd.waiting_count, 0) AS waiting_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM recruit_data AS rd + Y + + + 336 + 240 + + + + + +
diff --git a/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr3(m_c).hpl b/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr3(m_c).hpl new file mode 100644 index 0000000..1be98fb --- /dev/null +++ b/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr3(m_c).hpl @@ -0,0 +1,272 @@ + + + + main_dashboard.waiting_registration_pr3(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input 2 (person_registry) регион + Insert / update (main_dashboard.waiting_registration) 2 + Y + + + + Insert / update (main_dashboard.waiting_registration) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + main_dashboard + waiting_registration
+ + waiting_registration + waiting_count + Y + + + "waiting_registration_M" + male_count + Y + + + "waiting_registration_W" + female_count + Y + + + mobilization_criterion + mobilization_criterion + Y + + + volunteer_criterion + volunteer_criterion + Y + + + contract_criterion + contract_criterion + Y + + + mobilization_criterion_percent + mobilization_criterion_percent + Y + + + volunteer_criterion_percent + volunteer_criterion_percent + Y + + + contract_criterion_percent + contract_criterion_percent + Y + + + recruitment_id + recruitment_id + N + +
+ N + + + 1024 + 240 + +
+ + Table input 2 (person_registry) регион + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_3}'), ','))::uuid AS recruitment_id +), +last_status as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id), +notregistered as ( + select + distinct rh.recruit_id, + 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 in ('1', '12.7', '8.2', '8.3') +--and rh.source is not null +), +vse AS ( + SELECT + r.id AS r_id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS r_target_recruitment_id, + 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, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + JOIN public.recruits_history rh on rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE + 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 +), +extracted_children AS ( + SELECT + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +), +children_birth_dates AS ( + SELECT + recruit_id, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year + FROM extracted_children +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) AS children_under_16 + FROM children_birth_dates + WHERE AGE(make_date(year, month, day)) < interval '16 years' + GROUP BY recruit_id +), +recruit_data AS ( + SELECT + ri.r_target_recruitment_id::uuid AS recruitment_id, + COUNT(distinct ri.recruit_id) AS waiting_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'MALE') AS male_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'FEMALE') AS female_count, + COUNT(distinct ri.recruit_id) FILTER ( + 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(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 + AND gender = 'MALE' + AND hidden IS true -- нет отсрочки и нет освобождения от службы + ) AS volunteer_criterion, -- критерии от 03.06.2025 + + COUNT(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 + AND gender = 'MALE' + 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 +) +SELECT + rd.recruitment_id, + current_date AS recording_date, + COALESCE(rd.waiting_count, 0) AS waiting_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM recruit_data AS rd + Y + + + 336 + 240 + + + + + +
diff --git a/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr4(m_c).hpl b/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr4(m_c).hpl new file mode 100644 index 0000000..c11a7f1 --- /dev/null +++ b/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr4(m_c).hpl @@ -0,0 +1,272 @@ + + + + main_dashboard.waiting_registration_pr4(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input 2 (person_registry) регион + Insert / update (main_dashboard.waiting_registration) 2 + Y + + + + Insert / update (main_dashboard.waiting_registration) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + main_dashboard + waiting_registration
+ + waiting_registration + waiting_count + Y + + + "waiting_registration_M" + male_count + Y + + + "waiting_registration_W" + female_count + Y + + + mobilization_criterion + mobilization_criterion + Y + + + volunteer_criterion + volunteer_criterion + Y + + + contract_criterion + contract_criterion + Y + + + mobilization_criterion_percent + mobilization_criterion_percent + Y + + + volunteer_criterion_percent + volunteer_criterion_percent + Y + + + contract_criterion_percent + contract_criterion_percent + Y + + + recruitment_id + recruitment_id + N + +
+ N + + + 1024 + 240 + +
+ + Table input 2 (person_registry) регион + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_4}'), ','))::uuid AS recruitment_id +), +last_status as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id), +notregistered as ( + select + distinct rh.recruit_id, + 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 in ('1', '12.7', '8.2', '8.3') +--and rh.source is not null +), +vse AS ( + SELECT + r.id AS r_id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS r_target_recruitment_id, + 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, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + JOIN public.recruits_history rh on rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE + 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 +), +extracted_children AS ( + SELECT + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +), +children_birth_dates AS ( + SELECT + recruit_id, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year + FROM extracted_children +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) AS children_under_16 + FROM children_birth_dates + WHERE AGE(make_date(year, month, day)) < interval '16 years' + GROUP BY recruit_id +), +recruit_data AS ( + SELECT + ri.r_target_recruitment_id::uuid AS recruitment_id, + COUNT(distinct ri.recruit_id) AS waiting_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'MALE') AS male_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'FEMALE') AS female_count, + COUNT(distinct ri.recruit_id) FILTER ( + 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(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 + AND gender = 'MALE' + AND hidden IS true -- нет отсрочки и нет освобождения от службы + ) AS volunteer_criterion, -- критерии от 03.06.2025 + + COUNT(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 + AND gender = 'MALE' + 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 +) +SELECT + rd.recruitment_id, + current_date AS recording_date, + COALESCE(rd.waiting_count, 0) AS waiting_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM recruit_data AS rd + Y + + + 336 + 240 + + + + + +
diff --git a/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr5(m_c).hpl b/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr5(m_c).hpl new file mode 100644 index 0000000..dbbb488 --- /dev/null +++ b/mappings/mil_com/main_dashboard.waiting_registration(m_c)/main_dashboard.waiting_registration_pr5(m_c).hpl @@ -0,0 +1,272 @@ + + + + main_dashboard.waiting_registration_pr5(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input 2 (person_registry) регион + Insert / update (main_dashboard.waiting_registration) 2 + Y + + + + Insert / update (main_dashboard.waiting_registration) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + main_dashboard + waiting_registration
+ + waiting_registration + waiting_count + Y + + + "waiting_registration_M" + male_count + Y + + + "waiting_registration_W" + female_count + Y + + + mobilization_criterion + mobilization_criterion + Y + + + volunteer_criterion + volunteer_criterion + Y + + + contract_criterion + contract_criterion + Y + + + mobilization_criterion_percent + mobilization_criterion_percent + Y + + + volunteer_criterion_percent + volunteer_criterion_percent + Y + + + contract_criterion_percent + contract_criterion_percent + Y + + + recruitment_id + recruitment_id + N + +
+ N + + + 1024 + 240 + +
+ + Table input 2 (person_registry) регион + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_5}'), ','))::uuid AS recruitment_id +), +last_status as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id), +notregistered as ( + select + distinct rh.recruit_id, + 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 in ('1', '12.7', '8.2', '8.3') +--and rh.source is not null +), +vse AS ( + SELECT + r.id AS r_id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS r_target_recruitment_id, + 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, + CASE + WHEN ddd.hidden IS false THEN ddd.hidden + ELSE true + END AS hidden, -- когда фолс отсрочка есть, когда тру или нулл - нет + ri.info + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + JOIN public.recruits_history rh on rh.recruit_id=r.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY ddd.recruit_id ORDER BY COALESCE(ddd.updated_at, ddd.created_at) DESC) AS rn, + ddd.recruit_id, + ddd.hidden + FROM decision_deferment_dto ddd + WHERE ddd.hidden is true -- когда фолс отсрочка есть, когда тру или нулл - нет (для подсчета подпадающих под призыв) + ) ddd ON ddd.recruit_id = r.id AND ddd.rn = 1 + WHERE + 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 +), +extracted_children AS ( + SELECT + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +), +children_birth_dates AS ( + SELECT + recruit_id, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year + FROM extracted_children +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) AS children_under_16 + FROM children_birth_dates + WHERE AGE(make_date(year, month, day)) < interval '16 years' + GROUP BY recruit_id +), +recruit_data AS ( + SELECT + ri.r_target_recruitment_id::uuid AS recruitment_id, + COUNT(distinct ri.recruit_id) AS waiting_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'MALE') AS male_count, + COUNT(distinct ri.recruit_id) FILTER (WHERE gender = 'FEMALE') AS female_count, + COUNT(distinct ri.recruit_id) FILTER ( + 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(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 + AND gender = 'MALE' + AND hidden IS true -- нет отсрочки и нет освобождения от службы + ) AS volunteer_criterion, -- критерии от 03.06.2025 + + COUNT(distinct ri.recruit_id) FILTER ( + WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 + AND gender = 'MALE' + 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 +) +SELECT + rd.recruitment_id, + current_date AS recording_date, + COALESCE(rd.waiting_count, 0) AS waiting_count, + COALESCE(rd.male_count, 0) AS male_count, + COALESCE(rd.female_count, 0) AS female_count, + COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, + COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, + COALESCE(rd.contract_criterion, 0) AS contract_criterion, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS mobilization_criterion_percent, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS volunteer_criterion_percent, + CASE + WHEN rd.waiting_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.waiting_count * 100, 2) + ELSE 0 + END AS contract_criterion_percent +FROM recruit_data AS rd + Y + + + 336 + 240 + + + + + +
diff --git a/mappings/mil_com/parameters/add_schema.hpl b/mappings/mil_com/parameters/add_schema.hpl new file mode 100644 index 0000000..30303dd --- /dev/null +++ b/mappings/mil_com/parameters/add_schema.hpl @@ -0,0 +1,1801 @@ + + + + add_schema + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/01/17 12:24:07.728 + - + 2025/01/17 12:24:07.728 + + + + + + Table input + Insert / update (main_dashboard.total_registered) + N + + + Table input + Insert / update (main_dashboard.waiting_registration) + N + + + Table input + Insert / update (total_registered.reg_mil_cat) + N + + + Table input + Insert / update (total_registered.removed_registry) + N + + + Table input + Insert / update (total_registered.subpoenas) + N + + + Table input + Insert / update (total_registered.driver_license) + N + + + Table input + Insert / update (total_registered.child_minor) + N + + + Table input + Insert / update (total_registered.age) + N + + + Table input + Insert / update (total_registered.marital_status) + N + + + Table input + Insert / update (total_registered.education_level) + N + + + Table input + Insert / update (recruitment_campaign.appeals) + N + + + Table input + Dummy (do nothing) + N + + + Dummy (do nothing) + Insert / update (main_dashboard.appeals) + N + + + Table input main_dashboard.recruitment_campaign + Insert / update (main_dashboard.recruitment_campaign) + N + + + Table input recruitment_campaign.subpoenas + Insert / update (recruitment_campaign.subpoenas) + N + + + Table input + Insert / update (total_registered.busyness) + N + + + Table input + Update (total_registered.driver_license) + Y + + + Table input + Update (total_registered.child_minor) + Y + + + Table input + Update (total_registered.age) + Y + + + Table input + Update (total_registered.marital_status) + Y + + + Table input + Update (total_registered.busyness) + Y + + + Table input + Update (total_registered.education_level) + Y + + + Table input + Update (total_registered.subpoenas) + Y + + + Table input + Update (total_registered.removed_registry) + Y + + + Table input + Update (total_registered.reg_mil_cat) + Y + + + Table input + Update (main_dashboard.waiting_registration) + Y + + + Table input + Update (main_dashboard.total_registered) + Y + + + Table input + Update (recruitment_campaign.appeals) + Y + + + Table input + Update (recruitment_campaign.subpoenas) + Y + + + Table input + Update (main_dashboard.recruitment_campaign) + Y + + + + Dummy (do nothing) + Dummy + + Y + + 1 + + none + + + + + 176 + 464 + + + + Insert / update (main_dashboard.appeals) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + main_dashboard + appeals
+ + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + recording_date + recording_date + N + +
+ N + + + 416 + 464 + +
+ + Insert / update (main_dashboard.recruitment_campaign) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + spring_autumn + spring_autumn + + main_dashboard + recruitment_campaign
+ + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + recording_date + recording_date + N + + + appeared_on_subpoenas + appeared_on_subpoenas + N + + + appeared_on_subpoenas_percent + appeared_on_subpoenas_percent + N + + + new_recruits + new_recruits + N + + + not_appeared_on_subpoenas + not_appeared_on_subpoenas + N + + + not_appeared_on_subpoenas_percent + not_appeared_on_subpoenas_percent + N + + + postponement_granted + postponement_granted + N + + + postponement_granted_percent + postponement_granted_percent + N + + + postponement_have_right + postponement_have_right + N + + + postponement_have_right_percent + postponement_have_right_percent + N + + + subpoenas_sent + subpoenas_sent + N + + + spring_autumn + spring_autumn + Y + +
+ N + + + 448 + 272 + +
+ + Insert / update (main_dashboard.total_registered) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + main_dashboard + total_registered
+ + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + recording_date + recording_date + N + +
+ N + + + 176 + 592 + +
+ + Insert / update (main_dashboard.waiting_registration) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + main_dashboard + waiting_registration
+ + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + recording_date + recording_date + N + +
+ N + + + 176 + 672 + +
+ + Insert / update (recruitment_campaign.appeals) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + recruitment_campaign + appeals
+ + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + recording_date + recording_date + N + +
+ N + + + 0 + 2016 + +
+ + Insert / update (recruitment_campaign.subpoenas) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + spring_autumn + spring_autumn + + recruitment_campaign + subpoenas
+ + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + recording_date + recording_date + N + + + ap_not_required + ap_not_required + N + + + ap_not_required_percent + ap_not_required_percent + N + + + appear_date_is_good + appear_date_is_good + N + + + appear_date_is_good_percent + appear_date_is_good_percent + N + + + appeared + appeared + N + + + appeared_percent + appeared_percent + N + + + count_not_delivery + count_not_delivery + N + + + introduced_measures + introduced_measures + N + + + introduced_measures_percent + introduced_measures_percent + N + + + not_ap_good_reason + not_ap_good_reason + N + + + not_ap_good_reason_percent + not_ap_good_reason_percent + N + + + not_appeared + not_appeared + N + + + not_appeared_percent + not_appeared_percent + N + + + not_delivery_percent + not_delivery_percent + N + + + rest + rest + N + + + restrictions_applied + restrictions_applied + N + + + restrictions_applied_percent + restrictions_applied_percent + N + + + subpoena + subpoena + N + + + spring_autumn + spring_autumn + Y + +
+ N + + + 448 + 352 + +
+ + Insert / update (total_registered.age) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + age
+ + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + recording_date + recording_date + N + +
+ N + + + 0 + 1616 + +
+ + Insert / update (total_registered.busyness) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + busyness
+ + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + recording_date + recording_date + N + +
+ N + + + 0 + 1776 + +
+ + Insert / update (total_registered.child_minor) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + child_minor
+ + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + recording_date + recording_date + N + +
+ N + + + 0 + 1536 + +
+ + Insert / update (total_registered.driver_license) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + driver_license
+ + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + recording_date + recording_date + N + +
+ N + + + 0 + 1456 + +
+ + Insert / update (total_registered.education_level) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + education_level
+ + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + recording_date + recording_date + N + +
+ N + + + 0 + 1856 + +
+ + Insert / update (total_registered.marital_status) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + marital_status
+ + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + recording_date + recording_date + N + +
+ N + + + 0 + 1696 + +
+ + Insert / update (total_registered.reg_mil_cat) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + reg_mil_cat
+ + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + recording_date + recording_date + N + +
+ N + + + 176 + 752 + +
+ + Insert / update (total_registered.removed_registry) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + removed_registry
+ + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + recording_date + recording_date + N + +
+ N + + + 176 + 832 + +
+ + Insert / update (total_registered.subpoenas) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + subpoenas
+ + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + recording_date + recording_date + N + +
+ N + + + 176 + 912 + +
+ + Table input + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + idm_id AS recruitment_id, + -- parent_id AS PARENT_ID, + CASE + WHEN schema = 'Department' THEN 'Department' + WHEN schema = 'Organization' THEN 'REG_LVL' + WHEN schema = 'Region' THEN 'MD_LVL' + WHEN schema = 'Ministry' THEN 'Ministry' + ELSE schema -- на случай, если появится неизвестное значение + END AS schema, + current_date AS recording_date +FROM + ervu_dashboard.recruitment +WHERE schema in ('Department', 'Organization', 'Region') + N + + + 608 + 928 + + + + Table input main_dashboard.recruitment_campaign + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + WITH +season_separations AS ( + SELECT 'Осень' AS spring_autumn + UNION ALL + SELECT 'Весна' AS spring_autumn +) + SELECT + 0 AS new_recruits, + 0 AS subpoenas_sent, + 0 AS appeared_on_subpoenas, + 0 AS not_appeared_on_subpoenas, + 0 AS postponement_have_right, + 0 AS postponement_granted, + 0 AS appeared_on_subpoenas_percent, + 0 AS not_appeared_on_subpoenas_percent, + 0 AS postponement_have_right_percent, + 0 AS postponement_granted_percent, + ss.spring_autumn, + idm_id AS recruitment_id, + -- parent_id AS PARENT_ID, + CASE + WHEN schema = 'Department' THEN 'Department' + WHEN schema = 'Organization' THEN 'REG_LVL' + WHEN schema = 'Region' THEN 'MD_LVL' + WHEN schema = 'Ministry' THEN 'Ministry' + ELSE schema -- на случай, если появится неизвестное значение + END AS schema, + current_date AS recording_date +FROM + ervu_dashboard.recruitment +CROSS JOIN season_separations ss +WHERE schema in ('Department', 'Organization', 'Region') + N + + + 80 + 272 + + + + Table input recruitment_campaign.subpoenas + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + WITH +season_separations AS ( + SELECT 'Осень' AS spring_autumn + UNION ALL + SELECT 'Весна' AS spring_autumn +) + SELECT + 0 AS subpoena, + 0 AS appeared, + 0 AS not_appeared, + 0 AS not_ap_good_reason, + 0 AS ap_not_required, + 0 AS restrictions_applied, + 0 AS appeared_percent, + 0 AS not_appeared_percent, + 0 AS not_ap_good_reason_percent, + 0 AS ap_not_required_percent, + 0 AS restrictions_applied_percent, + 0 AS introduced_measures, + 0 AS introduced_measures_percent, + 0 AS rest, + 0 AS count_not_delivery, + 0 AS not_delivery_percent, + 0 AS appear_date_is_good, + 0 AS appear_date_is_good_percent, + ss.spring_autumn, + idm_id AS recruitment_id, + -- parent_id AS PARENT_ID, + CASE + WHEN schema = 'Department' THEN 'Department' + WHEN schema = 'Organization' THEN 'REG_LVL' + WHEN schema = 'Region' THEN 'MD_LVL' + WHEN schema = 'Ministry' THEN 'Ministry' + ELSE schema -- на случай, если появится неизвестное значение + END AS schema, + current_date AS recording_date +FROM + ervu_dashboard.recruitment +CROSS JOIN season_separations ss +WHERE schema in ('Department', 'Organization', 'Region') + N + + + 80 + 352 + + + + Update (main_dashboard.recruitment_campaign) + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + + = + recruitment_id + recruitment_id + + + + = + recording_date + recording_date + + + main_dashboard + recruitment_campaign
+ + schema + schema + +
+ N + Y + + + 1200 + 320 + +
+ + Update (main_dashboard.total_registered) + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + main_dashboard + total_registered
+ + schema + schema + +
+ N + Y + + + 1200 + 480 + +
+ + Update (main_dashboard.waiting_registration) + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + main_dashboard + waiting_registration
+ + schema + schema + +
+ N + Y + + + 1200 + 560 + +
+ + Update (recruitment_campaign.appeals) + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + recruitment_campaign + appeals
+ + schema + schema + +
+ N + Y + + + 1200 + 1376 + +
+ + Update (recruitment_campaign.subpoenas) + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + recruitment_campaign + subpoenas
+ + schema + schema + +
+ N + Y + + + 1200 + 400 + +
+ + Update (total_registered.age) + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + age
+ + schema + schema + +
+ N + Y + + + 1200 + 1040 + +
+ + Update (total_registered.busyness) + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + busyness
+ + schema + schema + +
+ N + Y + + + 1200 + 1200 + +
+ + Update (total_registered.child_minor) + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + child_minor
+ + schema + schema + +
+ N + Y + + + 1200 + 960 + +
+ + Update (total_registered.driver_license) + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + driver_license
+ + schema + schema + +
+ N + Y + + + 1200 + 880 + +
+ + Update (total_registered.education_level) + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + education_level
+ + schema + schema + +
+ N + Y + + + 1200 + 1280 + +
+ + Update (total_registered.marital_status) + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + marital_status
+ + schema + schema + +
+ N + Y + + + 1200 + 1120 + +
+ + Update (total_registered.reg_mil_cat) + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + reg_mil_cat
+ + schema + schema + +
+ N + Y + + + 1200 + 640 + +
+ + Update (total_registered.removed_registry) + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + removed_registry
+ + schema + schema + +
+ N + Y + + + 1200 + 720 + +
+ + Update (total_registered.subpoenas) + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + subpoenas
+ + schema + schema + +
+ N + Y + + + 1200 + 800 + +
+ + + +
diff --git a/mappings/mil_com/parameters/array_recruitment_for_parallel.hpl b/mappings/mil_com/parameters/array_recruitment_for_parallel.hpl new file mode 100644 index 0000000..396b2c5 --- /dev/null +++ b/mappings/mil_com/parameters/array_recruitment_for_parallel.hpl @@ -0,0 +1,113 @@ + + + + array_recruitment_for_parallel + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/03/31 10:14:04.435 + - + 2025/03/31 10:14:04.435 + + + + + + Table input + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 1040 + 384 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + WITH ids AS ( + SELECT idm_id, + NTILE(5) OVER (ORDER BY idm_id) AS part -- Разбиваем на 5 частей + FROM ervu_dashboard.recruitment + WHERE schema IN ('Department', 'Organization', 'Region') +), +grouped AS ( + SELECT + array_agg(idm_id) FILTER (WHERE part = 1) AS part_1, + array_agg(idm_id) FILTER (WHERE part = 2) AS part_2, + array_agg(idm_id) FILTER (WHERE part = 3) AS part_3, + array_agg(idm_id) FILTER (WHERE part = 4) AS part_4, + array_agg(idm_id) FILTER (WHERE part = 5) AS part_5 + FROM ids +), +split_parts AS ( + SELECT + gs.row_num, + (SELECT array_agg(val) FROM unnest(part_1) WITH ORDINALITY AS t(val, ord) + WHERE ord > array_length(part_1, 1) * (gs.row_num - 1) / 2 + AND ord <= array_length(part_1, 1) * gs.row_num / 2) AS PART_RECRUITMENT_1, + (SELECT array_agg(val) FROM unnest(part_2) WITH ORDINALITY AS t(val, ord) + WHERE ord > array_length(part_2, 1) * (gs.row_num - 1) / 2 + AND ord <= array_length(part_2, 1) * gs.row_num / 2) AS PART_RECRUITMENT_2, + (SELECT array_agg(val) FROM unnest(part_3) WITH ORDINALITY AS t(val, ord) + WHERE ord > array_length(part_3, 1) * (gs.row_num - 1) / 2 + AND ord <= array_length(part_3, 1) * gs.row_num / 2) AS PART_RECRUITMENT_3, + (SELECT array_agg(val) FROM unnest(part_4) WITH ORDINALITY AS t(val, ord) + WHERE ord > array_length(part_4, 1) * (gs.row_num - 1) / 2 + AND ord <= array_length(part_4, 1) * gs.row_num / 2) AS PART_RECRUITMENT_4, + (SELECT array_agg(val) FROM unnest(part_5) WITH ORDINALITY AS t(val, ord) + WHERE ord > array_length(part_5, 1) * (gs.row_num - 1) / 2 + AND ord <= array_length(part_5, 1) * gs.row_num / 2) AS PART_RECRUITMENT_5 + FROM grouped + CROSS JOIN generate_series(1, 2) gs(row_num) +) +SELECT +PART_RECRUITMENT_1, +PART_RECRUITMENT_2, +PART_RECRUITMENT_3, +PART_RECRUITMENT_4, +PART_RECRUITMENT_5 +FROM split_parts; + N + + + 672 + 384 + + + + + + diff --git a/mappings/mil_com/parameters/array_recruitments.hpl b/mappings/mil_com/parameters/array_recruitments.hpl new file mode 100644 index 0000000..b691c7f --- /dev/null +++ b/mappings/mil_com/parameters/array_recruitments.hpl @@ -0,0 +1,101 @@ + + + + array_recruitments + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/01/17 10:29:53.663 + - + 2025/01/17 10:29:53.663 + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 42 + 768 + 203 + ARRAY_MIL_COM - алиас (массив idm_id всех военкоматов) +ARR_MC - параметр + 339 + + + + + Table input + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 768 + 336 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + WITH ids AS ( + SELECT idm_id, + (ROW_NUMBER() OVER ()) - 1 AS rn + FROM ervu_dashboard.recruitment + WHERE schema IN ('Department', 'Organization', 'Region') + --LIMIT 200 +) +SELECT array_agg(idm_id) AS ARRAY_MIL_COM +FROM ids +GROUP BY rn / 100; + N + + + 512 + 336 + + + + + + diff --git a/mappings/mil_com/parameters/ft_main_dashboard.appeals(m_c).hpl b/mappings/mil_com/parameters/ft_main_dashboard.appeals(m_c).hpl new file mode 100644 index 0000000..0189b69 --- /dev/null +++ b/mappings/mil_com/parameters/ft_main_dashboard.appeals(m_c).hpl @@ -0,0 +1,310 @@ + + + + ft_main_dashboard.appeals(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 2 + Select values 3 2 + N + + + Select values 3 2 + Insert / update (main_dashboard.appeals) 2 + N + + + Table input (appeal_document) регионы + Get variables 3 2 + N + + + Execute SQL script + Table input (appeal_document) регионы + Y + + + Table input (appeal_document) регионы + Insert / update (main_dashboard.appeals) 2 + Y + + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM main_dashboard.appeals +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL') + + + + 208 + 192 + + + + Get variables 3 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REС_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 672 + 432 + + + + Insert / update (main_dashboard.appeals) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + main_dashboard + appeals
+ + total_appeals + total_appeals + Y + + + average_consideration + average_consideration + Y + + + resolved + resolved + Y + + + average_rating + average_rating + Y + + + average_to_face + average_to_face + Y + + + "average_EPGU" + average_epgu + Y + + + average_to_face_percent + average_to_face_percent + Y + + + "average_EPGU_percent" + average_epgu_percent + Y + + + recruitment_id + recruitment_id + N + +
+ Y + + + 1024 + 192 + +
+ + Select values 3 2 + SelectValues + + Y + + 1 + + none + + + + N + + REС_ID + REС_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 800 + 432 + + + + Table input (appeal_document) регионы + TableInput + + N + + 1 + + none + + + postgres.appeal-document-service + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +t1 AS ( + SELECT + COUNT(*) AS total_appeals, + vk_id::uuid AS recruitment_id + FROM public.appeal_document + WHERE vk_id::uuid IN (SELECT recruitment_id FROM ids) + GROUP BY vk_id +), +t2 AS ( + SELECT + ROUND(AVG((TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date)), 2) AS average_consideration, + vk_id::uuid AS recruitment_id + FROM public.appeal_document ad + WHERE vk_id::uuid IN (SELECT recruitment_id FROM ids) + AND ad.extra_info ->> 'resultDate' IS NOT NULL + AND ad.extra_info ->> 'resultDate' != '' + GROUP BY vk_id +), +resolved AS ( + SELECT + COUNT(*) AS resolved, + vk_id::uuid AS recruitment_id + FROM public.appeal_document ad + WHERE ad.extra_info ->> 'result' = '1' + AND vk_id::uuid IN (SELECT recruitment_id FROM ids) + GROUP BY vk_id +) +SELECT + COALESCE(t1.total_appeals, 0) AS total_appeals, + COALESCE(t2.average_consideration, 0) AS average_consideration, + COALESCE(resolved.resolved, 0) AS resolved, + ids.recruitment_id, + 0 AS average_rating, + 0 AS average_to_face, + 0 AS average_epgu, + 0 AS average_to_face_percent, + 0 AS average_epgu_percent +FROM ids +LEFT JOIN t1 ON ids.recruitment_id = t1.recruitment_id +LEFT JOIN t2 ON ids.recruitment_id = t2.recruitment_id +LEFT JOIN resolved ON ids.recruitment_id = resolved.recruitment_id; + Y + + + 448 + 192 + + + + + +
diff --git a/mappings/mil_com/parameters/row_idm_schema.hpl b/mappings/mil_com/parameters/row_idm_schema.hpl new file mode 100644 index 0000000..558ea9b --- /dev/null +++ b/mappings/mil_com/parameters/row_idm_schema.hpl @@ -0,0 +1,74 @@ + + + + row_idm_schema + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/01/17 12:15:03.930 + - + 2025/01/17 12:15:03.930 + + + + + + Table input + Copy rows to result + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT idm_id AS ROW_ID_MIL_COM, +schema AS ROW_SCHEMA +FROM ervu_dashboard.recruitment + + N + + + 512 + 336 + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 800 + 336 + + + + + + diff --git a/mappings/mil_com/parameters/season_separation/array_season_recruitments.hpl b/mappings/mil_com/parameters/season_separation/array_season_recruitments.hpl new file mode 100644 index 0000000..58e9e3a --- /dev/null +++ b/mappings/mil_com/parameters/season_separation/array_season_recruitments.hpl @@ -0,0 +1,114 @@ + + + + array_season_recruitments + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/03/20 10:44:35.298 + - + 2025/03/20 10:44:35.298 + + + + + + Table input определенные вк + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 832 + 240 + + + + Table input определенные вк + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + ARRAY[ + '55158cc6-1342-4701-ab2b-855a6389906d'::UUID, -- Военный комиссариат Провиденского и Чукотского районов Чукотского автономного округа + 'd35584cf-8405-42ea-9944-25bfe5725347', -- Военный комиссариат Охотского Аяно-Майского и Тугуро-Чумиканского районов Хабаровского края + 'b960d9a3-97c5-42ff-9fa7-1843114392a0', -- Военный комиссариат Тигильского Карагинского Олюторского и Пенжинского районов Камчатского края + 'ab335d7b-7966-470d-89b3-72cee950839d', -- Военный комиссариат Оймяконского и Момского улусов Республики Саха (Якутия) + '1dea48be-40fb-42bd-9df8-14d0cfd3fd12', -- Военный комиссариат Нижнеколымского и Среднеколымского улусов Республики Саха (Якутия) + '018b8e04-2714-402a-961b-39877b9ee698', -- Военный комиссариат Верхоянского и Эвено-Бытантайского улусов Республики Саха (Якутия) + '18e818af-ef45-49ee-aea2-d0f3516ddf1d', -- Военный комиссариат Верхнеколымского улуса Республики Саха (Якутия) + 'b2ec295c-47a4-4be9-a6f8-827096f9857d', -- Военный комиссариат Булунского и Жиганского улусов Республики Саха (Якутия) + 'eaffdb79-767f-405c-a1b1-b48bdc63add8' -- Военный комиссариат Усть-Янского Аллаиховского и Абыйского улусов Республики Саха (Якутия) + ] AS ARRAY_MIL_COM_SP, -- 1.05-15.07 + ARRAY[ + '354f7fbd-467f-4f41-aaad-f0e2e139527e'::UUID, -- Военный комиссариат города Воркута Республики Коми + 'ce2b0297-d1e8-422a-8367-b7e3a5cc7a40', -- Военный комиссариат города Инта Республики Коми + 'c023af4a-ad27-4539-a1f9-7a3251634fdb', -- Военный комиссариат города Печора и Печорского района Республики Коми + '0e44335f-02db-43ac-b713-f09532e675a3', -- Военный комиссариат городов Ухта Вуктыл и Сосногорск Вуктыльского и Сосногорского районов Республики Коми + 'e55859e6-9d34-47b7-a969-efc8ceea708b', -- Военный комиссариат Ижемского района Республики Коми + 'b9d1002f-d2a7-4d2f-910b-637b2cf332dd', -- Военный комиссариат Княжпогостского и Усть-Вымского районов Республики Коми + 'ef2da2e5-0cc1-479c-b2de-c334c95b5514', -- Военный комиссариат Сысольского Койгородского и Прилузского районов Республики Коми + '53851a38-fc95-400b-9ff7-00b4dcad2918', -- Военный комиссариат города Сыктывкар Сыктывдинского и Корткеросского районов Республики Коми + '2dc1de3a-712a-4376-8baf-7833a43f6678', -- Военный комиссариат Троицко-Печорского района Республики Коми + 'a6db3dba-65e3-4ad9-a76e-a846efec2a2d', -- Военный комиссариат Удорского района Республики Коми + '630ba6cd-c979-4d35-b128-f6e2527949ef', -- Военный комиссариат города Усинск и Усинского района Республики Коми + '231361d3-3d34-4409-8a30-20c4b013d62c', -- Военный комиссариат Усть-Куломского района Республики Коми + '6466af82-e8be-416d-88c9-cef02f99fef0', -- Военный комиссариат Усть-Цилемского района Республики Коми + '83c89e3d-aa69-43bc-857c-59ce405b9e1e', -- Военный комиссариат Туруханского района и города Игарка Красноярского края + 'ec2c03cd-9c13-4980-9f6d-ba4a93a9a411', -- Военный комиссариат города Лесосибирск и Мотыгинского района Красноярского края + 'd386bf1f-42bd-436f-8b14-288b2cbe1046', -- какой то Северо-Енисейский безымянный военкомат + '61b5758c-c72b-426e-a96f-e146d89197c2', -- Военный комиссариат города Норильск и Таймырского Долгано-Ненецкого района Красноярского края + '9f1a1e68-2fd2-478c-b6ba-b04cc6b752b3', -- Военный комиссариат Эвенкийского района Красноярского края + '7cb704d4-b600-4ce9-bddf-723e1b024f98', -- Военный комиссариат Гайнского района Пермского края + 'be515915-26e8-41c8-af21-3b53d991d632', -- Военный комиссариат Кочевского и Косинского районов Пермского края + '28061db5-22ef-46f6-a2af-043c47288885', -- Военный комиссариат Ненецкого автономного округа + 'ce08e909-5a14-480f-b931-bff172872ac6', -- ВК городских округов Курильский и Северо-Курильский Сахалинской области + 'f578c2c0-72fe-4f3b-bcf7-659bda20f511', -- Военный комиссариат города Губкинский Пуровского и Красноселькупского районов Ямало-Ненецкого автономного округа + '5a0c4a0c-1d00-4528-9dcc-73c8d6dd52b9', -- Военный комиссариат города Лабытнанги и Шурышкарского района Ямало-Ненецкого автономного округа + '50af0e45-872b-48e8-bf74-c13b2162e3ce', -- Военный комиссариат городов Ноябрьск и Муравленко Ямало-Ненецкого автономного округа + 'a8852d04-516d-4ea4-9979-5eb149e9ac7e', -- Военный комиссариат города Новый Уренгой Ямало-Ненецкого автономного округа + '9464d4df-9402-4eb2-abb2-c68b079ad5cf', -- Военный комиссариат города Салехард и Приуральского района Ямало-Ненецкого автономного округа + 'b778245a-0257-4d93-a51c-fa7005e4a480', -- Военный комиссариат города Надым и Надымского района Ямало-Ненецкого автономного округа + '2e18cd11-bbca-406d-a2b8-0a89cbb2046e', -- Военный комиссариат Тазовского района Ямало-Ненецкого автономного округа + 'a4126a2d-3412-47cd-aa90-caa62e202c7f' -- Военный комиссариат Ямальского района Ямало-Ненецкого автономного округа + ] AS ARRAY_MIL_COM_AU -- 1.11-31.12 + N + + + 512 + 240 + + + + + + diff --git a/mappings/mil_com/parameters/season_separation/array_season_recruitments_all.hpl b/mappings/mil_com/parameters/season_separation/array_season_recruitments_all.hpl new file mode 100644 index 0000000..b2dbe45 --- /dev/null +++ b/mappings/mil_com/parameters/season_separation/array_season_recruitments_all.hpl @@ -0,0 +1,121 @@ + + + + array_season_recruitments_all + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/03/20 10:44:35.298 + - + 2025/03/20 10:44:35.298 + + + + + + Table input остальные + Copy rows to result 2 + Y + + + + Copy rows to result 2 + RowsToResult + + Y + + 1 + + none + + + + + 832 + 352 + + + + Table input остальные + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + WITH ids AS ( + SELECT idm_id, + (ROW_NUMBER() OVER ()) - 1 AS rn + FROM ervu_dashboard.recruitment + WHERE schema IN ('Department', 'Organization', 'Region') + --LIMIT 200 + AND idm_id NOT IN ( + '55158cc6-1342-4701-ab2b-855a6389906d'::UUID, -- Военный комиссариат Провиденского и Чукотского районов Чукотского автономного округа + 'd35584cf-8405-42ea-9944-25bfe5725347', -- Военный комиссариат Охотского Аяно-Майского и Тугуро-Чумиканского районов Хабаровского края + 'b960d9a3-97c5-42ff-9fa7-1843114392a0', -- Военный комиссариат Тигильского Карагинского Олюторского и Пенжинского районов Камчатского края + 'ab335d7b-7966-470d-89b3-72cee950839d', -- Военный комиссариат Оймяконского и Момского улусов Республики Саха (Якутия) + '1dea48be-40fb-42bd-9df8-14d0cfd3fd12', -- Военный комиссариат Нижнеколымского и Среднеколымского улусов Республики Саха (Якутия) + '018b8e04-2714-402a-961b-39877b9ee698', -- Военный комиссариат Верхоянского и Эвено-Бытантайского улусов Республики Саха (Якутия) + '18e818af-ef45-49ee-aea2-d0f3516ddf1d', -- Военный комиссариат Верхнеколымского улуса Республики Саха (Якутия) + 'b2ec295c-47a4-4be9-a6f8-827096f9857d', -- Военный комиссариат Булунского и Жиганского улусов Республики Саха (Якутия) + 'eaffdb79-767f-405c-a1b1-b48bdc63add8', -- Военный комиссариат Усть-Янского Аллаиховского и Абыйского улусов Республики Саха (Якутия) + '354f7fbd-467f-4f41-aaad-f0e2e139527e', -- Военный комиссариат города Воркута Республики Коми + 'ce2b0297-d1e8-422a-8367-b7e3a5cc7a40', -- Военный комиссариат города Инта Республики Коми + 'c023af4a-ad27-4539-a1f9-7a3251634fdb', -- Военный комиссариат города Печора и Печорского района Республики Коми + '0e44335f-02db-43ac-b713-f09532e675a3', -- Военный комиссариат городов Ухта Вуктыл и Сосногорск Вуктыльского и Сосногорского районов Республики Коми + 'e55859e6-9d34-47b7-a969-efc8ceea708b', -- Военный комиссариат Ижемского района Республики Коми + 'b9d1002f-d2a7-4d2f-910b-637b2cf332dd', -- Военный комиссариат Княжпогостского и Усть-Вымского районов Республики Коми + 'ef2da2e5-0cc1-479c-b2de-c334c95b5514', -- Военный комиссариат Сысольского Койгородского и Прилузского районов Республики Коми + '53851a38-fc95-400b-9ff7-00b4dcad2918', -- Военный комиссариат города Сыктывкар Сыктывдинского и Корткеросского районов Республики Коми + '2dc1de3a-712a-4376-8baf-7833a43f6678', -- Военный комиссариат Троицко-Печорского района Республики Коми + 'a6db3dba-65e3-4ad9-a76e-a846efec2a2d', -- Военный комиссариат Удорского района Республики Коми + '630ba6cd-c979-4d35-b128-f6e2527949ef', -- Военный комиссариат города Усинск и Усинского района Республики Коми + '231361d3-3d34-4409-8a30-20c4b013d62c', -- Военный комиссариат Усть-Куломского района Республики Коми + '6466af82-e8be-416d-88c9-cef02f99fef0', -- Военный комиссариат Усть-Цилемского района Республики Коми + '83c89e3d-aa69-43bc-857c-59ce405b9e1e', -- Военный комиссариат Туруханского района и города Игарка Красноярского края + 'ec2c03cd-9c13-4980-9f6d-ba4a93a9a411', -- Военный комиссариат города Лесосибирск и Мотыгинского района Красноярского края + 'd386bf1f-42bd-436f-8b14-288b2cbe1046', -- какой то Северо-Енисейский безымянный военкомат + '61b5758c-c72b-426e-a96f-e146d89197c2', -- Военный комиссариат города Норильск и Таймырского Долгано-Ненецкого района Красноярского края + '9f1a1e68-2fd2-478c-b6ba-b04cc6b752b3', -- Военный комиссариат Эвенкийского района Красноярского края + '7cb704d4-b600-4ce9-bddf-723e1b024f98', -- Военный комиссариат Гайнского района Пермского края + 'be515915-26e8-41c8-af21-3b53d991d632', -- Военный комиссариат Кочевского и Косинского районов Пермского края + '28061db5-22ef-46f6-a2af-043c47288885', -- Военный комиссариат Ненецкого автономного округа + 'ce08e909-5a14-480f-b931-bff172872ac6', -- ВК городских округов Курильский и Северо-Курильский Сахалинской области + 'f578c2c0-72fe-4f3b-bcf7-659bda20f511', -- Военный комиссариат города Губкинский Пуровского и Красноселькупского районов Ямало-Ненецкого автономного округа + '5a0c4a0c-1d00-4528-9dcc-73c8d6dd52b9', -- Военный комиссариат города Лабытнанги и Шурышкарского района Ямало-Ненецкого автономного округа + '50af0e45-872b-48e8-bf74-c13b2162e3ce', -- Военный комиссариат городов Ноябрьск и Муравленко Ямало-Ненецкого автономного округа + 'a8852d04-516d-4ea4-9979-5eb149e9ac7e', -- Военный комиссариат города Новый Уренгой Ямало-Ненецкого автономного округа + '9464d4df-9402-4eb2-abb2-c68b079ad5cf', -- Военный комиссариат города Салехард и Приуральского района Ямало-Ненецкого автономного округа + 'b778245a-0257-4d93-a51c-fa7005e4a480', -- Военный комиссариат города Надым и Надымского района Ямало-Ненецкого автономного округа + '2e18cd11-bbca-406d-a2b8-0a89cbb2046e', -- Военный комиссариат Тазовского района Ямало-Ненецкого автономного округа + 'a4126a2d-3412-47cd-aa90-caa62e202c7f' -- Военный комиссариат Ямальского района Ямало-Ненецкого автономного округа + ) +) +SELECT array_agg(idm_id) AS ARRAY_MIL_COM +FROM ids +GROUP BY rn / 200; + N + + + 512 + 352 + + + + + + diff --git a/mappings/mil_com/parameters/season_separation/array_season_recruitments_all_parallel.hpl b/mappings/mil_com/parameters/season_separation/array_season_recruitments_all_parallel.hpl new file mode 100644 index 0000000..b2d6ede --- /dev/null +++ b/mappings/mil_com/parameters/season_separation/array_season_recruitments_all_parallel.hpl @@ -0,0 +1,154 @@ + + + + array_season_recruitments_all_parallel + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/03/20 10:44:35.298 + - + 2025/03/20 10:44:35.298 + + + + + + Table input остальные + Copy rows to result 2 + Y + + + + Copy rows to result 2 + RowsToResult + + Y + + 1 + + none + + + + + 832 + 352 + + + + Table input остальные + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + WITH ids AS ( + SELECT idm_id, + NTILE(5) OVER (ORDER BY idm_id) AS part -- Разбиваем на 5 частей + FROM ervu_dashboard.recruitment + WHERE schema IN ('Department', 'Organization', 'Region') + AND idm_id NOT IN ( + '55158cc6-1342-4701-ab2b-855a6389906d'::UUID, -- Военный комиссариат Провиденского и Чукотского районов Чукотского автономного округа + 'd35584cf-8405-42ea-9944-25bfe5725347', -- Военный комиссариат Охотского Аяно-Майского и Тугуро-Чумиканского районов Хабаровского края + 'b960d9a3-97c5-42ff-9fa7-1843114392a0', -- Военный комиссариат Тигильского Карагинского Олюторского и Пенжинского районов Камчатского края + 'ab335d7b-7966-470d-89b3-72cee950839d', -- Военный комиссариат Оймяконского и Момского улусов Республики Саха (Якутия) + '1dea48be-40fb-42bd-9df8-14d0cfd3fd12', -- Военный комиссариат Нижнеколымского и Среднеколымского улусов Республики Саха (Якутия) + '018b8e04-2714-402a-961b-39877b9ee698', -- Военный комиссариат Верхоянского и Эвено-Бытантайского улусов Республики Саха (Якутия) + '18e818af-ef45-49ee-aea2-d0f3516ddf1d', -- Военный комиссариат Верхнеколымского улуса Республики Саха (Якутия) + 'b2ec295c-47a4-4be9-a6f8-827096f9857d', -- Военный комиссариат Булунского и Жиганского улусов Республики Саха (Якутия) + 'eaffdb79-767f-405c-a1b1-b48bdc63add8', -- Военный комиссариат Усть-Янского Аллаиховского и Абыйского улусов Республики Саха (Якутия) + '354f7fbd-467f-4f41-aaad-f0e2e139527e', -- Военный комиссариат города Воркута Республики Коми + 'ce2b0297-d1e8-422a-8367-b7e3a5cc7a40', -- Военный комиссариат города Инта Республики Коми + 'c023af4a-ad27-4539-a1f9-7a3251634fdb', -- Военный комиссариат города Печора и Печорского района Республики Коми + '0e44335f-02db-43ac-b713-f09532e675a3', -- Военный комиссариат городов Ухта Вуктыл и Сосногорск Вуктыльского и Сосногорского районов Республики Коми + 'e55859e6-9d34-47b7-a969-efc8ceea708b', -- Военный комиссариат Ижемского района Республики Коми + 'b9d1002f-d2a7-4d2f-910b-637b2cf332dd', -- Военный комиссариат Княжпогостского и Усть-Вымского районов Республики Коми + 'ef2da2e5-0cc1-479c-b2de-c334c95b5514', -- Военный комиссариат Сысольского Койгородского и Прилузского районов Республики Коми + '53851a38-fc95-400b-9ff7-00b4dcad2918', -- Военный комиссариат города Сыктывкар Сыктывдинского и Корткеросского районов Республики Коми + '2dc1de3a-712a-4376-8baf-7833a43f6678', -- Военный комиссариат Троицко-Печорского района Республики Коми + 'a6db3dba-65e3-4ad9-a76e-a846efec2a2d', -- Военный комиссариат Удорского района Республики Коми + '630ba6cd-c979-4d35-b128-f6e2527949ef', -- Военный комиссариат города Усинск и Усинского района Республики Коми + '231361d3-3d34-4409-8a30-20c4b013d62c', -- Военный комиссариат Усть-Куломского района Республики Коми + '6466af82-e8be-416d-88c9-cef02f99fef0', -- Военный комиссариат Усть-Цилемского района Республики Коми + '83c89e3d-aa69-43bc-857c-59ce405b9e1e', -- Военный комиссариат Туруханского района и города Игарка Красноярского края + 'ec2c03cd-9c13-4980-9f6d-ba4a93a9a411', -- Военный комиссариат города Лесосибирск и Мотыгинского района Красноярского края + 'd386bf1f-42bd-436f-8b14-288b2cbe1046', -- какой то Северо-Енисейский безымянный военкомат + '61b5758c-c72b-426e-a96f-e146d89197c2', -- Военный комиссариат города Норильск и Таймырского Долгано-Ненецкого района Красноярского края + '9f1a1e68-2fd2-478c-b6ba-b04cc6b752b3', -- Военный комиссариат Эвенкийского района Красноярского края + '7cb704d4-b600-4ce9-bddf-723e1b024f98', -- Военный комиссариат Гайнского района Пермского края + 'be515915-26e8-41c8-af21-3b53d991d632', -- Военный комиссариат Кочевского и Косинского районов Пермского края + '28061db5-22ef-46f6-a2af-043c47288885', -- Военный комиссариат Ненецкого автономного округа + 'ce08e909-5a14-480f-b931-bff172872ac6', -- ВК городских округов Курильский и Северо-Курильский Сахалинской области + 'f578c2c0-72fe-4f3b-bcf7-659bda20f511', -- Военный комиссариат города Губкинский Пуровского и Красноселькупского районов Ямало-Ненецкого автономного округа + '5a0c4a0c-1d00-4528-9dcc-73c8d6dd52b9', -- Военный комиссариат города Лабытнанги и Шурышкарского района Ямало-Ненецкого автономного округа + '50af0e45-872b-48e8-bf74-c13b2162e3ce', -- Военный комиссариат городов Ноябрьск и Муравленко Ямало-Ненецкого автономного округа + 'a8852d04-516d-4ea4-9979-5eb149e9ac7e', -- Военный комиссариат города Новый Уренгой Ямало-Ненецкого автономного округа + '9464d4df-9402-4eb2-abb2-c68b079ad5cf', -- Военный комиссариат города Салехард и Приуральского района Ямало-Ненецкого автономного округа + 'b778245a-0257-4d93-a51c-fa7005e4a480', -- Военный комиссариат города Надым и Надымского района Ямало-Ненецкого автономного округа + '2e18cd11-bbca-406d-a2b8-0a89cbb2046e', -- Военный комиссариат Тазовского района Ямало-Ненецкого автономного округа + 'a4126a2d-3412-47cd-aa90-caa62e202c7f' -- Военный комиссариат Ямальского района Ямало-Ненецкого автономного округа + ) +), +grouped AS ( + SELECT + array_agg(idm_id) FILTER (WHERE part = 1) AS part_1, + array_agg(idm_id) FILTER (WHERE part = 2) AS part_2, + array_agg(idm_id) FILTER (WHERE part = 3) AS part_3, + array_agg(idm_id) FILTER (WHERE part = 4) AS part_4, + array_agg(idm_id) FILTER (WHERE part = 5) AS part_5 + FROM ids +), +split_parts AS ( + SELECT + gs.row_num, + (SELECT array_agg(val) FROM unnest(part_1) WITH ORDINALITY AS t(val, ord) + WHERE ord > array_length(part_1, 1) * (gs.row_num - 1) / 2 + AND ord <= array_length(part_1, 1) * gs.row_num / 2) AS PART_RECRUITMENT_1, + (SELECT array_agg(val) FROM unnest(part_2) WITH ORDINALITY AS t(val, ord) + WHERE ord > array_length(part_2, 1) * (gs.row_num - 1) / 2 + AND ord <= array_length(part_2, 1) * gs.row_num / 2) AS PART_RECRUITMENT_2, + (SELECT array_agg(val) FROM unnest(part_3) WITH ORDINALITY AS t(val, ord) + WHERE ord > array_length(part_3, 1) * (gs.row_num - 1) / 2 + AND ord <= array_length(part_3, 1) * gs.row_num / 2) AS PART_RECRUITMENT_3, + (SELECT array_agg(val) FROM unnest(part_4) WITH ORDINALITY AS t(val, ord) + WHERE ord > array_length(part_4, 1) * (gs.row_num - 1) / 2 + AND ord <= array_length(part_4, 1) * gs.row_num / 2) AS PART_RECRUITMENT_4, + (SELECT array_agg(val) FROM unnest(part_5) WITH ORDINALITY AS t(val, ord) + WHERE ord > array_length(part_5, 1) * (gs.row_num - 1) / 2 + AND ord <= array_length(part_5, 1) * gs.row_num / 2) AS PART_RECRUITMENT_5 + FROM grouped + CROSS JOIN generate_series(1, 2) gs(row_num) +) +SELECT +PART_RECRUITMENT_1, +PART_RECRUITMENT_2, +PART_RECRUITMENT_3, +PART_RECRUITMENT_4, +PART_RECRUITMENT_5 +FROM split_parts; + N + + + 512 + 352 + + + + + + diff --git a/mappings/mil_com/recruitment_campaign.appeals(m_c).hpl b/mappings/mil_com/recruitment_campaign.appeals(m_c).hpl new file mode 100644 index 0000000..fcdb9a8 --- /dev/null +++ b/mappings/mil_com/recruitment_campaign.appeals(m_c).hpl @@ -0,0 +1,284 @@ + + + + recruitment_campaign.appeals(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 2 + Select values 3 2 + N + + + Table input (appeal_document) регионы + Get variables 3 2 + N + + + Select values 3 2 + Insert / update (main_dashboard.appeals) + N + + + Table input (appeal_document) регионы + Insert / update (main_dashboard.appeals) + Y + + + + Get variables 3 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REC_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 960 + 416 + + + + Insert / update (main_dashboard.appeals) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + spring_autumn + spring_autumn + + + = + recording_date + recording_date + + recruitment_campaign + appeals
+ + total_appeals + total_appeals + Y + + + average_consideration + average_consideration + Y + + + resolved + resolved + Y + + + not_resolved + not_resolved + Y + + + not_resolved_percent + not_resolved_percent + Y + + + average_rating + average_rating + Y + + + resolved_percent + resolved_percent + Y + + + recruitment_id + recruitment_id + N + + + spring_autumn + spring_autumn + N + +
+ N + + + 1200 + 336 + +
+ + Select values 3 2 + SelectValues + + Y + + 1 + + none + + + + N + + REC_ID + REC_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 1088 + 416 + + + + Table input (appeal_document) регионы + TableInput + + N + + 1 + + none + + + postgres.appeal-document-service + N + 0 + -- ad.extra_info->>'result' = '**' 1 - удовлетворена, 2 - частично удовлетворена, 3 - отказано в удовлетворении +WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +season_separations AS ( + SELECT 'Осень' AS spring_autumn + UNION ALL + SELECT 'Весна' AS spring_autumn +), +data_combinations AS ( + -- Создаём все комбинации target_recruitment_id и spring_autumn + SELECT + i.recruitment_id AS recruitment_id, + ss.spring_autumn + FROM ids i + CROSS JOIN season_separations ss +), +appeals_data AS ( + SELECT + vk_id AS recruitment_id, + COUNT(*) AS total_appeals, + ROUND(AVG((TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date)), 2) AS average_consideration, + COUNT(CASE WHEN ad.extra_info->>'result' in ('1', '2') THEN 1 ELSE 0 END) AS resolved, + COUNT(CASE WHEN ad.extra_info->>'result' = '3' THEN 1 ELSE 0 END) AS not_resolved + FROM public.appeal_document ad + WHERE vk_id::uuid IN (SELECT recruitment_id FROM ids) + AND ad.extra_info ->> 'resultDate' IS NOT NULL AND ad.extra_info ->> 'resultDate'!='' + GROUP BY vk_id +) +SELECT + current_date AS recording_date, + COALESCE(ad.total_appeals, 0) AS total_appeals, + COALESCE(ad.average_consideration, 0) AS average_consideration, + COALESCE(ad.resolved, 0) AS resolved, + COALESCE(ad.not_resolved, 0) AS not_resolved, + COALESCE(ROUND(COALESCE(ad.resolved, 0) * 100.0 / NULLIF(ad.total_appeals, 0), 2), 0) AS resolved_percent, + COALESCE(ROUND(COALESCE(ad.not_resolved, 0) * 100.0 / NULLIF(ad.total_appeals, 0), 2), 0) AS not_resolved_percent, + dc.recruitment_id, + 0 AS average_rating, + dc.spring_autumn +FROM data_combinations dc +LEFT JOIN appeals_data AS ad + ON ad.recruitment_id = dc.recruitment_id; + Y + + + 848 + 336 + + + + + +
diff --git a/mappings/mil_com/recruitment_campaign.subpoenas(m_c).hpl b/mappings/mil_com/recruitment_campaign.subpoenas(m_c).hpl new file mode 100644 index 0000000..f09b272 --- /dev/null +++ b/mappings/mil_com/recruitment_campaign.subpoenas(m_c).hpl @@ -0,0 +1,685 @@ + + + + recruitment_campaign.subpoenas(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/09 13:13:59.825 + - + 2024/08/09 13:13:59.825 + + + + + + Get variables 4 3 + Select values 4 3 + N + + + Table input (subpoena) осень/регионы + Get variables 4 3 + N + + + Select values 4 3 + Insert / update (recruitment_campaign.subpoenas) 3 + N + + + Table input (subpoena) осень/регионы + Insert / update (recruitment_campaign.subpoenas) 3 + N + + + Table input (subpoena) осень/регионы + Update recruitment_campaign.subpoenas + Y + + + + Get variables 4 3 + GetVariable + + Y + + 1 + + none + + + + + -1 + REC_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 592 + 624 + + + + Insert / update (recruitment_campaign.subpoenas) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + spring_autumn + spring_autumn + + + = + recording_date + recording_date + + recruitment_campaign + subpoenas
+ + subpoena + count_subpoena + Y + + + appeared + count_appeared + Y + + + not_appeared + count_not_appeared + Y + + + not_ap_good_reason + count_not_ap_good_reason + Y + + + introduced_measures + count_introduced_measures + Y + + + ap_not_required + count_ap_not_required + Y + + + restrictions_applied + count_restrictions_applied + Y + + + appeared_percent + appeared_percent + Y + + + not_appeared_percent + not_appeared_percent + Y + + + not_ap_good_reason_percent + not_ap_good_reason_percent + Y + + + ap_not_required_percent + ap_not_required_percent + Y + + + restrictions_applied_percent + restrictions_applied_percent + Y + + + introduced_measures_percent + introduced_measures_percent + Y + + + recruitment_id + recruitment_id + N + + + rest + rest + Y + + + spring_autumn + spring_autumn + N + + + count_not_delivery + count_not_delivery + Y + + + appear_date_is_good + appear_date_is_good + Y + + + not_delivery_percent + not_delivery_percent + Y + + + appear_date_is_good_percent + appear_date_is_good_percent + Y + +
+ N + + + 1040 + 624 + +
+ + Select values 4 3 + SelectValues + + Y + + 1 + + none + + + + N + + REC_ID + REC_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 768 + 624 + + + + Table input (subpoena) осень/регионы + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +subpoena_data AS ( + SELECT + s.id AS subpoena_id, + s.create_date, + s.visit_date, + s.department_id::uuid AS recruitment_id, + s.status_id, + ssh.code AS sub_stat_hist, + s.send_date, + sh.date_time::timestamp AS history_date, + rdi.restriction_document_cancel_id AS restr_dc, + rdi.applied_date AS ap_date, + rdi.id AS rdi_id, + ssi.delivery_code AS d_code, + ssi.act_number + FROM subpoena s + JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY date_time DESC) AS rn, + subpoena_id, + status_id, + date_time + FROM subpoena_history sh + ) sh on sh.subpoena_id = s.id + JOIN subpoena_status AS ssh ON ssh.id = sh.status_id + JOIN subpoena_reason AS sr ON sr.id = s.reason_id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY created_at DESC) AS rn_d, + subpoena_id, + id + FROM restriction_document + ) AS rd ON rd.subpoena_id = s.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY restriction_document_create_id ORDER BY created_at DESC) AS rn_di, + restriction_document_create_id, + restriction_document_cancel_id, + applied_date, + id + FROM restriction_document_item + ) AS rdi ON rdi.restriction_document_create_id = rd.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY send_date DESC) AS rn_si, + subpoena_id, + delivery_code, + act_number + FROM subpoena_send_info + ) AS ssi ON ssi.subpoena_id = s.id + WHERE sh.rn = 1 AND rd.rn_d = 1 AND rdi.rn_di = 1 AND ssi.rn_si = 1 + AND sr.type = '3' + AND ssh.code NOT IN ('3.7','3.72', '3.71') -- 3.14 снесено от 14.03.2025 + AND s.department_id::uuid IN (SELECT recruitment_id FROM ids) + AND EXISTS ( + SELECT 1 + FROM subpoena_history sh2 + WHERE sh2.subpoena_id = s.id + AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') + ) +), +season_separations AS ( + SELECT distinct + ls.recruitment_id, + ls.create_date, + ls.visit_date, + ls.sub_stat_hist, + ls.subpoena_id, + ls.history_date, + ls.send_date, + ls.restr_dc, + ls.ap_date, + ls.d_code, + ls.act_number, + ls.rdi_id, + CASE + WHEN (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '3 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '6 months' + INTERVAL '15 days') + THEN 'Весна' + WHEN (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '9 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '12 months' + INTERVAL '31 days') + THEN 'Осень' + END AS spring_autumn + FROM subpoena_data ls + WHERE --ls.create_date >= DATE_TRUNC('year', CURRENT_DATE) + --AND + ((ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '3 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '6 months' + INTERVAL '15 days') + OR + (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '9 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '12 months' + INTERVAL '31 days')) +), +season_separations_clean AS ( + SELECT DISTINCT recruitment_id, spring_autumn FROM season_separations +), +t1 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_subpoena + FROM season_separations ss + WHERE sub_stat_hist IS NOT NULL + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t2 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + ROUND( + AVG( + CASE + WHEN ss.sub_stat_hist = '4.2' THEN + GREATEST(EXTRACT(DAY FROM (ss.history_date::timestamp - ss.visit_date::timestamp)), 0) + ELSE + GREATEST(EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ss.visit_date::timestamp)), 0) + END + ) FILTER (WHERE + CASE + WHEN ss.sub_stat_hist = '4.2' THEN + EXTRACT(DAY FROM (ss.history_date::timestamp - ss.visit_date::timestamp)) + ELSE + EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ss.visit_date::timestamp)) + END > 0 + ), 1 + ) AS average_appeared + FROM season_separations ss + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t3 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_appeared + FROM season_separations ss + WHERE ss.sub_stat_hist IN ('4.1', '4.2') -- снесен 4 статус от 14.03.2025 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t4 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_not_appeared + FROM season_separations ss + WHERE sub_stat_hist = '5' + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t5 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_not_ap_good_reason + FROM season_separations ss + WHERE sub_stat_hist = '5.1' + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t6 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_ap_not_required + FROM season_separations ss + WHERE sub_stat_hist IN ('3.8', '5.2') + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t7 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_restrictions_applied + FROM season_separations ss + WHERE restr_dc IS NULL + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t8 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_introduced_measures + FROM season_separations ss + WHERE restr_dc IS NULL AND ap_date IS NOT NULL + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t9 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_paper + FROM season_separations ss + WHERE d_code != '7' + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t10 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_electron + FROM season_separations ss + WHERE d_code = '7' + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t11 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT (DISTINCT ss.rdi_id) AS count_restrictions + FROM season_separations ss + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t12 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_not_delivery + FROM season_separations ss + WHERE ss.act_number IS NOT NULL + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t13 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS appear_date_is_good + FROM season_separations ss + WHERE ss.sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') + GROUP BY ss.recruitment_id, ss.spring_autumn +) +SELECT + current_date AS recording_date, + COALESCE(t1.count_subpoena, 0) AS count_subpoena, + COALESCE(t2.average_appeared, 0) AS average_appeared, + COALESCE(t3.count_appeared, 0) AS count_appeared, + COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, + COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, + COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, + COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, + COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, + COALESCE(t9.count_paper, 0) AS count_paper, + COALESCE(t10.count_electron, 0) AS count_electron, + COALESCE(t11.count_restrictions, 0) AS count_restrictions, + COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, + COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, + ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appeared_percent, + ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_appeared_percent, + ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_ap_good_reason_percent, + ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS ap_not_required_percent, + ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS electron_percent, + ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS paper_percent, + ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS restrictions_applied_percent, + ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS introduced_measures_percent, + ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_delivery_percent, + ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appear_date_is_good_percent, + ss.recruitment_id, + 0 AS rest, + ss.spring_autumn +FROM season_separations_clean ss +LEFT JOIN t1 ON ss.recruitment_id = t1.recruitment_id AND ss.spring_autumn = t1.spring_autumn +LEFT JOIN t2 ON ss.recruitment_id = t2.recruitment_id AND ss.spring_autumn = t2.spring_autumn +LEFT JOIN t3 ON ss.recruitment_id = t3.recruitment_id AND ss.spring_autumn = t3.spring_autumn +LEFT JOIN t4 ON ss.recruitment_id = t4.recruitment_id AND ss.spring_autumn = t4.spring_autumn +LEFT JOIN t5 ON ss.recruitment_id = t5.recruitment_id AND ss.spring_autumn = t5.spring_autumn +LEFT JOIN t6 ON ss.recruitment_id = t6.recruitment_id AND ss.spring_autumn = t6.spring_autumn +LEFT JOIN t7 ON ss.recruitment_id = t7.recruitment_id AND ss.spring_autumn = t7.spring_autumn +LEFT JOIN t8 ON ss.recruitment_id = t8.recruitment_id AND ss.spring_autumn = t8.spring_autumn +LEFT JOIN t9 ON ss.recruitment_id = t9.recruitment_id AND ss.spring_autumn = t9.spring_autumn +LEFT JOIN t10 ON ss.recruitment_id = t10.recruitment_id AND ss.spring_autumn = t10.spring_autumn +LEFT JOIN t11 ON ss.recruitment_id = t11.recruitment_id AND ss.spring_autumn = t11.spring_autumn +LEFT JOIN t12 ON ss.recruitment_id = t12.recruitment_id AND ss.spring_autumn = t12.spring_autumn +LEFT JOIN t13 ON ss.recruitment_id = t13.recruitment_id AND ss.spring_autumn = t13.spring_autumn + Y + + + 464 + 400 + + + + Update recruitment_campaign.subpoenas + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + + = + recruitment_id + recruitment_id + + + + = + spring_autumn + spring_autumn + + + + = + recording_date + recording_date + + + recruitment_campaign + subpoenas
+ + subpoena + count_subpoena + + + appeared + count_appeared + + + not_appeared + count_not_appeared + + + not_ap_good_reason + count_not_ap_good_reason + + + ap_not_required + count_ap_not_required + + + restrictions_applied + count_restrictions_applied + + + appeared_percent + appeared_percent + + + not_appeared_percent + not_appeared_percent + + + not_ap_good_reason_percent + not_ap_good_reason_percent + + + ap_not_required_percent + ap_not_required_percent + + + restrictions_applied_percent + restrictions_applied_percent + + + introduced_measures + count_introduced_measures + + + introduced_measures_percent + introduced_measures_percent + + + count_not_delivery + count_not_delivery + + + appear_date_is_good + appear_date_is_good + + + not_delivery_percent + not_delivery_percent + + + appear_date_is_good_percent + appear_date_is_good_percent + +
+ N + Y + + + 1040 + 400 + +
+ + + +
diff --git a/mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_campaign.subpoenas(m_c).hpl b/mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_campaign.subpoenas(m_c).hpl new file mode 100644 index 0000000..0a7e8ab --- /dev/null +++ b/mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_campaign.subpoenas(m_c).hpl @@ -0,0 +1,702 @@ + + + + recruitment_campaign.subpoenas(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/09 13:13:59.825 + - + 2024/08/09 13:13:59.825 + + + + + + Get variables 4 3 + Select values 4 3 + N + + + Table input (subpoena) осень/регионы + Get variables 4 3 + N + + + Select values 4 3 + Insert / update (recruitment_campaign.subpoenas) 3 + N + + + Table input (subpoena) осень/регионы + Insert / update (recruitment_campaign.subpoenas) 3 + N + + + Table input (subpoena) осень/регионы + Update recruitment_campaign.subpoenas + Y + + + + Get variables 4 3 + GetVariable + + Y + + 1 + + none + + + + + -1 + REC_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 592 + 512 + + + + Insert / update (recruitment_campaign.subpoenas) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + spring_autumn + spring_autumn + + + = + recording_date + recording_date + + recruitment_campaign + subpoenas
+ + subpoena + count_subpoena + Y + + + appeared + count_appeared + Y + + + not_appeared + count_not_appeared + Y + + + not_ap_good_reason + count_not_ap_good_reason + Y + + + introduced_measures + count_introduced_measures + Y + + + ap_not_required + count_ap_not_required + Y + + + restrictions_applied + count_restrictions_applied + Y + + + appeared_percent + appeared_percent + Y + + + not_appeared_percent + not_appeared_percent + Y + + + not_ap_good_reason_percent + not_ap_good_reason_percent + Y + + + ap_not_required_percent + ap_not_required_percent + Y + + + restrictions_applied_percent + restrictions_applied_percent + Y + + + introduced_measures_percent + introduced_measures_percent + Y + + + recruitment_id + recruitment_id + N + + + rest + rest + Y + + + spring_autumn + spring_autumn + N + + + count_not_delivery + count_not_delivery + Y + + + appear_date_is_good + appear_date_is_good + Y + + + not_delivery_percent + not_delivery_percent + Y + + + appear_date_is_good_percent + appear_date_is_good_percent + Y + +
+ N + + + 960 + 400 + +
+ + Select values 4 3 + SelectValues + + Y + + 1 + + none + + + + N + + REC_ID + REC_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 768 + 512 + + + + Table input (subpoena) осень/регионы + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +subpoena_data AS ( + SELECT + s.id AS subpoena_id, + s.recruit_id, + rdi.status_applied, + s.create_date, + s.visit_date, + s.department_id::uuid AS recruitment_id, + s.status_id, + ssh.code AS sub_stat_hist, + s.send_date, + sh.date_time::timestamp AS history_date, + rdi.restriction_document_cancel_id AS restr_dc, + rdi.applied_date AS ap_date, + rdi.id AS rdi_id, + ssi.delivery_code AS d_code, + ssi.act_number, + sh.rn, + rd.rn_d, + --rdi.rn_di, + ssi.rn_si + FROM subpoena s + JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY date_time DESC) AS rn, + subpoena_id, + status_id, + date_time + FROM subpoena_history sh + ) sh on sh.subpoena_id = s.id + JOIN subpoena_status AS ssh ON ssh.id = sh.status_id + JOIN subpoena_reason AS sr ON sr.id = s.reason_id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY created_at DESC) AS rn_d, + subpoena_id, + id + FROM restriction_document + ) AS rd ON rd.subpoena_id = s.id + LEFT JOIN ( + SELECT + restriction_document_create_id, + restriction_document_cancel_id, + status_applied, + applied_date, + id + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY restriction_document_create_id ORDER BY created_at DESC) AS rn_di, + * + FROM restriction_document_item + ) sub + WHERE rn_di = 1 + ) AS rdi ON rdi.restriction_document_create_id = rd.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY send_date DESC) AS rn_si, + subpoena_id, + delivery_code, + act_number + FROM subpoena_send_info + ) AS ssi ON ssi.subpoena_id = s.id + WHERE --sh.rn = 1 AND rd.rn_d = 1 /*AND rdi.rn_di = 1*/ --AND ssi.rn_si = 1 + --AND +sr.type = '3' + AND ssh.code NOT IN ('3.7','3.72', '3.71') -- 3.14 снесено от 14.03.2025 + AND s.department_id::uuid IN (SELECT recruitment_id FROM ids) + AND EXISTS ( + SELECT 1 + FROM subpoena_history sh2 + WHERE sh2.subpoena_id = s.id + AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') + ) +), +season_separations AS ( + SELECT distinct + ls.recruitment_id, + ls.recruit_id, + ls.status_applied, + ls.create_date, + ls.visit_date, + ls.sub_stat_hist, + ls.subpoena_id, + ls.history_date, + ls.send_date, + ls.restr_dc, + ls.ap_date, + ls.d_code, + ls.act_number, + ls.rdi_id, + ls.rn, + ls.rn_d, + --rdi.rn_di, + ls.rn_si, + CASE + WHEN (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '3 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '6 months' + INTERVAL '15 days') + THEN 'Весна' + WHEN (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '9 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '12 months' + INTERVAL '31 days') + THEN 'Осень' + END AS spring_autumn + FROM subpoena_data ls + WHERE --ls.create_date >= DATE_TRUNC('year', CURRENT_DATE) + --AND + ((ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '3 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '6 months' + INTERVAL '15 days') + OR + (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '9 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '12 months' + INTERVAL '31 days')) +), +season_separations_clean AS ( + SELECT DISTINCT recruitment_id, spring_autumn FROM season_separations +), +t1 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_subpoena + FROM season_separations ss + WHERE sub_stat_hist IS NOT NULL and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t2 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + ROUND( + AVG( + CASE + WHEN ss.sub_stat_hist = '4.2' THEN + GREATEST(EXTRACT(DAY FROM (ss.history_date::timestamp - ss.visit_date::timestamp)), 0) + ELSE + GREATEST(EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ss.visit_date::timestamp)), 0) + END + ) FILTER (WHERE + CASE + WHEN ss.sub_stat_hist = '4.2' THEN + EXTRACT(DAY FROM (ss.history_date::timestamp - ss.visit_date::timestamp)) + ELSE + EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ss.visit_date::timestamp)) + END > 0 + ), 1 + ) AS average_appeared + FROM season_separations ss +where ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t3 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_appeared + FROM season_separations ss + WHERE ss.sub_stat_hist IN ('4.1', '4.2') and ss.rn = 1 -- снесен 4 статус от 14.03.2025 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t4 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_not_appeared + FROM season_separations ss + WHERE sub_stat_hist = '5' and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t5 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_not_ap_good_reason + FROM season_separations ss + WHERE sub_stat_hist = '5.1' and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t6 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_ap_not_required + FROM season_separations ss + WHERE sub_stat_hist IN ('3.8', '5.2') and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t7 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(distinct recruit_id) AS count_restrictions_applied + FROM season_separations ss + WHERE rdi_id IS NOT NULL AND restr_dc IS NULL and ss.rn = 1 and ss.rn_d = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t8 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(distinct recruit_id) AS count_introduced_measures + FROM season_separations ss + WHERE status_applied = '11' and ss.rn = 1 and ss.rn_d = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t9 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_paper + FROM season_separations ss + WHERE d_code != '7' and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t10 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_electron + FROM season_separations ss + WHERE d_code = '7' and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t11 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT (DISTINCT ss.rdi_id) AS count_restrictions + FROM season_separations ss +where ss.rn_d = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t12 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_not_delivery + FROM season_separations ss + WHERE ss.act_number IS NOT NULL and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t13 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS appear_date_is_good + FROM season_separations ss + WHERE ss.sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +) +SELECT + current_date AS recording_date, + COALESCE(t1.count_subpoena, 0) AS count_subpoena, + COALESCE(t2.average_appeared, 0) AS average_appeared, + COALESCE(t3.count_appeared, 0) AS count_appeared, + COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, + COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, + COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, + COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, + COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, + COALESCE(t9.count_paper, 0) AS count_paper, + COALESCE(t10.count_electron, 0) AS count_electron, + COALESCE(t11.count_restrictions, 0) AS count_restrictions, + COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, + COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, + ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appeared_percent, + ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_appeared_percent, + ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_ap_good_reason_percent, + ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS ap_not_required_percent, + ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS electron_percent, + ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS paper_percent, + ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS restrictions_applied_percent, + ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS introduced_measures_percent, + ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_delivery_percent, + ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appear_date_is_good_percent, + ss.recruitment_id, + 0 AS rest, + ss.spring_autumn +FROM season_separations_clean ss +LEFT JOIN t1 ON ss.recruitment_id = t1.recruitment_id AND ss.spring_autumn = t1.spring_autumn +LEFT JOIN t2 ON ss.recruitment_id = t2.recruitment_id AND ss.spring_autumn = t2.spring_autumn +LEFT JOIN t3 ON ss.recruitment_id = t3.recruitment_id AND ss.spring_autumn = t3.spring_autumn +LEFT JOIN t4 ON ss.recruitment_id = t4.recruitment_id AND ss.spring_autumn = t4.spring_autumn +LEFT JOIN t5 ON ss.recruitment_id = t5.recruitment_id AND ss.spring_autumn = t5.spring_autumn +LEFT JOIN t6 ON ss.recruitment_id = t6.recruitment_id AND ss.spring_autumn = t6.spring_autumn +LEFT JOIN t7 ON ss.recruitment_id = t7.recruitment_id AND ss.spring_autumn = t7.spring_autumn +LEFT JOIN t8 ON ss.recruitment_id = t8.recruitment_id AND ss.spring_autumn = t8.spring_autumn +LEFT JOIN t9 ON ss.recruitment_id = t9.recruitment_id AND ss.spring_autumn = t9.spring_autumn +LEFT JOIN t10 ON ss.recruitment_id = t10.recruitment_id AND ss.spring_autumn = t10.spring_autumn +LEFT JOIN t11 ON ss.recruitment_id = t11.recruitment_id AND ss.spring_autumn = t11.spring_autumn +LEFT JOIN t12 ON ss.recruitment_id = t12.recruitment_id AND ss.spring_autumn = t12.spring_autumn +LEFT JOIN t13 ON ss.recruitment_id = t13.recruitment_id AND ss.spring_autumn = t13.spring_autumn + Y + + + 464 + 400 + + + + Update recruitment_campaign.subpoenas + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + spring_autumn + spring_autumn + + + = + recording_date + recording_date + + recruitment_campaign + subpoenas
+ + subpoena + count_subpoena + + + appeared + count_appeared + + + not_appeared + count_not_appeared + + + not_ap_good_reason + count_not_ap_good_reason + + + ap_not_required + count_ap_not_required + + + restrictions_applied + count_restrictions_applied + + + appeared_percent + appeared_percent + + + not_appeared_percent + not_appeared_percent + + + not_ap_good_reason_percent + not_ap_good_reason_percent + + + ap_not_required_percent + ap_not_required_percent + + + restrictions_applied_percent + restrictions_applied_percent + + + introduced_measures + count_introduced_measures + + + introduced_measures_percent + introduced_measures_percent + + + count_not_delivery + count_not_delivery + + + appear_date_is_good + appear_date_is_good + + + not_delivery_percent + not_delivery_percent + + + appear_date_is_good_percent + appear_date_is_good_percent + +
+ N + Y + + + 960 + 240 + +
+ + + +
diff --git a/mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_campaign.subpoenas(m_c).hwf b/mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_campaign.subpoenas(m_c).hwf new file mode 100644 index 0000000..4c2f5d9 --- /dev/null +++ b/mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_campaign.subpoenas(m_c).hwf @@ -0,0 +1,487 @@ + + + recruitment_campaign.subpoenas(m_c) + Y + + + + - + 2025/03/28 13:41:42.903 + - + 2025/03/28 13:41:42.903 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 416 + 304 + + + + SQL recruitment_campaign.subpoenas + + SQL + + ervu-dashboard + N + DELETE FROM recruitment_campaign.subpoenas +WHERE recording_date = current_date + AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') + N + N + Y + 624 + 304 + + + + array_season_recruitments.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_com/parameters/season_separation/array_season_recruitments.hpl + Basic + + Y + + N + local + N + N + Y + N + 832 + 176 + + + + array_season_recruitments_all.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_com/parameters/season_separation/array_season_recruitments_all.hpl + Basic + + Y + + N + local + N + N + Y + N + 832 + 416 + + + + recruitment_season_combination_uniq.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_season_combination_uniq.hpl + Basic + + + ARR_MC_SP + ARRAY_MIL_COM_SP + + + ARR_MC_AU + ARRAY_MIL_COM_AU + + Y + + Y + local + N + N + Y + N + 1120 + 176 + + + + recruitment_season_combination.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_season_combination.hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 1120 + 416 + + + + recruitment_campaign.subpoenas(m_c)_uniq.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_campaign.subpoenas(m_c)_uniq.hpl + Basic + + + ARR_MC_SP + ARRAY_MIL_COM_SP + + + ARR_MC_AU + ARRAY_MIL_COM_AU + + Y + + Y + local + N + N + Y + N + 1408 + 112 + + + + recruitment_campaign.subpoenas(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_campaign.subpoenas(m_c).hpl + Basic + + + ARR_MC + ARRAY_MIL_COM + + Y + + Y + local + N + N + Y + N + 1408 + 464 + + + + Success uniq + + SUCCESS + + N + 1696 + 112 + + + + Success all + + SUCCESS + + N + 1696 + 464 + + + + Success + + SUCCESS + + N + 992 + 304 + + + + Success 2 + + SUCCESS + + N + 1248 + 304 + + + + array_season_recruitments.hpl 2 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_com/parameters/season_separation/array_season_recruitments.hpl + Basic + + Y + + N + local + N + N + Y + N + 1264 + 80 + + + + array_season_recruitments_all.hpl 2 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_com/parameters/season_separation/array_season_recruitments_all.hpl + Basic + + Y + + N + local + N + N + Y + N + 1216 + 528 + + + + + + Start + SQL recruitment_campaign.subpoenas + Y + Y + Y + + + SQL recruitment_campaign.subpoenas + array_season_recruitments.hpl + Y + Y + N + + + SQL recruitment_campaign.subpoenas + array_season_recruitments_all.hpl + Y + Y + N + + + array_season_recruitments.hpl + recruitment_season_combination_uniq.hpl + Y + Y + N + + + array_season_recruitments_all.hpl + recruitment_season_combination.hpl + Y + Y + N + + + recruitment_season_combination_uniq.hpl + recruitment_campaign.subpoenas(m_c)_uniq.hpl + N + Y + N + + + recruitment_season_combination.hpl + recruitment_campaign.subpoenas(m_c).hpl + N + Y + N + + + recruitment_campaign.subpoenas(m_c).hpl + Success all + Y + Y + N + + + recruitment_campaign.subpoenas(m_c)_uniq.hpl + Success uniq + Y + Y + N + + + array_season_recruitments_all.hpl + Success + N + N + Y + + + array_season_recruitments.hpl + Success + N + N + Y + + + recruitment_season_combination.hpl + Success 2 + N + N + Y + + + recruitment_season_combination_uniq.hpl + Success 2 + N + N + Y + + + recruitment_season_combination.hpl + array_season_recruitments_all.hpl 2 + Y + Y + N + + + array_season_recruitments_all.hpl 2 + recruitment_campaign.subpoenas(m_c).hpl + Y + Y + N + + + recruitment_season_combination_uniq.hpl + array_season_recruitments.hpl 2 + Y + Y + N + + + array_season_recruitments.hpl 2 + recruitment_campaign.subpoenas(m_c)_uniq.hpl + Y + Y + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 400 + 176 + уникальные + 78 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 400 + 448 + остальные + 70 + + + + diff --git a/mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_campaign.subpoenas(m_c)_uniq.hpl b/mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_campaign.subpoenas(m_c)_uniq.hpl new file mode 100644 index 0000000..da86027 --- /dev/null +++ b/mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_campaign.subpoenas(m_c)_uniq.hpl @@ -0,0 +1,799 @@ + + + + recruitment_campaign.subpoenas(m_c)_uniq + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/09 13:13:59.825 + - + 2024/08/09 13:13:59.825 + + + + + + Get variables 4 3 + Select values 4 3 + N + + + Table input (subpoena) осень/регионы + Get variables 4 3 + N + + + Select values 4 3 + Insert / update (recruitment_campaign.subpoenas) 3 + N + + + Table input (subpoena) осень/регионы + Insert / update (recruitment_campaign.subpoenas) 3 + N + + + Table input (subpoena) осень/регионы + Update recruitment_campaign.subpoenas + Y + + + + Get variables 4 3 + GetVariable + + Y + + 1 + + none + + + + + -1 + REC_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 592 + 624 + + + + Insert / update (recruitment_campaign.subpoenas) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + spring_autumn + spring_autumn + + + = + recording_date + recording_date + + recruitment_campaign + subpoenas
+ + subpoena + count_subpoena + Y + + + appeared + count_appeared + Y + + + not_appeared + count_not_appeared + Y + + + not_ap_good_reason + count_not_ap_good_reason + Y + + + introduced_measures + count_introduced_measures + Y + + + ap_not_required + count_ap_not_required + Y + + + restrictions_applied + count_restrictions_applied + Y + + + appeared_percent + appeared_percent + Y + + + not_appeared_percent + not_appeared_percent + Y + + + not_ap_good_reason_percent + not_ap_good_reason_percent + Y + + + ap_not_required_percent + ap_not_required_percent + Y + + + restrictions_applied_percent + restrictions_applied_percent + Y + + + introduced_measures_percent + introduced_measures_percent + Y + + + recruitment_id + recruitment_id + N + + + rest + rest + Y + + + spring_autumn + spring_autumn + N + + + count_not_delivery + count_not_delivery + Y + + + appear_date_is_good + appear_date_is_good + Y + + + not_delivery_percent + not_delivery_percent + Y + + + appear_date_is_good_percent + appear_date_is_good_percent + Y + +
+ N + + + 1040 + 624 + +
+ + Select values 4 3 + SelectValues + + Y + + 1 + + none + + + + N + + REC_ID + REC_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 768 + 624 + + + + Table input (subpoena) осень/регионы + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + 0 + WITH +ids AS ( + -- Весенние ID + SELECT unnest(string_to_array(nullif(trim(both '{}' from '${ARR_MC_SP}'), ''), ','))::uuid AS recruitment_id, + 'Весна' AS spring_autumn + UNION ALL + -- Осенние ID + SELECT unnest(string_to_array(nullif(trim(both '{}' from '${ARR_MC_AU}'), ''), ','))::uuid AS recruitment_id, + 'Осень' AS spring_autumn +), +subpoena_data AS ( + SELECT + s.id AS subpoena_id, + s.recruit_id, + rdi.status_applied, + s.create_date, + s.visit_date, + s.department_id::uuid AS recruitment_id, + s.status_id, + ssh.code AS sub_stat_hist, + s.send_date, + sh.date_time::timestamp AS history_date, + rdi.restriction_document_cancel_id AS restr_dc, + rdi.applied_date AS ap_date, + rdi.id AS rdi_id, + ssi.delivery_code AS d_code, + ssi.act_number, + 'Весна' AS season, +sh.rn, +rd.rn_d, +--rdi.rn_di +ssi.rn_si + FROM subpoena s + JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY date_time DESC) AS rn, + subpoena_id, + status_id, + date_time + FROM subpoena_history sh + ) sh on sh.subpoena_id = s.id + JOIN subpoena_status AS ssh ON ssh.id = sh.status_id + JOIN subpoena_reason AS sr ON sr.id = s.reason_id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY created_at DESC) AS rn_d, + subpoena_id, + id + FROM restriction_document + ) AS rd ON rd.subpoena_id = s.id + LEFT JOIN ( + SELECT + restriction_document_create_id, + restriction_document_cancel_id, + status_applied, + applied_date, + id + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY restriction_document_create_id ORDER BY created_at DESC) AS rn_di, + * + FROM restriction_document_item + ) sub + WHERE rn_di = 1 + ) AS rdi ON rdi.restriction_document_create_id = rd.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY send_date DESC) AS rn_si, + subpoena_id, + delivery_code, + act_number + FROM subpoena_send_info + ) AS ssi ON ssi.subpoena_id = s.id + WHERE --sh.rn = 1 AND rd.rn_d = 1 /*AND rdi.rn_di = 1 AND */--ssi.rn_si = 1 + --AND +sr.type = '3' + AND ssh.code NOT IN ('3.7','3.72', '3.71') -- 3.14 снесено от 14.03.2025 + AND s.department_id::uuid IN (SELECT recruitment_id FROM ids WHERE spring_autumn = 'Весна') + AND EXISTS ( + SELECT 1 + FROM subpoena_history sh2 + WHERE sh2.subpoena_id = s.id + AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') + ) + UNION ALL + SELECT + s.id AS subpoena_id, + s.recruit_id, + rdi.status_applied, + s.create_date, + s.visit_date, + s.department_id::uuid AS recruitment_id, + s.status_id, + ssh.code AS sub_stat_hist, + s.send_date, + sh.date_time::timestamp AS history_date, + rdi.restriction_document_cancel_id AS restr_dc, + rdi.applied_date AS ap_date, + rdi.id AS rdi_id, + ssi.delivery_code AS d_code, + ssi.act_number, + 'Осень' AS season, +sh.rn, +rd.rn_d, +--rdi.rn_di +ssi.rn_si + FROM subpoena s + JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY date_time DESC) AS rn, + subpoena_id, + status_id, + date_time + FROM subpoena_history sh + ) sh on sh.subpoena_id = s.id + JOIN subpoena_status AS ssh ON ssh.id = sh.status_id + JOIN subpoena_reason AS sr ON sr.id = s.reason_id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY created_at DESC) AS rn_d, + subpoena_id, + id + FROM restriction_document + ) AS rd ON rd.subpoena_id = s.id + LEFT JOIN ( + SELECT + restriction_document_create_id, + restriction_document_cancel_id, + status_applied, + applied_date, + id + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY restriction_document_create_id ORDER BY created_at DESC) AS rn_di, + * + FROM restriction_document_item + ) sub + WHERE rn_di = 1 + ) AS rdi ON rdi.restriction_document_create_id = rd.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY send_date DESC) AS rn_si, + subpoena_id, + delivery_code, + act_number + FROM subpoena_send_info + ) AS ssi ON ssi.subpoena_id = s.id + WHERE --sh.rn = 1 AND rd.rn_d = 1 /*AND rdi.rn_di = 1*/ --AND ssi.rn_si = 1 + --AND +sr.type = '3' + AND ssh.code NOT IN ('3.7','3.72', '3.71') -- 3.14 снесено от 14.03.2025 + AND s.department_id::uuid IN (SELECT recruitment_id FROM ids WHERE spring_autumn = 'Осень') + AND EXISTS ( + SELECT 1 + FROM subpoena_history sh2 + WHERE sh2.subpoena_id = s.id + AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') + ) +), +season_separations AS ( + SELECT distinct + ls.recruitment_id, + ls.recruit_id, + ls.status_applied, + ls.create_date, + ls.visit_date, + ls.sub_stat_hist, + ls.subpoena_id, + ls.history_date, + ls.send_date, + ls.restr_dc, + ls.ap_date, + ls.d_code, + ls.act_number, + ls.rdi_id, + 'Весна' AS spring_autumn, +ls.rn, +ls.rn_d, +--rdi.rn_di +ls.rn_si + FROM subpoena_data ls + WHERE (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '4 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '7 months' + INTERVAL '14 days') + AND ls.season = 'Весна' + + UNION ALL + + SELECT distinct + ls.recruitment_id, + ls.recruit_id, + ls.status_applied, + ls.create_date, + ls.visit_date, + ls.sub_stat_hist, + ls.subpoena_id, + ls.history_date, + ls.send_date, + ls.restr_dc, + ls.ap_date, + ls.d_code, + ls.act_number, + ls.rdi_id, + 'Осень' AS spring_autumn, +ls.rn, +ls.rn_d, +--rdi.rn_di +ls.rn_si + FROM subpoena_data ls + WHERE (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '10 months' + INTERVAL '1 day' + AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '12 months' + INTERVAL '30 days') + AND ls.season = 'Осень' +), +season_separations_clean AS ( + SELECT DISTINCT recruitment_id, spring_autumn FROM season_separations +), +t1 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_subpoena + FROM season_separations ss + WHERE sub_stat_hist IS NOT NULL and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t2 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + ROUND( + AVG( + CASE + WHEN ss.sub_stat_hist = '4.2' THEN + GREATEST(EXTRACT(DAY FROM (ss.history_date::timestamp - ss.visit_date::timestamp)), 0) + ELSE + GREATEST(EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ss.visit_date::timestamp)), 0) + END + ) FILTER (WHERE + CASE + WHEN ss.sub_stat_hist = '4.2' THEN + EXTRACT(DAY FROM (ss.history_date::timestamp - ss.visit_date::timestamp)) + ELSE + EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ss.visit_date::timestamp)) + END > 0 + ), 1 + ) AS average_appeared + FROM season_separations ss +where ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t3 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_appeared + FROM season_separations ss + WHERE ss.sub_stat_hist IN ('4.1', '4.2') and ss.rn = 1 -- снесен 4 статус от 14.03.2025 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t4 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_not_appeared + FROM season_separations ss + WHERE sub_stat_hist = '5' and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t5 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_not_ap_good_reason + FROM season_separations ss + WHERE sub_stat_hist = '5.1' and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t6 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_ap_not_required + FROM season_separations ss + WHERE sub_stat_hist IN ('3.8', '5.2') and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t7 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT recruit_id) AS count_restrictions_applied + FROM season_separations ss + WHERE rdi_id IS NOT NULL AND restr_dc IS NULL and ss.rn = 1 and ss.rn_d = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t8 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT recruit_id) AS count_introduced_measures + FROM season_separations ss + WHERE status_applied = '11' and ss.rn = 1 and ss.rn_d = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t9 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_paper + FROM season_separations ss + WHERE d_code != '7' and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t10 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_electron + FROM season_separations ss + WHERE d_code = '7' and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t11 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT (DISTINCT ss.rdi_id) AS count_restrictions + FROM season_separations ss +where ss.rn_d = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t12 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS count_not_delivery + FROM season_separations ss + WHERE ss.act_number IS NOT NULL and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +), +t13 AS ( + SELECT + ss.recruitment_id, + ss.spring_autumn, + COUNT(DISTINCT ss.subpoena_id) AS appear_date_is_good + FROM season_separations ss + WHERE ss.sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') and ss.rn = 1 + GROUP BY ss.recruitment_id, ss.spring_autumn +) +SELECT + current_date AS recording_date, + COALESCE(t1.count_subpoena, 0) AS count_subpoena, + COALESCE(t2.average_appeared, 0) AS average_appeared, + COALESCE(t3.count_appeared, 0) AS count_appeared, + COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, + COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, + COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, + COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, + COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, + COALESCE(t9.count_paper, 0) AS count_paper, + COALESCE(t10.count_electron, 0) AS count_electron, + COALESCE(t11.count_restrictions, 0) AS count_restrictions, + COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, + COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, + ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appeared_percent, + ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_appeared_percent, + ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_ap_good_reason_percent, + ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS ap_not_required_percent, + ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS electron_percent, + ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS paper_percent, + ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS restrictions_applied_percent, + ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS introduced_measures_percent, + ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_delivery_percent, + ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appear_date_is_good_percent, + ss.recruitment_id, + 0 AS rest, + ss.spring_autumn +FROM season_separations_clean ss +LEFT JOIN t1 ON ss.recruitment_id = t1.recruitment_id AND ss.spring_autumn = t1.spring_autumn +LEFT JOIN t2 ON ss.recruitment_id = t2.recruitment_id AND ss.spring_autumn = t2.spring_autumn +LEFT JOIN t3 ON ss.recruitment_id = t3.recruitment_id AND ss.spring_autumn = t3.spring_autumn +LEFT JOIN t4 ON ss.recruitment_id = t4.recruitment_id AND ss.spring_autumn = t4.spring_autumn +LEFT JOIN t5 ON ss.recruitment_id = t5.recruitment_id AND ss.spring_autumn = t5.spring_autumn +LEFT JOIN t6 ON ss.recruitment_id = t6.recruitment_id AND ss.spring_autumn = t6.spring_autumn +LEFT JOIN t7 ON ss.recruitment_id = t7.recruitment_id AND ss.spring_autumn = t7.spring_autumn +LEFT JOIN t8 ON ss.recruitment_id = t8.recruitment_id AND ss.spring_autumn = t8.spring_autumn +LEFT JOIN t9 ON ss.recruitment_id = t9.recruitment_id AND ss.spring_autumn = t9.spring_autumn +LEFT JOIN t10 ON ss.recruitment_id = t10.recruitment_id AND ss.spring_autumn = t10.spring_autumn +LEFT JOIN t11 ON ss.recruitment_id = t11.recruitment_id AND ss.spring_autumn = t11.spring_autumn +LEFT JOIN t12 ON ss.recruitment_id = t12.recruitment_id AND ss.spring_autumn = t12.spring_autumn +LEFT JOIN t13 ON ss.recruitment_id = t13.recruitment_id AND ss.spring_autumn = t13.spring_autumn + Y + + + 464 + 400 + + + + Update recruitment_campaign.subpoenas + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + spring_autumn + spring_autumn + + + = + recording_date + recording_date + + recruitment_campaign + subpoenas
+ + subpoena + count_subpoena + + + appeared + count_appeared + + + not_appeared + count_not_appeared + + + not_ap_good_reason + count_not_ap_good_reason + + + ap_not_required + count_ap_not_required + + + restrictions_applied + count_restrictions_applied + + + appeared_percent + appeared_percent + + + not_appeared_percent + not_appeared_percent + + + not_ap_good_reason_percent + not_ap_good_reason_percent + + + ap_not_required_percent + ap_not_required_percent + + + restrictions_applied_percent + restrictions_applied_percent + + + introduced_measures + count_introduced_measures + + + introduced_measures_percent + introduced_measures_percent + + + count_not_delivery + count_not_delivery + + + appear_date_is_good + appear_date_is_good + + + not_delivery_percent + not_delivery_percent + + + appear_date_is_good_percent + appear_date_is_good_percent + +
+ N + Y + + + 1056 + 400 + +
+ + + +
diff --git a/mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_season_combination.hpl b/mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_season_combination.hpl new file mode 100644 index 0000000..70e64bc --- /dev/null +++ b/mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_season_combination.hpl @@ -0,0 +1,126 @@ + + + + recruitment_season_combination + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/03/20 14:06:15.043 + - + 2025/03/20 14:06:15.043 + + + + + + Table input (person_registry) регион/осень + Insert / update (recruitment_campaign.subpoenas) + Y + + + + Insert / update (recruitment_campaign.subpoenas) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + + = + recording_date + recording_date + + + + = + spring_autumn + spring_autumn + + + recruitment_campaign + subpoenas
+ + recruitment_id + recruitment_id + N + + + spring_autumn + spring_autumn + N + + + recording_date + recording_date + N + +
+ N + + + 1168 + 304 + +
+ + Table input (person_registry) регион/осень + TableInput + + Y + + 1 + + none + + + postgres.person_registry + N + 0 + WITH +ids AS ( + -- Преобразуем строковый массив в таблицу UUID + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +season_separations AS ( + SELECT 'Весна' AS spring_autumn + UNION ALL + SELECT 'Осень' AS spring_autumn +) +SELECT + current_date AS recording_date, + i.recruitment_id AS recruitment_id, + ss.spring_autumn +FROM ids i +CROSS JOIN season_separations ss + Y + + + 624 + 304 + + + + + +
diff --git a/mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_season_combination_uniq.hpl b/mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_season_combination_uniq.hpl new file mode 100644 index 0000000..63a90b4 --- /dev/null +++ b/mappings/mil_com/recruitment_campaign.subpoenas(m_c)/recruitment_season_combination_uniq.hpl @@ -0,0 +1,124 @@ + + + + recruitment_season_combination_uniq + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/03/20 14:06:15.043 + - + 2025/03/20 14:06:15.043 + + + + + + Table input (person_registry) регион/осень + Insert / update (recruitment_campaign.subpoenas) + Y + + + + Insert / update (recruitment_campaign.subpoenas) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + + = + recording_date + recording_date + + + + = + spring_autumn + spring_autumn + + + recruitment_campaign + subpoenas
+ + recruitment_id + recruitment_id + N + + + spring_autumn + spring_autumn + N + + + recording_date + recording_date + N + +
+ N + + + 1056 + 320 + +
+ + Table input (person_registry) регион/осень + TableInput + + Y + + 1 + + none + + + postgres.person_registry + N + 0 + WITH ids AS ( + -- Весенние ID + SELECT unnest(string_to_array(nullif(trim(both '{}' from '${ARR_MC_SP}'), ''), ','))::uuid AS recruitment_id, + 'Весна' AS spring_autumn + UNION ALL + -- Осенние ID + SELECT unnest(string_to_array(nullif(trim(both '{}' from '${ARR_MC_AU}'), ''), ','))::uuid AS recruitment_id, + 'Осень' AS spring_autumn +) +SELECT + current_date AS recording_date, + i.recruitment_id AS recruitment_id, + i.spring_autumn +FROM ids i; + Y + + + 512 + 320 + + + + + +
diff --git a/mappings/mil_com/select_recruitments_milcom(m_c).hpl b/mappings/mil_com/select_recruitments_milcom(m_c).hpl new file mode 100644 index 0000000..85a6d98 --- /dev/null +++ b/mappings/mil_com/select_recruitments_milcom(m_c).hpl @@ -0,0 +1,83 @@ + + + + select_recruitments_milcom(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/15 14:58:19.728 + - + 2024/08/15 14:58:19.728 + + + + + + Table input/регион + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 512 + 208 + + + + Table input/регион + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + idm_id AS RECRUITMENT_ID, + parent_id AS PARENT_ID, + CASE + WHEN schema = 'Department' THEN 'Department' + WHEN schema = 'Organization' THEN 'REG_LVL' + WHEN schema = 'Region' THEN 'MD_LVL' + ELSE schema -- на случай, если появится неизвестное значение + END AS SCHEMA +FROM + ervu_dashboard.recruitment +WHERE schema = 'Department' OR schema = 'Organization' OR schema = 'Region' + N + + + 336 + 208 + + + + + + diff --git a/mappings/mil_com/total_registered.age(m_c)/total_registered.age(m_c).hpl b/mappings/mil_com/total_registered.age(m_c)/total_registered.age(m_c).hpl new file mode 100644 index 0000000..b3e8207 --- /dev/null +++ b/mappings/mil_com/total_registered.age(m_c)/total_registered.age(m_c).hpl @@ -0,0 +1,548 @@ + + + + total_registered.age(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 2 2 + Select values 3 2 2 + N + + + Table input (person_registry) регион/мужчины + Get variables 3 2 2 + N + + + Select values 3 2 2 + Insert / update (total_registered.age) 2 + N + + + Table input (person_registry) регион/мужчины + Insert / update (total_registered.age) 2 + Y + + + + Get variables 3 2 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REC_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 1536 + 800 + + + + Insert / update (total_registered.age) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + registered + registered + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + age
+ + "17_years" + 17_year_count + Y + + + "18-26_years" + 18-26_year_count + Y + + + "27-30_years" + 27-30_year_count + Y + + + "31-35_years" + 31-35_year_count + Y + + + "36-40_years" + 36-40_year_count + Y + + + "41-45_years" + 41-45_year_count + Y + + + "51+_years" + 41-45_year_count + Y + + + "all_M_W" + gender + N + + + "46-50_years" + 46-50_year_count + Y + + + "17_years_percent" + 17_year_percent + Y + + + "18-26_years_percent" + 18-26_year_percent + Y + + + "27-30_years_percent" + 27-30_year_percent + Y + + + "31-35_years_percent" + 31-35_year_percent + Y + + + "36-40_years_percent" + 36-40_year_percent + Y + + + "41-45_years_percent" + 41-45_year_percent + Y + + + "46-50_years_percent" + 46-50_year_percent + Y + + + "51+_years_percent" + 51+_year_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + total_count + total_count + Y + + + convicts + convicts + N + +
+ Y + + + 1920 + 720 + +
+ + Select values 3 2 2 + SelectValues + + Y + + 1 + + none + + + + N + + REC_ID + REC_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 1680 + 800 + + + + Table input (person_registry) регион/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + -- Преобразуем строковый массив в таблицу UUID + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +recruit_data AS ( + SELECT + r.id, + ri.recruit_id AS recruit_id, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'true' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'false' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + 'ALL' AS convicts, + 'false' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + 'ALL' AS convicts, + 'true' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + +), +total_count AS ( + SELECT + rd.recruitment_id, + rd.gender, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) AS total + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.gender, rd.registered, rd.convicts +), +total_count_all AS ( + SELECT + rd.recruitment_id, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) AS total + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.registered, rd.convicts +), +age_counts AS ( + SELECT + rd.recruitment_id, + rd.gender, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) = 17) AS "17_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) >= 51) AS "51+_year_count" + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.gender, rd.registered, rd.convicts +), +age_counts_all AS ( + SELECT + r.recruitment_id, + r.registered, + r.convicts, + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) = 17) AS "17_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) >= 51) AS "51+_year_count" + FROM recruit_data r + GROUP BY r.recruitment_id, r.registered, r.convicts +) +SELECT + current_date AS recording_date, + COALESCE(ac."17_year_count", 0) AS "17_year_count", + COALESCE(ROUND((COALESCE(ac."17_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "17_year_percent", + COALESCE(ac."18-26_year_count", 0) AS "18-26_year_count", + COALESCE(ROUND((COALESCE(ac."18-26_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "18-26_year_percent", + COALESCE(ac."27-30_year_count", 0) AS "27-30_year_count", + COALESCE(ROUND((COALESCE(ac."27-30_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "27-30_year_percent", + COALESCE(ac."31-35_year_count", 0) AS "31-35_year_count", + COALESCE(ROUND((COALESCE(ac."31-35_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "31-35_year_percent", + COALESCE(ac."36-40_year_count", 0) AS "36-40_year_count", + COALESCE(ROUND((COALESCE(ac."36-40_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "36-40_year_percent", + COALESCE(ac."41-45_year_count", 0) AS "41-45_year_count", + COALESCE(ROUND((COALESCE(ac."41-45_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "41-45_year_percent", + COALESCE(ac."46-50_year_count", 0) AS "46-50_year_count", + COALESCE(ROUND((COALESCE(ac."46-50_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "46-50_year_percent", + COALESCE(ac."51+_year_count", 0) AS "51+_year_count", + COALESCE(ROUND((COALESCE(ac."51+_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "51+_year_percent", + COALESCE(tc.total, 0) AS total_count, + tc.recruitment_id, + (CASE + WHEN tc.gender = 'MALE' THEN 'M' + ELSE 'W' + END)::text AS gender, + tc.convicts, + tc.registered::text +FROM total_count tc +LEFT JOIN age_counts ac + ON ac.recruitment_id = tc.recruitment_id + AND ac.gender = tc.gender + AND ac.registered = tc.registered + AND ac.convicts = tc.convicts +UNION ALL +SELECT + current_date AS recording_date, + COALESCE(aca."17_year_count", 0) AS "17_year_count", + COALESCE(ROUND((COALESCE(aca."17_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "17_year_percent", + COALESCE(aca."18-26_year_count", 0) AS "18-26_year_count", + COALESCE(ROUND((COALESCE(aca."18-26_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "18-26_year_percent", + COALESCE(aca."27-30_year_count", 0) AS "27-30_year_count", + COALESCE(ROUND((COALESCE(aca."27-30_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "27-30_year_percent", + COALESCE(aca."31-35_year_count", 0) AS "31-35_year_count", + COALESCE(ROUND((COALESCE(aca."31-35_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "31-35_year_percent", + COALESCE(aca."36-40_year_count", 0) AS "36-40_year_count", + COALESCE(ROUND((COALESCE(aca."36-40_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "36-40_year_percent", + COALESCE(aca."41-45_year_count", 0) AS "41-45_year_count", + COALESCE(ROUND((COALESCE(aca."41-45_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "41-45_year_percent", + COALESCE(aca."46-50_year_count", 0) AS "46-50_year_count", + COALESCE(ROUND((COALESCE(aca."46-50_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "46-50_year_percent", + COALESCE(aca."51+_year_count", 0) AS "51+_year_count", + COALESCE(ROUND((COALESCE(aca."51+_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "51+_year_percent", + COALESCE(tca.total, 0) AS total_count, + tca.recruitment_id, + 'ALL' AS gender, + tca.convicts, + tca.registered::text +FROM total_count_all tca +LEFT JOIN age_counts_all aca + ON aca.recruitment_id = tca.recruitment_id + AND aca.registered = tca.registered + AND aca.convicts = tca.convicts + Y + + + 1296 + 720 + + + + + +
diff --git a/mappings/mil_com/total_registered.age(m_c)/total_registered.age(m_c).hwf b/mappings/mil_com/total_registered.age(m_c)/total_registered.age(m_c).hwf new file mode 100644 index 0000000..ebf664d --- /dev/null +++ b/mappings/mil_com/total_registered.age(m_c)/total_registered.age(m_c).hwf @@ -0,0 +1,312 @@ + + + total_registered.age(m_c) + Y + + + + - + 2025/04/01 09:55:15.265 + - + 2025/04/01 09:55:15.265 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + Y + 544 + 400 + + + + total_registered.age_pr1(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.age(m_c)/total_registered.age_pr1(m_c).hpl + Basic + + + ARR_PR_1 + PART_RECRUITMENT_1 + + Y + + Y + local + N + N + Y + N + 992 + 240 + + + + total_registered.age_pr2(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.age(m_c)/total_registered.age_pr2(m_c).hpl + Basic + + + ARR_PR_2 + PART_RECRUITMENT_2 + + Y + + Y + local + N + N + Y + N + 992 + 320 + + + + total_registered.age_pr3(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.age(m_c)/total_registered.age_pr3(m_c).hpl + Basic + + + ARR_PR_3 + PART_RECRUITMENT_3 + + Y + + Y + local + N + N + Y + N + 992 + 400 + + + + total_registered.age_pr4(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.age(m_c)/total_registered.age_pr4(m_c).hpl + Basic + + + ARR_PR_4 + PART_RECRUITMENT_4 + + Y + + Y + local + N + N + Y + N + 992 + 480 + + + + total_registered.age_pr5(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.age(m_c)/total_registered.age_pr5(m_c).hpl + + + Basic + + + ARR_PR_5 + PART_RECRUITMENT_5 + + + Y + + Y + local + N + N + Y + N + 992 + 560 + + + + Success + + SUCCESS + + N + 1200 + 240 + + + + Success 2 + + SUCCESS + + N + 1200 + 320 + + + + Success 3 + + SUCCESS + + N + 1200 + 400 + + + + Success 4 + + SUCCESS + + N + 1200 + 480 + + + + Success 5 + + SUCCESS + + N + 1200 + 560 + + + + + + Start + total_registered.age_pr1(m_c).hpl + Y + Y + Y + + + Start + total_registered.age_pr2(m_c).hpl + Y + Y + Y + + + Start + total_registered.age_pr3(m_c).hpl + Y + Y + Y + + + Start + total_registered.age_pr4(m_c).hpl + Y + Y + Y + + + Start + total_registered.age_pr5(m_c).hpl + Y + Y + Y + + + total_registered.age_pr1(m_c).hpl + Success + Y + Y + N + + + total_registered.age_pr2(m_c).hpl + Success 2 + Y + Y + N + + + total_registered.age_pr3(m_c).hpl + Success 3 + Y + Y + N + + + total_registered.age_pr4(m_c).hpl + Success 4 + Y + Y + N + + + total_registered.age_pr5(m_c).hpl + Success 5 + Y + Y + N + + + + + + diff --git a/mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr1(m_c).hpl b/mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr1(m_c).hpl new file mode 100644 index 0000000..7c7627d --- /dev/null +++ b/mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr1(m_c).hpl @@ -0,0 +1,446 @@ + + + + total_registered.age_pr1(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регион/мужчины + Insert / update (total_registered.age) 2 + Y + + + + Insert / update (total_registered.age) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + registered + registered + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + age
+ + "17_years" + 17_year_count + Y + + + "18-26_years" + 18-26_year_count + Y + + + "27-30_years" + 27-30_year_count + Y + + + "31-35_years" + 31-35_year_count + Y + + + "36-40_years" + 36-40_year_count + Y + + + "41-45_years" + 41-45_year_count + Y + + + "51+_years" + 41-45_year_count + Y + + + "all_M_W" + gender + N + + + "46-50_years" + 46-50_year_count + Y + + + "17_years_percent" + 17_year_percent + Y + + + "18-26_years_percent" + 18-26_year_percent + Y + + + "27-30_years_percent" + 27-30_year_percent + Y + + + "31-35_years_percent" + 31-35_year_percent + Y + + + "36-40_years_percent" + 36-40_year_percent + Y + + + "41-45_years_percent" + 41-45_year_percent + Y + + + "46-50_years_percent" + 46-50_year_percent + Y + + + "51+_years_percent" + 51+_year_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + total_count + total_count + Y + + + convicts + convicts + N + +
+ Y + + + 1920 + 720 + +
+ + Table input (person_registry) регион/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + -- Преобразуем строковый массив в таблицу UUID + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_1}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +recruit_data AS ( + SELECT + r.id, + ri.recruit_id AS recruit_id, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'true' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'false' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + 'ALL' AS convicts, + 'false' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + 'ALL' AS convicts, + 'true' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + +), +total_count AS ( + SELECT + rd.recruitment_id, + rd.gender, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) AS total + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.gender, rd.registered, rd.convicts +), +total_count_all AS ( + SELECT + rd.recruitment_id, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) AS total + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.registered, rd.convicts +), +age_counts AS ( + SELECT + rd.recruitment_id, + rd.gender, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) = 17) AS "17_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) >= 51) AS "51+_year_count" + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.gender, rd.registered, rd.convicts +), +age_counts_all AS ( + SELECT + r.recruitment_id, + r.registered, + r.convicts, + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) = 17) AS "17_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) >= 51) AS "51+_year_count" + FROM recruit_data r + GROUP BY r.recruitment_id, r.registered, r.convicts +) +SELECT + current_date AS recording_date, + COALESCE(ac."17_year_count", 0) AS "17_year_count", + COALESCE(ROUND((COALESCE(ac."17_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "17_year_percent", + COALESCE(ac."18-26_year_count", 0) AS "18-26_year_count", + COALESCE(ROUND((COALESCE(ac."18-26_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "18-26_year_percent", + COALESCE(ac."27-30_year_count", 0) AS "27-30_year_count", + COALESCE(ROUND((COALESCE(ac."27-30_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "27-30_year_percent", + COALESCE(ac."31-35_year_count", 0) AS "31-35_year_count", + COALESCE(ROUND((COALESCE(ac."31-35_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "31-35_year_percent", + COALESCE(ac."36-40_year_count", 0) AS "36-40_year_count", + COALESCE(ROUND((COALESCE(ac."36-40_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "36-40_year_percent", + COALESCE(ac."41-45_year_count", 0) AS "41-45_year_count", + COALESCE(ROUND((COALESCE(ac."41-45_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "41-45_year_percent", + COALESCE(ac."46-50_year_count", 0) AS "46-50_year_count", + COALESCE(ROUND((COALESCE(ac."46-50_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "46-50_year_percent", + COALESCE(ac."51+_year_count", 0) AS "51+_year_count", + COALESCE(ROUND((COALESCE(ac."51+_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "51+_year_percent", + COALESCE(tc.total, 0) AS total_count, + tc.recruitment_id, + (CASE + WHEN tc.gender = 'MALE' THEN 'M' + ELSE 'W' + END)::text AS gender, + tc.convicts, + tc.registered::text +FROM total_count tc +LEFT JOIN age_counts ac + ON ac.recruitment_id = tc.recruitment_id + AND ac.gender = tc.gender + AND ac.registered = tc.registered + AND ac.convicts = tc.convicts +UNION ALL +SELECT + current_date AS recording_date, + COALESCE(aca."17_year_count", 0) AS "17_year_count", + COALESCE(ROUND((COALESCE(aca."17_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "17_year_percent", + COALESCE(aca."18-26_year_count", 0) AS "18-26_year_count", + COALESCE(ROUND((COALESCE(aca."18-26_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "18-26_year_percent", + COALESCE(aca."27-30_year_count", 0) AS "27-30_year_count", + COALESCE(ROUND((COALESCE(aca."27-30_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "27-30_year_percent", + COALESCE(aca."31-35_year_count", 0) AS "31-35_year_count", + COALESCE(ROUND((COALESCE(aca."31-35_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "31-35_year_percent", + COALESCE(aca."36-40_year_count", 0) AS "36-40_year_count", + COALESCE(ROUND((COALESCE(aca."36-40_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "36-40_year_percent", + COALESCE(aca."41-45_year_count", 0) AS "41-45_year_count", + COALESCE(ROUND((COALESCE(aca."41-45_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "41-45_year_percent", + COALESCE(aca."46-50_year_count", 0) AS "46-50_year_count", + COALESCE(ROUND((COALESCE(aca."46-50_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "46-50_year_percent", + COALESCE(aca."51+_year_count", 0) AS "51+_year_count", + COALESCE(ROUND((COALESCE(aca."51+_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "51+_year_percent", + COALESCE(tca.total, 0) AS total_count, + tca.recruitment_id, + 'ALL' AS gender, + tca.convicts, + tca.registered::text +FROM total_count_all tca +LEFT JOIN age_counts_all aca + ON aca.recruitment_id = tca.recruitment_id + AND aca.registered = tca.registered + AND aca.convicts = tca.convicts + Y + + + 1296 + 720 + + + + + +
diff --git a/mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr2(m_c).hpl b/mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr2(m_c).hpl new file mode 100644 index 0000000..b5ad7ee --- /dev/null +++ b/mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr2(m_c).hpl @@ -0,0 +1,446 @@ + + + + total_registered.age_pr2(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регион/мужчины + Insert / update (total_registered.age) 2 + Y + + + + Insert / update (total_registered.age) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + registered + registered + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + age
+ + "17_years" + 17_year_count + Y + + + "18-26_years" + 18-26_year_count + Y + + + "27-30_years" + 27-30_year_count + Y + + + "31-35_years" + 31-35_year_count + Y + + + "36-40_years" + 36-40_year_count + Y + + + "41-45_years" + 41-45_year_count + Y + + + "51+_years" + 41-45_year_count + Y + + + "all_M_W" + gender + N + + + "46-50_years" + 46-50_year_count + Y + + + "17_years_percent" + 17_year_percent + Y + + + "18-26_years_percent" + 18-26_year_percent + Y + + + "27-30_years_percent" + 27-30_year_percent + Y + + + "31-35_years_percent" + 31-35_year_percent + Y + + + "36-40_years_percent" + 36-40_year_percent + Y + + + "41-45_years_percent" + 41-45_year_percent + Y + + + "46-50_years_percent" + 46-50_year_percent + Y + + + "51+_years_percent" + 51+_year_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + total_count + total_count + Y + + + convicts + convicts + N + +
+ Y + + + 1920 + 720 + +
+ + Table input (person_registry) регион/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + -- Преобразуем строковый массив в таблицу UUID + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_2}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +recruit_data AS ( + SELECT + r.id, + ri.recruit_id AS recruit_id, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'true' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'false' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + 'ALL' AS convicts, + 'false' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + 'ALL' AS convicts, + 'true' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + +), +total_count AS ( + SELECT + rd.recruitment_id, + rd.gender, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) AS total + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.gender, rd.registered, rd.convicts +), +total_count_all AS ( + SELECT + rd.recruitment_id, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) AS total + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.registered, rd.convicts +), +age_counts AS ( + SELECT + rd.recruitment_id, + rd.gender, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) = 17) AS "17_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) >= 51) AS "51+_year_count" + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.gender, rd.registered, rd.convicts +), +age_counts_all AS ( + SELECT + r.recruitment_id, + r.registered, + r.convicts, + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) = 17) AS "17_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) >= 51) AS "51+_year_count" + FROM recruit_data r + GROUP BY r.recruitment_id, r.registered, r.convicts +) +SELECT + current_date AS recording_date, + COALESCE(ac."17_year_count", 0) AS "17_year_count", + COALESCE(ROUND((COALESCE(ac."17_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "17_year_percent", + COALESCE(ac."18-26_year_count", 0) AS "18-26_year_count", + COALESCE(ROUND((COALESCE(ac."18-26_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "18-26_year_percent", + COALESCE(ac."27-30_year_count", 0) AS "27-30_year_count", + COALESCE(ROUND((COALESCE(ac."27-30_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "27-30_year_percent", + COALESCE(ac."31-35_year_count", 0) AS "31-35_year_count", + COALESCE(ROUND((COALESCE(ac."31-35_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "31-35_year_percent", + COALESCE(ac."36-40_year_count", 0) AS "36-40_year_count", + COALESCE(ROUND((COALESCE(ac."36-40_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "36-40_year_percent", + COALESCE(ac."41-45_year_count", 0) AS "41-45_year_count", + COALESCE(ROUND((COALESCE(ac."41-45_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "41-45_year_percent", + COALESCE(ac."46-50_year_count", 0) AS "46-50_year_count", + COALESCE(ROUND((COALESCE(ac."46-50_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "46-50_year_percent", + COALESCE(ac."51+_year_count", 0) AS "51+_year_count", + COALESCE(ROUND((COALESCE(ac."51+_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "51+_year_percent", + COALESCE(tc.total, 0) AS total_count, + tc.recruitment_id, + (CASE + WHEN tc.gender = 'MALE' THEN 'M' + ELSE 'W' + END)::text AS gender, + tc.convicts, + tc.registered::text +FROM total_count tc +LEFT JOIN age_counts ac + ON ac.recruitment_id = tc.recruitment_id + AND ac.gender = tc.gender + AND ac.registered = tc.registered + AND ac.convicts = tc.convicts +UNION ALL +SELECT + current_date AS recording_date, + COALESCE(aca."17_year_count", 0) AS "17_year_count", + COALESCE(ROUND((COALESCE(aca."17_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "17_year_percent", + COALESCE(aca."18-26_year_count", 0) AS "18-26_year_count", + COALESCE(ROUND((COALESCE(aca."18-26_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "18-26_year_percent", + COALESCE(aca."27-30_year_count", 0) AS "27-30_year_count", + COALESCE(ROUND((COALESCE(aca."27-30_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "27-30_year_percent", + COALESCE(aca."31-35_year_count", 0) AS "31-35_year_count", + COALESCE(ROUND((COALESCE(aca."31-35_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "31-35_year_percent", + COALESCE(aca."36-40_year_count", 0) AS "36-40_year_count", + COALESCE(ROUND((COALESCE(aca."36-40_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "36-40_year_percent", + COALESCE(aca."41-45_year_count", 0) AS "41-45_year_count", + COALESCE(ROUND((COALESCE(aca."41-45_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "41-45_year_percent", + COALESCE(aca."46-50_year_count", 0) AS "46-50_year_count", + COALESCE(ROUND((COALESCE(aca."46-50_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "46-50_year_percent", + COALESCE(aca."51+_year_count", 0) AS "51+_year_count", + COALESCE(ROUND((COALESCE(aca."51+_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "51+_year_percent", + COALESCE(tca.total, 0) AS total_count, + tca.recruitment_id, + 'ALL' AS gender, + tca.convicts, + tca.registered::text +FROM total_count_all tca +LEFT JOIN age_counts_all aca + ON aca.recruitment_id = tca.recruitment_id + AND aca.registered = tca.registered + AND aca.convicts = tca.convicts + Y + + + 1296 + 720 + + + + + +
diff --git a/mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr3(m_c).hpl b/mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr3(m_c).hpl new file mode 100644 index 0000000..3e7ed5b --- /dev/null +++ b/mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr3(m_c).hpl @@ -0,0 +1,446 @@ + + + + total_registered.age_pr3(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регион/мужчины + Insert / update (total_registered.age) 2 + Y + + + + Insert / update (total_registered.age) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + registered + registered + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + age
+ + "17_years" + 17_year_count + Y + + + "18-26_years" + 18-26_year_count + Y + + + "27-30_years" + 27-30_year_count + Y + + + "31-35_years" + 31-35_year_count + Y + + + "36-40_years" + 36-40_year_count + Y + + + "41-45_years" + 41-45_year_count + Y + + + "51+_years" + 41-45_year_count + Y + + + "all_M_W" + gender + N + + + "46-50_years" + 46-50_year_count + Y + + + "17_years_percent" + 17_year_percent + Y + + + "18-26_years_percent" + 18-26_year_percent + Y + + + "27-30_years_percent" + 27-30_year_percent + Y + + + "31-35_years_percent" + 31-35_year_percent + Y + + + "36-40_years_percent" + 36-40_year_percent + Y + + + "41-45_years_percent" + 41-45_year_percent + Y + + + "46-50_years_percent" + 46-50_year_percent + Y + + + "51+_years_percent" + 51+_year_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + total_count + total_count + Y + + + convicts + convicts + N + +
+ Y + + + 1920 + 720 + +
+ + Table input (person_registry) регион/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + -- Преобразуем строковый массив в таблицу UUID + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_3}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +recruit_data AS ( + SELECT + r.id, + ri.recruit_id AS recruit_id, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'true' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'false' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + 'ALL' AS convicts, + 'false' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + 'ALL' AS convicts, + 'true' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + +), +total_count AS ( + SELECT + rd.recruitment_id, + rd.gender, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) AS total + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.gender, rd.registered, rd.convicts +), +total_count_all AS ( + SELECT + rd.recruitment_id, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) AS total + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.registered, rd.convicts +), +age_counts AS ( + SELECT + rd.recruitment_id, + rd.gender, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) = 17) AS "17_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) >= 51) AS "51+_year_count" + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.gender, rd.registered, rd.convicts +), +age_counts_all AS ( + SELECT + r.recruitment_id, + r.registered, + r.convicts, + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) = 17) AS "17_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) >= 51) AS "51+_year_count" + FROM recruit_data r + GROUP BY r.recruitment_id, r.registered, r.convicts +) +SELECT + current_date AS recording_date, + COALESCE(ac."17_year_count", 0) AS "17_year_count", + COALESCE(ROUND((COALESCE(ac."17_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "17_year_percent", + COALESCE(ac."18-26_year_count", 0) AS "18-26_year_count", + COALESCE(ROUND((COALESCE(ac."18-26_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "18-26_year_percent", + COALESCE(ac."27-30_year_count", 0) AS "27-30_year_count", + COALESCE(ROUND((COALESCE(ac."27-30_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "27-30_year_percent", + COALESCE(ac."31-35_year_count", 0) AS "31-35_year_count", + COALESCE(ROUND((COALESCE(ac."31-35_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "31-35_year_percent", + COALESCE(ac."36-40_year_count", 0) AS "36-40_year_count", + COALESCE(ROUND((COALESCE(ac."36-40_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "36-40_year_percent", + COALESCE(ac."41-45_year_count", 0) AS "41-45_year_count", + COALESCE(ROUND((COALESCE(ac."41-45_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "41-45_year_percent", + COALESCE(ac."46-50_year_count", 0) AS "46-50_year_count", + COALESCE(ROUND((COALESCE(ac."46-50_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "46-50_year_percent", + COALESCE(ac."51+_year_count", 0) AS "51+_year_count", + COALESCE(ROUND((COALESCE(ac."51+_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "51+_year_percent", + COALESCE(tc.total, 0) AS total_count, + tc.recruitment_id, + (CASE + WHEN tc.gender = 'MALE' THEN 'M' + ELSE 'W' + END)::text AS gender, + tc.convicts, + tc.registered::text +FROM total_count tc +LEFT JOIN age_counts ac + ON ac.recruitment_id = tc.recruitment_id + AND ac.gender = tc.gender + AND ac.registered = tc.registered + AND ac.convicts = tc.convicts +UNION ALL +SELECT + current_date AS recording_date, + COALESCE(aca."17_year_count", 0) AS "17_year_count", + COALESCE(ROUND((COALESCE(aca."17_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "17_year_percent", + COALESCE(aca."18-26_year_count", 0) AS "18-26_year_count", + COALESCE(ROUND((COALESCE(aca."18-26_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "18-26_year_percent", + COALESCE(aca."27-30_year_count", 0) AS "27-30_year_count", + COALESCE(ROUND((COALESCE(aca."27-30_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "27-30_year_percent", + COALESCE(aca."31-35_year_count", 0) AS "31-35_year_count", + COALESCE(ROUND((COALESCE(aca."31-35_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "31-35_year_percent", + COALESCE(aca."36-40_year_count", 0) AS "36-40_year_count", + COALESCE(ROUND((COALESCE(aca."36-40_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "36-40_year_percent", + COALESCE(aca."41-45_year_count", 0) AS "41-45_year_count", + COALESCE(ROUND((COALESCE(aca."41-45_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "41-45_year_percent", + COALESCE(aca."46-50_year_count", 0) AS "46-50_year_count", + COALESCE(ROUND((COALESCE(aca."46-50_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "46-50_year_percent", + COALESCE(aca."51+_year_count", 0) AS "51+_year_count", + COALESCE(ROUND((COALESCE(aca."51+_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "51+_year_percent", + COALESCE(tca.total, 0) AS total_count, + tca.recruitment_id, + 'ALL' AS gender, + tca.convicts, + tca.registered::text +FROM total_count_all tca +LEFT JOIN age_counts_all aca + ON aca.recruitment_id = tca.recruitment_id + AND aca.registered = tca.registered + AND aca.convicts = tca.convicts + Y + + + 1296 + 720 + + + + + +
diff --git a/mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr4(m_c).hpl b/mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr4(m_c).hpl new file mode 100644 index 0000000..e618ef4 --- /dev/null +++ b/mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr4(m_c).hpl @@ -0,0 +1,446 @@ + + + + total_registered.age_pr4(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регион/мужчины + Insert / update (total_registered.age) 2 + Y + + + + Insert / update (total_registered.age) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + registered + registered + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + age
+ + "17_years" + 17_year_count + Y + + + "18-26_years" + 18-26_year_count + Y + + + "27-30_years" + 27-30_year_count + Y + + + "31-35_years" + 31-35_year_count + Y + + + "36-40_years" + 36-40_year_count + Y + + + "41-45_years" + 41-45_year_count + Y + + + "51+_years" + 41-45_year_count + Y + + + "all_M_W" + gender + N + + + "46-50_years" + 46-50_year_count + Y + + + "17_years_percent" + 17_year_percent + Y + + + "18-26_years_percent" + 18-26_year_percent + Y + + + "27-30_years_percent" + 27-30_year_percent + Y + + + "31-35_years_percent" + 31-35_year_percent + Y + + + "36-40_years_percent" + 36-40_year_percent + Y + + + "41-45_years_percent" + 41-45_year_percent + Y + + + "46-50_years_percent" + 46-50_year_percent + Y + + + "51+_years_percent" + 51+_year_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + total_count + total_count + Y + + + convicts + convicts + N + +
+ Y + + + 1920 + 720 + +
+ + Table input (person_registry) регион/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + -- Преобразуем строковый массив в таблицу UUID + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_4}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +recruit_data AS ( + SELECT + r.id, + ri.recruit_id AS recruit_id, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'true' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'false' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + 'ALL' AS convicts, + 'false' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + 'ALL' AS convicts, + 'true' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + +), +total_count AS ( + SELECT + rd.recruitment_id, + rd.gender, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) AS total + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.gender, rd.registered, rd.convicts +), +total_count_all AS ( + SELECT + rd.recruitment_id, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) AS total + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.registered, rd.convicts +), +age_counts AS ( + SELECT + rd.recruitment_id, + rd.gender, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) = 17) AS "17_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) >= 51) AS "51+_year_count" + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.gender, rd.registered, rd.convicts +), +age_counts_all AS ( + SELECT + r.recruitment_id, + r.registered, + r.convicts, + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) = 17) AS "17_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) >= 51) AS "51+_year_count" + FROM recruit_data r + GROUP BY r.recruitment_id, r.registered, r.convicts +) +SELECT + current_date AS recording_date, + COALESCE(ac."17_year_count", 0) AS "17_year_count", + COALESCE(ROUND((COALESCE(ac."17_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "17_year_percent", + COALESCE(ac."18-26_year_count", 0) AS "18-26_year_count", + COALESCE(ROUND((COALESCE(ac."18-26_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "18-26_year_percent", + COALESCE(ac."27-30_year_count", 0) AS "27-30_year_count", + COALESCE(ROUND((COALESCE(ac."27-30_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "27-30_year_percent", + COALESCE(ac."31-35_year_count", 0) AS "31-35_year_count", + COALESCE(ROUND((COALESCE(ac."31-35_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "31-35_year_percent", + COALESCE(ac."36-40_year_count", 0) AS "36-40_year_count", + COALESCE(ROUND((COALESCE(ac."36-40_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "36-40_year_percent", + COALESCE(ac."41-45_year_count", 0) AS "41-45_year_count", + COALESCE(ROUND((COALESCE(ac."41-45_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "41-45_year_percent", + COALESCE(ac."46-50_year_count", 0) AS "46-50_year_count", + COALESCE(ROUND((COALESCE(ac."46-50_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "46-50_year_percent", + COALESCE(ac."51+_year_count", 0) AS "51+_year_count", + COALESCE(ROUND((COALESCE(ac."51+_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "51+_year_percent", + COALESCE(tc.total, 0) AS total_count, + tc.recruitment_id, + (CASE + WHEN tc.gender = 'MALE' THEN 'M' + ELSE 'W' + END)::text AS gender, + tc.convicts, + tc.registered::text +FROM total_count tc +LEFT JOIN age_counts ac + ON ac.recruitment_id = tc.recruitment_id + AND ac.gender = tc.gender + AND ac.registered = tc.registered + AND ac.convicts = tc.convicts +UNION ALL +SELECT + current_date AS recording_date, + COALESCE(aca."17_year_count", 0) AS "17_year_count", + COALESCE(ROUND((COALESCE(aca."17_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "17_year_percent", + COALESCE(aca."18-26_year_count", 0) AS "18-26_year_count", + COALESCE(ROUND((COALESCE(aca."18-26_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "18-26_year_percent", + COALESCE(aca."27-30_year_count", 0) AS "27-30_year_count", + COALESCE(ROUND((COALESCE(aca."27-30_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "27-30_year_percent", + COALESCE(aca."31-35_year_count", 0) AS "31-35_year_count", + COALESCE(ROUND((COALESCE(aca."31-35_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "31-35_year_percent", + COALESCE(aca."36-40_year_count", 0) AS "36-40_year_count", + COALESCE(ROUND((COALESCE(aca."36-40_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "36-40_year_percent", + COALESCE(aca."41-45_year_count", 0) AS "41-45_year_count", + COALESCE(ROUND((COALESCE(aca."41-45_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "41-45_year_percent", + COALESCE(aca."46-50_year_count", 0) AS "46-50_year_count", + COALESCE(ROUND((COALESCE(aca."46-50_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "46-50_year_percent", + COALESCE(aca."51+_year_count", 0) AS "51+_year_count", + COALESCE(ROUND((COALESCE(aca."51+_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "51+_year_percent", + COALESCE(tca.total, 0) AS total_count, + tca.recruitment_id, + 'ALL' AS gender, + tca.convicts, + tca.registered::text +FROM total_count_all tca +LEFT JOIN age_counts_all aca + ON aca.recruitment_id = tca.recruitment_id + AND aca.registered = tca.registered + AND aca.convicts = tca.convicts + Y + + + 1296 + 720 + + + + + +
diff --git a/mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr5(m_c).hpl b/mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr5(m_c).hpl new file mode 100644 index 0000000..d016ad4 --- /dev/null +++ b/mappings/mil_com/total_registered.age(m_c)/total_registered.age_pr5(m_c).hpl @@ -0,0 +1,446 @@ + + + + total_registered.age_pr5(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регион/мужчины + Insert / update (total_registered.age) 2 + Y + + + + Insert / update (total_registered.age) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + registered + registered + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + age
+ + "17_years" + 17_year_count + Y + + + "18-26_years" + 18-26_year_count + Y + + + "27-30_years" + 27-30_year_count + Y + + + "31-35_years" + 31-35_year_count + Y + + + "36-40_years" + 36-40_year_count + Y + + + "41-45_years" + 41-45_year_count + Y + + + "51+_years" + 41-45_year_count + Y + + + "all_M_W" + gender + N + + + "46-50_years" + 46-50_year_count + Y + + + "17_years_percent" + 17_year_percent + Y + + + "18-26_years_percent" + 18-26_year_percent + Y + + + "27-30_years_percent" + 27-30_year_percent + Y + + + "31-35_years_percent" + 31-35_year_percent + Y + + + "36-40_years_percent" + 36-40_year_percent + Y + + + "41-45_years_percent" + 41-45_year_percent + Y + + + "46-50_years_percent" + 46-50_year_percent + Y + + + "51+_years_percent" + 51+_year_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + total_count + total_count + Y + + + convicts + convicts + N + +
+ Y + + + 1920 + 720 + +
+ + Table input (person_registry) регион/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + -- Преобразуем строковый массив в таблицу UUID + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_5}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +recruit_data AS ( + SELECT + r.id, + ri.recruit_id AS recruit_id, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'true' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'false' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + 'ALL' AS convicts, + 'false' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + + UNION ALL + + SELECT + r.id, + ri.recruit_id AS recruit_id, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + 'ALL' AS convicts, + 'true' AS registered, + r.birth_date + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + +), +total_count AS ( + SELECT + rd.recruitment_id, + rd.gender, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) AS total + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.gender, rd.registered, rd.convicts +), +total_count_all AS ( + SELECT + rd.recruitment_id, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) AS total + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.registered, rd.convicts +), +age_counts AS ( + SELECT + rd.recruitment_id, + rd.gender, + rd.registered, + rd.convicts, + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) = 17) AS "17_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", + COUNT(distinct rd.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(rd.birth_date)) >= 51) AS "51+_year_count" + FROM recruit_data rd + GROUP BY rd.recruitment_id, rd.gender, rd.registered, rd.convicts +), +age_counts_all AS ( + SELECT + r.recruitment_id, + r.registered, + r.convicts, + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) = 17) AS "17_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", + COUNT(distinct r.recruit_id) FILTER (WHERE EXTRACT(YEAR FROM AGE(r.birth_date)) >= 51) AS "51+_year_count" + FROM recruit_data r + GROUP BY r.recruitment_id, r.registered, r.convicts +) +SELECT + current_date AS recording_date, + COALESCE(ac."17_year_count", 0) AS "17_year_count", + COALESCE(ROUND((COALESCE(ac."17_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "17_year_percent", + COALESCE(ac."18-26_year_count", 0) AS "18-26_year_count", + COALESCE(ROUND((COALESCE(ac."18-26_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "18-26_year_percent", + COALESCE(ac."27-30_year_count", 0) AS "27-30_year_count", + COALESCE(ROUND((COALESCE(ac."27-30_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "27-30_year_percent", + COALESCE(ac."31-35_year_count", 0) AS "31-35_year_count", + COALESCE(ROUND((COALESCE(ac."31-35_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "31-35_year_percent", + COALESCE(ac."36-40_year_count", 0) AS "36-40_year_count", + COALESCE(ROUND((COALESCE(ac."36-40_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "36-40_year_percent", + COALESCE(ac."41-45_year_count", 0) AS "41-45_year_count", + COALESCE(ROUND((COALESCE(ac."41-45_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "41-45_year_percent", + COALESCE(ac."46-50_year_count", 0) AS "46-50_year_count", + COALESCE(ROUND((COALESCE(ac."46-50_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "46-50_year_percent", + COALESCE(ac."51+_year_count", 0) AS "51+_year_count", + COALESCE(ROUND((COALESCE(ac."51+_year_count", 0) * 100.0) / NULLIF(tc.total, 0), 2), 0) AS "51+_year_percent", + COALESCE(tc.total, 0) AS total_count, + tc.recruitment_id, + (CASE + WHEN tc.gender = 'MALE' THEN 'M' + ELSE 'W' + END)::text AS gender, + tc.convicts, + tc.registered::text +FROM total_count tc +LEFT JOIN age_counts ac + ON ac.recruitment_id = tc.recruitment_id + AND ac.gender = tc.gender + AND ac.registered = tc.registered + AND ac.convicts = tc.convicts +UNION ALL +SELECT + current_date AS recording_date, + COALESCE(aca."17_year_count", 0) AS "17_year_count", + COALESCE(ROUND((COALESCE(aca."17_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "17_year_percent", + COALESCE(aca."18-26_year_count", 0) AS "18-26_year_count", + COALESCE(ROUND((COALESCE(aca."18-26_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "18-26_year_percent", + COALESCE(aca."27-30_year_count", 0) AS "27-30_year_count", + COALESCE(ROUND((COALESCE(aca."27-30_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "27-30_year_percent", + COALESCE(aca."31-35_year_count", 0) AS "31-35_year_count", + COALESCE(ROUND((COALESCE(aca."31-35_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "31-35_year_percent", + COALESCE(aca."36-40_year_count", 0) AS "36-40_year_count", + COALESCE(ROUND((COALESCE(aca."36-40_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "36-40_year_percent", + COALESCE(aca."41-45_year_count", 0) AS "41-45_year_count", + COALESCE(ROUND((COALESCE(aca."41-45_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "41-45_year_percent", + COALESCE(aca."46-50_year_count", 0) AS "46-50_year_count", + COALESCE(ROUND((COALESCE(aca."46-50_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "46-50_year_percent", + COALESCE(aca."51+_year_count", 0) AS "51+_year_count", + COALESCE(ROUND((COALESCE(aca."51+_year_count", 0) * 100.0) / NULLIF(tca.total, 0), 2), 0) AS "51+_year_percent", + COALESCE(tca.total, 0) AS total_count, + tca.recruitment_id, + 'ALL' AS gender, + tca.convicts, + tca.registered::text +FROM total_count_all tca +LEFT JOIN age_counts_all aca + ON aca.recruitment_id = tca.recruitment_id + AND aca.registered = tca.registered + AND aca.convicts = tca.convicts + Y + + + 1296 + 720 + + + + + +
diff --git a/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness(m_c).hpl b/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness(m_c).hpl new file mode 100644 index 0000000..7d13e7a --- /dev/null +++ b/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness(m_c).hpl @@ -0,0 +1,691 @@ + + + + total_registered.busyness(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 2 2 + Select values 3 2 2 + N + + + Select values 3 2 2 + Insert / update (total_registered.busyness) 2 + N + + + Table input (person_registry) РФ/мужчины + Get variables 3 2 2 + N + + + Table input (person_registry) РФ/мужчины + Insert / update (total_registered.busyness) 2 + Y + + + + Get variables 3 2 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REC_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 1568 + 624 + + + + Insert / update (total_registered.busyness) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + "all_M_W" + gender + + + = + registered + registered + + + = + recording_date + recording_date + + + = + convicts + convicts + + total_registered + busyness
+ + study + study + Y + + + work + work + Y + + + study_percent + study_percent + Y + + + work_percent + work_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + "all_M_W" + gender + N + + + not_work + no_info + Y + + + not_work_percent + no_info_percent + Y + + + busyness + total_people + Y + + + convicts + convicts + N + +
+ Y + + + 1968 + 544 + +
+ + Select values 3 2 2 + SelectValues + + Y + + 1 + + none + + + + N + + REC_ID + REC_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 1712 + 624 + + + + Table input (person_registry) РФ/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + -- Преобразуем строковый массив в таблицу UUID + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +status_info AS ( + SELECT + r.id AS recruit_id, + -- Проверка на обучение в вузе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_vuz, + + -- Проверка на обучение в колледже (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + AND kolledzh->'svedObrProg'->>'kodFormaObuch'='1' + ) + + ELSE false + END + ) AS is_studying_in_college, + + -- Проверка на обучение в школе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedSHkola'->'shkola') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedSHkola'->'shkola') AS school + WHERE school->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_school, + + -- Проверка на работу (есть информация и работает) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud + WHERE trud->>'prAktMestRab' = '1' + ) + ELSE false + END + ) AS is_working, + + -- Проверка на самозанятого (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD' != 'null' THEN true + ELSE false + END + ) AS is_samozanyat, + + -- Проверка на ИП (есть информация) + ( + CASE + WHEN jsonb_typeof(ri.info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN true + ELSE false + END + ) AS is_ip, + + -- Проверка на КФХ (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' != 'null' THEN true + ELSE false + END + ) AS is_kfh, + + + -- Проверка на отсутствие сведений о вузе + info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' AND jsonb_typeof(info->'svedFL'->'svedVUZ') != 'array' AS no_info_vuz, + + -- Проверка на отсутствие сведений о колледже + info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AND jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') != 'array' AS no_info_college, + + -- Проверка на отсутствие сведений о школе + info->'svedFL'->'svedSHkola'->>'prOtsSvedSHkola' = '1' AND jsonb_typeof(info->'svedFL'->'svedSHkola') != 'array' AS no_info_school, + + -- Проверка на отсутствие сведений о работе + info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' AND jsonb_typeof(info->'svedFL'->'svedTrud') != 'array' AS no_info_work, + + -- Проверка на отсутствие сведений о самозанятых + info->'svedFL'->'svedNPD'->'npd'->'aktNPD' is null OR info->'svedFL'->'svedNPD'->'npd'->'aktNPD' = 'null' AS no_info_samozanyat, + + -- Проверка на отсутствие сведений об ip + info->'svedFL'->'svedRegIP'->>'prOtsRegIP' = '1' AND jsonb_typeof(info->'svedFL'->'svedRegIP') != 'array' AS no_info_ip, + + -- Проверка на отсутствие сведений о KFH + info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' = 'null' OR info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' is null AS no_info_kfh, + + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'true' AS registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history AS rh on rh.recruit_id = r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) + AND rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + AND coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + r.id AS recruit_id, + -- Проверка на обучение в вузе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_vuz, + + -- Проверка на обучение в колледже (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_college, + + -- Проверка на обучение в школе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedSHkola'->'shkola') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedSHkola'->'shkola') AS school + WHERE school->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_school, + + -- Проверка на работу (есть информация и работает) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud + WHERE trud->>'prAktMestRab' = '1' + ) + ELSE false + END + ) AS is_working, + + -- Проверка на самозанятого (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD' != 'null' THEN true + ELSE false + END + ) AS is_samozanyat, + + -- Проверка на ИП (есть информация) + ( + CASE + WHEN jsonb_typeof(ri.info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN true + ELSE false + END + ) AS is_ip, + + -- Проверка на КФХ (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' != 'null' THEN true + ELSE false + END + ) AS is_kfh, + + + -- Проверка на отсутствие сведений о вузе + info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' AND jsonb_typeof(info->'svedFL'->'svedVUZ') != 'array' AS no_info_vuz, + + -- Проверка на отсутствие сведений о колледже + info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AND jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') != 'array' AS no_info_college, + + -- Проверка на отсутствие сведений о школе + info->'svedFL'->'svedSHkola'->>'prOtsSvedSHkola' = '1' AND jsonb_typeof(info->'svedFL'->'svedSHkola') != 'array' AS no_info_school, + + -- Проверка на отсутствие сведений о работе + info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' AND jsonb_typeof(info->'svedFL'->'svedTrud') != 'array' AS no_info_work, + + -- Проверка на отсутствие сведений о самозанятых + info->'svedFL'->'svedNPD'->'npd'->'aktNPD' is null OR info->'svedFL'->'svedNPD'->'npd'->'aktNPD' = 'null' AS no_info_samozanyat, + + -- Проверка на отсутствие сведений об ip + info->'svedFL'->'svedRegIP'->>'prOtsRegIP' = '1' AND jsonb_typeof(info->'svedFL'->'svedRegIP') != 'array' AS no_info_ip, + + -- Проверка на отсутствие сведений о KFH + info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' = 'null' OR info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' is null AS no_info_kfh, + + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'false' AS registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history AS rh on rh.recruit_id = r.id + WHERE + r.id in (SELECT recruit_id FROM notregistered) + 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 + si.recruitment_id, + CASE WHEN si.gender = 'MALE' THEN 'M' ELSE 'W' END AS gender, + si.convicts, + si.registered, + + -- Количество людей, которые учатся + COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school THEN 1 END) AS study, + + -- Количество людей, которые работают (но не учатся) + COUNT(CASE WHEN (is_working OR is_samozanyat OR is_ip OR is_kfh) + AND NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school) + THEN 1 END) AS work, + + /*-- Количество людей, для которых отсутствуют сведения о вузе, колледже, школе и работе + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR is_working OR is_samozanyat OR is_ip OR is_kfh) THEN 1 END) AS no_info, +*/ + -- Количество людей, для которых нет информации + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR + is_working OR is_samozanyat OR is_ip OR is_kfh) + THEN 1 END) AS no_info, + + -- Общее количество людей + COUNT(si.recruit_id) AS total_people + + FROM status_info si + GROUP BY si.recruitment_id, si.gender, si.convicts, si.registered + + UNION ALL + + SELECT + si.recruitment_id, + CASE + WHEN si.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + 'ALL' AS convicts, + si.registered, + + -- Количество людей, которые учатся + COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school THEN 1 END) AS study, + + -- Количество людей, которые работают (но не учатся) + COUNT(CASE WHEN (is_working OR is_samozanyat OR is_ip OR is_kfh) + AND NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school) + THEN 1 END) AS work, + + /*-- Количество людей, для которых отсутствуют сведения о вузе, колледже, школе и работе + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR is_working OR is_samozanyat OR is_ip OR is_kfh) THEN 1 END) AS no_info, +*/ + -- Количество людей, для которых нет информации + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR + is_working OR is_samozanyat OR is_ip OR is_kfh) + THEN 1 END) AS no_info, + + -- Общее количество людей + COUNT(si.recruit_id) AS total_people + FROM status_info si + GROUP BY si.recruitment_id, si.gender, si.registered +), +summary_all AS ( + SELECT + recruitment_id, + registered, + convicts, + 'ALL' AS gender, + SUM(study) AS study, + SUM(work) AS work, + SUM(no_info) AS no_info, + SUM(total_people) AS total_people + FROM summary + GROUP BY recruitment_id, registered, convicts + + UNION ALL + + SELECT + recruitment_id, + registered, + 'ALL' AS convicts, + 'ALL' AS gender, + SUM(study) AS study, + SUM(work) AS work, + SUM(no_info) AS no_info, + SUM(total_people) AS total_people + FROM summary + GROUP BY recruitment_id, registered +) +SELECT + current_date AS recording_date, + s.convicts, + s.gender, + s.registered, + s.recruitment_id, + s.study, + s.work, + s.no_info, + s.total_people, + + -- Процент людей, которые учатся + ROUND(s.study * 100.0 / NULLIF(s.total_people, 0), 2) AS study_percent, + + -- Процент людей, которые работают + ROUND(s.work * 100.0 / NULLIF(s.total_people, 0), 2) AS work_percent, + + -- Процент людей, для которых отсутствуют сведения + ROUND(s.no_info * 100.0 / NULLIF(s.total_people, 0), 2) AS no_info_percent +FROM summary s +UNION ALL +SELECT + current_date AS recording_date, + sa.convicts, + sa.gender, + sa.registered, + sa.recruitment_id, + sa.study, + sa.work, + sa.no_info, + sa.total_people, + + -- Процент людей, которые учатся + ROUND(sa.study * 100.0 / NULLIF(sa.total_people, 0), 2) AS study_percent, + + -- Процент людей, которые работают + ROUND(sa.work * 100.0 / NULLIF(sa.total_people, 0), 2) AS work_percent, + + -- Процент людей, для которых отсутствуют сведения + ROUND(sa.no_info * 100.0 / NULLIF(sa.total_people, 0), 2) AS no_info_percent +FROM summary_all sa + Y + + + 1328 + 544 + + + + + +
diff --git a/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness(m_c).hwf b/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness(m_c).hwf new file mode 100644 index 0000000..8c60f83 --- /dev/null +++ b/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness(m_c).hwf @@ -0,0 +1,309 @@ + + + total_registered.busyness(m_c) + Y + + + + - + 2025/04/01 10:45:43.074 + - + 2025/04/01 10:45:43.074 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + Y + 704 + 432 + + + + total_registered.busyness_pr1(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr1(m_c).hpl + Basic + + + ARR_PR_1 + PART_RECRUITMENT_1 + + Y + + Y + local + N + N + Y + N + 1088 + 272 + + + + total_registered.busyness_pr2(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr2(m_c).hpl + Basic + + + ARR_PR_2 + PART_RECRUITMENT_2 + + Y + + Y + local + N + N + Y + N + 1088 + 352 + + + + total_registered.busyness_pr3(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr3(m_c).hpl + Basic + + + ARR_PR_3 + PART_RECRUITMENT_3 + + Y + + Y + local + N + N + Y + N + 1088 + 432 + + + + total_registered.busyness_pr4(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr4(m_c).hpl + Basic + + + ARR_PR_4 + PART_RECRUITMENT_4 + + Y + + Y + local + N + N + Y + N + 1088 + 512 + + + + total_registered.busyness_pr5(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr5(m_c).hpl + Basic + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 1088 + 592 + + + + Success + + SUCCESS + + N + 1360 + 272 + + + + Success 2 + + SUCCESS + + N + 1360 + 352 + + + + Success 3 + + SUCCESS + + N + 1360 + 432 + + + + Success 4 + + SUCCESS + + N + 1360 + 512 + + + + Success 5 + + SUCCESS + + N + 1360 + 592 + + + + + + Start + total_registered.busyness_pr1(m_c).hpl + Y + Y + Y + + + Start + total_registered.busyness_pr2(m_c).hpl + Y + Y + Y + + + Start + total_registered.busyness_pr3(m_c).hpl + Y + Y + Y + + + Start + total_registered.busyness_pr4(m_c).hpl + Y + Y + Y + + + Start + total_registered.busyness_pr5(m_c).hpl + Y + Y + Y + + + total_registered.busyness_pr1(m_c).hpl + Success + Y + Y + N + + + total_registered.busyness_pr2(m_c).hpl + Success 2 + Y + Y + N + + + total_registered.busyness_pr3(m_c).hpl + Success 3 + Y + Y + N + + + total_registered.busyness_pr4(m_c).hpl + Success 4 + Y + Y + N + + + total_registered.busyness_pr5(m_c).hpl + Success 5 + Y + Y + N + + + + + + diff --git a/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr1(m_c).hpl b/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr1(m_c).hpl new file mode 100644 index 0000000..0903778 --- /dev/null +++ b/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr1(m_c).hpl @@ -0,0 +1,589 @@ + + + + total_registered.busyness_pr1(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) РФ/мужчины + Insert / update (total_registered.busyness) 2 + Y + + + + Insert / update (total_registered.busyness) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + "all_M_W" + gender + + + = + registered + registered + + + = + recording_date + recording_date + + + = + convicts + convicts + + total_registered + busyness
+ + study + study + Y + + + work + work + Y + + + study_percent + study_percent + Y + + + work_percent + work_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + "all_M_W" + gender + N + + + not_work + no_info + Y + + + not_work_percent + no_info_percent + Y + + + busyness + total_people + Y + + + convicts + convicts + N + +
+ Y + + + 1968 + 544 + +
+ + Table input (person_registry) РФ/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + -- Преобразуем строковый массив в таблицу UUID + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_1}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +status_info AS ( + SELECT + r.id AS recruit_id, + -- Проверка на обучение в вузе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_vuz, + + -- Проверка на обучение в колледже (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + AND kolledzh->'svedObrProg'->>'kodFormaObuch'='1' + ) + + ELSE false + END + ) AS is_studying_in_college, + + -- Проверка на обучение в школе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedSHkola'->'shkola') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedSHkola'->'shkola') AS school + WHERE school->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_school, + + -- Проверка на работу (есть информация и работает) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud + WHERE trud->>'prAktMestRab' = '1' + ) + ELSE false + END + ) AS is_working, + + -- Проверка на самозанятого (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD' != 'null' THEN true + ELSE false + END + ) AS is_samozanyat, + + -- Проверка на ИП (есть информация) + ( + CASE + WHEN jsonb_typeof(ri.info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN true + ELSE false + END + ) AS is_ip, + + -- Проверка на КФХ (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' != 'null' THEN true + ELSE false + END + ) AS is_kfh, + + + -- Проверка на отсутствие сведений о вузе + info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' AND jsonb_typeof(info->'svedFL'->'svedVUZ') != 'array' AS no_info_vuz, + + -- Проверка на отсутствие сведений о колледже + info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AND jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') != 'array' AS no_info_college, + + -- Проверка на отсутствие сведений о школе + info->'svedFL'->'svedSHkola'->>'prOtsSvedSHkola' = '1' AND jsonb_typeof(info->'svedFL'->'svedSHkola') != 'array' AS no_info_school, + + -- Проверка на отсутствие сведений о работе + info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' AND jsonb_typeof(info->'svedFL'->'svedTrud') != 'array' AS no_info_work, + + -- Проверка на отсутствие сведений о самозанятых + info->'svedFL'->'svedNPD'->'npd'->'aktNPD' is null OR info->'svedFL'->'svedNPD'->'npd'->'aktNPD' = 'null' AS no_info_samozanyat, + + -- Проверка на отсутствие сведений об ip + info->'svedFL'->'svedRegIP'->>'prOtsRegIP' = '1' AND jsonb_typeof(info->'svedFL'->'svedRegIP') != 'array' AS no_info_ip, + + -- Проверка на отсутствие сведений о KFH + info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' = 'null' OR info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' is null AS no_info_kfh, + + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'true' AS registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history AS rh on rh.recruit_id = r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) + AND rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + AND coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + r.id AS recruit_id, + -- Проверка на обучение в вузе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_vuz, + + -- Проверка на обучение в колледже (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_college, + + -- Проверка на обучение в школе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedSHkola'->'shkola') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedSHkola'->'shkola') AS school + WHERE school->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_school, + + -- Проверка на работу (есть информация и работает) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud + WHERE trud->>'prAktMestRab' = '1' + ) + ELSE false + END + ) AS is_working, + + -- Проверка на самозанятого (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD' != 'null' THEN true + ELSE false + END + ) AS is_samozanyat, + + -- Проверка на ИП (есть информация) + ( + CASE + WHEN jsonb_typeof(ri.info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN true + ELSE false + END + ) AS is_ip, + + -- Проверка на КФХ (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' != 'null' THEN true + ELSE false + END + ) AS is_kfh, + + + -- Проверка на отсутствие сведений о вузе + info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' AND jsonb_typeof(info->'svedFL'->'svedVUZ') != 'array' AS no_info_vuz, + + -- Проверка на отсутствие сведений о колледже + info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AND jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') != 'array' AS no_info_college, + + -- Проверка на отсутствие сведений о школе + info->'svedFL'->'svedSHkola'->>'prOtsSvedSHkola' = '1' AND jsonb_typeof(info->'svedFL'->'svedSHkola') != 'array' AS no_info_school, + + -- Проверка на отсутствие сведений о работе + info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' AND jsonb_typeof(info->'svedFL'->'svedTrud') != 'array' AS no_info_work, + + -- Проверка на отсутствие сведений о самозанятых + info->'svedFL'->'svedNPD'->'npd'->'aktNPD' is null OR info->'svedFL'->'svedNPD'->'npd'->'aktNPD' = 'null' AS no_info_samozanyat, + + -- Проверка на отсутствие сведений об ip + info->'svedFL'->'svedRegIP'->>'prOtsRegIP' = '1' AND jsonb_typeof(info->'svedFL'->'svedRegIP') != 'array' AS no_info_ip, + + -- Проверка на отсутствие сведений о KFH + info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' = 'null' OR info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' is null AS no_info_kfh, + + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'false' AS registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history AS rh on rh.recruit_id = r.id + WHERE + r.id in (SELECT recruit_id FROM notregistered) + 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 + si.recruitment_id, + CASE WHEN si.gender = 'MALE' THEN 'M' ELSE 'W' END AS gender, + si.convicts, + si.registered, + + -- Количество людей, которые учатся + COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school THEN 1 END) AS study, + + -- Количество людей, которые работают (но не учатся) + COUNT(CASE WHEN (is_working OR is_samozanyat OR is_ip OR is_kfh) + AND NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school) + THEN 1 END) AS work, + + /*-- Количество людей, для которых отсутствуют сведения о вузе, колледже, школе и работе + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR is_working OR is_samozanyat OR is_ip OR is_kfh) THEN 1 END) AS no_info, +*/ + -- Количество людей, для которых нет информации + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR + is_working OR is_samozanyat OR is_ip OR is_kfh) + THEN 1 END) AS no_info, + + -- Общее количество людей + COUNT(si.recruit_id) AS total_people + + FROM status_info si + GROUP BY si.recruitment_id, si.gender, si.convicts, si.registered + + UNION ALL + + SELECT + si.recruitment_id, + CASE + WHEN si.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + 'ALL' AS convicts, + si.registered, + + -- Количество людей, которые учатся + COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school THEN 1 END) AS study, + + -- Количество людей, которые работают (но не учатся) + COUNT(CASE WHEN (is_working OR is_samozanyat OR is_ip OR is_kfh) + AND NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school) + THEN 1 END) AS work, + + /*-- Количество людей, для которых отсутствуют сведения о вузе, колледже, школе и работе + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR is_working OR is_samozanyat OR is_ip OR is_kfh) THEN 1 END) AS no_info, +*/ + -- Количество людей, для которых нет информации + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR + is_working OR is_samozanyat OR is_ip OR is_kfh) + THEN 1 END) AS no_info, + + -- Общее количество людей + COUNT(si.recruit_id) AS total_people + FROM status_info si + GROUP BY si.recruitment_id, si.gender, si.registered +), +summary_all AS ( + SELECT + recruitment_id, + registered, + convicts, + 'ALL' AS gender, + SUM(study) AS study, + SUM(work) AS work, + SUM(no_info) AS no_info, + SUM(total_people) AS total_people + FROM summary + GROUP BY recruitment_id, registered, convicts + + UNION ALL + + SELECT + recruitment_id, + registered, + 'ALL' AS convicts, + 'ALL' AS gender, + SUM(study) AS study, + SUM(work) AS work, + SUM(no_info) AS no_info, + SUM(total_people) AS total_people + FROM summary + GROUP BY recruitment_id, registered +) +SELECT + current_date AS recording_date, + s.convicts, + s.gender, + s.registered, + s.recruitment_id, + s.study, + s.work, + s.no_info, + s.total_people, + + -- Процент людей, которые учатся + ROUND(s.study * 100.0 / NULLIF(s.total_people, 0), 2) AS study_percent, + + -- Процент людей, которые работают + ROUND(s.work * 100.0 / NULLIF(s.total_people, 0), 2) AS work_percent, + + -- Процент людей, для которых отсутствуют сведения + ROUND(s.no_info * 100.0 / NULLIF(s.total_people, 0), 2) AS no_info_percent +FROM summary s +UNION ALL +SELECT + current_date AS recording_date, + sa.convicts, + sa.gender, + sa.registered, + sa.recruitment_id, + sa.study, + sa.work, + sa.no_info, + sa.total_people, + + -- Процент людей, которые учатся + ROUND(sa.study * 100.0 / NULLIF(sa.total_people, 0), 2) AS study_percent, + + -- Процент людей, которые работают + ROUND(sa.work * 100.0 / NULLIF(sa.total_people, 0), 2) AS work_percent, + + -- Процент людей, для которых отсутствуют сведения + ROUND(sa.no_info * 100.0 / NULLIF(sa.total_people, 0), 2) AS no_info_percent +FROM summary_all sa + Y + + + 1328 + 544 + + + + + +
diff --git a/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr2(m_c).hpl b/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr2(m_c).hpl new file mode 100644 index 0000000..875eb9c --- /dev/null +++ b/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr2(m_c).hpl @@ -0,0 +1,589 @@ + + + + total_registered.busyness_pr2(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) РФ/мужчины + Insert / update (total_registered.busyness) 2 + Y + + + + Insert / update (total_registered.busyness) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + "all_M_W" + gender + + + = + registered + registered + + + = + recording_date + recording_date + + + = + convicts + convicts + + total_registered + busyness
+ + study + study + Y + + + work + work + Y + + + study_percent + study_percent + Y + + + work_percent + work_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + "all_M_W" + gender + N + + + not_work + no_info + Y + + + not_work_percent + no_info_percent + Y + + + busyness + total_people + Y + + + convicts + convicts + N + +
+ Y + + + 1968 + 544 + +
+ + Table input (person_registry) РФ/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + -- Преобразуем строковый массив в таблицу UUID + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_2}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +status_info AS ( + SELECT + r.id AS recruit_id, + -- Проверка на обучение в вузе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_vuz, + + -- Проверка на обучение в колледже (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + AND kolledzh->'svedObrProg'->>'kodFormaObuch'='1' + ) + + ELSE false + END + ) AS is_studying_in_college, + + -- Проверка на обучение в школе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedSHkola'->'shkola') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedSHkola'->'shkola') AS school + WHERE school->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_school, + + -- Проверка на работу (есть информация и работает) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud + WHERE trud->>'prAktMestRab' = '1' + ) + ELSE false + END + ) AS is_working, + + -- Проверка на самозанятого (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD' != 'null' THEN true + ELSE false + END + ) AS is_samozanyat, + + -- Проверка на ИП (есть информация) + ( + CASE + WHEN jsonb_typeof(ri.info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN true + ELSE false + END + ) AS is_ip, + + -- Проверка на КФХ (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' != 'null' THEN true + ELSE false + END + ) AS is_kfh, + + + -- Проверка на отсутствие сведений о вузе + info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' AND jsonb_typeof(info->'svedFL'->'svedVUZ') != 'array' AS no_info_vuz, + + -- Проверка на отсутствие сведений о колледже + info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AND jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') != 'array' AS no_info_college, + + -- Проверка на отсутствие сведений о школе + info->'svedFL'->'svedSHkola'->>'prOtsSvedSHkola' = '1' AND jsonb_typeof(info->'svedFL'->'svedSHkola') != 'array' AS no_info_school, + + -- Проверка на отсутствие сведений о работе + info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' AND jsonb_typeof(info->'svedFL'->'svedTrud') != 'array' AS no_info_work, + + -- Проверка на отсутствие сведений о самозанятых + info->'svedFL'->'svedNPD'->'npd'->'aktNPD' is null OR info->'svedFL'->'svedNPD'->'npd'->'aktNPD' = 'null' AS no_info_samozanyat, + + -- Проверка на отсутствие сведений об ip + info->'svedFL'->'svedRegIP'->>'prOtsRegIP' = '1' AND jsonb_typeof(info->'svedFL'->'svedRegIP') != 'array' AS no_info_ip, + + -- Проверка на отсутствие сведений о KFH + info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' = 'null' OR info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' is null AS no_info_kfh, + + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'true' AS registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history AS rh on rh.recruit_id = r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) + AND rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + AND coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + r.id AS recruit_id, + -- Проверка на обучение в вузе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_vuz, + + -- Проверка на обучение в колледже (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_college, + + -- Проверка на обучение в школе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedSHkola'->'shkola') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedSHkola'->'shkola') AS school + WHERE school->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_school, + + -- Проверка на работу (есть информация и работает) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud + WHERE trud->>'prAktMestRab' = '1' + ) + ELSE false + END + ) AS is_working, + + -- Проверка на самозанятого (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD' != 'null' THEN true + ELSE false + END + ) AS is_samozanyat, + + -- Проверка на ИП (есть информация) + ( + CASE + WHEN jsonb_typeof(ri.info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN true + ELSE false + END + ) AS is_ip, + + -- Проверка на КФХ (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' != 'null' THEN true + ELSE false + END + ) AS is_kfh, + + + -- Проверка на отсутствие сведений о вузе + info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' AND jsonb_typeof(info->'svedFL'->'svedVUZ') != 'array' AS no_info_vuz, + + -- Проверка на отсутствие сведений о колледже + info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AND jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') != 'array' AS no_info_college, + + -- Проверка на отсутствие сведений о школе + info->'svedFL'->'svedSHkola'->>'prOtsSvedSHkola' = '1' AND jsonb_typeof(info->'svedFL'->'svedSHkola') != 'array' AS no_info_school, + + -- Проверка на отсутствие сведений о работе + info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' AND jsonb_typeof(info->'svedFL'->'svedTrud') != 'array' AS no_info_work, + + -- Проверка на отсутствие сведений о самозанятых + info->'svedFL'->'svedNPD'->'npd'->'aktNPD' is null OR info->'svedFL'->'svedNPD'->'npd'->'aktNPD' = 'null' AS no_info_samozanyat, + + -- Проверка на отсутствие сведений об ip + info->'svedFL'->'svedRegIP'->>'prOtsRegIP' = '1' AND jsonb_typeof(info->'svedFL'->'svedRegIP') != 'array' AS no_info_ip, + + -- Проверка на отсутствие сведений о KFH + info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' = 'null' OR info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' is null AS no_info_kfh, + + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'false' AS registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history AS rh on rh.recruit_id = r.id + WHERE + r.id in (SELECT recruit_id FROM notregistered) + 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 + si.recruitment_id, + CASE WHEN si.gender = 'MALE' THEN 'M' ELSE 'W' END AS gender, + si.convicts, + si.registered, + + -- Количество людей, которые учатся + COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school THEN 1 END) AS study, + + -- Количество людей, которые работают (но не учатся) + COUNT(CASE WHEN (is_working OR is_samozanyat OR is_ip OR is_kfh) + AND NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school) + THEN 1 END) AS work, + + /*-- Количество людей, для которых отсутствуют сведения о вузе, колледже, школе и работе + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR is_working OR is_samozanyat OR is_ip OR is_kfh) THEN 1 END) AS no_info, +*/ + -- Количество людей, для которых нет информации + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR + is_working OR is_samozanyat OR is_ip OR is_kfh) + THEN 1 END) AS no_info, + + -- Общее количество людей + COUNT(si.recruit_id) AS total_people + + FROM status_info si + GROUP BY si.recruitment_id, si.gender, si.convicts, si.registered + + UNION ALL + + SELECT + si.recruitment_id, + CASE + WHEN si.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + 'ALL' AS convicts, + si.registered, + + -- Количество людей, которые учатся + COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school THEN 1 END) AS study, + + -- Количество людей, которые работают (но не учатся) + COUNT(CASE WHEN (is_working OR is_samozanyat OR is_ip OR is_kfh) + AND NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school) + THEN 1 END) AS work, + + /*-- Количество людей, для которых отсутствуют сведения о вузе, колледже, школе и работе + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR is_working OR is_samozanyat OR is_ip OR is_kfh) THEN 1 END) AS no_info, +*/ + -- Количество людей, для которых нет информации + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR + is_working OR is_samozanyat OR is_ip OR is_kfh) + THEN 1 END) AS no_info, + + -- Общее количество людей + COUNT(si.recruit_id) AS total_people + FROM status_info si + GROUP BY si.recruitment_id, si.gender, si.registered +), +summary_all AS ( + SELECT + recruitment_id, + registered, + convicts, + 'ALL' AS gender, + SUM(study) AS study, + SUM(work) AS work, + SUM(no_info) AS no_info, + SUM(total_people) AS total_people + FROM summary + GROUP BY recruitment_id, registered, convicts + + UNION ALL + + SELECT + recruitment_id, + registered, + 'ALL' AS convicts, + 'ALL' AS gender, + SUM(study) AS study, + SUM(work) AS work, + SUM(no_info) AS no_info, + SUM(total_people) AS total_people + FROM summary + GROUP BY recruitment_id, registered +) +SELECT + current_date AS recording_date, + s.convicts, + s.gender, + s.registered, + s.recruitment_id, + s.study, + s.work, + s.no_info, + s.total_people, + + -- Процент людей, которые учатся + ROUND(s.study * 100.0 / NULLIF(s.total_people, 0), 2) AS study_percent, + + -- Процент людей, которые работают + ROUND(s.work * 100.0 / NULLIF(s.total_people, 0), 2) AS work_percent, + + -- Процент людей, для которых отсутствуют сведения + ROUND(s.no_info * 100.0 / NULLIF(s.total_people, 0), 2) AS no_info_percent +FROM summary s +UNION ALL +SELECT + current_date AS recording_date, + sa.convicts, + sa.gender, + sa.registered, + sa.recruitment_id, + sa.study, + sa.work, + sa.no_info, + sa.total_people, + + -- Процент людей, которые учатся + ROUND(sa.study * 100.0 / NULLIF(sa.total_people, 0), 2) AS study_percent, + + -- Процент людей, которые работают + ROUND(sa.work * 100.0 / NULLIF(sa.total_people, 0), 2) AS work_percent, + + -- Процент людей, для которых отсутствуют сведения + ROUND(sa.no_info * 100.0 / NULLIF(sa.total_people, 0), 2) AS no_info_percent +FROM summary_all sa + Y + + + 1328 + 544 + + + + + +
diff --git a/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr3(m_c).hpl b/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr3(m_c).hpl new file mode 100644 index 0000000..fac1d1f --- /dev/null +++ b/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr3(m_c).hpl @@ -0,0 +1,589 @@ + + + + total_registered.busyness_pr3(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) РФ/мужчины + Insert / update (total_registered.busyness) 2 + Y + + + + Insert / update (total_registered.busyness) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + "all_M_W" + gender + + + = + registered + registered + + + = + recording_date + recording_date + + + = + convicts + convicts + + total_registered + busyness
+ + study + study + Y + + + work + work + Y + + + study_percent + study_percent + Y + + + work_percent + work_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + "all_M_W" + gender + N + + + not_work + no_info + Y + + + not_work_percent + no_info_percent + Y + + + busyness + total_people + Y + + + convicts + convicts + N + +
+ Y + + + 1968 + 544 + +
+ + Table input (person_registry) РФ/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + -- Преобразуем строковый массив в таблицу UUID + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_3}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +status_info AS ( + SELECT + r.id AS recruit_id, + -- Проверка на обучение в вузе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_vuz, + + -- Проверка на обучение в колледже (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + AND kolledzh->'svedObrProg'->>'kodFormaObuch'='1' + ) + + ELSE false + END + ) AS is_studying_in_college, + + -- Проверка на обучение в школе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedSHkola'->'shkola') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedSHkola'->'shkola') AS school + WHERE school->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_school, + + -- Проверка на работу (есть информация и работает) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud + WHERE trud->>'prAktMestRab' = '1' + ) + ELSE false + END + ) AS is_working, + + -- Проверка на самозанятого (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD' != 'null' THEN true + ELSE false + END + ) AS is_samozanyat, + + -- Проверка на ИП (есть информация) + ( + CASE + WHEN jsonb_typeof(ri.info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN true + ELSE false + END + ) AS is_ip, + + -- Проверка на КФХ (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' != 'null' THEN true + ELSE false + END + ) AS is_kfh, + + + -- Проверка на отсутствие сведений о вузе + info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' AND jsonb_typeof(info->'svedFL'->'svedVUZ') != 'array' AS no_info_vuz, + + -- Проверка на отсутствие сведений о колледже + info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AND jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') != 'array' AS no_info_college, + + -- Проверка на отсутствие сведений о школе + info->'svedFL'->'svedSHkola'->>'prOtsSvedSHkola' = '1' AND jsonb_typeof(info->'svedFL'->'svedSHkola') != 'array' AS no_info_school, + + -- Проверка на отсутствие сведений о работе + info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' AND jsonb_typeof(info->'svedFL'->'svedTrud') != 'array' AS no_info_work, + + -- Проверка на отсутствие сведений о самозанятых + info->'svedFL'->'svedNPD'->'npd'->'aktNPD' is null OR info->'svedFL'->'svedNPD'->'npd'->'aktNPD' = 'null' AS no_info_samozanyat, + + -- Проверка на отсутствие сведений об ip + info->'svedFL'->'svedRegIP'->>'prOtsRegIP' = '1' AND jsonb_typeof(info->'svedFL'->'svedRegIP') != 'array' AS no_info_ip, + + -- Проверка на отсутствие сведений о KFH + info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' = 'null' OR info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' is null AS no_info_kfh, + + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'true' AS registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history AS rh on rh.recruit_id = r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) + AND rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + AND coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + r.id AS recruit_id, + -- Проверка на обучение в вузе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_vuz, + + -- Проверка на обучение в колледже (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_college, + + -- Проверка на обучение в школе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedSHkola'->'shkola') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedSHkola'->'shkola') AS school + WHERE school->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_school, + + -- Проверка на работу (есть информация и работает) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud + WHERE trud->>'prAktMestRab' = '1' + ) + ELSE false + END + ) AS is_working, + + -- Проверка на самозанятого (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD' != 'null' THEN true + ELSE false + END + ) AS is_samozanyat, + + -- Проверка на ИП (есть информация) + ( + CASE + WHEN jsonb_typeof(ri.info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN true + ELSE false + END + ) AS is_ip, + + -- Проверка на КФХ (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' != 'null' THEN true + ELSE false + END + ) AS is_kfh, + + + -- Проверка на отсутствие сведений о вузе + info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' AND jsonb_typeof(info->'svedFL'->'svedVUZ') != 'array' AS no_info_vuz, + + -- Проверка на отсутствие сведений о колледже + info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AND jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') != 'array' AS no_info_college, + + -- Проверка на отсутствие сведений о школе + info->'svedFL'->'svedSHkola'->>'prOtsSvedSHkola' = '1' AND jsonb_typeof(info->'svedFL'->'svedSHkola') != 'array' AS no_info_school, + + -- Проверка на отсутствие сведений о работе + info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' AND jsonb_typeof(info->'svedFL'->'svedTrud') != 'array' AS no_info_work, + + -- Проверка на отсутствие сведений о самозанятых + info->'svedFL'->'svedNPD'->'npd'->'aktNPD' is null OR info->'svedFL'->'svedNPD'->'npd'->'aktNPD' = 'null' AS no_info_samozanyat, + + -- Проверка на отсутствие сведений об ip + info->'svedFL'->'svedRegIP'->>'prOtsRegIP' = '1' AND jsonb_typeof(info->'svedFL'->'svedRegIP') != 'array' AS no_info_ip, + + -- Проверка на отсутствие сведений о KFH + info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' = 'null' OR info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' is null AS no_info_kfh, + + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'false' AS registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history AS rh on rh.recruit_id = r.id + WHERE + r.id in (SELECT recruit_id FROM notregistered) + 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 + si.recruitment_id, + CASE WHEN si.gender = 'MALE' THEN 'M' ELSE 'W' END AS gender, + si.convicts, + si.registered, + + -- Количество людей, которые учатся + COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school THEN 1 END) AS study, + + -- Количество людей, которые работают (но не учатся) + COUNT(CASE WHEN (is_working OR is_samozanyat OR is_ip OR is_kfh) + AND NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school) + THEN 1 END) AS work, + + /*-- Количество людей, для которых отсутствуют сведения о вузе, колледже, школе и работе + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR is_working OR is_samozanyat OR is_ip OR is_kfh) THEN 1 END) AS no_info, +*/ + -- Количество людей, для которых нет информации + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR + is_working OR is_samozanyat OR is_ip OR is_kfh) + THEN 1 END) AS no_info, + + -- Общее количество людей + COUNT(si.recruit_id) AS total_people + + FROM status_info si + GROUP BY si.recruitment_id, si.gender, si.convicts, si.registered + + UNION ALL + + SELECT + si.recruitment_id, + CASE + WHEN si.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + 'ALL' AS convicts, + si.registered, + + -- Количество людей, которые учатся + COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school THEN 1 END) AS study, + + -- Количество людей, которые работают (но не учатся) + COUNT(CASE WHEN (is_working OR is_samozanyat OR is_ip OR is_kfh) + AND NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school) + THEN 1 END) AS work, + + /*-- Количество людей, для которых отсутствуют сведения о вузе, колледже, школе и работе + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR is_working OR is_samozanyat OR is_ip OR is_kfh) THEN 1 END) AS no_info, +*/ + -- Количество людей, для которых нет информации + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR + is_working OR is_samozanyat OR is_ip OR is_kfh) + THEN 1 END) AS no_info, + + -- Общее количество людей + COUNT(si.recruit_id) AS total_people + FROM status_info si + GROUP BY si.recruitment_id, si.gender, si.registered +), +summary_all AS ( + SELECT + recruitment_id, + registered, + convicts, + 'ALL' AS gender, + SUM(study) AS study, + SUM(work) AS work, + SUM(no_info) AS no_info, + SUM(total_people) AS total_people + FROM summary + GROUP BY recruitment_id, registered, convicts + + UNION ALL + + SELECT + recruitment_id, + registered, + 'ALL' AS convicts, + 'ALL' AS gender, + SUM(study) AS study, + SUM(work) AS work, + SUM(no_info) AS no_info, + SUM(total_people) AS total_people + FROM summary + GROUP BY recruitment_id, registered +) +SELECT + current_date AS recording_date, + s.convicts, + s.gender, + s.registered, + s.recruitment_id, + s.study, + s.work, + s.no_info, + s.total_people, + + -- Процент людей, которые учатся + ROUND(s.study * 100.0 / NULLIF(s.total_people, 0), 2) AS study_percent, + + -- Процент людей, которые работают + ROUND(s.work * 100.0 / NULLIF(s.total_people, 0), 2) AS work_percent, + + -- Процент людей, для которых отсутствуют сведения + ROUND(s.no_info * 100.0 / NULLIF(s.total_people, 0), 2) AS no_info_percent +FROM summary s +UNION ALL +SELECT + current_date AS recording_date, + sa.convicts, + sa.gender, + sa.registered, + sa.recruitment_id, + sa.study, + sa.work, + sa.no_info, + sa.total_people, + + -- Процент людей, которые учатся + ROUND(sa.study * 100.0 / NULLIF(sa.total_people, 0), 2) AS study_percent, + + -- Процент людей, которые работают + ROUND(sa.work * 100.0 / NULLIF(sa.total_people, 0), 2) AS work_percent, + + -- Процент людей, для которых отсутствуют сведения + ROUND(sa.no_info * 100.0 / NULLIF(sa.total_people, 0), 2) AS no_info_percent +FROM summary_all sa + Y + + + 1328 + 544 + + + + + +
diff --git a/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr4(m_c).hpl b/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr4(m_c).hpl new file mode 100644 index 0000000..d7232f1 --- /dev/null +++ b/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr4(m_c).hpl @@ -0,0 +1,589 @@ + + + + total_registered.busyness_pr4(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) РФ/мужчины + Insert / update (total_registered.busyness) 2 + Y + + + + Insert / update (total_registered.busyness) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + "all_M_W" + gender + + + = + registered + registered + + + = + recording_date + recording_date + + + = + convicts + convicts + + total_registered + busyness
+ + study + study + Y + + + work + work + Y + + + study_percent + study_percent + Y + + + work_percent + work_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + "all_M_W" + gender + N + + + not_work + no_info + Y + + + not_work_percent + no_info_percent + Y + + + busyness + total_people + Y + + + convicts + convicts + N + +
+ Y + + + 1968 + 544 + +
+ + Table input (person_registry) РФ/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + -- Преобразуем строковый массив в таблицу UUID + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_4}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +status_info AS ( + SELECT + r.id AS recruit_id, + -- Проверка на обучение в вузе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_vuz, + + -- Проверка на обучение в колледже (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + AND kolledzh->'svedObrProg'->>'kodFormaObuch'='1' + ) + + ELSE false + END + ) AS is_studying_in_college, + + -- Проверка на обучение в школе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedSHkola'->'shkola') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedSHkola'->'shkola') AS school + WHERE school->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_school, + + -- Проверка на работу (есть информация и работает) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud + WHERE trud->>'prAktMestRab' = '1' + ) + ELSE false + END + ) AS is_working, + + -- Проверка на самозанятого (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD' != 'null' THEN true + ELSE false + END + ) AS is_samozanyat, + + -- Проверка на ИП (есть информация) + ( + CASE + WHEN jsonb_typeof(ri.info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN true + ELSE false + END + ) AS is_ip, + + -- Проверка на КФХ (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' != 'null' THEN true + ELSE false + END + ) AS is_kfh, + + + -- Проверка на отсутствие сведений о вузе + info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' AND jsonb_typeof(info->'svedFL'->'svedVUZ') != 'array' AS no_info_vuz, + + -- Проверка на отсутствие сведений о колледже + info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AND jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') != 'array' AS no_info_college, + + -- Проверка на отсутствие сведений о школе + info->'svedFL'->'svedSHkola'->>'prOtsSvedSHkola' = '1' AND jsonb_typeof(info->'svedFL'->'svedSHkola') != 'array' AS no_info_school, + + -- Проверка на отсутствие сведений о работе + info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' AND jsonb_typeof(info->'svedFL'->'svedTrud') != 'array' AS no_info_work, + + -- Проверка на отсутствие сведений о самозанятых + info->'svedFL'->'svedNPD'->'npd'->'aktNPD' is null OR info->'svedFL'->'svedNPD'->'npd'->'aktNPD' = 'null' AS no_info_samozanyat, + + -- Проверка на отсутствие сведений об ip + info->'svedFL'->'svedRegIP'->>'prOtsRegIP' = '1' AND jsonb_typeof(info->'svedFL'->'svedRegIP') != 'array' AS no_info_ip, + + -- Проверка на отсутствие сведений о KFH + info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' = 'null' OR info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' is null AS no_info_kfh, + + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'true' AS registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history AS rh on rh.recruit_id = r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) + AND rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + AND coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + r.id AS recruit_id, + -- Проверка на обучение в вузе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_vuz, + + -- Проверка на обучение в колледже (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_college, + + -- Проверка на обучение в школе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedSHkola'->'shkola') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedSHkola'->'shkola') AS school + WHERE school->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_school, + + -- Проверка на работу (есть информация и работает) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud + WHERE trud->>'prAktMestRab' = '1' + ) + ELSE false + END + ) AS is_working, + + -- Проверка на самозанятого (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD' != 'null' THEN true + ELSE false + END + ) AS is_samozanyat, + + -- Проверка на ИП (есть информация) + ( + CASE + WHEN jsonb_typeof(ri.info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN true + ELSE false + END + ) AS is_ip, + + -- Проверка на КФХ (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' != 'null' THEN true + ELSE false + END + ) AS is_kfh, + + + -- Проверка на отсутствие сведений о вузе + info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' AND jsonb_typeof(info->'svedFL'->'svedVUZ') != 'array' AS no_info_vuz, + + -- Проверка на отсутствие сведений о колледже + info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AND jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') != 'array' AS no_info_college, + + -- Проверка на отсутствие сведений о школе + info->'svedFL'->'svedSHkola'->>'prOtsSvedSHkola' = '1' AND jsonb_typeof(info->'svedFL'->'svedSHkola') != 'array' AS no_info_school, + + -- Проверка на отсутствие сведений о работе + info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' AND jsonb_typeof(info->'svedFL'->'svedTrud') != 'array' AS no_info_work, + + -- Проверка на отсутствие сведений о самозанятых + info->'svedFL'->'svedNPD'->'npd'->'aktNPD' is null OR info->'svedFL'->'svedNPD'->'npd'->'aktNPD' = 'null' AS no_info_samozanyat, + + -- Проверка на отсутствие сведений об ip + info->'svedFL'->'svedRegIP'->>'prOtsRegIP' = '1' AND jsonb_typeof(info->'svedFL'->'svedRegIP') != 'array' AS no_info_ip, + + -- Проверка на отсутствие сведений о KFH + info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' = 'null' OR info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' is null AS no_info_kfh, + + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'false' AS registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history AS rh on rh.recruit_id = r.id + WHERE + r.id in (SELECT recruit_id FROM notregistered) + 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 + si.recruitment_id, + CASE WHEN si.gender = 'MALE' THEN 'M' ELSE 'W' END AS gender, + si.convicts, + si.registered, + + -- Количество людей, которые учатся + COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school THEN 1 END) AS study, + + -- Количество людей, которые работают (но не учатся) + COUNT(CASE WHEN (is_working OR is_samozanyat OR is_ip OR is_kfh) + AND NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school) + THEN 1 END) AS work, + + /*-- Количество людей, для которых отсутствуют сведения о вузе, колледже, школе и работе + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR is_working OR is_samozanyat OR is_ip OR is_kfh) THEN 1 END) AS no_info, +*/ + -- Количество людей, для которых нет информации + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR + is_working OR is_samozanyat OR is_ip OR is_kfh) + THEN 1 END) AS no_info, + + -- Общее количество людей + COUNT(si.recruit_id) AS total_people + + FROM status_info si + GROUP BY si.recruitment_id, si.gender, si.convicts, si.registered + + UNION ALL + + SELECT + si.recruitment_id, + CASE + WHEN si.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + 'ALL' AS convicts, + si.registered, + + -- Количество людей, которые учатся + COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school THEN 1 END) AS study, + + -- Количество людей, которые работают (но не учатся) + COUNT(CASE WHEN (is_working OR is_samozanyat OR is_ip OR is_kfh) + AND NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school) + THEN 1 END) AS work, + + /*-- Количество людей, для которых отсутствуют сведения о вузе, колледже, школе и работе + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR is_working OR is_samozanyat OR is_ip OR is_kfh) THEN 1 END) AS no_info, +*/ + -- Количество людей, для которых нет информации + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR + is_working OR is_samozanyat OR is_ip OR is_kfh) + THEN 1 END) AS no_info, + + -- Общее количество людей + COUNT(si.recruit_id) AS total_people + FROM status_info si + GROUP BY si.recruitment_id, si.gender, si.registered +), +summary_all AS ( + SELECT + recruitment_id, + registered, + convicts, + 'ALL' AS gender, + SUM(study) AS study, + SUM(work) AS work, + SUM(no_info) AS no_info, + SUM(total_people) AS total_people + FROM summary + GROUP BY recruitment_id, registered, convicts + + UNION ALL + + SELECT + recruitment_id, + registered, + 'ALL' AS convicts, + 'ALL' AS gender, + SUM(study) AS study, + SUM(work) AS work, + SUM(no_info) AS no_info, + SUM(total_people) AS total_people + FROM summary + GROUP BY recruitment_id, registered +) +SELECT + current_date AS recording_date, + s.convicts, + s.gender, + s.registered, + s.recruitment_id, + s.study, + s.work, + s.no_info, + s.total_people, + + -- Процент людей, которые учатся + ROUND(s.study * 100.0 / NULLIF(s.total_people, 0), 2) AS study_percent, + + -- Процент людей, которые работают + ROUND(s.work * 100.0 / NULLIF(s.total_people, 0), 2) AS work_percent, + + -- Процент людей, для которых отсутствуют сведения + ROUND(s.no_info * 100.0 / NULLIF(s.total_people, 0), 2) AS no_info_percent +FROM summary s +UNION ALL +SELECT + current_date AS recording_date, + sa.convicts, + sa.gender, + sa.registered, + sa.recruitment_id, + sa.study, + sa.work, + sa.no_info, + sa.total_people, + + -- Процент людей, которые учатся + ROUND(sa.study * 100.0 / NULLIF(sa.total_people, 0), 2) AS study_percent, + + -- Процент людей, которые работают + ROUND(sa.work * 100.0 / NULLIF(sa.total_people, 0), 2) AS work_percent, + + -- Процент людей, для которых отсутствуют сведения + ROUND(sa.no_info * 100.0 / NULLIF(sa.total_people, 0), 2) AS no_info_percent +FROM summary_all sa + Y + + + 1328 + 544 + + + + + +
diff --git a/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr5(m_c).hpl b/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr5(m_c).hpl new file mode 100644 index 0000000..acd579b --- /dev/null +++ b/mappings/mil_com/total_registered.busyness(m_c)/total_registered.busyness_pr5(m_c).hpl @@ -0,0 +1,589 @@ + + + + total_registered.busyness_pr5(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) РФ/мужчины + Insert / update (total_registered.busyness) 2 + Y + + + + Insert / update (total_registered.busyness) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + "all_M_W" + gender + + + = + registered + registered + + + = + recording_date + recording_date + + + = + convicts + convicts + + total_registered + busyness
+ + study + study + Y + + + work + work + Y + + + study_percent + study_percent + Y + + + work_percent + work_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + "all_M_W" + gender + N + + + not_work + no_info + Y + + + not_work_percent + no_info_percent + Y + + + busyness + total_people + Y + + + convicts + convicts + N + +
+ Y + + + 1968 + 544 + +
+ + Table input (person_registry) РФ/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + -- Преобразуем строковый массив в таблицу UUID + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_5}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +status_info AS ( + SELECT + r.id AS recruit_id, + -- Проверка на обучение в вузе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_vuz, + + -- Проверка на обучение в колледже (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + AND kolledzh->'svedObrProg'->>'kodFormaObuch'='1' + ) + + ELSE false + END + ) AS is_studying_in_college, + + -- Проверка на обучение в школе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedSHkola'->'shkola') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedSHkola'->'shkola') AS school + WHERE school->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_school, + + -- Проверка на работу (есть информация и работает) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud + WHERE trud->>'prAktMestRab' = '1' + ) + ELSE false + END + ) AS is_working, + + -- Проверка на самозанятого (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD' != 'null' THEN true + ELSE false + END + ) AS is_samozanyat, + + -- Проверка на ИП (есть информация) + ( + CASE + WHEN jsonb_typeof(ri.info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN true + ELSE false + END + ) AS is_ip, + + -- Проверка на КФХ (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' != 'null' THEN true + ELSE false + END + ) AS is_kfh, + + + -- Проверка на отсутствие сведений о вузе + info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' AND jsonb_typeof(info->'svedFL'->'svedVUZ') != 'array' AS no_info_vuz, + + -- Проверка на отсутствие сведений о колледже + info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AND jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') != 'array' AS no_info_college, + + -- Проверка на отсутствие сведений о школе + info->'svedFL'->'svedSHkola'->>'prOtsSvedSHkola' = '1' AND jsonb_typeof(info->'svedFL'->'svedSHkola') != 'array' AS no_info_school, + + -- Проверка на отсутствие сведений о работе + info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' AND jsonb_typeof(info->'svedFL'->'svedTrud') != 'array' AS no_info_work, + + -- Проверка на отсутствие сведений о самозанятых + info->'svedFL'->'svedNPD'->'npd'->'aktNPD' is null OR info->'svedFL'->'svedNPD'->'npd'->'aktNPD' = 'null' AS no_info_samozanyat, + + -- Проверка на отсутствие сведений об ip + info->'svedFL'->'svedRegIP'->>'prOtsRegIP' = '1' AND jsonb_typeof(info->'svedFL'->'svedRegIP') != 'array' AS no_info_ip, + + -- Проверка на отсутствие сведений о KFH + info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' = 'null' OR info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' is null AS no_info_kfh, + + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'true' AS registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history AS rh on rh.recruit_id = r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) + AND rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + AND coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + r.id AS recruit_id, + -- Проверка на обучение в вузе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz + WHERE vuz->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_vuz, + + -- Проверка на обучение в колледже (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh + WHERE kolledzh->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_college, + + -- Проверка на обучение в школе (есть информация и обучается) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedSHkola'->'shkola') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedSHkola'->'shkola') AS school + WHERE school->>'kodStatus' IN ( + '1', -- Обучается + '2', -- Восстановлен + '4' -- Отпуск + ) + ) + ELSE false + END + ) AS is_studying_in_school, + + -- Проверка на работу (есть информация и работает) + ( + CASE + WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud + WHERE trud->>'prAktMestRab' = '1' + ) + ELSE false + END + ) AS is_working, + + -- Проверка на самозанятого (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD' != 'null' THEN true + ELSE false + END + ) AS is_samozanyat, + + -- Проверка на ИП (есть информация) + ( + CASE + WHEN jsonb_typeof(ri.info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN true + ELSE false + END + ) AS is_ip, + + -- Проверка на КФХ (есть информация) + ( + CASE + WHEN ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' != 'null' THEN true + ELSE false + END + ) AS is_kfh, + + + -- Проверка на отсутствие сведений о вузе + info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' AND jsonb_typeof(info->'svedFL'->'svedVUZ') != 'array' AS no_info_vuz, + + -- Проверка на отсутствие сведений о колледже + info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AND jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') != 'array' AS no_info_college, + + -- Проверка на отсутствие сведений о школе + info->'svedFL'->'svedSHkola'->>'prOtsSvedSHkola' = '1' AND jsonb_typeof(info->'svedFL'->'svedSHkola') != 'array' AS no_info_school, + + -- Проверка на отсутствие сведений о работе + info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' AND jsonb_typeof(info->'svedFL'->'svedTrud') != 'array' AS no_info_work, + + -- Проверка на отсутствие сведений о самозанятых + info->'svedFL'->'svedNPD'->'npd'->'aktNPD' is null OR info->'svedFL'->'svedNPD'->'npd'->'aktNPD' = 'null' AS no_info_samozanyat, + + -- Проверка на отсутствие сведений об ip + info->'svedFL'->'svedRegIP'->>'prOtsRegIP' = '1' AND jsonb_typeof(info->'svedFL'->'svedRegIP') != 'array' AS no_info_ip, + + -- Проверка на отсутствие сведений о KFH + info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' = 'null' OR info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat'->'svedGlKFH' is null AS no_info_kfh, + + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 'false' AS registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history AS rh on rh.recruit_id = r.id + WHERE + r.id in (SELECT recruit_id FROM notregistered) + 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 + si.recruitment_id, + CASE WHEN si.gender = 'MALE' THEN 'M' ELSE 'W' END AS gender, + si.convicts, + si.registered, + + -- Количество людей, которые учатся + COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school THEN 1 END) AS study, + + -- Количество людей, которые работают (но не учатся) + COUNT(CASE WHEN (is_working OR is_samozanyat OR is_ip OR is_kfh) + AND NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school) + THEN 1 END) AS work, + + /*-- Количество людей, для которых отсутствуют сведения о вузе, колледже, школе и работе + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR is_working OR is_samozanyat OR is_ip OR is_kfh) THEN 1 END) AS no_info, +*/ + -- Количество людей, для которых нет информации + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR + is_working OR is_samozanyat OR is_ip OR is_kfh) + THEN 1 END) AS no_info, + + -- Общее количество людей + COUNT(si.recruit_id) AS total_people + + FROM status_info si + GROUP BY si.recruitment_id, si.gender, si.convicts, si.registered + + UNION ALL + + SELECT + si.recruitment_id, + CASE + WHEN si.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + 'ALL' AS convicts, + si.registered, + + -- Количество людей, которые учатся + COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school THEN 1 END) AS study, + + -- Количество людей, которые работают (но не учатся) + COUNT(CASE WHEN (is_working OR is_samozanyat OR is_ip OR is_kfh) + AND NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school) + THEN 1 END) AS work, + + /*-- Количество людей, для которых отсутствуют сведения о вузе, колледже, школе и работе + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR is_working OR is_samozanyat OR is_ip OR is_kfh) THEN 1 END) AS no_info, +*/ + -- Количество людей, для которых нет информации + COUNT(CASE WHEN NOT (is_studying_in_vuz OR is_studying_in_college OR is_studying_in_school OR + is_working OR is_samozanyat OR is_ip OR is_kfh) + THEN 1 END) AS no_info, + + -- Общее количество людей + COUNT(si.recruit_id) AS total_people + FROM status_info si + GROUP BY si.recruitment_id, si.gender, si.registered +), +summary_all AS ( + SELECT + recruitment_id, + registered, + convicts, + 'ALL' AS gender, + SUM(study) AS study, + SUM(work) AS work, + SUM(no_info) AS no_info, + SUM(total_people) AS total_people + FROM summary + GROUP BY recruitment_id, registered, convicts + + UNION ALL + + SELECT + recruitment_id, + registered, + 'ALL' AS convicts, + 'ALL' AS gender, + SUM(study) AS study, + SUM(work) AS work, + SUM(no_info) AS no_info, + SUM(total_people) AS total_people + FROM summary + GROUP BY recruitment_id, registered +) +SELECT + current_date AS recording_date, + s.convicts, + s.gender, + s.registered, + s.recruitment_id, + s.study, + s.work, + s.no_info, + s.total_people, + + -- Процент людей, которые учатся + ROUND(s.study * 100.0 / NULLIF(s.total_people, 0), 2) AS study_percent, + + -- Процент людей, которые работают + ROUND(s.work * 100.0 / NULLIF(s.total_people, 0), 2) AS work_percent, + + -- Процент людей, для которых отсутствуют сведения + ROUND(s.no_info * 100.0 / NULLIF(s.total_people, 0), 2) AS no_info_percent +FROM summary s +UNION ALL +SELECT + current_date AS recording_date, + sa.convicts, + sa.gender, + sa.registered, + sa.recruitment_id, + sa.study, + sa.work, + sa.no_info, + sa.total_people, + + -- Процент людей, которые учатся + ROUND(sa.study * 100.0 / NULLIF(sa.total_people, 0), 2) AS study_percent, + + -- Процент людей, которые работают + ROUND(sa.work * 100.0 / NULLIF(sa.total_people, 0), 2) AS work_percent, + + -- Процент людей, для которых отсутствуют сведения + ROUND(sa.no_info * 100.0 / NULLIF(sa.total_people, 0), 2) AS no_info_percent +FROM summary_all sa + Y + + + 1328 + 544 + + + + + +
diff --git a/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor(m_c).hpl b/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor(m_c).hpl new file mode 100644 index 0000000..66817de --- /dev/null +++ b/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor(m_c).hpl @@ -0,0 +1,424 @@ + + + + total_registered.child_minor(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 4 2 + Select values 4 2 + N + + + Table input (person_registry)регион/все + Get variables 4 2 + N + + + Select values 4 2 + Insert / update (total_registered.child_minor) 3 + N + + + Table input (person_registry)регион/все + Insert / update (total_registered.child_minor) 3 + Y + + + + Get variables 4 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REC_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 1056 + 480 + + + + Insert / update (total_registered.child_minor) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + child_minor
+ + no_child + no_children + Y + + + "1_child" + one_child + Y + + + "2_child" + two_children + Y + + + "3_child" + three_children + Y + + + "4_more_child" + four_or_more_children + Y + + + "all_M_W" + gender + N + + + no_child_percent + no_children_percent + Y + + + "1_child_percent" + one_child_percent + Y + + + "2_child_percent" + two_children_percent + Y + + + "3_child_percent" + three_children_percent + Y + + + "4_more_child_percent" + four_or_more_children_percent + Y + + + recruitment_id + recruitment_id + N + + + total_count + total_count + Y + + + convicts + convicts + N + +
+ N + + + 1504 + 368 + +
+ + Select values 4 2 + SelectValues + + Y + + 1 + + none + + + + N + + REC_ID + REC_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 1248 + 480 + + + + Table input (person_registry)регион/все + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +vse AS ( + SELECT + r.id, + ri.recruit_id, + --COALESCE(r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + ri.info + 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 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id IN (SELECT recruit_id FROM registered) + AND rh.id IN (SELECT recruit_history_id FROM registered) + AND COALESCE(r.current_recruitment_id, rh.current_recruitment_id)::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') + + UNION ALL + + SELECT + r.id, + ri.recruit_id, + --COALESCE(r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + 'ALL' AS convicts, + ri.info + 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 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id IN (SELECT recruit_id FROM registered) + AND rh.id IN (SELECT recruit_history_id FROM registered) + AND COALESCE(r.current_recruitment_id, rh.current_recruitment_id)::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') +), +extracted_children AS( + SELECT + distinct + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) FILTER ( + WHERE make_date( + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int + ) > CURRENT_DATE - INTERVAL '18 years' + ) AS children_under_18 + FROM + extracted_children + GROUP BY + recruit_id +), +gender_and_recruitment_data AS ( + SELECT + CASE + WHEN r.gender = 'MALE' THEN 'M' + ELSE 'W' + END gender, + r.convicts, + r.recruitment_id, + COUNT(r.recruit_id) AS total_count, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 0) AS no_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 1) AS one_child, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 2) AS two_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 3) AS three_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) >= 4) AS four_or_more_children, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 0) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS no_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 1) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS one_child_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 2) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS two_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 3) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS three_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) >= 4) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS four_or_more_children_percent + FROM vse r + LEFT JOIN children_count cc + ON r.recruit_id = cc.recruit_id + GROUP BY + r.gender, + r.convicts, + r.recruitment_id +) +SELECT + current_date AS recording_date, + gender, + recruitment_id, + convicts, + total_count, + no_children, + one_child, + two_children, + three_children, + four_or_more_children, + COALESCE(ROUND(no_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS no_children_percent, + COALESCE(ROUND(one_child * 100.0 / NULLIF(total_count, 0), 2), 0) AS one_child_percent, + COALESCE(ROUND(two_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS two_children_percent, + COALESCE(ROUND(three_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS three_children_percent, + COALESCE(ROUND(four_or_more_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS four_or_more_children_percent +FROM + gender_and_recruitment_data + +UNION ALL + +SELECT + current_date AS recording_date, + 'ALL' AS gender, + recruitment_id, + convicts, + SUM(total_count) AS total_count, + SUM(no_children) AS no_children, + SUM(one_child) AS one_child, + SUM(two_children) AS two_children, + SUM(three_children) AS three_children, + SUM(four_or_more_children) AS four_or_more_children, + COALESCE(ROUND(SUM(no_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS no_children_percent, + COALESCE(ROUND(SUM(one_child) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS one_child_percent, + COALESCE(ROUND(SUM(two_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS two_children_percent, + COALESCE(ROUND(SUM(three_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS three_children_percent, + COALESCE(ROUND(SUM(four_or_more_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS four_or_more_children_percent +FROM + gender_and_recruitment_data +GROUP BY recruitment_id, convicts + Y + + + 816 + 368 + + + + + +
diff --git a/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor(m_c).hwf b/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor(m_c).hwf new file mode 100644 index 0000000..a5570dd --- /dev/null +++ b/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor(m_c).hwf @@ -0,0 +1,312 @@ + + + total_registered.child_minor(m_c) + Y + + + + - + 2025/03/31 17:47:01.214 + - + 2025/03/31 17:47:01.214 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + Y + 640 + 496 + + + + total_registered.child_minor_pr1(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr1(m_c).hpl + Basic + + + ARR_PR_1 + PART_RECRUITMENT_1 + + Y + + Y + local + N + N + Y + N + 976 + 336 + + + + total_registered.child_minor_pr2(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr2(m_c).hpl + Basic + + + ARR_PR_2 + PART_RECRUITMENT_2 + + Y + + Y + local + N + N + Y + N + 976 + 416 + + + + total_registered.child_minor_pr3(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr3(m_c).hpl + Basic + + + ARR_PR_3 + PART_RECRUITMENT_3 + + Y + + Y + local + N + N + Y + N + 976 + 496 + + + + total_registered.child_minor_pr4(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr4(m_c).hpl + Basic + + + ARR_PR_4 + PART_RECRUITMENT_4 + + Y + + Y + local + N + N + Y + N + 976 + 576 + + + + total_registered.child_minor_pr5(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr5(m_c).hpl + + + Basic + + + ARR_PR_5 + PART_RECRUITMENT_5 + + + Y + + Y + local + N + N + Y + N + 976 + 656 + + + + Success + + SUCCESS + + N + 1280 + 336 + + + + Success 2 + + SUCCESS + + N + 1280 + 416 + + + + Success 3 + + SUCCESS + + N + 1280 + 496 + + + + Success 4 + + SUCCESS + + N + 1280 + 576 + + + + Success 5 + + SUCCESS + + N + 1280 + 656 + + + + + + Start + total_registered.child_minor_pr1(m_c).hpl + Y + Y + Y + + + Start + total_registered.child_minor_pr2(m_c).hpl + Y + Y + Y + + + Start + total_registered.child_minor_pr3(m_c).hpl + Y + Y + Y + + + Start + total_registered.child_minor_pr4(m_c).hpl + Y + Y + Y + + + Start + total_registered.child_minor_pr5(m_c).hpl + Y + Y + Y + + + total_registered.child_minor_pr1(m_c).hpl + Success + Y + Y + N + + + total_registered.child_minor_pr2(m_c).hpl + Success 2 + Y + Y + N + + + total_registered.child_minor_pr3(m_c).hpl + Success 3 + Y + Y + N + + + total_registered.child_minor_pr4(m_c).hpl + Success 4 + Y + Y + N + + + total_registered.child_minor_pr5(m_c).hpl + Success 5 + Y + Y + N + + + + + + diff --git a/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr1(m_c).hpl b/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr1(m_c).hpl new file mode 100644 index 0000000..1bf758f --- /dev/null +++ b/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr1(m_c).hpl @@ -0,0 +1,322 @@ + + + + total_registered.child_minor_pr1(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry)регион/все + Insert / update (total_registered.child_minor) 3 + Y + + + + Insert / update (total_registered.child_minor) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + child_minor
+ + no_child + no_children + Y + + + "1_child" + one_child + Y + + + "2_child" + two_children + Y + + + "3_child" + three_children + Y + + + "4_more_child" + four_or_more_children + Y + + + "all_M_W" + gender + N + + + no_child_percent + no_children_percent + Y + + + "1_child_percent" + one_child_percent + Y + + + "2_child_percent" + two_children_percent + Y + + + "3_child_percent" + three_children_percent + Y + + + "4_more_child_percent" + four_or_more_children_percent + Y + + + recruitment_id + recruitment_id + N + + + total_count + total_count + Y + + + convicts + convicts + N + +
+ N + + + 1504 + 368 + +
+ + Table input (person_registry)регион/все + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_1}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +vse AS ( + SELECT + r.id, + ri.recruit_id, + --COALESCE(r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + ri.info + 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 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id IN (SELECT recruit_id FROM registered) + AND rh.id IN (SELECT recruit_history_id FROM registered) + AND COALESCE(r.current_recruitment_id, rh.current_recruitment_id)::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') + + UNION ALL + + SELECT + r.id, + ri.recruit_id, + --COALESCE(r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + 'ALL' AS convicts, + ri.info + 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 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id IN (SELECT recruit_id FROM registered) + AND rh.id IN (SELECT recruit_history_id FROM registered) + AND COALESCE(r.current_recruitment_id, rh.current_recruitment_id)::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') +), +extracted_children AS( + SELECT + distinct + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) FILTER ( + WHERE make_date( + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int + ) > CURRENT_DATE - INTERVAL '18 years' + ) AS children_under_18 + FROM + extracted_children + GROUP BY + recruit_id +), +gender_and_recruitment_data AS ( + SELECT + CASE + WHEN r.gender = 'MALE' THEN 'M' + ELSE 'W' + END gender, + r.convicts, + r.recruitment_id, + COUNT(r.recruit_id) AS total_count, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 0) AS no_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 1) AS one_child, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 2) AS two_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 3) AS three_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) >= 4) AS four_or_more_children, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 0) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS no_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 1) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS one_child_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 2) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS two_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 3) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS three_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) >= 4) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS four_or_more_children_percent + FROM vse r + LEFT JOIN children_count cc + ON r.recruit_id = cc.recruit_id + GROUP BY + r.gender, + r.convicts, + r.recruitment_id +) +SELECT + current_date AS recording_date, + gender, + recruitment_id, + convicts, + total_count, + no_children, + one_child, + two_children, + three_children, + four_or_more_children, + COALESCE(ROUND(no_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS no_children_percent, + COALESCE(ROUND(one_child * 100.0 / NULLIF(total_count, 0), 2), 0) AS one_child_percent, + COALESCE(ROUND(two_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS two_children_percent, + COALESCE(ROUND(three_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS three_children_percent, + COALESCE(ROUND(four_or_more_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS four_or_more_children_percent +FROM + gender_and_recruitment_data + +UNION ALL + +SELECT + current_date AS recording_date, + 'ALL' AS gender, + recruitment_id, + convicts, + SUM(total_count) AS total_count, + SUM(no_children) AS no_children, + SUM(one_child) AS one_child, + SUM(two_children) AS two_children, + SUM(three_children) AS three_children, + SUM(four_or_more_children) AS four_or_more_children, + COALESCE(ROUND(SUM(no_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS no_children_percent, + COALESCE(ROUND(SUM(one_child) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS one_child_percent, + COALESCE(ROUND(SUM(two_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS two_children_percent, + COALESCE(ROUND(SUM(three_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS three_children_percent, + COALESCE(ROUND(SUM(four_or_more_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS four_or_more_children_percent +FROM + gender_and_recruitment_data +GROUP BY recruitment_id, convicts + Y + + + 816 + 368 + + + + + +
diff --git a/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr2(m_c).hpl b/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr2(m_c).hpl new file mode 100644 index 0000000..fb8302b --- /dev/null +++ b/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr2(m_c).hpl @@ -0,0 +1,322 @@ + + + + total_registered.child_minor_pr2(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry)регион/все + Insert / update (total_registered.child_minor) 3 + Y + + + + Insert / update (total_registered.child_minor) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + child_minor
+ + no_child + no_children + Y + + + "1_child" + one_child + Y + + + "2_child" + two_children + Y + + + "3_child" + three_children + Y + + + "4_more_child" + four_or_more_children + Y + + + "all_M_W" + gender + N + + + no_child_percent + no_children_percent + Y + + + "1_child_percent" + one_child_percent + Y + + + "2_child_percent" + two_children_percent + Y + + + "3_child_percent" + three_children_percent + Y + + + "4_more_child_percent" + four_or_more_children_percent + Y + + + recruitment_id + recruitment_id + N + + + total_count + total_count + Y + + + convicts + convicts + N + +
+ N + + + 1504 + 368 + +
+ + Table input (person_registry)регион/все + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_2}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +vse AS ( + SELECT + r.id, + ri.recruit_id, + --COALESCE(r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + ri.info + 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 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id IN (SELECT recruit_id FROM registered) + AND rh.id IN (SELECT recruit_history_id FROM registered) + AND COALESCE(r.current_recruitment_id, rh.current_recruitment_id)::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') + + UNION ALL + + SELECT + r.id, + ri.recruit_id, + --COALESCE(r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + 'ALL' AS convicts, + ri.info + 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 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id IN (SELECT recruit_id FROM registered) + AND rh.id IN (SELECT recruit_history_id FROM registered) + AND COALESCE(r.current_recruitment_id, rh.current_recruitment_id)::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') +), +extracted_children AS( + SELECT + distinct + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) FILTER ( + WHERE make_date( + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int + ) > CURRENT_DATE - INTERVAL '18 years' + ) AS children_under_18 + FROM + extracted_children + GROUP BY + recruit_id +), +gender_and_recruitment_data AS ( + SELECT + CASE + WHEN r.gender = 'MALE' THEN 'M' + ELSE 'W' + END gender, + r.convicts, + r.recruitment_id, + COUNT(r.recruit_id) AS total_count, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 0) AS no_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 1) AS one_child, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 2) AS two_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 3) AS three_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) >= 4) AS four_or_more_children, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 0) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS no_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 1) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS one_child_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 2) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS two_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 3) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS three_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) >= 4) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS four_or_more_children_percent + FROM vse r + LEFT JOIN children_count cc + ON r.recruit_id = cc.recruit_id + GROUP BY + r.gender, + r.convicts, + r.recruitment_id +) +SELECT + current_date AS recording_date, + gender, + recruitment_id, + convicts, + total_count, + no_children, + one_child, + two_children, + three_children, + four_or_more_children, + COALESCE(ROUND(no_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS no_children_percent, + COALESCE(ROUND(one_child * 100.0 / NULLIF(total_count, 0), 2), 0) AS one_child_percent, + COALESCE(ROUND(two_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS two_children_percent, + COALESCE(ROUND(three_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS three_children_percent, + COALESCE(ROUND(four_or_more_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS four_or_more_children_percent +FROM + gender_and_recruitment_data + +UNION ALL + +SELECT + current_date AS recording_date, + 'ALL' AS gender, + recruitment_id, + convicts, + SUM(total_count) AS total_count, + SUM(no_children) AS no_children, + SUM(one_child) AS one_child, + SUM(two_children) AS two_children, + SUM(three_children) AS three_children, + SUM(four_or_more_children) AS four_or_more_children, + COALESCE(ROUND(SUM(no_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS no_children_percent, + COALESCE(ROUND(SUM(one_child) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS one_child_percent, + COALESCE(ROUND(SUM(two_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS two_children_percent, + COALESCE(ROUND(SUM(three_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS three_children_percent, + COALESCE(ROUND(SUM(four_or_more_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS four_or_more_children_percent +FROM + gender_and_recruitment_data +GROUP BY recruitment_id, convicts + Y + + + 816 + 368 + + + + + +
diff --git a/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr3(m_c).hpl b/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr3(m_c).hpl new file mode 100644 index 0000000..8fd266a --- /dev/null +++ b/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr3(m_c).hpl @@ -0,0 +1,322 @@ + + + + total_registered.child_minor_pr3(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry)регион/все + Insert / update (total_registered.child_minor) 3 + Y + + + + Insert / update (total_registered.child_minor) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + child_minor
+ + no_child + no_children + Y + + + "1_child" + one_child + Y + + + "2_child" + two_children + Y + + + "3_child" + three_children + Y + + + "4_more_child" + four_or_more_children + Y + + + "all_M_W" + gender + N + + + no_child_percent + no_children_percent + Y + + + "1_child_percent" + one_child_percent + Y + + + "2_child_percent" + two_children_percent + Y + + + "3_child_percent" + three_children_percent + Y + + + "4_more_child_percent" + four_or_more_children_percent + Y + + + recruitment_id + recruitment_id + N + + + total_count + total_count + Y + + + convicts + convicts + N + +
+ N + + + 1504 + 368 + +
+ + Table input (person_registry)регион/все + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_3}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +vse AS ( + SELECT + r.id, + ri.recruit_id, + --COALESCE(r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + ri.info + 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 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id IN (SELECT recruit_id FROM registered) + AND rh.id IN (SELECT recruit_history_id FROM registered) + AND COALESCE(r.current_recruitment_id, rh.current_recruitment_id)::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') + + UNION ALL + + SELECT + r.id, + ri.recruit_id, + --COALESCE(r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + 'ALL' AS convicts, + ri.info + 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 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id IN (SELECT recruit_id FROM registered) + AND rh.id IN (SELECT recruit_history_id FROM registered) + AND COALESCE(r.current_recruitment_id, rh.current_recruitment_id)::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') +), +extracted_children AS( + SELECT + distinct + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) FILTER ( + WHERE make_date( + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int + ) > CURRENT_DATE - INTERVAL '18 years' + ) AS children_under_18 + FROM + extracted_children + GROUP BY + recruit_id +), +gender_and_recruitment_data AS ( + SELECT + CASE + WHEN r.gender = 'MALE' THEN 'M' + ELSE 'W' + END gender, + r.convicts, + r.recruitment_id, + COUNT(r.recruit_id) AS total_count, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 0) AS no_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 1) AS one_child, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 2) AS two_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 3) AS three_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) >= 4) AS four_or_more_children, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 0) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS no_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 1) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS one_child_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 2) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS two_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 3) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS three_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) >= 4) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS four_or_more_children_percent + FROM vse r + LEFT JOIN children_count cc + ON r.recruit_id = cc.recruit_id + GROUP BY + r.gender, + r.convicts, + r.recruitment_id +) +SELECT + current_date AS recording_date, + gender, + recruitment_id, + convicts, + total_count, + no_children, + one_child, + two_children, + three_children, + four_or_more_children, + COALESCE(ROUND(no_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS no_children_percent, + COALESCE(ROUND(one_child * 100.0 / NULLIF(total_count, 0), 2), 0) AS one_child_percent, + COALESCE(ROUND(two_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS two_children_percent, + COALESCE(ROUND(three_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS three_children_percent, + COALESCE(ROUND(four_or_more_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS four_or_more_children_percent +FROM + gender_and_recruitment_data + +UNION ALL + +SELECT + current_date AS recording_date, + 'ALL' AS gender, + recruitment_id, + convicts, + SUM(total_count) AS total_count, + SUM(no_children) AS no_children, + SUM(one_child) AS one_child, + SUM(two_children) AS two_children, + SUM(three_children) AS three_children, + SUM(four_or_more_children) AS four_or_more_children, + COALESCE(ROUND(SUM(no_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS no_children_percent, + COALESCE(ROUND(SUM(one_child) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS one_child_percent, + COALESCE(ROUND(SUM(two_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS two_children_percent, + COALESCE(ROUND(SUM(three_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS three_children_percent, + COALESCE(ROUND(SUM(four_or_more_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS four_or_more_children_percent +FROM + gender_and_recruitment_data +GROUP BY recruitment_id, convicts + Y + + + 816 + 368 + + + + + +
diff --git a/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr4(m_c).hpl b/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr4(m_c).hpl new file mode 100644 index 0000000..68988de --- /dev/null +++ b/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr4(m_c).hpl @@ -0,0 +1,322 @@ + + + + total_registered.child_minor_pr4(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry)регион/все + Insert / update (total_registered.child_minor) 3 + Y + + + + Insert / update (total_registered.child_minor) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + child_minor
+ + no_child + no_children + Y + + + "1_child" + one_child + Y + + + "2_child" + two_children + Y + + + "3_child" + three_children + Y + + + "4_more_child" + four_or_more_children + Y + + + "all_M_W" + gender + N + + + no_child_percent + no_children_percent + Y + + + "1_child_percent" + one_child_percent + Y + + + "2_child_percent" + two_children_percent + Y + + + "3_child_percent" + three_children_percent + Y + + + "4_more_child_percent" + four_or_more_children_percent + Y + + + recruitment_id + recruitment_id + N + + + total_count + total_count + Y + + + convicts + convicts + N + +
+ N + + + 1504 + 368 + +
+ + Table input (person_registry)регион/все + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_4}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +vse AS ( + SELECT + r.id, + ri.recruit_id, + --COALESCE(r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + ri.info + 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 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id IN (SELECT recruit_id FROM registered) + AND rh.id IN (SELECT recruit_history_id FROM registered) + AND COALESCE(r.current_recruitment_id, rh.current_recruitment_id)::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') + + UNION ALL + + SELECT + r.id, + ri.recruit_id, + --COALESCE(r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + 'ALL' AS convicts, + ri.info + 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 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id IN (SELECT recruit_id FROM registered) + AND rh.id IN (SELECT recruit_history_id FROM registered) + AND COALESCE(r.current_recruitment_id, rh.current_recruitment_id)::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') +), +extracted_children AS( + SELECT + distinct + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) FILTER ( + WHERE make_date( + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int + ) > CURRENT_DATE - INTERVAL '18 years' + ) AS children_under_18 + FROM + extracted_children + GROUP BY + recruit_id +), +gender_and_recruitment_data AS ( + SELECT + CASE + WHEN r.gender = 'MALE' THEN 'M' + ELSE 'W' + END gender, + r.convicts, + r.recruitment_id, + COUNT(r.recruit_id) AS total_count, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 0) AS no_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 1) AS one_child, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 2) AS two_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 3) AS three_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) >= 4) AS four_or_more_children, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 0) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS no_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 1) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS one_child_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 2) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS two_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 3) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS three_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) >= 4) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS four_or_more_children_percent + FROM vse r + LEFT JOIN children_count cc + ON r.recruit_id = cc.recruit_id + GROUP BY + r.gender, + r.convicts, + r.recruitment_id +) +SELECT + current_date AS recording_date, + gender, + recruitment_id, + convicts, + total_count, + no_children, + one_child, + two_children, + three_children, + four_or_more_children, + COALESCE(ROUND(no_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS no_children_percent, + COALESCE(ROUND(one_child * 100.0 / NULLIF(total_count, 0), 2), 0) AS one_child_percent, + COALESCE(ROUND(two_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS two_children_percent, + COALESCE(ROUND(three_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS three_children_percent, + COALESCE(ROUND(four_or_more_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS four_or_more_children_percent +FROM + gender_and_recruitment_data + +UNION ALL + +SELECT + current_date AS recording_date, + 'ALL' AS gender, + recruitment_id, + convicts, + SUM(total_count) AS total_count, + SUM(no_children) AS no_children, + SUM(one_child) AS one_child, + SUM(two_children) AS two_children, + SUM(three_children) AS three_children, + SUM(four_or_more_children) AS four_or_more_children, + COALESCE(ROUND(SUM(no_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS no_children_percent, + COALESCE(ROUND(SUM(one_child) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS one_child_percent, + COALESCE(ROUND(SUM(two_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS two_children_percent, + COALESCE(ROUND(SUM(three_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS three_children_percent, + COALESCE(ROUND(SUM(four_or_more_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS four_or_more_children_percent +FROM + gender_and_recruitment_data +GROUP BY recruitment_id, convicts + Y + + + 816 + 368 + + + + + +
diff --git a/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr5(m_c).hpl b/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr5(m_c).hpl new file mode 100644 index 0000000..86bce7f --- /dev/null +++ b/mappings/mil_com/total_registered.child_minor(m_c)/total_registered.child_minor_pr5(m_c).hpl @@ -0,0 +1,322 @@ + + + + total_registered.child_minor_pr5(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry)регион/все + Insert / update (total_registered.child_minor) 3 + Y + + + + Insert / update (total_registered.child_minor) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + child_minor
+ + no_child + no_children + Y + + + "1_child" + one_child + Y + + + "2_child" + two_children + Y + + + "3_child" + three_children + Y + + + "4_more_child" + four_or_more_children + Y + + + "all_M_W" + gender + N + + + no_child_percent + no_children_percent + Y + + + "1_child_percent" + one_child_percent + Y + + + "2_child_percent" + two_children_percent + Y + + + "3_child_percent" + three_children_percent + Y + + + "4_more_child_percent" + four_or_more_children_percent + Y + + + recruitment_id + recruitment_id + N + + + total_count + total_count + Y + + + convicts + convicts + N + +
+ N + + + 1504 + 368 + +
+ + Table input (person_registry)регион/все + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_5}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +vse AS ( + SELECT + r.id, + ri.recruit_id, + --COALESCE(r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + ri.info + 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 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id IN (SELECT recruit_id FROM registered) + AND rh.id IN (SELECT recruit_history_id FROM registered) + AND COALESCE(r.current_recruitment_id, rh.current_recruitment_id)::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') + + UNION ALL + + SELECT + r.id, + ri.recruit_id, + --COALESCE(r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.current_recruitment_id AS recruitment_id, + r.gender, + 'ALL' AS convicts, + ri.info + 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 + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id IN (SELECT recruit_id FROM registered) + AND rh.id IN (SELECT recruit_history_id FROM registered) + AND COALESCE(r.current_recruitment_id, rh.current_recruitment_id)::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') +), +extracted_children AS( + SELECT + distinct + ri.recruit_id, + jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child + FROM vse ri + WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +), +children_count AS ( + SELECT + recruit_id, + COUNT(*) FILTER ( + WHERE make_date( + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int, + (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int + ) > CURRENT_DATE - INTERVAL '18 years' + ) AS children_under_18 + FROM + extracted_children + GROUP BY + recruit_id +), +gender_and_recruitment_data AS ( + SELECT + CASE + WHEN r.gender = 'MALE' THEN 'M' + ELSE 'W' + END gender, + r.convicts, + r.recruitment_id, + COUNT(r.recruit_id) AS total_count, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 0) AS no_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 1) AS one_child, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 2) AS two_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 3) AS three_children, + COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) >= 4) AS four_or_more_children, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 0) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS no_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 1) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS one_child_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 2) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS two_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) = 3) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS three_children_percent, + ROUND(COUNT(r.recruit_id) FILTER (WHERE COALESCE(children_under_18, 0) >= 4) * 100.0 / NULLIF(COUNT(r.recruit_id), 0), 2) AS four_or_more_children_percent + FROM vse r + LEFT JOIN children_count cc + ON r.recruit_id = cc.recruit_id + GROUP BY + r.gender, + r.convicts, + r.recruitment_id +) +SELECT + current_date AS recording_date, + gender, + recruitment_id, + convicts, + total_count, + no_children, + one_child, + two_children, + three_children, + four_or_more_children, + COALESCE(ROUND(no_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS no_children_percent, + COALESCE(ROUND(one_child * 100.0 / NULLIF(total_count, 0), 2), 0) AS one_child_percent, + COALESCE(ROUND(two_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS two_children_percent, + COALESCE(ROUND(three_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS three_children_percent, + COALESCE(ROUND(four_or_more_children * 100.0 / NULLIF(total_count, 0), 2), 0) AS four_or_more_children_percent +FROM + gender_and_recruitment_data + +UNION ALL + +SELECT + current_date AS recording_date, + 'ALL' AS gender, + recruitment_id, + convicts, + SUM(total_count) AS total_count, + SUM(no_children) AS no_children, + SUM(one_child) AS one_child, + SUM(two_children) AS two_children, + SUM(three_children) AS three_children, + SUM(four_or_more_children) AS four_or_more_children, + COALESCE(ROUND(SUM(no_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS no_children_percent, + COALESCE(ROUND(SUM(one_child) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS one_child_percent, + COALESCE(ROUND(SUM(two_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS two_children_percent, + COALESCE(ROUND(SUM(three_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS three_children_percent, + COALESCE(ROUND(SUM(four_or_more_children) * 100.0 / NULLIF(SUM(total_count), 0), 2), 0) AS four_or_more_children_percent +FROM + gender_and_recruitment_data +GROUP BY recruitment_id, convicts + Y + + + 816 + 368 + + + + + +
diff --git a/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license(m_c).hpl b/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license(m_c).hpl new file mode 100644 index 0000000..06ee25d --- /dev/null +++ b/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license(m_c).hpl @@ -0,0 +1,414 @@ + + + + total_registered.driver_license(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 2 + Select values 3 2 + N + + + Select values 3 2 + Insert / update (total_registered.driver_license) 2 + N + + + Table input (driver_license) регионы/все + Get variables 3 2 + N + + + Table input (driver_license) регионы/все + Insert / update (total_registered.driver_license) 2 + Y + + + + Get variables 3 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REC_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 960 + 496 + + + + Insert / update (total_registered.driver_license) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + driver_license
+ + "A" + a + Y + + + "B" + b + Y + + + "C" + c + Y + + + "D" + d + Y + + + "E" + e + Y + + + nope + nope + Y + + + "A_repcent" + a_percent + Y + + + "B_repcent" + b_percent + Y + + + "C_repcent" + c_percent + Y + + + "D_repcent" + d_percent + Y + + + "E_repcent" + e_percent + Y + + + "all_M_W" + gender + N + + + recruitment_id + recruitment_id + N + + + nope_repcent + nope_percent + Y + + + total_count + total + Y + + + convicts + convicts + N + +
+ Y + + + 1264 + 384 + +
+ + Select values 3 2 + SelectValues + + Y + + 1 + + none + + + + N + + REC_ID + REC_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 1104 + 496 + + + + Table input (driver_license) регионы/все + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +categorized AS ( + SELECT + r.id, + r.gender, + r.current_recruitment_id AS recruitment_id, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 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, + MAX(CASE WHEN cat->>'naimKatTS' like '%M%' THEN 1 ELSE 0 END) AS has_M, -- мопеды + MAX(CASE WHEN cat->>'naimKatTS' like '%T%' THEN 1 ELSE 0 END) AS has_T -- трамваи и троллейбусы + 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->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') -- Исключаем NULL + GROUP BY r.id, r.gender + + UNION ALL + + SELECT + r.id, + r.gender, + r.current_recruitment_id AS recruitment_id, + 'ALL' AS convicts, + 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, + MAX(CASE WHEN cat->>'naimKatTS' like '%M%' THEN 1 ELSE 0 END) AS has_M, -- мопеды + MAX(CASE WHEN cat->>'naimKatTS' like '%T%' THEN 1 ELSE 0 END) AS has_T -- трамваи и троллейбусы + 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->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') -- Исключаем NULL + GROUP BY r.id, r.gender +), +aggregated AS ( + SELECT + current_date AS recording_date, + CASE + WHEN r.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + r.convicts, + r.recruitment_id, + -- Считаем количество уникальных рекрутов с каждой категорией + COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, + COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, + COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, + COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, + COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, + COUNT(DISTINCT r.id) FILTER (WHERE (has_A + has_B + has_C + has_D + has_E = 0) OR ((has_M + has_T > 0) AND (has_A + has_B + has_C + has_D + has_E = 0))) AS nope, -- условие от 14.03.2025 + COUNT(DISTINCT r.id) AS total + FROM categorized r + GROUP BY r.gender, r.recruitment_id, r.convicts +), +aggregated_all AS ( + SELECT + current_date AS recording_date, + 'ALL' AS gender, + r.convicts, + r.recruitment_id, + COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, + COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, + COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, + COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, + COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, + COUNT(DISTINCT r.id) FILTER (WHERE (has_A + has_B + has_C + has_D + has_E = 0) OR ((has_M + has_T > 0) AND (has_A + has_B + has_C + has_D + has_E = 0))) AS nope, -- условие от 14.03.2025 + COUNT(DISTINCT r.id) AS total + FROM categorized r + GROUP BY r.recruitment_id, r.convicts +) + +-- Объединение результатов с вычислением процентов +SELECT + *, + COALESCE(ROUND((a * 100.0) / NULLIF(total, 0), 2), 0) AS a_percent, + COALESCE(ROUND((b * 100.0) / NULLIF(total, 0), 2), 0) AS b_percent, + COALESCE(ROUND((c * 100.0) / NULLIF(total, 0), 2), 0) AS c_percent, + COALESCE(ROUND((d * 100.0) / NULLIF(total, 0), 2), 0) AS d_percent, + COALESCE(ROUND((e * 100.0) / NULLIF(total, 0), 2), 0) AS e_percent, + COALESCE(ROUND((nope * 100.0) / NULLIF(total, 0), 2), 0) AS nope_percent +FROM aggregated +UNION ALL +SELECT + *, + COALESCE(ROUND((a * 100.0) / NULLIF(total, 0), 2), 0) AS a_percent, + COALESCE(ROUND((b * 100.0) / NULLIF(total, 0), 2), 0) AS b_percent, + COALESCE(ROUND((c * 100.0) / NULLIF(total, 0), 2), 0) AS c_percent, + COALESCE(ROUND((d * 100.0) / NULLIF(total, 0), 2), 0) AS d_percent, + COALESCE(ROUND((e * 100.0) / NULLIF(total, 0), 2), 0) AS e_percent, + COALESCE(ROUND((nope * 100.0) / NULLIF(total, 0), 2), 0) AS nope_percent +FROM aggregated_all + Y + + + 800 + 384 + + + + + +
diff --git a/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license(m_c).hwf b/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license(m_c).hwf new file mode 100644 index 0000000..a5e579d --- /dev/null +++ b/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license(m_c).hwf @@ -0,0 +1,309 @@ + + + total_registered.driver_license(m_c) + Y + + + + - + 2025/03/31 17:29:01.571 + - + 2025/03/31 17:29:01.571 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + Y + 592 + 400 + + + + total_registered.driver_license_pr1(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr1(m_c).hpl + Basic + + + ARR_PR_1 + PART_RECRUITMENT_1 + + Y + + Y + local + N + N + Y + N + 1088 + 240 + + + + total_registered.driver_license_pr2(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr2(m_c).hpl + Basic + + + ARR_PR_2 + PART_RECRUITMENT_2 + + Y + + Y + local + N + N + Y + N + 1088 + 320 + + + + total_registered.driver_license_pr3(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr3(m_c).hpl + Basic + + + ARR_PR_3 + PART_RECRUITMENT_3 + + Y + + Y + local + N + N + Y + N + 1088 + 400 + + + + total_registered.driver_license_pr4(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr4(m_c).hpl + Basic + + + ARR_PR_4 + PART_RECRUITMENT_4 + + Y + + Y + local + N + N + Y + N + 1088 + 480 + + + + total_registered.driver_license_pr5(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr5(m_c).hpl + Basic + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 1088 + 560 + + + + Success + + SUCCESS + + N + 1520 + 240 + + + + Success 2 + + SUCCESS + + N + 1520 + 320 + + + + Success 3 + + SUCCESS + + N + 1520 + 400 + + + + Success 4 + + SUCCESS + + N + 1520 + 480 + + + + Success 5 + + SUCCESS + + N + 1520 + 560 + + + + + + Start + total_registered.driver_license_pr1(m_c).hpl + Y + Y + Y + + + Start + total_registered.driver_license_pr2(m_c).hpl + Y + Y + Y + + + Start + total_registered.driver_license_pr3(m_c).hpl + Y + Y + Y + + + Start + total_registered.driver_license_pr4(m_c).hpl + Y + Y + Y + + + Start + total_registered.driver_license_pr5(m_c).hpl + Y + Y + Y + + + total_registered.driver_license_pr1(m_c).hpl + Success + Y + Y + N + + + total_registered.driver_license_pr2(m_c).hpl + Success 2 + Y + Y + N + + + total_registered.driver_license_pr3(m_c).hpl + Success 3 + Y + Y + N + + + total_registered.driver_license_pr4(m_c).hpl + Success 4 + Y + Y + N + + + total_registered.driver_license_pr5(m_c).hpl + Success 5 + Y + Y + N + + + + + + diff --git a/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr1(m_c).hpl b/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr1(m_c).hpl new file mode 100644 index 0000000..499784b --- /dev/null +++ b/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr1(m_c).hpl @@ -0,0 +1,312 @@ + + + + total_registered.driver_license_pr1(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (driver_license) регионы/все + Insert / update (total_registered.driver_license) 2 + Y + + + + Insert / update (total_registered.driver_license) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + driver_license
+ + "A" + a + Y + + + "B" + b + Y + + + "C" + c + Y + + + "D" + d + Y + + + "E" + e + Y + + + nope + nope + Y + + + "A_repcent" + a_percent + Y + + + "B_repcent" + b_percent + Y + + + "C_repcent" + c_percent + Y + + + "D_repcent" + d_percent + Y + + + "E_repcent" + e_percent + Y + + + "all_M_W" + gender + N + + + recruitment_id + recruitment_id + N + + + nope_repcent + nope_percent + Y + + + total_count + total + Y + + + convicts + convicts + N + +
+ Y + + + 1264 + 384 + +
+ + Table input (driver_license) регионы/все + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_1}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +categorized AS ( + SELECT + r.id, + r.gender, + r.current_recruitment_id AS recruitment_id, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 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, + MAX(CASE WHEN cat->>'naimKatTS' like '%M%' THEN 1 ELSE 0 END) AS has_M, -- мопеды + MAX(CASE WHEN cat->>'naimKatTS' like '%T%' THEN 1 ELSE 0 END) AS has_T -- трамваи и троллейбусы + 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->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') -- Исключаем NULL + GROUP BY r.id, r.gender + + UNION ALL + + SELECT + r.id, + r.gender, + r.current_recruitment_id AS recruitment_id, + 'ALL' AS convicts, + 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, + MAX(CASE WHEN cat->>'naimKatTS' like '%M%' THEN 1 ELSE 0 END) AS has_M, -- мопеды + MAX(CASE WHEN cat->>'naimKatTS' like '%T%' THEN 1 ELSE 0 END) AS has_T -- трамваи и троллейбусы + 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->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') -- Исключаем NULL + GROUP BY r.id, r.gender +), +aggregated AS ( + SELECT + current_date AS recording_date, + CASE + WHEN r.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + r.convicts, + r.recruitment_id, + -- Считаем количество уникальных рекрутов с каждой категорией + COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, + COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, + COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, + COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, + COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, + COUNT(DISTINCT r.id) FILTER (WHERE (has_A + has_B + has_C + has_D + has_E = 0) OR ((has_M + has_T > 0) AND (has_A + has_B + has_C + has_D + has_E = 0))) AS nope, -- условие от 14.03.2025 + COUNT(DISTINCT r.id) AS total + FROM categorized r + GROUP BY r.gender, r.recruitment_id, r.convicts +), +aggregated_all AS ( + SELECT + current_date AS recording_date, + 'ALL' AS gender, + r.convicts, + r.recruitment_id, + COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, + COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, + COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, + COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, + COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, + COUNT(DISTINCT r.id) FILTER (WHERE (has_A + has_B + has_C + has_D + has_E = 0) OR ((has_M + has_T > 0) AND (has_A + has_B + has_C + has_D + has_E = 0))) AS nope, -- условие от 14.03.2025 + COUNT(DISTINCT r.id) AS total + FROM categorized r + GROUP BY r.recruitment_id, r.convicts +) + +-- Объединение результатов с вычислением процентов +SELECT + *, + COALESCE(ROUND((a * 100.0) / NULLIF(total, 0), 2), 0) AS a_percent, + COALESCE(ROUND((b * 100.0) / NULLIF(total, 0), 2), 0) AS b_percent, + COALESCE(ROUND((c * 100.0) / NULLIF(total, 0), 2), 0) AS c_percent, + COALESCE(ROUND((d * 100.0) / NULLIF(total, 0), 2), 0) AS d_percent, + COALESCE(ROUND((e * 100.0) / NULLIF(total, 0), 2), 0) AS e_percent, + COALESCE(ROUND((nope * 100.0) / NULLIF(total, 0), 2), 0) AS nope_percent +FROM aggregated +UNION ALL +SELECT + *, + COALESCE(ROUND((a * 100.0) / NULLIF(total, 0), 2), 0) AS a_percent, + COALESCE(ROUND((b * 100.0) / NULLIF(total, 0), 2), 0) AS b_percent, + COALESCE(ROUND((c * 100.0) / NULLIF(total, 0), 2), 0) AS c_percent, + COALESCE(ROUND((d * 100.0) / NULLIF(total, 0), 2), 0) AS d_percent, + COALESCE(ROUND((e * 100.0) / NULLIF(total, 0), 2), 0) AS e_percent, + COALESCE(ROUND((nope * 100.0) / NULLIF(total, 0), 2), 0) AS nope_percent +FROM aggregated_all + Y + + + 800 + 384 + + + + + +
diff --git a/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr2(m_c).hpl b/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr2(m_c).hpl new file mode 100644 index 0000000..123f382 --- /dev/null +++ b/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr2(m_c).hpl @@ -0,0 +1,312 @@ + + + + total_registered.driver_license_pr2(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (driver_license) регионы/все + Insert / update (total_registered.driver_license) 2 + Y + + + + Insert / update (total_registered.driver_license) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + driver_license
+ + "A" + a + Y + + + "B" + b + Y + + + "C" + c + Y + + + "D" + d + Y + + + "E" + e + Y + + + nope + nope + Y + + + "A_repcent" + a_percent + Y + + + "B_repcent" + b_percent + Y + + + "C_repcent" + c_percent + Y + + + "D_repcent" + d_percent + Y + + + "E_repcent" + e_percent + Y + + + "all_M_W" + gender + N + + + recruitment_id + recruitment_id + N + + + nope_repcent + nope_percent + Y + + + total_count + total + Y + + + convicts + convicts + N + +
+ Y + + + 1264 + 384 + +
+ + Table input (driver_license) регионы/все + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_2}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +categorized AS ( + SELECT + r.id, + r.gender, + r.current_recruitment_id AS recruitment_id, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 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, + MAX(CASE WHEN cat->>'naimKatTS' like '%M%' THEN 1 ELSE 0 END) AS has_M, -- мопеды + MAX(CASE WHEN cat->>'naimKatTS' like '%T%' THEN 1 ELSE 0 END) AS has_T -- трамваи и троллейбусы + 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->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') -- Исключаем NULL + GROUP BY r.id, r.gender + + UNION ALL + + SELECT + r.id, + r.gender, + r.current_recruitment_id AS recruitment_id, + 'ALL' AS convicts, + 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, + MAX(CASE WHEN cat->>'naimKatTS' like '%M%' THEN 1 ELSE 0 END) AS has_M, -- мопеды + MAX(CASE WHEN cat->>'naimKatTS' like '%T%' THEN 1 ELSE 0 END) AS has_T -- трамваи и троллейбусы + 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->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') -- Исключаем NULL + GROUP BY r.id, r.gender +), +aggregated AS ( + SELECT + current_date AS recording_date, + CASE + WHEN r.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + r.convicts, + r.recruitment_id, + -- Считаем количество уникальных рекрутов с каждой категорией + COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, + COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, + COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, + COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, + COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, + COUNT(DISTINCT r.id) FILTER (WHERE (has_A + has_B + has_C + has_D + has_E = 0) OR ((has_M + has_T > 0) AND (has_A + has_B + has_C + has_D + has_E = 0))) AS nope, -- условие от 14.03.2025 + COUNT(DISTINCT r.id) AS total + FROM categorized r + GROUP BY r.gender, r.recruitment_id, r.convicts +), +aggregated_all AS ( + SELECT + current_date AS recording_date, + 'ALL' AS gender, + r.convicts, + r.recruitment_id, + COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, + COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, + COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, + COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, + COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, + COUNT(DISTINCT r.id) FILTER (WHERE (has_A + has_B + has_C + has_D + has_E = 0) OR ((has_M + has_T > 0) AND (has_A + has_B + has_C + has_D + has_E = 0))) AS nope, -- условие от 14.03.2025 + COUNT(DISTINCT r.id) AS total + FROM categorized r + GROUP BY r.recruitment_id, r.convicts +) + +-- Объединение результатов с вычислением процентов +SELECT + *, + COALESCE(ROUND((a * 100.0) / NULLIF(total, 0), 2), 0) AS a_percent, + COALESCE(ROUND((b * 100.0) / NULLIF(total, 0), 2), 0) AS b_percent, + COALESCE(ROUND((c * 100.0) / NULLIF(total, 0), 2), 0) AS c_percent, + COALESCE(ROUND((d * 100.0) / NULLIF(total, 0), 2), 0) AS d_percent, + COALESCE(ROUND((e * 100.0) / NULLIF(total, 0), 2), 0) AS e_percent, + COALESCE(ROUND((nope * 100.0) / NULLIF(total, 0), 2), 0) AS nope_percent +FROM aggregated +UNION ALL +SELECT + *, + COALESCE(ROUND((a * 100.0) / NULLIF(total, 0), 2), 0) AS a_percent, + COALESCE(ROUND((b * 100.0) / NULLIF(total, 0), 2), 0) AS b_percent, + COALESCE(ROUND((c * 100.0) / NULLIF(total, 0), 2), 0) AS c_percent, + COALESCE(ROUND((d * 100.0) / NULLIF(total, 0), 2), 0) AS d_percent, + COALESCE(ROUND((e * 100.0) / NULLIF(total, 0), 2), 0) AS e_percent, + COALESCE(ROUND((nope * 100.0) / NULLIF(total, 0), 2), 0) AS nope_percent +FROM aggregated_all + Y + + + 800 + 384 + + + + + +
diff --git a/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr3(m_c).hpl b/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr3(m_c).hpl new file mode 100644 index 0000000..a80fbf3 --- /dev/null +++ b/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr3(m_c).hpl @@ -0,0 +1,312 @@ + + + + total_registered.driver_license_pr3(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (driver_license) регионы/все + Insert / update (total_registered.driver_license) 2 + Y + + + + Insert / update (total_registered.driver_license) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + driver_license
+ + "A" + a + Y + + + "B" + b + Y + + + "C" + c + Y + + + "D" + d + Y + + + "E" + e + Y + + + nope + nope + Y + + + "A_repcent" + a_percent + Y + + + "B_repcent" + b_percent + Y + + + "C_repcent" + c_percent + Y + + + "D_repcent" + d_percent + Y + + + "E_repcent" + e_percent + Y + + + "all_M_W" + gender + N + + + recruitment_id + recruitment_id + N + + + nope_repcent + nope_percent + Y + + + total_count + total + Y + + + convicts + convicts + N + +
+ Y + + + 1264 + 384 + +
+ + Table input (driver_license) регионы/все + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_3}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +categorized AS ( + SELECT + r.id, + r.gender, + r.current_recruitment_id AS recruitment_id, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 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, + MAX(CASE WHEN cat->>'naimKatTS' like '%M%' THEN 1 ELSE 0 END) AS has_M, -- мопеды + MAX(CASE WHEN cat->>'naimKatTS' like '%T%' THEN 1 ELSE 0 END) AS has_T -- трамваи и троллейбусы + 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->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') -- Исключаем NULL + GROUP BY r.id, r.gender + + UNION ALL + + SELECT + r.id, + r.gender, + r.current_recruitment_id AS recruitment_id, + 'ALL' AS convicts, + 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, + MAX(CASE WHEN cat->>'naimKatTS' like '%M%' THEN 1 ELSE 0 END) AS has_M, -- мопеды + MAX(CASE WHEN cat->>'naimKatTS' like '%T%' THEN 1 ELSE 0 END) AS has_T -- трамваи и троллейбусы + 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->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') -- Исключаем NULL + GROUP BY r.id, r.gender +), +aggregated AS ( + SELECT + current_date AS recording_date, + CASE + WHEN r.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + r.convicts, + r.recruitment_id, + -- Считаем количество уникальных рекрутов с каждой категорией + COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, + COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, + COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, + COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, + COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, + COUNT(DISTINCT r.id) FILTER (WHERE (has_A + has_B + has_C + has_D + has_E = 0) OR ((has_M + has_T > 0) AND (has_A + has_B + has_C + has_D + has_E = 0))) AS nope, -- условие от 14.03.2025 + COUNT(DISTINCT r.id) AS total + FROM categorized r + GROUP BY r.gender, r.recruitment_id, r.convicts +), +aggregated_all AS ( + SELECT + current_date AS recording_date, + 'ALL' AS gender, + r.convicts, + r.recruitment_id, + COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, + COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, + COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, + COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, + COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, + COUNT(DISTINCT r.id) FILTER (WHERE (has_A + has_B + has_C + has_D + has_E = 0) OR ((has_M + has_T > 0) AND (has_A + has_B + has_C + has_D + has_E = 0))) AS nope, -- условие от 14.03.2025 + COUNT(DISTINCT r.id) AS total + FROM categorized r + GROUP BY r.recruitment_id, r.convicts +) + +-- Объединение результатов с вычислением процентов +SELECT + *, + COALESCE(ROUND((a * 100.0) / NULLIF(total, 0), 2), 0) AS a_percent, + COALESCE(ROUND((b * 100.0) / NULLIF(total, 0), 2), 0) AS b_percent, + COALESCE(ROUND((c * 100.0) / NULLIF(total, 0), 2), 0) AS c_percent, + COALESCE(ROUND((d * 100.0) / NULLIF(total, 0), 2), 0) AS d_percent, + COALESCE(ROUND((e * 100.0) / NULLIF(total, 0), 2), 0) AS e_percent, + COALESCE(ROUND((nope * 100.0) / NULLIF(total, 0), 2), 0) AS nope_percent +FROM aggregated +UNION ALL +SELECT + *, + COALESCE(ROUND((a * 100.0) / NULLIF(total, 0), 2), 0) AS a_percent, + COALESCE(ROUND((b * 100.0) / NULLIF(total, 0), 2), 0) AS b_percent, + COALESCE(ROUND((c * 100.0) / NULLIF(total, 0), 2), 0) AS c_percent, + COALESCE(ROUND((d * 100.0) / NULLIF(total, 0), 2), 0) AS d_percent, + COALESCE(ROUND((e * 100.0) / NULLIF(total, 0), 2), 0) AS e_percent, + COALESCE(ROUND((nope * 100.0) / NULLIF(total, 0), 2), 0) AS nope_percent +FROM aggregated_all + Y + + + 800 + 384 + + + + + +
diff --git a/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr4(m_c).hpl b/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr4(m_c).hpl new file mode 100644 index 0000000..b8ebe8a --- /dev/null +++ b/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr4(m_c).hpl @@ -0,0 +1,312 @@ + + + + total_registered.driver_license_pr4(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (driver_license) регионы/все + Insert / update (total_registered.driver_license) 2 + Y + + + + Insert / update (total_registered.driver_license) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + driver_license
+ + "A" + a + Y + + + "B" + b + Y + + + "C" + c + Y + + + "D" + d + Y + + + "E" + e + Y + + + nope + nope + Y + + + "A_repcent" + a_percent + Y + + + "B_repcent" + b_percent + Y + + + "C_repcent" + c_percent + Y + + + "D_repcent" + d_percent + Y + + + "E_repcent" + e_percent + Y + + + "all_M_W" + gender + N + + + recruitment_id + recruitment_id + N + + + nope_repcent + nope_percent + Y + + + total_count + total + Y + + + convicts + convicts + N + +
+ Y + + + 1264 + 384 + +
+ + Table input (driver_license) регионы/все + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_4}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +categorized AS ( + SELECT + r.id, + r.gender, + r.current_recruitment_id AS recruitment_id, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 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, + MAX(CASE WHEN cat->>'naimKatTS' like '%M%' THEN 1 ELSE 0 END) AS has_M, -- мопеды + MAX(CASE WHEN cat->>'naimKatTS' like '%T%' THEN 1 ELSE 0 END) AS has_T -- трамваи и троллейбусы + 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->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') -- Исключаем NULL + GROUP BY r.id, r.gender + + UNION ALL + + SELECT + r.id, + r.gender, + r.current_recruitment_id AS recruitment_id, + 'ALL' AS convicts, + 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, + MAX(CASE WHEN cat->>'naimKatTS' like '%M%' THEN 1 ELSE 0 END) AS has_M, -- мопеды + MAX(CASE WHEN cat->>'naimKatTS' like '%T%' THEN 1 ELSE 0 END) AS has_T -- трамваи и троллейбусы + 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->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') -- Исключаем NULL + GROUP BY r.id, r.gender +), +aggregated AS ( + SELECT + current_date AS recording_date, + CASE + WHEN r.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + r.convicts, + r.recruitment_id, + -- Считаем количество уникальных рекрутов с каждой категорией + COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, + COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, + COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, + COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, + COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, + COUNT(DISTINCT r.id) FILTER (WHERE (has_A + has_B + has_C + has_D + has_E = 0) OR ((has_M + has_T > 0) AND (has_A + has_B + has_C + has_D + has_E = 0))) AS nope, -- условие от 14.03.2025 + COUNT(DISTINCT r.id) AS total + FROM categorized r + GROUP BY r.gender, r.recruitment_id, r.convicts +), +aggregated_all AS ( + SELECT + current_date AS recording_date, + 'ALL' AS gender, + r.convicts, + r.recruitment_id, + COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, + COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, + COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, + COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, + COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, + COUNT(DISTINCT r.id) FILTER (WHERE (has_A + has_B + has_C + has_D + has_E = 0) OR ((has_M + has_T > 0) AND (has_A + has_B + has_C + has_D + has_E = 0))) AS nope, -- условие от 14.03.2025 + COUNT(DISTINCT r.id) AS total + FROM categorized r + GROUP BY r.recruitment_id, r.convicts +) + +-- Объединение результатов с вычислением процентов +SELECT + *, + COALESCE(ROUND((a * 100.0) / NULLIF(total, 0), 2), 0) AS a_percent, + COALESCE(ROUND((b * 100.0) / NULLIF(total, 0), 2), 0) AS b_percent, + COALESCE(ROUND((c * 100.0) / NULLIF(total, 0), 2), 0) AS c_percent, + COALESCE(ROUND((d * 100.0) / NULLIF(total, 0), 2), 0) AS d_percent, + COALESCE(ROUND((e * 100.0) / NULLIF(total, 0), 2), 0) AS e_percent, + COALESCE(ROUND((nope * 100.0) / NULLIF(total, 0), 2), 0) AS nope_percent +FROM aggregated +UNION ALL +SELECT + *, + COALESCE(ROUND((a * 100.0) / NULLIF(total, 0), 2), 0) AS a_percent, + COALESCE(ROUND((b * 100.0) / NULLIF(total, 0), 2), 0) AS b_percent, + COALESCE(ROUND((c * 100.0) / NULLIF(total, 0), 2), 0) AS c_percent, + COALESCE(ROUND((d * 100.0) / NULLIF(total, 0), 2), 0) AS d_percent, + COALESCE(ROUND((e * 100.0) / NULLIF(total, 0), 2), 0) AS e_percent, + COALESCE(ROUND((nope * 100.0) / NULLIF(total, 0), 2), 0) AS nope_percent +FROM aggregated_all + Y + + + 800 + 384 + + + + + +
diff --git a/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr5(m_c).hpl b/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr5(m_c).hpl new file mode 100644 index 0000000..33620bb --- /dev/null +++ b/mappings/mil_com/total_registered.driver_license(m_c)/total_registered.driver_license_pr5(m_c).hpl @@ -0,0 +1,312 @@ + + + + total_registered.driver_license_pr5(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (driver_license) регионы/все + Insert / update (total_registered.driver_license) 2 + Y + + + + Insert / update (total_registered.driver_license) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + driver_license
+ + "A" + a + Y + + + "B" + b + Y + + + "C" + c + Y + + + "D" + d + Y + + + "E" + e + Y + + + nope + nope + Y + + + "A_repcent" + a_percent + Y + + + "B_repcent" + b_percent + Y + + + "C_repcent" + c_percent + Y + + + "D_repcent" + d_percent + Y + + + "E_repcent" + e_percent + Y + + + "all_M_W" + gender + N + + + recruitment_id + recruitment_id + N + + + nope_repcent + nope_percent + Y + + + total_count + total + Y + + + convicts + convicts + N + +
+ Y + + + 1264 + 384 + +
+ + Table input (driver_license) регионы/все + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_5}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +categorized AS ( + SELECT + r.id, + r.gender, + r.current_recruitment_id AS recruitment_id, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + 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, + MAX(CASE WHEN cat->>'naimKatTS' like '%M%' THEN 1 ELSE 0 END) AS has_M, -- мопеды + MAX(CASE WHEN cat->>'naimKatTS' like '%T%' THEN 1 ELSE 0 END) AS has_T -- трамваи и троллейбусы + 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->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') -- Исключаем NULL + GROUP BY r.id, r.gender + + UNION ALL + + SELECT + r.id, + r.gender, + r.current_recruitment_id AS recruitment_id, + 'ALL' AS convicts, + 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, + MAX(CASE WHEN cat->>'naimKatTS' like '%M%' THEN 1 ELSE 0 END) AS has_M, -- мопеды + MAX(CASE WHEN cat->>'naimKatTS' like '%T%' THEN 1 ELSE 0 END) AS has_T -- трамваи и троллейбусы + 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->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) +/* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + AND r.gender IN ('MALE', 'FEMALE') -- Исключаем NULL + GROUP BY r.id, r.gender +), +aggregated AS ( + SELECT + current_date AS recording_date, + CASE + WHEN r.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + r.convicts, + r.recruitment_id, + -- Считаем количество уникальных рекрутов с каждой категорией + COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, + COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, + COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, + COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, + COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, + COUNT(DISTINCT r.id) FILTER (WHERE (has_A + has_B + has_C + has_D + has_E = 0) OR ((has_M + has_T > 0) AND (has_A + has_B + has_C + has_D + has_E = 0))) AS nope, -- условие от 14.03.2025 + COUNT(DISTINCT r.id) AS total + FROM categorized r + GROUP BY r.gender, r.recruitment_id, r.convicts +), +aggregated_all AS ( + SELECT + current_date AS recording_date, + 'ALL' AS gender, + r.convicts, + r.recruitment_id, + COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, + COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, + COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, + COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, + COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, + COUNT(DISTINCT r.id) FILTER (WHERE (has_A + has_B + has_C + has_D + has_E = 0) OR ((has_M + has_T > 0) AND (has_A + has_B + has_C + has_D + has_E = 0))) AS nope, -- условие от 14.03.2025 + COUNT(DISTINCT r.id) AS total + FROM categorized r + GROUP BY r.recruitment_id, r.convicts +) + +-- Объединение результатов с вычислением процентов +SELECT + *, + COALESCE(ROUND((a * 100.0) / NULLIF(total, 0), 2), 0) AS a_percent, + COALESCE(ROUND((b * 100.0) / NULLIF(total, 0), 2), 0) AS b_percent, + COALESCE(ROUND((c * 100.0) / NULLIF(total, 0), 2), 0) AS c_percent, + COALESCE(ROUND((d * 100.0) / NULLIF(total, 0), 2), 0) AS d_percent, + COALESCE(ROUND((e * 100.0) / NULLIF(total, 0), 2), 0) AS e_percent, + COALESCE(ROUND((nope * 100.0) / NULLIF(total, 0), 2), 0) AS nope_percent +FROM aggregated +UNION ALL +SELECT + *, + COALESCE(ROUND((a * 100.0) / NULLIF(total, 0), 2), 0) AS a_percent, + COALESCE(ROUND((b * 100.0) / NULLIF(total, 0), 2), 0) AS b_percent, + COALESCE(ROUND((c * 100.0) / NULLIF(total, 0), 2), 0) AS c_percent, + COALESCE(ROUND((d * 100.0) / NULLIF(total, 0), 2), 0) AS d_percent, + COALESCE(ROUND((e * 100.0) / NULLIF(total, 0), 2), 0) AS e_percent, + COALESCE(ROUND((nope * 100.0) / NULLIF(total, 0), 2), 0) AS nope_percent +FROM aggregated_all + Y + + + 800 + 384 + + + + + +
diff --git a/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level(m_c).hpl b/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level(m_c).hpl new file mode 100644 index 0000000..39bed0f --- /dev/null +++ b/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level(m_c).hpl @@ -0,0 +1,452 @@ + + + + total_registered.education_level(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 2 2 + Select values 3 2 2 + N + + + Table input (person_registry) РФ/мужчины + Get variables 3 2 2 + N + + + Select values 3 2 2 + Insert / update (total_registered.education_level) 2 + N + + + Table input (person_registry) РФ/мужчины + Insert / update (total_registered.education_level) 2 + Y + + + + Get variables 3 2 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REC_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 1328 + 624 + + + + Insert / update (total_registered.education_level) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + education_level
+ + higher + higher + Y + + + average + average_prof + Y + + + "all_M_W" + gender + N + + + only_general + only_general + Y + + + no_data + count_nodata + Y + + + higher_percent + higher_percentage + Y + + + average_percent + average_prof_percentage + Y + + + only_general_percent + only_general_percentage + Y + + + no_data_percent + count_nodata_percentage + Y + + + recruitment_id + recruitment_id + N + + + education_level + total + Y + + + convicts + convicts + N + +
+ Y + + + 1728 + 496 + +
+ + Select values 3 2 2 + SelectValues + + Y + + 1 + + none + + + + N + + REC_ID + REC_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 1472 + 624 + + + + Table input (person_registry) РФ/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +education_status AS ( + SELECT + ri.id, + ri.recruit_id AS recruit_id, + coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + -- Высшее образование (российское или иностранное) + ( + EXISTS ( + SELECT 1 + 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->'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, + + -- Среднее профессиональное образование (если нет высшего) + ( + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedRObr'->'robr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedRObr'->'robr') = 'array' + AND education->>'kodUrObr' IN ('6', '8', '10', '11') + ) OR EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('6', '8', '10', '11') + ) + ) AS has_average_prof, + + -- Общее образование (если нет высшего и среднего) + ( + EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('7', '9') + ) + ) AS has_only_general, + + -- Нет данных об образовании (российское или иностранное) + ( + NOT ( + ( + EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + ) + ) + ) AND ( + ri.info->'svedFL'->'svedRObr'->>'prOtsRObr' = '1' + OR ri.info->'svedFL'->'svedInObr'->>'prOtsInObr' = '1' + ) + ) AS has_no_data + + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + join public.recruits_history rh on rh.recruit_id=r.id + WHERE + r.gender IN ('MALE', 'FEMALE') + AND r.id in (SELECT recruit_id FROM registered) + AND rh.id in (SELECT recruit_history_id FROM registered) + -- AND r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + AND coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +), +final_counts AS ( + SELECT + es.gender, + es.recruitment_id, + es.convicts, + COUNT(DISTINCT es.id) AS total, + COUNT(DISTINCT CASE WHEN es.has_higher THEN es.id END) AS higher, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND es.has_average_prof THEN es.id END) AS average_prof, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND NOT es.has_average_prof AND es.has_only_general THEN es.id END) AS only_general, + COUNT(DISTINCT CASE WHEN es.has_no_data THEN es.id END) AS count_nodata + FROM education_status es + GROUP BY es.recruitment_id, es.gender, es.convicts + + UNION ALL + + SELECT + es.gender, + es.recruitment_id, + 'ALL' AS convicts, + COUNT(DISTINCT es.id) AS total, + COUNT(DISTINCT CASE WHEN es.has_higher THEN es.id END) AS higher, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND es.has_average_prof THEN es.id END) AS average_prof, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND NOT es.has_average_prof AND es.has_only_general THEN es.id END) AS only_general, + COUNT(DISTINCT CASE WHEN es.has_no_data THEN es.id END) AS count_nodata + FROM education_status es + GROUP BY es.recruitment_id, es.gender +), +final_counts_all AS ( + SELECT + 'ALL' AS gender, + recruitment_id, + convicts, + SUM(total) AS total, + SUM(higher) AS higher, + SUM(average_prof) AS average_prof, + SUM(only_general) AS only_general, + SUM(count_nodata) AS count_nodata + FROM final_counts + GROUP BY recruitment_id, convicts + + UNION ALL + + SELECT + 'ALL' AS gender, + recruitment_id, + 'ALL' AS convicts, + SUM(total) AS total, + SUM(higher) AS higher, + SUM(average_prof) AS average_prof, + SUM(only_general) AS only_general, + SUM(count_nodata) AS count_nodata + FROM final_counts + GROUP BY recruitment_id +) +SELECT + current_date AS recording_date, + CASE + WHEN fc.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + fc.convicts, + fc.recruitment_id, + fc.higher, + fc.average_prof, + fc.only_general, + fc.count_nodata, + fc.total, + COALESCE(ROUND(fc.higher * 100.0 / NULLIF(fc.total, 0), 2), 0) AS higher_percentage, + COALESCE(ROUND(fc.average_prof * 100.0 / NULLIF(fc.total, 0), 2), 0) AS average_prof_percentage, + COALESCE(ROUND(fc.only_general * 100.0 / NULLIF(fc.total, 0), 2), 0) AS only_general_percentage, + COALESCE(ROUND(fc.count_nodata * 100.0 / NULLIF(fc.total, 0), 2), 0) AS count_nodata_percentage +FROM final_counts fc +UNION ALL +SELECT + current_date AS recording_date, + fca.gender, + fca.convicts, + fca.recruitment_id, + fca.higher, + fca.average_prof, + fca.only_general, + fca.count_nodata, + fca.total, + COALESCE(ROUND(fca.higher * 100.0 / NULLIF(fca.total, 0), 2), 0) AS higher_percentage, + COALESCE(ROUND(fca.average_prof * 100.0 / NULLIF(fca.total, 0), 2), 0) AS average_prof_percentage, + COALESCE(ROUND(fca.only_general * 100.0 / NULLIF(fca.total, 0), 2), 0) AS only_general_percentage, + COALESCE(ROUND(fca.count_nodata * 100.0 / NULLIF(fca.total, 0), 2), 0) AS count_nodata_percentage +FROM final_counts_all fca + Y + + + 1072 + 496 + + + + + +
diff --git a/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level(m_c).hwf b/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level(m_c).hwf new file mode 100644 index 0000000..d2032bb --- /dev/null +++ b/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level(m_c).hwf @@ -0,0 +1,309 @@ + + + total_registered.education_level(m_c) + Y + + + + - + 2025/04/01 10:26:22.205 + - + 2025/04/01 10:26:22.205 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + Y + 624 + 432 + + + + total_registered.education_level_pr1(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr1(m_c).hpl + Basic + + + ARR_PR_1 + PART_RECRUITMENT_1 + + Y + + Y + local + N + N + Y + N + 1088 + 272 + + + + total_registered.education_level_pr2(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr2(m_c).hpl + Basic + + + ARR_PR_2 + PART_RECRUITMENT_2 + + Y + + Y + local + N + N + Y + N + 1088 + 352 + + + + total_registered.education_level_pr3(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr3(m_c).hpl + Basic + + + ARR_PR_3 + PART_RECRUITMENT_3 + + Y + + Y + local + N + N + Y + N + 1088 + 432 + + + + total_registered.education_level_pr4(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr4(m_c).hpl + Basic + + + ARR_PR_4 + PART_RECRUITMENT_4 + + Y + + Y + local + N + N + Y + N + 1088 + 512 + + + + total_registered.education_level_pr5(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr5(m_c).hpl + Basic + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 1088 + 592 + + + + Success + + SUCCESS + + N + 1360 + 272 + + + + Success 2 + + SUCCESS + + N + 1360 + 352 + + + + Success 3 + + SUCCESS + + N + 1360 + 432 + + + + Success 4 + + SUCCESS + + N + 1360 + 512 + + + + Success 5 + + SUCCESS + + N + 1360 + 592 + + + + + + Start + total_registered.education_level_pr1(m_c).hpl + Y + Y + Y + + + total_registered.education_level_pr1(m_c).hpl + Success + Y + Y + N + + + Start + total_registered.education_level_pr2(m_c).hpl + Y + Y + Y + + + total_registered.education_level_pr2(m_c).hpl + Success 2 + Y + Y + N + + + Start + total_registered.education_level_pr3(m_c).hpl + Y + Y + Y + + + total_registered.education_level_pr3(m_c).hpl + Success 3 + Y + Y + N + + + Start + total_registered.education_level_pr4(m_c).hpl + Y + Y + Y + + + total_registered.education_level_pr4(m_c).hpl + Success 4 + Y + Y + N + + + total_registered.education_level_pr5(m_c).hpl + Success 5 + Y + Y + N + + + Start + total_registered.education_level_pr5(m_c).hpl + Y + Y + Y + + + + + + diff --git a/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr1(m_c).hpl b/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr1(m_c).hpl new file mode 100644 index 0000000..625f5ac --- /dev/null +++ b/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr1(m_c).hpl @@ -0,0 +1,350 @@ + + + + total_registered.education_level_pr1(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) РФ/мужчины + Insert / update (total_registered.education_level) 2 + Y + + + + Insert / update (total_registered.education_level) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + education_level
+ + higher + higher + Y + + + average + average_prof + Y + + + "all_M_W" + gender + N + + + only_general + only_general + Y + + + no_data + count_nodata + Y + + + higher_percent + higher_percentage + Y + + + average_percent + average_prof_percentage + Y + + + only_general_percent + only_general_percentage + Y + + + no_data_percent + count_nodata_percentage + Y + + + recruitment_id + recruitment_id + N + + + education_level + total + Y + + + convicts + convicts + N + +
+ Y + + + 1728 + 496 + +
+ + Table input (person_registry) РФ/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_1}'), ','))::uuid AS recruitment_id +), +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +education_status AS ( + SELECT + ri.id, + ri.recruit_id AS recruit_id, + coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + -- Высшее образование (российское или иностранное) + ( + EXISTS ( + SELECT 1 + 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->'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, + + -- Среднее профессиональное образование (если нет высшего) + ( + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedRObr'->'robr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedRObr'->'robr') = 'array' + AND education->>'kodUrObr' IN ('6', '8', '10', '11') + ) OR EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('6', '8', '10', '11') + ) + ) AS has_average_prof, + + -- Общее образование (если нет высшего и среднего) + ( + EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('7', '9') + ) + ) AS has_only_general, + + -- Нет данных об образовании (российское или иностранное) + ( + NOT ( + ( + EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + ) + ) + ) AND ( + ri.info->'svedFL'->'svedRObr'->>'prOtsRObr' = '1' + OR ri.info->'svedFL'->'svedInObr'->>'prOtsInObr' = '1' + ) + ) AS has_no_data + + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + join public.recruits_history rh on rh.recruit_id=r.id + WHERE + r.gender IN ('MALE', 'FEMALE') + AND r.id in (SELECT recruit_id FROM registered) + AND rh.id in (SELECT recruit_history_id FROM registered) + -- AND r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + AND coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +), +final_counts AS ( + SELECT + es.gender, + es.recruitment_id, + es.convicts, + COUNT(DISTINCT es.id) AS total, + COUNT(DISTINCT CASE WHEN es.has_higher THEN es.id END) AS higher, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND es.has_average_prof THEN es.id END) AS average_prof, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND NOT es.has_average_prof AND es.has_only_general THEN es.id END) AS only_general, + COUNT(DISTINCT CASE WHEN es.has_no_data THEN es.id END) AS count_nodata + FROM education_status es + GROUP BY es.recruitment_id, es.gender, es.convicts + + UNION ALL + + SELECT + es.gender, + es.recruitment_id, + 'ALL' AS convicts, + COUNT(DISTINCT es.id) AS total, + COUNT(DISTINCT CASE WHEN es.has_higher THEN es.id END) AS higher, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND es.has_average_prof THEN es.id END) AS average_prof, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND NOT es.has_average_prof AND es.has_only_general THEN es.id END) AS only_general, + COUNT(DISTINCT CASE WHEN es.has_no_data THEN es.id END) AS count_nodata + FROM education_status es + GROUP BY es.recruitment_id, es.gender +), +final_counts_all AS ( + SELECT + 'ALL' AS gender, + recruitment_id, + convicts, + SUM(total) AS total, + SUM(higher) AS higher, + SUM(average_prof) AS average_prof, + SUM(only_general) AS only_general, + SUM(count_nodata) AS count_nodata + FROM final_counts + GROUP BY recruitment_id, convicts + + UNION ALL + + SELECT + 'ALL' AS gender, + recruitment_id, + 'ALL' AS convicts, + SUM(total) AS total, + SUM(higher) AS higher, + SUM(average_prof) AS average_prof, + SUM(only_general) AS only_general, + SUM(count_nodata) AS count_nodata + FROM final_counts + GROUP BY recruitment_id +) +SELECT + current_date AS recording_date, + CASE + WHEN fc.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + fc.convicts, + fc.recruitment_id, + fc.higher, + fc.average_prof, + fc.only_general, + fc.count_nodata, + fc.total, + COALESCE(ROUND(fc.higher * 100.0 / NULLIF(fc.total, 0), 2), 0) AS higher_percentage, + COALESCE(ROUND(fc.average_prof * 100.0 / NULLIF(fc.total, 0), 2), 0) AS average_prof_percentage, + COALESCE(ROUND(fc.only_general * 100.0 / NULLIF(fc.total, 0), 2), 0) AS only_general_percentage, + COALESCE(ROUND(fc.count_nodata * 100.0 / NULLIF(fc.total, 0), 2), 0) AS count_nodata_percentage +FROM final_counts fc +UNION ALL +SELECT + current_date AS recording_date, + fca.gender, + fca.convicts, + fca.recruitment_id, + fca.higher, + fca.average_prof, + fca.only_general, + fca.count_nodata, + fca.total, + COALESCE(ROUND(fca.higher * 100.0 / NULLIF(fca.total, 0), 2), 0) AS higher_percentage, + COALESCE(ROUND(fca.average_prof * 100.0 / NULLIF(fca.total, 0), 2), 0) AS average_prof_percentage, + COALESCE(ROUND(fca.only_general * 100.0 / NULLIF(fca.total, 0), 2), 0) AS only_general_percentage, + COALESCE(ROUND(fca.count_nodata * 100.0 / NULLIF(fca.total, 0), 2), 0) AS count_nodata_percentage +FROM final_counts_all fca + Y + + + 1072 + 496 + + + + + +
diff --git a/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr2(m_c).hpl b/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr2(m_c).hpl new file mode 100644 index 0000000..01c5120 --- /dev/null +++ b/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr2(m_c).hpl @@ -0,0 +1,350 @@ + + + + total_registered.education_level_pr2(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) РФ/мужчины + Insert / update (total_registered.education_level) 2 + Y + + + + Insert / update (total_registered.education_level) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + education_level
+ + higher + higher + Y + + + average + average_prof + Y + + + "all_M_W" + gender + N + + + only_general + only_general + Y + + + no_data + count_nodata + Y + + + higher_percent + higher_percentage + Y + + + average_percent + average_prof_percentage + Y + + + only_general_percent + only_general_percentage + Y + + + no_data_percent + count_nodata_percentage + Y + + + recruitment_id + recruitment_id + N + + + education_level + total + Y + + + convicts + convicts + N + +
+ Y + + + 1728 + 496 + +
+ + Table input (person_registry) РФ/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_2}'), ','))::uuid AS recruitment_id +), +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +education_status AS ( + SELECT + ri.id, + ri.recruit_id AS recruit_id, + coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + -- Высшее образование (российское или иностранное) + ( + EXISTS ( + SELECT 1 + 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->'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, + + -- Среднее профессиональное образование (если нет высшего) + ( + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedRObr'->'robr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedRObr'->'robr') = 'array' + AND education->>'kodUrObr' IN ('6', '8', '10', '11') + ) OR EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('6', '8', '10', '11') + ) + ) AS has_average_prof, + + -- Общее образование (если нет высшего и среднего) + ( + EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('7', '9') + ) + ) AS has_only_general, + + -- Нет данных об образовании (российское или иностранное) + ( + NOT ( + ( + EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + ) + ) + ) AND ( + ri.info->'svedFL'->'svedRObr'->>'prOtsRObr' = '1' + OR ri.info->'svedFL'->'svedInObr'->>'prOtsInObr' = '1' + ) + ) AS has_no_data + + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + join public.recruits_history rh on rh.recruit_id=r.id + WHERE + r.gender IN ('MALE', 'FEMALE') + AND r.id in (SELECT recruit_id FROM registered) + AND rh.id in (SELECT recruit_history_id FROM registered) + -- AND r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + AND coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +), +final_counts AS ( + SELECT + es.gender, + es.recruitment_id, + es.convicts, + COUNT(DISTINCT es.id) AS total, + COUNT(DISTINCT CASE WHEN es.has_higher THEN es.id END) AS higher, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND es.has_average_prof THEN es.id END) AS average_prof, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND NOT es.has_average_prof AND es.has_only_general THEN es.id END) AS only_general, + COUNT(DISTINCT CASE WHEN es.has_no_data THEN es.id END) AS count_nodata + FROM education_status es + GROUP BY es.recruitment_id, es.gender, es.convicts + + UNION ALL + + SELECT + es.gender, + es.recruitment_id, + 'ALL' AS convicts, + COUNT(DISTINCT es.id) AS total, + COUNT(DISTINCT CASE WHEN es.has_higher THEN es.id END) AS higher, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND es.has_average_prof THEN es.id END) AS average_prof, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND NOT es.has_average_prof AND es.has_only_general THEN es.id END) AS only_general, + COUNT(DISTINCT CASE WHEN es.has_no_data THEN es.id END) AS count_nodata + FROM education_status es + GROUP BY es.recruitment_id, es.gender +), +final_counts_all AS ( + SELECT + 'ALL' AS gender, + recruitment_id, + convicts, + SUM(total) AS total, + SUM(higher) AS higher, + SUM(average_prof) AS average_prof, + SUM(only_general) AS only_general, + SUM(count_nodata) AS count_nodata + FROM final_counts + GROUP BY recruitment_id, convicts + + UNION ALL + + SELECT + 'ALL' AS gender, + recruitment_id, + 'ALL' AS convicts, + SUM(total) AS total, + SUM(higher) AS higher, + SUM(average_prof) AS average_prof, + SUM(only_general) AS only_general, + SUM(count_nodata) AS count_nodata + FROM final_counts + GROUP BY recruitment_id +) +SELECT + current_date AS recording_date, + CASE + WHEN fc.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + fc.convicts, + fc.recruitment_id, + fc.higher, + fc.average_prof, + fc.only_general, + fc.count_nodata, + fc.total, + COALESCE(ROUND(fc.higher * 100.0 / NULLIF(fc.total, 0), 2), 0) AS higher_percentage, + COALESCE(ROUND(fc.average_prof * 100.0 / NULLIF(fc.total, 0), 2), 0) AS average_prof_percentage, + COALESCE(ROUND(fc.only_general * 100.0 / NULLIF(fc.total, 0), 2), 0) AS only_general_percentage, + COALESCE(ROUND(fc.count_nodata * 100.0 / NULLIF(fc.total, 0), 2), 0) AS count_nodata_percentage +FROM final_counts fc +UNION ALL +SELECT + current_date AS recording_date, + fca.gender, + fca.convicts, + fca.recruitment_id, + fca.higher, + fca.average_prof, + fca.only_general, + fca.count_nodata, + fca.total, + COALESCE(ROUND(fca.higher * 100.0 / NULLIF(fca.total, 0), 2), 0) AS higher_percentage, + COALESCE(ROUND(fca.average_prof * 100.0 / NULLIF(fca.total, 0), 2), 0) AS average_prof_percentage, + COALESCE(ROUND(fca.only_general * 100.0 / NULLIF(fca.total, 0), 2), 0) AS only_general_percentage, + COALESCE(ROUND(fca.count_nodata * 100.0 / NULLIF(fca.total, 0), 2), 0) AS count_nodata_percentage +FROM final_counts_all fca + Y + + + 1072 + 496 + + + + + +
diff --git a/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr3(m_c).hpl b/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr3(m_c).hpl new file mode 100644 index 0000000..2d28874 --- /dev/null +++ b/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr3(m_c).hpl @@ -0,0 +1,350 @@ + + + + total_registered.education_level_pr3(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) РФ/мужчины + Insert / update (total_registered.education_level) 2 + Y + + + + Insert / update (total_registered.education_level) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + education_level
+ + higher + higher + Y + + + average + average_prof + Y + + + "all_M_W" + gender + N + + + only_general + only_general + Y + + + no_data + count_nodata + Y + + + higher_percent + higher_percentage + Y + + + average_percent + average_prof_percentage + Y + + + only_general_percent + only_general_percentage + Y + + + no_data_percent + count_nodata_percentage + Y + + + recruitment_id + recruitment_id + N + + + education_level + total + Y + + + convicts + convicts + N + +
+ Y + + + 1728 + 496 + +
+ + Table input (person_registry) РФ/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_3}'), ','))::uuid AS recruitment_id +), +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +education_status AS ( + SELECT + ri.id, + ri.recruit_id AS recruit_id, + coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + -- Высшее образование (российское или иностранное) + ( + EXISTS ( + SELECT 1 + 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->'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, + + -- Среднее профессиональное образование (если нет высшего) + ( + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedRObr'->'robr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedRObr'->'robr') = 'array' + AND education->>'kodUrObr' IN ('6', '8', '10', '11') + ) OR EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('6', '8', '10', '11') + ) + ) AS has_average_prof, + + -- Общее образование (если нет высшего и среднего) + ( + EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('7', '9') + ) + ) AS has_only_general, + + -- Нет данных об образовании (российское или иностранное) + ( + NOT ( + ( + EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + ) + ) + ) AND ( + ri.info->'svedFL'->'svedRObr'->>'prOtsRObr' = '1' + OR ri.info->'svedFL'->'svedInObr'->>'prOtsInObr' = '1' + ) + ) AS has_no_data + + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + join public.recruits_history rh on rh.recruit_id=r.id + WHERE + r.gender IN ('MALE', 'FEMALE') + AND r.id in (SELECT recruit_id FROM registered) + AND rh.id in (SELECT recruit_history_id FROM registered) + -- AND r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + AND coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +), +final_counts AS ( + SELECT + es.gender, + es.recruitment_id, + es.convicts, + COUNT(DISTINCT es.id) AS total, + COUNT(DISTINCT CASE WHEN es.has_higher THEN es.id END) AS higher, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND es.has_average_prof THEN es.id END) AS average_prof, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND NOT es.has_average_prof AND es.has_only_general THEN es.id END) AS only_general, + COUNT(DISTINCT CASE WHEN es.has_no_data THEN es.id END) AS count_nodata + FROM education_status es + GROUP BY es.recruitment_id, es.gender, es.convicts + + UNION ALL + + SELECT + es.gender, + es.recruitment_id, + 'ALL' AS convicts, + COUNT(DISTINCT es.id) AS total, + COUNT(DISTINCT CASE WHEN es.has_higher THEN es.id END) AS higher, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND es.has_average_prof THEN es.id END) AS average_prof, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND NOT es.has_average_prof AND es.has_only_general THEN es.id END) AS only_general, + COUNT(DISTINCT CASE WHEN es.has_no_data THEN es.id END) AS count_nodata + FROM education_status es + GROUP BY es.recruitment_id, es.gender +), +final_counts_all AS ( + SELECT + 'ALL' AS gender, + recruitment_id, + convicts, + SUM(total) AS total, + SUM(higher) AS higher, + SUM(average_prof) AS average_prof, + SUM(only_general) AS only_general, + SUM(count_nodata) AS count_nodata + FROM final_counts + GROUP BY recruitment_id, convicts + + UNION ALL + + SELECT + 'ALL' AS gender, + recruitment_id, + 'ALL' AS convicts, + SUM(total) AS total, + SUM(higher) AS higher, + SUM(average_prof) AS average_prof, + SUM(only_general) AS only_general, + SUM(count_nodata) AS count_nodata + FROM final_counts + GROUP BY recruitment_id +) +SELECT + current_date AS recording_date, + CASE + WHEN fc.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + fc.convicts, + fc.recruitment_id, + fc.higher, + fc.average_prof, + fc.only_general, + fc.count_nodata, + fc.total, + COALESCE(ROUND(fc.higher * 100.0 / NULLIF(fc.total, 0), 2), 0) AS higher_percentage, + COALESCE(ROUND(fc.average_prof * 100.0 / NULLIF(fc.total, 0), 2), 0) AS average_prof_percentage, + COALESCE(ROUND(fc.only_general * 100.0 / NULLIF(fc.total, 0), 2), 0) AS only_general_percentage, + COALESCE(ROUND(fc.count_nodata * 100.0 / NULLIF(fc.total, 0), 2), 0) AS count_nodata_percentage +FROM final_counts fc +UNION ALL +SELECT + current_date AS recording_date, + fca.gender, + fca.convicts, + fca.recruitment_id, + fca.higher, + fca.average_prof, + fca.only_general, + fca.count_nodata, + fca.total, + COALESCE(ROUND(fca.higher * 100.0 / NULLIF(fca.total, 0), 2), 0) AS higher_percentage, + COALESCE(ROUND(fca.average_prof * 100.0 / NULLIF(fca.total, 0), 2), 0) AS average_prof_percentage, + COALESCE(ROUND(fca.only_general * 100.0 / NULLIF(fca.total, 0), 2), 0) AS only_general_percentage, + COALESCE(ROUND(fca.count_nodata * 100.0 / NULLIF(fca.total, 0), 2), 0) AS count_nodata_percentage +FROM final_counts_all fca + Y + + + 1072 + 496 + + + + + +
diff --git a/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr4(m_c).hpl b/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr4(m_c).hpl new file mode 100644 index 0000000..9e18fa4 --- /dev/null +++ b/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr4(m_c).hpl @@ -0,0 +1,350 @@ + + + + total_registered.education_level_pr4(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) РФ/мужчины + Insert / update (total_registered.education_level) 2 + Y + + + + Insert / update (total_registered.education_level) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + education_level
+ + higher + higher + Y + + + average + average_prof + Y + + + "all_M_W" + gender + N + + + only_general + only_general + Y + + + no_data + count_nodata + Y + + + higher_percent + higher_percentage + Y + + + average_percent + average_prof_percentage + Y + + + only_general_percent + only_general_percentage + Y + + + no_data_percent + count_nodata_percentage + Y + + + recruitment_id + recruitment_id + N + + + education_level + total + Y + + + convicts + convicts + N + +
+ Y + + + 1728 + 496 + +
+ + Table input (person_registry) РФ/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_4}'), ','))::uuid AS recruitment_id +), +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +education_status AS ( + SELECT + ri.id, + ri.recruit_id AS recruit_id, + coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + -- Высшее образование (российское или иностранное) + ( + EXISTS ( + SELECT 1 + 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->'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, + + -- Среднее профессиональное образование (если нет высшего) + ( + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedRObr'->'robr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedRObr'->'robr') = 'array' + AND education->>'kodUrObr' IN ('6', '8', '10', '11') + ) OR EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('6', '8', '10', '11') + ) + ) AS has_average_prof, + + -- Общее образование (если нет высшего и среднего) + ( + EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('7', '9') + ) + ) AS has_only_general, + + -- Нет данных об образовании (российское или иностранное) + ( + NOT ( + ( + EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + ) + ) + ) AND ( + ri.info->'svedFL'->'svedRObr'->>'prOtsRObr' = '1' + OR ri.info->'svedFL'->'svedInObr'->>'prOtsInObr' = '1' + ) + ) AS has_no_data + + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + join public.recruits_history rh on rh.recruit_id=r.id + WHERE + r.gender IN ('MALE', 'FEMALE') + AND r.id in (SELECT recruit_id FROM registered) + AND rh.id in (SELECT recruit_history_id FROM registered) + -- AND r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + AND coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +), +final_counts AS ( + SELECT + es.gender, + es.recruitment_id, + es.convicts, + COUNT(DISTINCT es.id) AS total, + COUNT(DISTINCT CASE WHEN es.has_higher THEN es.id END) AS higher, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND es.has_average_prof THEN es.id END) AS average_prof, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND NOT es.has_average_prof AND es.has_only_general THEN es.id END) AS only_general, + COUNT(DISTINCT CASE WHEN es.has_no_data THEN es.id END) AS count_nodata + FROM education_status es + GROUP BY es.recruitment_id, es.gender, es.convicts + + UNION ALL + + SELECT + es.gender, + es.recruitment_id, + 'ALL' AS convicts, + COUNT(DISTINCT es.id) AS total, + COUNT(DISTINCT CASE WHEN es.has_higher THEN es.id END) AS higher, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND es.has_average_prof THEN es.id END) AS average_prof, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND NOT es.has_average_prof AND es.has_only_general THEN es.id END) AS only_general, + COUNT(DISTINCT CASE WHEN es.has_no_data THEN es.id END) AS count_nodata + FROM education_status es + GROUP BY es.recruitment_id, es.gender +), +final_counts_all AS ( + SELECT + 'ALL' AS gender, + recruitment_id, + convicts, + SUM(total) AS total, + SUM(higher) AS higher, + SUM(average_prof) AS average_prof, + SUM(only_general) AS only_general, + SUM(count_nodata) AS count_nodata + FROM final_counts + GROUP BY recruitment_id, convicts + + UNION ALL + + SELECT + 'ALL' AS gender, + recruitment_id, + 'ALL' AS convicts, + SUM(total) AS total, + SUM(higher) AS higher, + SUM(average_prof) AS average_prof, + SUM(only_general) AS only_general, + SUM(count_nodata) AS count_nodata + FROM final_counts + GROUP BY recruitment_id +) +SELECT + current_date AS recording_date, + CASE + WHEN fc.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + fc.convicts, + fc.recruitment_id, + fc.higher, + fc.average_prof, + fc.only_general, + fc.count_nodata, + fc.total, + COALESCE(ROUND(fc.higher * 100.0 / NULLIF(fc.total, 0), 2), 0) AS higher_percentage, + COALESCE(ROUND(fc.average_prof * 100.0 / NULLIF(fc.total, 0), 2), 0) AS average_prof_percentage, + COALESCE(ROUND(fc.only_general * 100.0 / NULLIF(fc.total, 0), 2), 0) AS only_general_percentage, + COALESCE(ROUND(fc.count_nodata * 100.0 / NULLIF(fc.total, 0), 2), 0) AS count_nodata_percentage +FROM final_counts fc +UNION ALL +SELECT + current_date AS recording_date, + fca.gender, + fca.convicts, + fca.recruitment_id, + fca.higher, + fca.average_prof, + fca.only_general, + fca.count_nodata, + fca.total, + COALESCE(ROUND(fca.higher * 100.0 / NULLIF(fca.total, 0), 2), 0) AS higher_percentage, + COALESCE(ROUND(fca.average_prof * 100.0 / NULLIF(fca.total, 0), 2), 0) AS average_prof_percentage, + COALESCE(ROUND(fca.only_general * 100.0 / NULLIF(fca.total, 0), 2), 0) AS only_general_percentage, + COALESCE(ROUND(fca.count_nodata * 100.0 / NULLIF(fca.total, 0), 2), 0) AS count_nodata_percentage +FROM final_counts_all fca + Y + + + 1072 + 496 + + + + + +
diff --git a/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr5(m_c).hpl b/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr5(m_c).hpl new file mode 100644 index 0000000..e5cb4e6 --- /dev/null +++ b/mappings/mil_com/total_registered.education_level(m_c)/total_registered.education_level_pr5(m_c).hpl @@ -0,0 +1,350 @@ + + + + total_registered.education_level_pr5(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) РФ/мужчины + Insert / update (total_registered.education_level) 2 + Y + + + + Insert / update (total_registered.education_level) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + education_level
+ + higher + higher + Y + + + average + average_prof + Y + + + "all_M_W" + gender + N + + + only_general + only_general + Y + + + no_data + count_nodata + Y + + + higher_percent + higher_percentage + Y + + + average_percent + average_prof_percentage + Y + + + only_general_percent + only_general_percentage + Y + + + no_data_percent + count_nodata_percentage + Y + + + recruitment_id + recruitment_id + N + + + education_level + total + Y + + + convicts + convicts + N + +
+ Y + + + 1728 + 496 + +
+ + Table input (person_registry) РФ/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_5}'), ','))::uuid AS recruitment_id +), +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +education_status AS ( + SELECT + ri.id, + ri.recruit_id AS recruit_id, + coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + -- Высшее образование (российское или иностранное) + ( + EXISTS ( + SELECT 1 + 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->'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, + + -- Среднее профессиональное образование (если нет высшего) + ( + EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedRObr'->'robr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedRObr'->'robr') = 'array' + AND education->>'kodUrObr' IN ('6', '8', '10', '11') + ) OR EXISTS ( + SELECT 1 + FROM jsonb_array_elements(ri.info->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('6', '8', '10', '11') + ) + ) AS has_average_prof, + + -- Общее образование (если нет высшего и среднего) + ( + EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + AND education->>'kodUrObr' IN ('7', '9') + ) + ) AS has_only_general, + + -- Нет данных об образовании (российское или иностранное) + ( + NOT ( + ( + EXISTS ( + SELECT 1 + 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->'svedFL'->'svedInObr'->'inObr') AS education + WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' + ) + ) + ) AND ( + ri.info->'svedFL'->'svedRObr'->>'prOtsRObr' = '1' + OR ri.info->'svedFL'->'svedInObr'->>'prOtsInObr' = '1' + ) + ) AS has_no_data + + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + join public.recruits_history rh on rh.recruit_id=r.id + WHERE + r.gender IN ('MALE', 'FEMALE') + AND r.id in (SELECT recruit_id FROM registered) + AND rh.id in (SELECT recruit_history_id FROM registered) + -- AND r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + AND coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +), +final_counts AS ( + SELECT + es.gender, + es.recruitment_id, + es.convicts, + COUNT(DISTINCT es.id) AS total, + COUNT(DISTINCT CASE WHEN es.has_higher THEN es.id END) AS higher, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND es.has_average_prof THEN es.id END) AS average_prof, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND NOT es.has_average_prof AND es.has_only_general THEN es.id END) AS only_general, + COUNT(DISTINCT CASE WHEN es.has_no_data THEN es.id END) AS count_nodata + FROM education_status es + GROUP BY es.recruitment_id, es.gender, es.convicts + + UNION ALL + + SELECT + es.gender, + es.recruitment_id, + 'ALL' AS convicts, + COUNT(DISTINCT es.id) AS total, + COUNT(DISTINCT CASE WHEN es.has_higher THEN es.id END) AS higher, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND es.has_average_prof THEN es.id END) AS average_prof, + COUNT(DISTINCT CASE WHEN NOT es.has_higher AND NOT es.has_average_prof AND es.has_only_general THEN es.id END) AS only_general, + COUNT(DISTINCT CASE WHEN es.has_no_data THEN es.id END) AS count_nodata + FROM education_status es + GROUP BY es.recruitment_id, es.gender +), +final_counts_all AS ( + SELECT + 'ALL' AS gender, + recruitment_id, + convicts, + SUM(total) AS total, + SUM(higher) AS higher, + SUM(average_prof) AS average_prof, + SUM(only_general) AS only_general, + SUM(count_nodata) AS count_nodata + FROM final_counts + GROUP BY recruitment_id, convicts + + UNION ALL + + SELECT + 'ALL' AS gender, + recruitment_id, + 'ALL' AS convicts, + SUM(total) AS total, + SUM(higher) AS higher, + SUM(average_prof) AS average_prof, + SUM(only_general) AS only_general, + SUM(count_nodata) AS count_nodata + FROM final_counts + GROUP BY recruitment_id +) +SELECT + current_date AS recording_date, + CASE + WHEN fc.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + fc.convicts, + fc.recruitment_id, + fc.higher, + fc.average_prof, + fc.only_general, + fc.count_nodata, + fc.total, + COALESCE(ROUND(fc.higher * 100.0 / NULLIF(fc.total, 0), 2), 0) AS higher_percentage, + COALESCE(ROUND(fc.average_prof * 100.0 / NULLIF(fc.total, 0), 2), 0) AS average_prof_percentage, + COALESCE(ROUND(fc.only_general * 100.0 / NULLIF(fc.total, 0), 2), 0) AS only_general_percentage, + COALESCE(ROUND(fc.count_nodata * 100.0 / NULLIF(fc.total, 0), 2), 0) AS count_nodata_percentage +FROM final_counts fc +UNION ALL +SELECT + current_date AS recording_date, + fca.gender, + fca.convicts, + fca.recruitment_id, + fca.higher, + fca.average_prof, + fca.only_general, + fca.count_nodata, + fca.total, + COALESCE(ROUND(fca.higher * 100.0 / NULLIF(fca.total, 0), 2), 0) AS higher_percentage, + COALESCE(ROUND(fca.average_prof * 100.0 / NULLIF(fca.total, 0), 2), 0) AS average_prof_percentage, + COALESCE(ROUND(fca.only_general * 100.0 / NULLIF(fca.total, 0), 2), 0) AS only_general_percentage, + COALESCE(ROUND(fca.count_nodata * 100.0 / NULLIF(fca.total, 0), 2), 0) AS count_nodata_percentage +FROM final_counts_all fca + Y + + + 1072 + 496 + + + + + +
diff --git a/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status(m_c).hpl b/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status(m_c).hpl new file mode 100644 index 0000000..e285fa4 --- /dev/null +++ b/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status(m_c).hpl @@ -0,0 +1,372 @@ + + + + total_registered.marital_status(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 2 2 + Select values 3 2 2 + N + + + Table input (person_registry) регионы/мужчины + Get variables 3 2 2 + N + + + Select values 3 2 2 + Insert / update (total_registered.marital_status) 2 + N + + + Table input (person_registry) регионы/мужчины + Insert / update (total_registered.marital_status) 2 + Y + + + + Get variables 3 2 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REC_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 1280 + 624 + + + + Insert / update (total_registered.marital_status) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + marital_status
+ + married + married + Y + + + not_married + not_married + Y + + + married_percent + married_percent + Y + + + not_married_percent + not_married_percent + Y + + + "all_M_W" + gender + N + + + recruitment_id + recruitment_id + N + + + marital_status + total + Y + + + other + other + Y + + + other_percent + other_percent + Y + + + convicts + convicts + N + +
+ Y + + + 1680 + 544 + +
+ + Select values 3 2 2 + SelectValues + + Y + + 1 + + none + + + + N + + REC_ID + REC_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 1424 + 624 + + + + Table input (person_registry) регионы/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +recruit_data AS ( + SELECT + ri.recruit_id, + ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh' AS sem_pol, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + r.current_recruitment_id AS recruitment_id + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND r.gender IN ('MALE', 'FEMALE') +/* + AND r.id in (SELECT recruit_id FROM registered) + and rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + ri.recruit_id, + ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh' AS sem_pol, + r.gender, + 'ALL' AS convicts, + r.current_recruitment_id AS recruitment_id + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND r.gender IN ('MALE', 'FEMALE') +/* + AND r.id in (SELECT recruit_id FROM registered) + and rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ +), +married_counts AS ( + -- Считаем значения для каждого гендера + SELECT + rd.recruitment_id, + rd.gender, + rd.convicts, + 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 -- изменено 12.03.2025 +), +all_counts AS ( + -- Считаем значения для ALL, суммируя данные по всем гендерам + SELECT + recruitment_id, + 'ALL' AS gender, + convicts, + SUM(not_married) AS not_married, + SUM(married) AS married, + SUM(other) AS other, + SUM(total) AS total + FROM married_counts + GROUP BY recruitment_id, convicts +) +-- Финальное объединение +SELECT + mc.not_married, + mc.married, + mc.total, + mc.other, + mc.convicts, + COALESCE(ROUND(mc.not_married * 100.0 / NULLIF(mc.total, 0), 2), 0) AS not_married_percent, + COALESCE(ROUND(mc.married * 100.0 / NULLIF(mc.total, 0), 2), 0) AS married_percent, + COALESCE(ROUND(mc.other * 100.0 / NULLIF(mc.total, 0), 2), 0) AS other_percent, + CASE + WHEN mc.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + current_date AS recording_date, + mc.recruitment_id +FROM married_counts mc +UNION ALL +SELECT + ac.not_married, + ac.married, + ac.total, + ac.other, + ac.convicts, + COALESCE(ROUND(ac.not_married * 100.0 / NULLIF(ac.total, 0), 2), 0) AS not_married_percent, + COALESCE(ROUND(ac.married * 100.0 / NULLIF(ac.total, 0), 2), 0) AS married_percent, + COALESCE(ROUND(ac.other * 100.0 / NULLIF(ac.total, 0), 2), 0) AS other_percent, + ac.gender, + current_date AS recording_date, + ac.recruitment_id +FROM all_counts ac + Y + + + 1040 + 544 + + + + + +
diff --git a/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status(m_c).hwf b/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status(m_c).hwf new file mode 100644 index 0000000..85f6e93 --- /dev/null +++ b/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status(m_c).hwf @@ -0,0 +1,312 @@ + + + total_registered.marital_status(m_c) + Y + + + + - + 2025/04/01 10:07:53.719 + - + 2025/04/01 10:07:53.719 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + Y + 512 + 416 + + + + total_registered.marital_status_pr1(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr1(m_c).hpl + Basic + + + ARR_PR_1 + PART_RECRUITMENT_1 + + Y + + Y + local + N + N + Y + N + 896 + 256 + + + + total_registered.marital_status_pr2(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr2(m_c).hpl + Basic + + + ARR_PR_2 + PART_RECRUITMENT_2 + + Y + + Y + local + N + N + Y + N + 896 + 336 + + + + total_registered.marital_status_pr3(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr3(m_c).hpl + Basic + + + ARR_PR_3 + PART_RECRUITMENT_3 + + Y + + Y + local + N + N + Y + N + 896 + 416 + + + + total_registered.marital_status_pr4(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr4(m_c).hpl + Basic + + + ARR_PR_4 + PART_RECRUITMENT_4 + + Y + + Y + local + N + N + Y + N + 896 + 496 + + + + total_registered.marital_status_pr5(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr5(m_c).hpl + + + Basic + + + ARR_PR_5 + PART_RECRUITMENT_5 + + + Y + + Y + local + N + N + Y + N + 896 + 576 + + + + Success + + SUCCESS + + N + 1264 + 256 + + + + Success 2 + + SUCCESS + + N + 1264 + 336 + + + + Success 3 + + SUCCESS + + N + 1264 + 416 + + + + Success 4 + + SUCCESS + + N + 1264 + 496 + + + + Success 5 + + SUCCESS + + N + 1264 + 576 + + + + + + Start + total_registered.marital_status_pr1(m_c).hpl + Y + Y + Y + + + Start + total_registered.marital_status_pr2(m_c).hpl + Y + Y + Y + + + Start + total_registered.marital_status_pr3(m_c).hpl + Y + Y + Y + + + Start + total_registered.marital_status_pr4(m_c).hpl + Y + Y + Y + + + Start + total_registered.marital_status_pr5(m_c).hpl + Y + Y + Y + + + total_registered.marital_status_pr1(m_c).hpl + Success + Y + Y + N + + + total_registered.marital_status_pr2(m_c).hpl + Success 2 + Y + Y + N + + + total_registered.marital_status_pr3(m_c).hpl + Success 3 + Y + Y + N + + + total_registered.marital_status_pr4(m_c).hpl + Success 4 + Y + Y + N + + + total_registered.marital_status_pr5(m_c).hpl + Success 5 + Y + Y + N + + + + + + diff --git a/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr1(m_c).hpl b/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr1(m_c).hpl new file mode 100644 index 0000000..cdf8016 --- /dev/null +++ b/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr1(m_c).hpl @@ -0,0 +1,270 @@ + + + + total_registered.marital_status_pr1(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регионы/мужчины + Insert / update (total_registered.marital_status) 2 + Y + + + + Insert / update (total_registered.marital_status) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + marital_status
+ + married + married + Y + + + not_married + not_married + Y + + + married_percent + married_percent + Y + + + not_married_percent + not_married_percent + Y + + + "all_M_W" + gender + N + + + recruitment_id + recruitment_id + N + + + marital_status + total + Y + + + other + other + Y + + + other_percent + other_percent + Y + + + convicts + convicts + N + +
+ Y + + + 1680 + 544 + +
+ + Table input (person_registry) регионы/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_1}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +recruit_data AS ( + SELECT + ri.recruit_id, + ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh' AS sem_pol, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + r.current_recruitment_id AS recruitment_id + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND r.gender IN ('MALE', 'FEMALE') +/* + AND r.id in (SELECT recruit_id FROM registered) + and rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + ri.recruit_id, + ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh' AS sem_pol, + r.gender, + 'ALL' AS convicts, + r.current_recruitment_id AS recruitment_id + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND r.gender IN ('MALE', 'FEMALE') +/* + AND r.id in (SELECT recruit_id FROM registered) + and rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ +), +married_counts AS ( + -- Считаем значения для каждого гендера + SELECT + rd.recruitment_id, + rd.gender, + rd.convicts, + 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 -- изменено 12.03.2025 +), +all_counts AS ( + -- Считаем значения для ALL, суммируя данные по всем гендерам + SELECT + recruitment_id, + 'ALL' AS gender, + convicts, + SUM(not_married) AS not_married, + SUM(married) AS married, + SUM(other) AS other, + SUM(total) AS total + FROM married_counts + GROUP BY recruitment_id, convicts +) +-- Финальное объединение +SELECT + mc.not_married, + mc.married, + mc.total, + mc.other, + mc.convicts, + COALESCE(ROUND(mc.not_married * 100.0 / NULLIF(mc.total, 0), 2), 0) AS not_married_percent, + COALESCE(ROUND(mc.married * 100.0 / NULLIF(mc.total, 0), 2), 0) AS married_percent, + COALESCE(ROUND(mc.other * 100.0 / NULLIF(mc.total, 0), 2), 0) AS other_percent, + CASE + WHEN mc.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + current_date AS recording_date, + mc.recruitment_id +FROM married_counts mc +UNION ALL +SELECT + ac.not_married, + ac.married, + ac.total, + ac.other, + ac.convicts, + COALESCE(ROUND(ac.not_married * 100.0 / NULLIF(ac.total, 0), 2), 0) AS not_married_percent, + COALESCE(ROUND(ac.married * 100.0 / NULLIF(ac.total, 0), 2), 0) AS married_percent, + COALESCE(ROUND(ac.other * 100.0 / NULLIF(ac.total, 0), 2), 0) AS other_percent, + ac.gender, + current_date AS recording_date, + ac.recruitment_id +FROM all_counts ac + Y + + + 1040 + 544 + + + + + +
diff --git a/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr2(m_c).hpl b/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr2(m_c).hpl new file mode 100644 index 0000000..af10c10 --- /dev/null +++ b/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr2(m_c).hpl @@ -0,0 +1,270 @@ + + + + total_registered.marital_status_pr2(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регионы/мужчины + Insert / update (total_registered.marital_status) 2 + Y + + + + Insert / update (total_registered.marital_status) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + marital_status
+ + married + married + Y + + + not_married + not_married + Y + + + married_percent + married_percent + Y + + + not_married_percent + not_married_percent + Y + + + "all_M_W" + gender + N + + + recruitment_id + recruitment_id + N + + + marital_status + total + Y + + + other + other + Y + + + other_percent + other_percent + Y + + + convicts + convicts + N + +
+ Y + + + 1680 + 544 + +
+ + Table input (person_registry) регионы/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_2}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +recruit_data AS ( + SELECT + ri.recruit_id, + ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh' AS sem_pol, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + r.current_recruitment_id AS recruitment_id + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND r.gender IN ('MALE', 'FEMALE') +/* + AND r.id in (SELECT recruit_id FROM registered) + and rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + ri.recruit_id, + ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh' AS sem_pol, + r.gender, + 'ALL' AS convicts, + r.current_recruitment_id AS recruitment_id + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND r.gender IN ('MALE', 'FEMALE') +/* + AND r.id in (SELECT recruit_id FROM registered) + and rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ +), +married_counts AS ( + -- Считаем значения для каждого гендера + SELECT + rd.recruitment_id, + rd.gender, + rd.convicts, + 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 -- изменено 12.03.2025 +), +all_counts AS ( + -- Считаем значения для ALL, суммируя данные по всем гендерам + SELECT + recruitment_id, + 'ALL' AS gender, + convicts, + SUM(not_married) AS not_married, + SUM(married) AS married, + SUM(other) AS other, + SUM(total) AS total + FROM married_counts + GROUP BY recruitment_id, convicts +) +-- Финальное объединение +SELECT + mc.not_married, + mc.married, + mc.total, + mc.other, + mc.convicts, + COALESCE(ROUND(mc.not_married * 100.0 / NULLIF(mc.total, 0), 2), 0) AS not_married_percent, + COALESCE(ROUND(mc.married * 100.0 / NULLIF(mc.total, 0), 2), 0) AS married_percent, + COALESCE(ROUND(mc.other * 100.0 / NULLIF(mc.total, 0), 2), 0) AS other_percent, + CASE + WHEN mc.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + current_date AS recording_date, + mc.recruitment_id +FROM married_counts mc +UNION ALL +SELECT + ac.not_married, + ac.married, + ac.total, + ac.other, + ac.convicts, + COALESCE(ROUND(ac.not_married * 100.0 / NULLIF(ac.total, 0), 2), 0) AS not_married_percent, + COALESCE(ROUND(ac.married * 100.0 / NULLIF(ac.total, 0), 2), 0) AS married_percent, + COALESCE(ROUND(ac.other * 100.0 / NULLIF(ac.total, 0), 2), 0) AS other_percent, + ac.gender, + current_date AS recording_date, + ac.recruitment_id +FROM all_counts ac + Y + + + 1040 + 544 + + + + + +
diff --git a/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr3(m_c).hpl b/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr3(m_c).hpl new file mode 100644 index 0000000..1dc80e3 --- /dev/null +++ b/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr3(m_c).hpl @@ -0,0 +1,270 @@ + + + + total_registered.marital_status_pr3(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регионы/мужчины + Insert / update (total_registered.marital_status) 2 + Y + + + + Insert / update (total_registered.marital_status) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + marital_status
+ + married + married + Y + + + not_married + not_married + Y + + + married_percent + married_percent + Y + + + not_married_percent + not_married_percent + Y + + + "all_M_W" + gender + N + + + recruitment_id + recruitment_id + N + + + marital_status + total + Y + + + other + other + Y + + + other_percent + other_percent + Y + + + convicts + convicts + N + +
+ Y + + + 1680 + 544 + +
+ + Table input (person_registry) регионы/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_3}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +recruit_data AS ( + SELECT + ri.recruit_id, + ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh' AS sem_pol, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + r.current_recruitment_id AS recruitment_id + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND r.gender IN ('MALE', 'FEMALE') +/* + AND r.id in (SELECT recruit_id FROM registered) + and rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + ri.recruit_id, + ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh' AS sem_pol, + r.gender, + 'ALL' AS convicts, + r.current_recruitment_id AS recruitment_id + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND r.gender IN ('MALE', 'FEMALE') +/* + AND r.id in (SELECT recruit_id FROM registered) + and rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ +), +married_counts AS ( + -- Считаем значения для каждого гендера + SELECT + rd.recruitment_id, + rd.gender, + rd.convicts, + 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 -- изменено 12.03.2025 +), +all_counts AS ( + -- Считаем значения для ALL, суммируя данные по всем гендерам + SELECT + recruitment_id, + 'ALL' AS gender, + convicts, + SUM(not_married) AS not_married, + SUM(married) AS married, + SUM(other) AS other, + SUM(total) AS total + FROM married_counts + GROUP BY recruitment_id, convicts +) +-- Финальное объединение +SELECT + mc.not_married, + mc.married, + mc.total, + mc.other, + mc.convicts, + COALESCE(ROUND(mc.not_married * 100.0 / NULLIF(mc.total, 0), 2), 0) AS not_married_percent, + COALESCE(ROUND(mc.married * 100.0 / NULLIF(mc.total, 0), 2), 0) AS married_percent, + COALESCE(ROUND(mc.other * 100.0 / NULLIF(mc.total, 0), 2), 0) AS other_percent, + CASE + WHEN mc.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + current_date AS recording_date, + mc.recruitment_id +FROM married_counts mc +UNION ALL +SELECT + ac.not_married, + ac.married, + ac.total, + ac.other, + ac.convicts, + COALESCE(ROUND(ac.not_married * 100.0 / NULLIF(ac.total, 0), 2), 0) AS not_married_percent, + COALESCE(ROUND(ac.married * 100.0 / NULLIF(ac.total, 0), 2), 0) AS married_percent, + COALESCE(ROUND(ac.other * 100.0 / NULLIF(ac.total, 0), 2), 0) AS other_percent, + ac.gender, + current_date AS recording_date, + ac.recruitment_id +FROM all_counts ac + Y + + + 1040 + 544 + + + + + +
diff --git a/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr4(m_c).hpl b/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr4(m_c).hpl new file mode 100644 index 0000000..2401073 --- /dev/null +++ b/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr4(m_c).hpl @@ -0,0 +1,270 @@ + + + + total_registered.marital_status_pr4(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регионы/мужчины + Insert / update (total_registered.marital_status) 2 + Y + + + + Insert / update (total_registered.marital_status) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + marital_status
+ + married + married + Y + + + not_married + not_married + Y + + + married_percent + married_percent + Y + + + not_married_percent + not_married_percent + Y + + + "all_M_W" + gender + N + + + recruitment_id + recruitment_id + N + + + marital_status + total + Y + + + other + other + Y + + + other_percent + other_percent + Y + + + convicts + convicts + N + +
+ Y + + + 1680 + 544 + +
+ + Table input (person_registry) регионы/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_4}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +recruit_data AS ( + SELECT + ri.recruit_id, + ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh' AS sem_pol, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + r.current_recruitment_id AS recruitment_id + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND r.gender IN ('MALE', 'FEMALE') +/* + AND r.id in (SELECT recruit_id FROM registered) + and rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + ri.recruit_id, + ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh' AS sem_pol, + r.gender, + 'ALL' AS convicts, + r.current_recruitment_id AS recruitment_id + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND r.gender IN ('MALE', 'FEMALE') +/* + AND r.id in (SELECT recruit_id FROM registered) + and rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ +), +married_counts AS ( + -- Считаем значения для каждого гендера + SELECT + rd.recruitment_id, + rd.gender, + rd.convicts, + 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 -- изменено 12.03.2025 +), +all_counts AS ( + -- Считаем значения для ALL, суммируя данные по всем гендерам + SELECT + recruitment_id, + 'ALL' AS gender, + convicts, + SUM(not_married) AS not_married, + SUM(married) AS married, + SUM(other) AS other, + SUM(total) AS total + FROM married_counts + GROUP BY recruitment_id, convicts +) +-- Финальное объединение +SELECT + mc.not_married, + mc.married, + mc.total, + mc.other, + mc.convicts, + COALESCE(ROUND(mc.not_married * 100.0 / NULLIF(mc.total, 0), 2), 0) AS not_married_percent, + COALESCE(ROUND(mc.married * 100.0 / NULLIF(mc.total, 0), 2), 0) AS married_percent, + COALESCE(ROUND(mc.other * 100.0 / NULLIF(mc.total, 0), 2), 0) AS other_percent, + CASE + WHEN mc.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + current_date AS recording_date, + mc.recruitment_id +FROM married_counts mc +UNION ALL +SELECT + ac.not_married, + ac.married, + ac.total, + ac.other, + ac.convicts, + COALESCE(ROUND(ac.not_married * 100.0 / NULLIF(ac.total, 0), 2), 0) AS not_married_percent, + COALESCE(ROUND(ac.married * 100.0 / NULLIF(ac.total, 0), 2), 0) AS married_percent, + COALESCE(ROUND(ac.other * 100.0 / NULLIF(ac.total, 0), 2), 0) AS other_percent, + ac.gender, + current_date AS recording_date, + ac.recruitment_id +FROM all_counts ac + Y + + + 1040 + 544 + + + + + +
diff --git a/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr5(m_c).hpl b/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr5(m_c).hpl new file mode 100644 index 0000000..47b4635 --- /dev/null +++ b/mappings/mil_com/total_registered.marital_status(m_c)/total_registered.marital_status_pr5(m_c).hpl @@ -0,0 +1,270 @@ + + + + total_registered.marital_status_pr5(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) регионы/мужчины + Insert / update (total_registered.marital_status) 2 + Y + + + + Insert / update (total_registered.marital_status) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + marital_status
+ + married + married + Y + + + not_married + not_married + Y + + + married_percent + married_percent + Y + + + not_married_percent + not_married_percent + Y + + + "all_M_W" + gender + N + + + recruitment_id + recruitment_id + N + + + marital_status + total + Y + + + other + other + Y + + + other_percent + other_percent + Y + + + convicts + convicts + N + +
+ Y + + + 1680 + 544 + +
+ + Table input (person_registry) регионы/мужчины + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_5}'), ','))::uuid AS recruitment_id +), +/* +last_status as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + 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') + --and rh.source is not null +), +*/ +recruit_data AS ( + SELECT + ri.recruit_id, + ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh' AS sem_pol, + r.gender, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + r.current_recruitment_id AS recruitment_id + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND r.gender IN ('MALE', 'FEMALE') +/* + AND r.id in (SELECT recruit_id FROM registered) + and rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ + + UNION ALL + + SELECT + ri.recruit_id, + ri.info->'svedFL'->'svedSemPolozh'->>'semPolozh' AS sem_pol, + r.gender, + 'ALL' AS convicts, + r.current_recruitment_id AS recruitment_id + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + --JOIN public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND r.gender IN ('MALE', 'FEMALE') +/* + AND r.id in (SELECT recruit_id FROM registered) + and rh.id in (SELECT recruit_history_id FROM registered) + --and r.vu_current_info->>'recruitmentCommercialInfo' = 'true' + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) +*/ +), +married_counts AS ( + -- Считаем значения для каждого гендера + SELECT + rd.recruitment_id, + rd.gender, + rd.convicts, + 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 -- изменено 12.03.2025 +), +all_counts AS ( + -- Считаем значения для ALL, суммируя данные по всем гендерам + SELECT + recruitment_id, + 'ALL' AS gender, + convicts, + SUM(not_married) AS not_married, + SUM(married) AS married, + SUM(other) AS other, + SUM(total) AS total + FROM married_counts + GROUP BY recruitment_id, convicts +) +-- Финальное объединение +SELECT + mc.not_married, + mc.married, + mc.total, + mc.other, + mc.convicts, + COALESCE(ROUND(mc.not_married * 100.0 / NULLIF(mc.total, 0), 2), 0) AS not_married_percent, + COALESCE(ROUND(mc.married * 100.0 / NULLIF(mc.total, 0), 2), 0) AS married_percent, + COALESCE(ROUND(mc.other * 100.0 / NULLIF(mc.total, 0), 2), 0) AS other_percent, + CASE + WHEN mc.gender = 'MALE' THEN 'M' + ELSE 'W' + END AS gender, + current_date AS recording_date, + mc.recruitment_id +FROM married_counts mc +UNION ALL +SELECT + ac.not_married, + ac.married, + ac.total, + ac.other, + ac.convicts, + COALESCE(ROUND(ac.not_married * 100.0 / NULLIF(ac.total, 0), 2), 0) AS not_married_percent, + COALESCE(ROUND(ac.married * 100.0 / NULLIF(ac.total, 0), 2), 0) AS married_percent, + COALESCE(ROUND(ac.other * 100.0 / NULLIF(ac.total, 0), 2), 0) AS other_percent, + ac.gender, + current_date AS recording_date, + ac.recruitment_id +FROM all_counts ac + Y + + + 1040 + 544 + + + + + +
diff --git a/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat(m_c).hpl b/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat(m_c).hpl new file mode 100644 index 0000000..c26f394 --- /dev/null +++ b/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat(m_c).hpl @@ -0,0 +1,453 @@ + + + + total_registered.reg_mil_cat(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 + Select values 3 + N + + + Table input (person_registry) военком/рег + Get variables 3 + N + + + Select values 3 + Insert / update (total_registered.reg_mil_cat) + N + + + Table input (person_registry) военком/рег + Insert / update (total_registered.reg_mil_cat) + Y + + + + Get variables 3 + GetVariable + + Y + + 1 + + none + + + + + -1 + REC_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 1008 + 464 + + + + Insert / update (total_registered.reg_mil_cat) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + mil_reg + mil_reg + + total_registered + reg_mil_cat
+ + first_reg_17 + first_reg_17 + Y + + + first_reg_18 + first_reg_18 + Y + + + "mil_spec_W" + mil_spec_w + Y + + + recruitment_id + recruitment_id + N + + + returned_dep_liberty + returned_dep_liberty + Y + + + punished + punished + Y + + + received_citizenship + received_citizenship + Y + + + first_reg_17_percent + first_reg_17_percent + Y + + + first_reg_18_percent + first_reg_18_percent + Y + + + returned_dep_liberty_percent + returned_dep_liberty_percent + Y + + + "mil_spec_W_percent" + mil_spec_w_percent + Y + + + punished_percent + punished_percent + Y + + + received_citizenship_percent + received_citizenship_percent + Y + + + mil_reg + mil_reg + N + +
+ N + + + 1392 + 288 + +
+ + Select values 3 + SelectValues + + Y + + 1 + + none + + + + N + + REC_ID + REC_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 1152 + 464 + + + + Table input (person_registry) военком/рег + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +base_data AS ( + -- Основной набор данных с вычислением mil_reg + SELECT + r.registration_reasons, + r.gender, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + 1 AS is_military_registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + /* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) + */ + AND jsonb_exists_any(registration_reasons, ARRAY[ + '1', -- Освобождение из мест лишения свободы + '2', -- Приобретение гражданства Российской Федерации + '3', -- Получение военно-учётной специальности гражданином женского пола + '4', -- Отбывание наказания в местах лишения свободы + '5'--, -- Достижение 17 лет в год постановки на воинский учёт + --'6' -- Первоначальная постановка на воинский учет граждан, не состоящих, но обязанных состоять на воинском учёте + ]) + UNION ALL + SELECT + r.registration_reasons, + r.gender, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + 0 AS is_military_registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + AND jsonb_exists_any(registration_reasons, ARRAY['1', '2', '3', '4', '5']) +), +t1 AS ( + -- Первоначальная постановка 17 лет + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS first_reg_17 + FROM base_data + WHERE registration_reasons @> '"5"' -- Достижение 17 лет в год постановки на воинский учёт + GROUP BY recruitment_id, is_military_registered +), +t2 AS ( + -- Первоначальная постановка 18 лет + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS first_reg_18 + FROM base_data + WHERE jsonb_exists_any(registration_reasons, ARRAY['1', '2', '3', '4']) + GROUP BY recruitment_id, is_military_registered +), +t3 AS ( + -- Женщины, получившие ВУС + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS mil_spec_w + FROM base_data + WHERE registration_reasons @> '"3"' AND gender = 'FEMALE' + GROUP BY recruitment_id, is_military_registered +), +t4 AS ( + -- Возвратившиеся из мест лишения свободы + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS returned_dep_liberty + FROM base_data + WHERE registration_reasons @> '"1"' + GROUP BY recruitment_id, is_military_registered +), +t5 AS ( + -- Отбывающие наказание в местах лишения свободы + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS punished + FROM base_data + WHERE registration_reasons @> '"4"' + GROUP BY recruitment_id, is_military_registered +), +t6 AS ( + -- Получившие гражданство + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS received_citizenship + FROM base_data + WHERE registration_reasons @> '"2"' + GROUP BY recruitment_id, is_military_registered +), +total AS ( + -- Общее количество записей + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS total_count + FROM base_data + GROUP BY recruitment_id, is_military_registered +), +uniq_ms AS ( + SELECT + distinct + recruitment_id, + is_military_registered + FROM base_data +) +-- Основной запрос +SELECT + current_date AS recording_date, + dc.recruitment_id, + dc.is_military_registered AS mil_reg, + COALESCE(total.total_count, 0) AS total_count, + COALESCE(t1.first_reg_17, 0) AS first_reg_17, + COALESCE(t2.first_reg_18, 0) AS first_reg_18, + COALESCE(t3.mil_spec_w, 0) AS mil_spec_w, + COALESCE(t4.returned_dep_liberty, 0) AS returned_dep_liberty, + COALESCE(t5.punished, 0) AS punished, + COALESCE(t6.received_citizenship, 0) AS received_citizenship, + -- Вычисление процентов + COALESCE(ROUND(COALESCE(t1.first_reg_17, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS first_reg_17_percent, + COALESCE(ROUND(COALESCE(t2.first_reg_18, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS first_reg_18_percent, + COALESCE(ROUND(COALESCE(t4.returned_dep_liberty, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS returned_dep_liberty_percent, + COALESCE(ROUND(COALESCE(t3.mil_spec_w, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS mil_spec_w_percent, + COALESCE(ROUND(COALESCE(t5.punished, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS punished_percent, + COALESCE(ROUND(COALESCE(t6.received_citizenship, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS received_citizenship_percent +FROM uniq_ms dc +LEFT JOIN total ON dc.recruitment_id = total.recruitment_id + AND dc.is_military_registered = total.is_military_registered +LEFT JOIN t1 ON dc.recruitment_id = t1.recruitment_id + AND dc.is_military_registered = t1.is_military_registered +LEFT JOIN t2 ON dc.recruitment_id = t2.recruitment_id + AND dc.is_military_registered = t2.is_military_registered +LEFT JOIN t3 ON dc.recruitment_id = t3.recruitment_id + AND dc.is_military_registered = t3.is_military_registered +LEFT JOIN t4 ON dc.recruitment_id = t4.recruitment_id + AND dc.is_military_registered = t4.is_military_registered +LEFT JOIN t5 ON dc.recruitment_id = t5.recruitment_id + AND dc.is_military_registered = t5.is_military_registered +LEFT JOIN t6 ON dc.recruitment_id = t6.recruitment_id + AND dc.is_military_registered = t6.is_military_registered; + Y + + + 736 + 288 + + + + + +
diff --git a/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat(m_c).hwf b/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat(m_c).hwf new file mode 100644 index 0000000..56a73fb --- /dev/null +++ b/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat(m_c).hwf @@ -0,0 +1,309 @@ + + + total_registered.reg_mil_cat(m_c) + Y + + + + - + 2025/03/31 15:05:31.181 + - + 2025/03/31 15:05:31.181 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + Y + 400 + 368 + + + + total_registered.reg_mil_cat_pr1(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr1(m_c).hpl + Basic + + + ARR_PR_1 + PART_RECRUITMENT_1 + + Y + + Y + local + N + N + Y + N + 816 + 208 + + + + total_registered.reg_mil_cat_pr2(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr2(m_c).hpl + Basic + + + ARR_PR_2 + PART_RECRUITMENT_2 + + Y + + Y + local + N + N + Y + N + 816 + 288 + + + + total_registered.reg_mil_cat_pr3(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr3(m_c).hpl + Basic + + + ARR_PR_3 + PART_RECRUITMENT_3 + + Y + + N + local + N + N + Y + N + 816 + 368 + + + + total_registered.reg_mil_cat_pr4(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr4(m_c).hpl + Basic + + + ARR_PR_4 + PART_RECRUITMENT_4 + + Y + + Y + local + N + N + Y + N + 816 + 448 + + + + total_registered.reg_mil_cat_pr5(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr5(m_c).hpl + Basic + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 816 + 528 + + + + Success + + SUCCESS + + N + 1136 + 208 + + + + Success 2 + + SUCCESS + + N + 1136 + 288 + + + + Success 3 + + SUCCESS + + N + 1136 + 368 + + + + Success 4 + + SUCCESS + + N + 1136 + 448 + + + + Success 5 + + SUCCESS + + N + 1136 + 528 + + + + + + Start + total_registered.reg_mil_cat_pr1(m_c).hpl + Y + Y + Y + + + Start + total_registered.reg_mil_cat_pr2(m_c).hpl + Y + Y + Y + + + Start + total_registered.reg_mil_cat_pr3(m_c).hpl + Y + Y + Y + + + Start + total_registered.reg_mil_cat_pr4(m_c).hpl + Y + Y + Y + + + Start + total_registered.reg_mil_cat_pr5(m_c).hpl + Y + Y + Y + + + total_registered.reg_mil_cat_pr1(m_c).hpl + Success + Y + Y + N + + + total_registered.reg_mil_cat_pr2(m_c).hpl + Success 2 + Y + Y + N + + + total_registered.reg_mil_cat_pr3(m_c).hpl + Success 3 + Y + Y + N + + + total_registered.reg_mil_cat_pr4(m_c).hpl + Success 4 + Y + Y + N + + + total_registered.reg_mil_cat_pr5(m_c).hpl + Success 5 + Y + Y + N + + + + + + diff --git a/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr1(m_c).hpl b/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr1(m_c).hpl new file mode 100644 index 0000000..10a37aa --- /dev/null +++ b/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr1(m_c).hpl @@ -0,0 +1,351 @@ + + + + total_registered.reg_mil_cat_pr1(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) военком/рег + Insert / update (total_registered.reg_mil_cat) + Y + + + + Insert / update (total_registered.reg_mil_cat) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + mil_reg + mil_reg + + total_registered + reg_mil_cat
+ + first_reg_17 + first_reg_17 + Y + + + first_reg_18 + first_reg_18 + Y + + + "mil_spec_W" + mil_spec_w + Y + + + recruitment_id + recruitment_id + N + + + returned_dep_liberty + returned_dep_liberty + Y + + + punished + punished + Y + + + received_citizenship + received_citizenship + Y + + + first_reg_17_percent + first_reg_17_percent + Y + + + first_reg_18_percent + first_reg_18_percent + Y + + + returned_dep_liberty_percent + returned_dep_liberty_percent + Y + + + "mil_spec_W_percent" + mil_spec_w_percent + Y + + + punished_percent + punished_percent + Y + + + received_citizenship_percent + received_citizenship_percent + Y + + + mil_reg + mil_reg + N + +
+ N + + + 1392 + 288 + +
+ + Table input (person_registry) военком/рег + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_1}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +base_data AS ( + -- Основной набор данных с вычислением mil_reg + SELECT + r.registration_reasons, + r.gender, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + 1 AS is_military_registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + /* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) + */ + AND jsonb_exists_any(registration_reasons, ARRAY[ + '1', -- Освобождение из мест лишения свободы + '2', -- Приобретение гражданства Российской Федерации + '3', -- Получение военно-учётной специальности гражданином женского пола + '4', -- Отбывание наказания в местах лишения свободы + '5'--, -- Достижение 17 лет в год постановки на воинский учёт + --'6' -- Первоначальная постановка на воинский учет граждан, не состоящих, но обязанных состоять на воинском учёте + ]) + UNION ALL + SELECT + r.registration_reasons, + r.gender, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + 0 AS is_military_registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + AND jsonb_exists_any(registration_reasons, ARRAY['1', '2', '3', '4', '5']) +), +t1 AS ( + -- Первоначальная постановка 17 лет + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS first_reg_17 + FROM base_data + WHERE registration_reasons @> '"5"' -- Достижение 17 лет в год постановки на воинский учёт + GROUP BY recruitment_id, is_military_registered +), +t2 AS ( + -- Первоначальная постановка 18 лет + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS first_reg_18 + FROM base_data + WHERE jsonb_exists_any(registration_reasons, ARRAY['1', '2', '3', '4']) + GROUP BY recruitment_id, is_military_registered +), +t3 AS ( + -- Женщины, получившие ВУС + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS mil_spec_w + FROM base_data + WHERE registration_reasons @> '"3"' AND gender = 'FEMALE' + GROUP BY recruitment_id, is_military_registered +), +t4 AS ( + -- Возвратившиеся из мест лишения свободы + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS returned_dep_liberty + FROM base_data + WHERE registration_reasons @> '"1"' + GROUP BY recruitment_id, is_military_registered +), +t5 AS ( + -- Отбывающие наказание в местах лишения свободы + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS punished + FROM base_data + WHERE registration_reasons @> '"4"' + GROUP BY recruitment_id, is_military_registered +), +t6 AS ( + -- Получившие гражданство + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS received_citizenship + FROM base_data + WHERE registration_reasons @> '"2"' + GROUP BY recruitment_id, is_military_registered +), +total AS ( + -- Общее количество записей + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS total_count + FROM base_data + GROUP BY recruitment_id, is_military_registered +), +uniq_ms AS ( + SELECT + distinct + recruitment_id, + is_military_registered + FROM base_data +) +-- Основной запрос +SELECT + current_date AS recording_date, + dc.recruitment_id, + dc.is_military_registered AS mil_reg, + COALESCE(total.total_count, 0) AS total_count, + COALESCE(t1.first_reg_17, 0) AS first_reg_17, + COALESCE(t2.first_reg_18, 0) AS first_reg_18, + COALESCE(t3.mil_spec_w, 0) AS mil_spec_w, + COALESCE(t4.returned_dep_liberty, 0) AS returned_dep_liberty, + COALESCE(t5.punished, 0) AS punished, + COALESCE(t6.received_citizenship, 0) AS received_citizenship, + -- Вычисление процентов + COALESCE(ROUND(COALESCE(t1.first_reg_17, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS first_reg_17_percent, + COALESCE(ROUND(COALESCE(t2.first_reg_18, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS first_reg_18_percent, + COALESCE(ROUND(COALESCE(t4.returned_dep_liberty, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS returned_dep_liberty_percent, + COALESCE(ROUND(COALESCE(t3.mil_spec_w, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS mil_spec_w_percent, + COALESCE(ROUND(COALESCE(t5.punished, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS punished_percent, + COALESCE(ROUND(COALESCE(t6.received_citizenship, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS received_citizenship_percent +FROM uniq_ms dc +LEFT JOIN total ON dc.recruitment_id = total.recruitment_id + AND dc.is_military_registered = total.is_military_registered +LEFT JOIN t1 ON dc.recruitment_id = t1.recruitment_id + AND dc.is_military_registered = t1.is_military_registered +LEFT JOIN t2 ON dc.recruitment_id = t2.recruitment_id + AND dc.is_military_registered = t2.is_military_registered +LEFT JOIN t3 ON dc.recruitment_id = t3.recruitment_id + AND dc.is_military_registered = t3.is_military_registered +LEFT JOIN t4 ON dc.recruitment_id = t4.recruitment_id + AND dc.is_military_registered = t4.is_military_registered +LEFT JOIN t5 ON dc.recruitment_id = t5.recruitment_id + AND dc.is_military_registered = t5.is_military_registered +LEFT JOIN t6 ON dc.recruitment_id = t6.recruitment_id + AND dc.is_military_registered = t6.is_military_registered; + Y + + + 736 + 288 + + + + + +
diff --git a/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr2(m_c).hpl b/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr2(m_c).hpl new file mode 100644 index 0000000..5b82156 --- /dev/null +++ b/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr2(m_c).hpl @@ -0,0 +1,351 @@ + + + + total_registered.reg_mil_cat_pr2(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) военком/рег + Insert / update (total_registered.reg_mil_cat) + Y + + + + Insert / update (total_registered.reg_mil_cat) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + mil_reg + mil_reg + + total_registered + reg_mil_cat
+ + first_reg_17 + first_reg_17 + Y + + + first_reg_18 + first_reg_18 + Y + + + "mil_spec_W" + mil_spec_w + Y + + + recruitment_id + recruitment_id + N + + + returned_dep_liberty + returned_dep_liberty + Y + + + punished + punished + Y + + + received_citizenship + received_citizenship + Y + + + first_reg_17_percent + first_reg_17_percent + Y + + + first_reg_18_percent + first_reg_18_percent + Y + + + returned_dep_liberty_percent + returned_dep_liberty_percent + Y + + + "mil_spec_W_percent" + mil_spec_w_percent + Y + + + punished_percent + punished_percent + Y + + + received_citizenship_percent + received_citizenship_percent + Y + + + mil_reg + mil_reg + N + +
+ N + + + 1392 + 288 + +
+ + Table input (person_registry) военком/рег + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_2}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +base_data AS ( + -- Основной набор данных с вычислением mil_reg + SELECT + r.registration_reasons, + r.gender, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + 1 AS is_military_registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + /* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) + */ + AND jsonb_exists_any(registration_reasons, ARRAY[ + '1', -- Освобождение из мест лишения свободы + '2', -- Приобретение гражданства Российской Федерации + '3', -- Получение военно-учётной специальности гражданином женского пола + '4', -- Отбывание наказания в местах лишения свободы + '5'--, -- Достижение 17 лет в год постановки на воинский учёт + --'6' -- Первоначальная постановка на воинский учет граждан, не состоящих, но обязанных состоять на воинском учёте + ]) + UNION ALL + SELECT + r.registration_reasons, + r.gender, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + 0 AS is_military_registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + AND jsonb_exists_any(registration_reasons, ARRAY['1', '2', '3', '4', '5']) +), +t1 AS ( + -- Первоначальная постановка 17 лет + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS first_reg_17 + FROM base_data + WHERE registration_reasons @> '"5"' -- Достижение 17 лет в год постановки на воинский учёт + GROUP BY recruitment_id, is_military_registered +), +t2 AS ( + -- Первоначальная постановка 18 лет + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS first_reg_18 + FROM base_data + WHERE jsonb_exists_any(registration_reasons, ARRAY['1', '2', '3', '4']) + GROUP BY recruitment_id, is_military_registered +), +t3 AS ( + -- Женщины, получившие ВУС + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS mil_spec_w + FROM base_data + WHERE registration_reasons @> '"3"' AND gender = 'FEMALE' + GROUP BY recruitment_id, is_military_registered +), +t4 AS ( + -- Возвратившиеся из мест лишения свободы + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS returned_dep_liberty + FROM base_data + WHERE registration_reasons @> '"1"' + GROUP BY recruitment_id, is_military_registered +), +t5 AS ( + -- Отбывающие наказание в местах лишения свободы + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS punished + FROM base_data + WHERE registration_reasons @> '"4"' + GROUP BY recruitment_id, is_military_registered +), +t6 AS ( + -- Получившие гражданство + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS received_citizenship + FROM base_data + WHERE registration_reasons @> '"2"' + GROUP BY recruitment_id, is_military_registered +), +total AS ( + -- Общее количество записей + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS total_count + FROM base_data + GROUP BY recruitment_id, is_military_registered +), +uniq_ms AS ( + SELECT + distinct + recruitment_id, + is_military_registered + FROM base_data +) +-- Основной запрос +SELECT + current_date AS recording_date, + dc.recruitment_id, + dc.is_military_registered AS mil_reg, + COALESCE(total.total_count, 0) AS total_count, + COALESCE(t1.first_reg_17, 0) AS first_reg_17, + COALESCE(t2.first_reg_18, 0) AS first_reg_18, + COALESCE(t3.mil_spec_w, 0) AS mil_spec_w, + COALESCE(t4.returned_dep_liberty, 0) AS returned_dep_liberty, + COALESCE(t5.punished, 0) AS punished, + COALESCE(t6.received_citizenship, 0) AS received_citizenship, + -- Вычисление процентов + COALESCE(ROUND(COALESCE(t1.first_reg_17, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS first_reg_17_percent, + COALESCE(ROUND(COALESCE(t2.first_reg_18, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS first_reg_18_percent, + COALESCE(ROUND(COALESCE(t4.returned_dep_liberty, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS returned_dep_liberty_percent, + COALESCE(ROUND(COALESCE(t3.mil_spec_w, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS mil_spec_w_percent, + COALESCE(ROUND(COALESCE(t5.punished, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS punished_percent, + COALESCE(ROUND(COALESCE(t6.received_citizenship, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS received_citizenship_percent +FROM uniq_ms dc +LEFT JOIN total ON dc.recruitment_id = total.recruitment_id + AND dc.is_military_registered = total.is_military_registered +LEFT JOIN t1 ON dc.recruitment_id = t1.recruitment_id + AND dc.is_military_registered = t1.is_military_registered +LEFT JOIN t2 ON dc.recruitment_id = t2.recruitment_id + AND dc.is_military_registered = t2.is_military_registered +LEFT JOIN t3 ON dc.recruitment_id = t3.recruitment_id + AND dc.is_military_registered = t3.is_military_registered +LEFT JOIN t4 ON dc.recruitment_id = t4.recruitment_id + AND dc.is_military_registered = t4.is_military_registered +LEFT JOIN t5 ON dc.recruitment_id = t5.recruitment_id + AND dc.is_military_registered = t5.is_military_registered +LEFT JOIN t6 ON dc.recruitment_id = t6.recruitment_id + AND dc.is_military_registered = t6.is_military_registered; + Y + + + 736 + 288 + + + + + +
diff --git a/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr3(m_c).hpl b/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr3(m_c).hpl new file mode 100644 index 0000000..dfd56ef --- /dev/null +++ b/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr3(m_c).hpl @@ -0,0 +1,351 @@ + + + + total_registered.reg_mil_cat_pr3(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) военком/рег + Insert / update (total_registered.reg_mil_cat) + Y + + + + Insert / update (total_registered.reg_mil_cat) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + mil_reg + mil_reg + + total_registered + reg_mil_cat
+ + first_reg_17 + first_reg_17 + Y + + + first_reg_18 + first_reg_18 + Y + + + "mil_spec_W" + mil_spec_w + Y + + + recruitment_id + recruitment_id + N + + + returned_dep_liberty + returned_dep_liberty + Y + + + punished + punished + Y + + + received_citizenship + received_citizenship + Y + + + first_reg_17_percent + first_reg_17_percent + Y + + + first_reg_18_percent + first_reg_18_percent + Y + + + returned_dep_liberty_percent + returned_dep_liberty_percent + Y + + + "mil_spec_W_percent" + mil_spec_w_percent + Y + + + punished_percent + punished_percent + Y + + + received_citizenship_percent + received_citizenship_percent + Y + + + mil_reg + mil_reg + N + +
+ N + + + 1392 + 288 + +
+ + Table input (person_registry) военком/рег + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_3}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +base_data AS ( + -- Основной набор данных с вычислением mil_reg + SELECT + r.registration_reasons, + r.gender, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + 1 AS is_military_registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + /* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) + */ + AND jsonb_exists_any(registration_reasons, ARRAY[ + '1', -- Освобождение из мест лишения свободы + '2', -- Приобретение гражданства Российской Федерации + '3', -- Получение военно-учётной специальности гражданином женского пола + '4', -- Отбывание наказания в местах лишения свободы + '5'--, -- Достижение 17 лет в год постановки на воинский учёт + --'6' -- Первоначальная постановка на воинский учет граждан, не состоящих, но обязанных состоять на воинском учёте + ]) + UNION ALL + SELECT + r.registration_reasons, + r.gender, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + 0 AS is_military_registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + AND jsonb_exists_any(registration_reasons, ARRAY['1', '2', '3', '4', '5']) +), +t1 AS ( + -- Первоначальная постановка 17 лет + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS first_reg_17 + FROM base_data + WHERE registration_reasons @> '"5"' -- Достижение 17 лет в год постановки на воинский учёт + GROUP BY recruitment_id, is_military_registered +), +t2 AS ( + -- Первоначальная постановка 18 лет + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS first_reg_18 + FROM base_data + WHERE jsonb_exists_any(registration_reasons, ARRAY['1', '2', '3', '4']) + GROUP BY recruitment_id, is_military_registered +), +t3 AS ( + -- Женщины, получившие ВУС + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS mil_spec_w + FROM base_data + WHERE registration_reasons @> '"3"' AND gender = 'FEMALE' + GROUP BY recruitment_id, is_military_registered +), +t4 AS ( + -- Возвратившиеся из мест лишения свободы + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS returned_dep_liberty + FROM base_data + WHERE registration_reasons @> '"1"' + GROUP BY recruitment_id, is_military_registered +), +t5 AS ( + -- Отбывающие наказание в местах лишения свободы + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS punished + FROM base_data + WHERE registration_reasons @> '"4"' + GROUP BY recruitment_id, is_military_registered +), +t6 AS ( + -- Получившие гражданство + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS received_citizenship + FROM base_data + WHERE registration_reasons @> '"2"' + GROUP BY recruitment_id, is_military_registered +), +total AS ( + -- Общее количество записей + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS total_count + FROM base_data + GROUP BY recruitment_id, is_military_registered +), +uniq_ms AS ( + SELECT + distinct + recruitment_id, + is_military_registered + FROM base_data +) +-- Основной запрос +SELECT + current_date AS recording_date, + dc.recruitment_id, + dc.is_military_registered AS mil_reg, + COALESCE(total.total_count, 0) AS total_count, + COALESCE(t1.first_reg_17, 0) AS first_reg_17, + COALESCE(t2.first_reg_18, 0) AS first_reg_18, + COALESCE(t3.mil_spec_w, 0) AS mil_spec_w, + COALESCE(t4.returned_dep_liberty, 0) AS returned_dep_liberty, + COALESCE(t5.punished, 0) AS punished, + COALESCE(t6.received_citizenship, 0) AS received_citizenship, + -- Вычисление процентов + COALESCE(ROUND(COALESCE(t1.first_reg_17, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS first_reg_17_percent, + COALESCE(ROUND(COALESCE(t2.first_reg_18, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS first_reg_18_percent, + COALESCE(ROUND(COALESCE(t4.returned_dep_liberty, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS returned_dep_liberty_percent, + COALESCE(ROUND(COALESCE(t3.mil_spec_w, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS mil_spec_w_percent, + COALESCE(ROUND(COALESCE(t5.punished, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS punished_percent, + COALESCE(ROUND(COALESCE(t6.received_citizenship, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS received_citizenship_percent +FROM uniq_ms dc +LEFT JOIN total ON dc.recruitment_id = total.recruitment_id + AND dc.is_military_registered = total.is_military_registered +LEFT JOIN t1 ON dc.recruitment_id = t1.recruitment_id + AND dc.is_military_registered = t1.is_military_registered +LEFT JOIN t2 ON dc.recruitment_id = t2.recruitment_id + AND dc.is_military_registered = t2.is_military_registered +LEFT JOIN t3 ON dc.recruitment_id = t3.recruitment_id + AND dc.is_military_registered = t3.is_military_registered +LEFT JOIN t4 ON dc.recruitment_id = t4.recruitment_id + AND dc.is_military_registered = t4.is_military_registered +LEFT JOIN t5 ON dc.recruitment_id = t5.recruitment_id + AND dc.is_military_registered = t5.is_military_registered +LEFT JOIN t6 ON dc.recruitment_id = t6.recruitment_id + AND dc.is_military_registered = t6.is_military_registered; + Y + + + 736 + 288 + + + + + +
diff --git a/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr4(m_c).hpl b/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr4(m_c).hpl new file mode 100644 index 0000000..d3bba44 --- /dev/null +++ b/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr4(m_c).hpl @@ -0,0 +1,351 @@ + + + + total_registered.reg_mil_cat_pr4(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) военком/рег + Insert / update (total_registered.reg_mil_cat) + Y + + + + Insert / update (total_registered.reg_mil_cat) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + mil_reg + mil_reg + + total_registered + reg_mil_cat
+ + first_reg_17 + first_reg_17 + Y + + + first_reg_18 + first_reg_18 + Y + + + "mil_spec_W" + mil_spec_w + Y + + + recruitment_id + recruitment_id + N + + + returned_dep_liberty + returned_dep_liberty + Y + + + punished + punished + Y + + + received_citizenship + received_citizenship + Y + + + first_reg_17_percent + first_reg_17_percent + Y + + + first_reg_18_percent + first_reg_18_percent + Y + + + returned_dep_liberty_percent + returned_dep_liberty_percent + Y + + + "mil_spec_W_percent" + mil_spec_w_percent + Y + + + punished_percent + punished_percent + Y + + + received_citizenship_percent + received_citizenship_percent + Y + + + mil_reg + mil_reg + N + +
+ N + + + 1392 + 288 + +
+ + Table input (person_registry) военком/рег + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_4}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +base_data AS ( + -- Основной набор данных с вычислением mil_reg + SELECT + r.registration_reasons, + r.gender, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + 1 AS is_military_registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + /* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) + */ + AND jsonb_exists_any(registration_reasons, ARRAY[ + '1', -- Освобождение из мест лишения свободы + '2', -- Приобретение гражданства Российской Федерации + '3', -- Получение военно-учётной специальности гражданином женского пола + '4', -- Отбывание наказания в местах лишения свободы + '5'--, -- Достижение 17 лет в год постановки на воинский учёт + --'6' -- Первоначальная постановка на воинский учет граждан, не состоящих, но обязанных состоять на воинском учёте + ]) + UNION ALL + SELECT + r.registration_reasons, + r.gender, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + 0 AS is_military_registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + AND jsonb_exists_any(registration_reasons, ARRAY['1', '2', '3', '4', '5']) +), +t1 AS ( + -- Первоначальная постановка 17 лет + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS first_reg_17 + FROM base_data + WHERE registration_reasons @> '"5"' -- Достижение 17 лет в год постановки на воинский учёт + GROUP BY recruitment_id, is_military_registered +), +t2 AS ( + -- Первоначальная постановка 18 лет + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS first_reg_18 + FROM base_data + WHERE jsonb_exists_any(registration_reasons, ARRAY['1', '2', '3', '4']) + GROUP BY recruitment_id, is_military_registered +), +t3 AS ( + -- Женщины, получившие ВУС + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS mil_spec_w + FROM base_data + WHERE registration_reasons @> '"3"' AND gender = 'FEMALE' + GROUP BY recruitment_id, is_military_registered +), +t4 AS ( + -- Возвратившиеся из мест лишения свободы + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS returned_dep_liberty + FROM base_data + WHERE registration_reasons @> '"1"' + GROUP BY recruitment_id, is_military_registered +), +t5 AS ( + -- Отбывающие наказание в местах лишения свободы + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS punished + FROM base_data + WHERE registration_reasons @> '"4"' + GROUP BY recruitment_id, is_military_registered +), +t6 AS ( + -- Получившие гражданство + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS received_citizenship + FROM base_data + WHERE registration_reasons @> '"2"' + GROUP BY recruitment_id, is_military_registered +), +total AS ( + -- Общее количество записей + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS total_count + FROM base_data + GROUP BY recruitment_id, is_military_registered +), +uniq_ms AS ( + SELECT + distinct + recruitment_id, + is_military_registered + FROM base_data +) +-- Основной запрос +SELECT + current_date AS recording_date, + dc.recruitment_id, + dc.is_military_registered AS mil_reg, + COALESCE(total.total_count, 0) AS total_count, + COALESCE(t1.first_reg_17, 0) AS first_reg_17, + COALESCE(t2.first_reg_18, 0) AS first_reg_18, + COALESCE(t3.mil_spec_w, 0) AS mil_spec_w, + COALESCE(t4.returned_dep_liberty, 0) AS returned_dep_liberty, + COALESCE(t5.punished, 0) AS punished, + COALESCE(t6.received_citizenship, 0) AS received_citizenship, + -- Вычисление процентов + COALESCE(ROUND(COALESCE(t1.first_reg_17, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS first_reg_17_percent, + COALESCE(ROUND(COALESCE(t2.first_reg_18, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS first_reg_18_percent, + COALESCE(ROUND(COALESCE(t4.returned_dep_liberty, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS returned_dep_liberty_percent, + COALESCE(ROUND(COALESCE(t3.mil_spec_w, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS mil_spec_w_percent, + COALESCE(ROUND(COALESCE(t5.punished, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS punished_percent, + COALESCE(ROUND(COALESCE(t6.received_citizenship, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS received_citizenship_percent +FROM uniq_ms dc +LEFT JOIN total ON dc.recruitment_id = total.recruitment_id + AND dc.is_military_registered = total.is_military_registered +LEFT JOIN t1 ON dc.recruitment_id = t1.recruitment_id + AND dc.is_military_registered = t1.is_military_registered +LEFT JOIN t2 ON dc.recruitment_id = t2.recruitment_id + AND dc.is_military_registered = t2.is_military_registered +LEFT JOIN t3 ON dc.recruitment_id = t3.recruitment_id + AND dc.is_military_registered = t3.is_military_registered +LEFT JOIN t4 ON dc.recruitment_id = t4.recruitment_id + AND dc.is_military_registered = t4.is_military_registered +LEFT JOIN t5 ON dc.recruitment_id = t5.recruitment_id + AND dc.is_military_registered = t5.is_military_registered +LEFT JOIN t6 ON dc.recruitment_id = t6.recruitment_id + AND dc.is_military_registered = t6.is_military_registered; + Y + + + 736 + 288 + + + + + +
diff --git a/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr5(m_c).hpl b/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr5(m_c).hpl new file mode 100644 index 0000000..0cd012d --- /dev/null +++ b/mappings/mil_com/total_registered.reg_mil_cat(m_c)/total_registered.reg_mil_cat_pr5(m_c).hpl @@ -0,0 +1,351 @@ + + + + total_registered.reg_mil_cat_pr5(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (person_registry) военком/рег + Insert / update (total_registered.reg_mil_cat) + Y + + + + Insert / update (total_registered.reg_mil_cat) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + mil_reg + mil_reg + + total_registered + reg_mil_cat
+ + first_reg_17 + first_reg_17 + Y + + + first_reg_18 + first_reg_18 + Y + + + "mil_spec_W" + mil_spec_w + Y + + + recruitment_id + recruitment_id + N + + + returned_dep_liberty + returned_dep_liberty + Y + + + punished + punished + Y + + + received_citizenship + received_citizenship + Y + + + first_reg_17_percent + first_reg_17_percent + Y + + + first_reg_18_percent + first_reg_18_percent + Y + + + returned_dep_liberty_percent + returned_dep_liberty_percent + Y + + + "mil_spec_W_percent" + mil_spec_w_percent + Y + + + punished_percent + punished_percent + Y + + + received_citizenship_percent + received_citizenship_percent + Y + + + mil_reg + mil_reg + N + +
+ N + + + 1392 + 288 + +
+ + Table input (person_registry) военком/рег + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_5}'), ','))::uuid AS recruitment_id +), +/* +last_status_r as (select recruit_id, + max(date_time) filter (where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13')) max_date_time + from recruits_history + where status not in ('1', '1.3', '12', '12.1', '12.2', '12.3', '12.4', '12.5', '13') + group by recruit_id +), +registered as ( + select + distinct rh.recruit_id, + rh.id as recruit_history_id + from recruits_history rh + join last_status_r 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') + --and rh.source is not null +), +*/ +last_status_n as (select recruit_id, + max(date_time) filter (where status in ('1', '12.7', '8.2', '8.3')) max_date_time + from recruits_history + where status in ('1', '12.7', '8.2', '8.3') + group by recruit_id +), +notregistered as ( + select + distinct rh.recruit_id, + 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', '12.7', '8.2', '8.3') +--and rh.source is not null +), +base_data AS ( + -- Основной набор данных с вычислением mil_reg + SELECT + r.registration_reasons, + r.gender, + r.current_recruitment_id AS recruitment_id, + --coalesce (r.current_recruitment_id, rh.current_recruitment_id) AS recruitment_id, + 1 AS is_military_registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri + ON ri.recruit_id = r.id + --join public.recruits_history rh on rh.recruit_id=r.id + WHERE r.current_recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + /* + r.id in (SELECT recruit_id FROM registered) and + rh.id in (SELECT recruit_history_id FROM registered) + and coalesce(r.current_recruitment_id,rh.current_recruitment_id) ::uuid IN (SELECT recruitment_id FROM ids) + */ + AND jsonb_exists_any(registration_reasons, ARRAY[ + '1', -- Освобождение из мест лишения свободы + '2', -- Приобретение гражданства Российской Федерации + '3', -- Получение военно-учётной специальности гражданином женского пола + '4', -- Отбывание наказания в местах лишения свободы + '5'--, -- Достижение 17 лет в год постановки на воинский учёт + --'6' -- Первоначальная постановка на воинский учет граждан, не состоящих, но обязанных состоять на воинском учёте + ]) + UNION ALL + SELECT + r.registration_reasons, + r.gender, + coalesce (r.target_recruitment_id, rh.target_recruitment_id) AS recruitment_id, + 0 AS is_military_registered + FROM public.recruits AS r + JOIN public.recruits_info AS ri ON ri.recruit_id = r.id + JOIN public.recruits_history rh ON rh.recruit_id=r.id + WHERE + 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 + AND jsonb_exists_any(registration_reasons, ARRAY['1', '2', '3', '4', '5']) +), +t1 AS ( + -- Первоначальная постановка 17 лет + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS first_reg_17 + FROM base_data + WHERE registration_reasons @> '"5"' -- Достижение 17 лет в год постановки на воинский учёт + GROUP BY recruitment_id, is_military_registered +), +t2 AS ( + -- Первоначальная постановка 18 лет + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS first_reg_18 + FROM base_data + WHERE jsonb_exists_any(registration_reasons, ARRAY['1', '2', '3', '4']) + GROUP BY recruitment_id, is_military_registered +), +t3 AS ( + -- Женщины, получившие ВУС + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS mil_spec_w + FROM base_data + WHERE registration_reasons @> '"3"' AND gender = 'FEMALE' + GROUP BY recruitment_id, is_military_registered +), +t4 AS ( + -- Возвратившиеся из мест лишения свободы + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS returned_dep_liberty + FROM base_data + WHERE registration_reasons @> '"1"' + GROUP BY recruitment_id, is_military_registered +), +t5 AS ( + -- Отбывающие наказание в местах лишения свободы + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS punished + FROM base_data + WHERE registration_reasons @> '"4"' + GROUP BY recruitment_id, is_military_registered +), +t6 AS ( + -- Получившие гражданство + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS received_citizenship + FROM base_data + WHERE registration_reasons @> '"2"' + GROUP BY recruitment_id, is_military_registered +), +total AS ( + -- Общее количество записей + SELECT + recruitment_id, + is_military_registered, + COUNT(*) AS total_count + FROM base_data + GROUP BY recruitment_id, is_military_registered +), +uniq_ms AS ( + SELECT + distinct + recruitment_id, + is_military_registered + FROM base_data +) +-- Основной запрос +SELECT + current_date AS recording_date, + dc.recruitment_id, + dc.is_military_registered AS mil_reg, + COALESCE(total.total_count, 0) AS total_count, + COALESCE(t1.first_reg_17, 0) AS first_reg_17, + COALESCE(t2.first_reg_18, 0) AS first_reg_18, + COALESCE(t3.mil_spec_w, 0) AS mil_spec_w, + COALESCE(t4.returned_dep_liberty, 0) AS returned_dep_liberty, + COALESCE(t5.punished, 0) AS punished, + COALESCE(t6.received_citizenship, 0) AS received_citizenship, + -- Вычисление процентов + COALESCE(ROUND(COALESCE(t1.first_reg_17, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS first_reg_17_percent, + COALESCE(ROUND(COALESCE(t2.first_reg_18, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS first_reg_18_percent, + COALESCE(ROUND(COALESCE(t4.returned_dep_liberty, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS returned_dep_liberty_percent, + COALESCE(ROUND(COALESCE(t3.mil_spec_w, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS mil_spec_w_percent, + COALESCE(ROUND(COALESCE(t5.punished, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS punished_percent, + COALESCE(ROUND(COALESCE(t6.received_citizenship, 0) * 100.0 / NULLIF(total.total_count, 0), 2), 0) AS received_citizenship_percent +FROM uniq_ms dc +LEFT JOIN total ON dc.recruitment_id = total.recruitment_id + AND dc.is_military_registered = total.is_military_registered +LEFT JOIN t1 ON dc.recruitment_id = t1.recruitment_id + AND dc.is_military_registered = t1.is_military_registered +LEFT JOIN t2 ON dc.recruitment_id = t2.recruitment_id + AND dc.is_military_registered = t2.is_military_registered +LEFT JOIN t3 ON dc.recruitment_id = t3.recruitment_id + AND dc.is_military_registered = t3.is_military_registered +LEFT JOIN t4 ON dc.recruitment_id = t4.recruitment_id + AND dc.is_military_registered = t4.is_military_registered +LEFT JOIN t5 ON dc.recruitment_id = t5.recruitment_id + AND dc.is_military_registered = t5.is_military_registered +LEFT JOIN t6 ON dc.recruitment_id = t6.recruitment_id + AND dc.is_military_registered = t6.is_military_registered; + Y + + + 736 + 288 + + + + + +
diff --git a/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry(m_c).hpl b/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry(m_c).hpl new file mode 100644 index 0000000..2a0d1b3 --- /dev/null +++ b/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry(m_c).hpl @@ -0,0 +1,348 @@ + + + + total_registered.removed_registry(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 904 + 118 + на 12.03.2025 статус 1.3 на тесте рубит все результаты + 303 + + + + + Get variables 2 2 + Select values 2 2 + N + + + Select values 2 2 + Insert / update (total_registered.removed_registry) 2 + N + + + Table input (decision-document-service) регион 2 + Get variables 2 2 + N + + + Table input (decision-document-service) регион 2 + Insert / update (total_registered.removed_registry) 2 + Y + + + + Get variables 2 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REC_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 992 + 464 + + + + Insert / update (total_registered.removed_registry) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + removed_registry
+ + age_limit + age_limit + Y + + + death + death + Y + + + removed_registry + removed_registry + Y + + + deprivation_citizenship + deprivation_citizenship + Y + + + travel_abroad + travel_abroad + Y + + + living_abroad + travel_abroad + Y + + + other + other + Y + + + deprivation_citizen_percents + deprivation_citizen_percents + Y + + + age_limit_percent + age_limit_percent + Y + + + death_percent + death_percent + Y + + + travel_abroad_percent + travel_abroad_percent + Y + + + living_abroad_percent + living_abroad_percent + Y + + + other_percent + other_percent + Y + + + recruitment_id + recruitment_id + N + +
+ N + + + 1408 + 320 + +
+ + Select values 2 2 + SelectValues + + Y + + 1 + + none + + + + N + + REC_ID + REC_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 1120 + 464 + + + + Table input (decision-document-service) регион 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +recr AS ( + SELECT + r.id, + r.system_pgs_status + FROM recruits r + WHERE r.system_pgs_status = '1.3' +), +last_decision AS ( + SELECT + d.recruitment_id, + d.recruit_id, + d.extra_info, + d.created_at, + d.code + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY d.recruit_id ORDER BY d.created_at DESC) AS rn, + d.recruitment_id, + d.recruit_id, + d.extra_info, + d.created_at, + d.type->>'code' AS code + FROM decision d + WHERE d.recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND EXTRACT(YEAR FROM d.created_at) = EXTRACT(YEAR FROM CURRENT_DATE) -- ищим записи на текущий год + ) d + WHERE rn = 1 -- ищем последнее решение для рекрута + AND d.code IN ('9', '10') + /*FROM decision d + WHERE EXTRACT(YEAR FROM d.created_at) = EXTRACT(YEAR FROM CURRENT_DATE) -- ищим записи на текущий год*/ +), +total_info AS ( + SELECT + d.recruitment_id, + COUNT(*) AS removed_registry, + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'ageLimit') AS age_limit, -- Количество по причине предельный возраст + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'notAlive') AS death, -- Количество по причине смерть + --COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'citizenshipLost') AS deprivation_citizenship, -- лишение гражданства + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive', 'citizenshipLost')) AS other, -- прочее + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'ageLimit') * 100.0 / NULLIF(COUNT(*), 0), 2) AS age_limit_percent, + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'notAlive') * 100.0 / NULLIF(COUNT(*), 0), 2) AS death_percent, + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive', 'citizenshipLost')) * 100.0 / NULLIF(COUNT(*), 0), 2) AS other_percent + FROM last_decision d + JOIN recr AS r ON d.recruit_id = r.id + GROUP BY d.recruitment_id +) +SELECT + current_date AS recording_date, + recruitment_id, + COALESCE(total_info.removed_registry, 0) AS removed_registry, + COALESCE(total_info.age_limit, 0) AS age_limit, + COALESCE(total_info.death, 0) AS death, + COALESCE(total_info.other, 0) AS other, + COALESCE(total_info.age_limit_percent, 0) AS age_limit_percent, + COALESCE(total_info.death_percent, 0) AS death_percent, + COALESCE(total_info.other_percent, 0) AS other_percent, + --deprivation_citizenship, + '0' AS deprivation_citizenship, + '0' AS travel_abroad, + '0' AS living_abroad, + '0' AS deprivation_citizen_percents, + '0' AS travel_abroad_percent, + '0' AS living_abroad_percent +FROM total_info; + Y + + + 752 + 320 + + + + + +
diff --git a/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry(m_c).hwf b/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry(m_c).hwf new file mode 100644 index 0000000..840ccdf --- /dev/null +++ b/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry(m_c).hwf @@ -0,0 +1,312 @@ + + + total_registered.removed_registry(m_c) + Y + + + + - + 2025/03/31 15:23:08.216 + - + 2025/03/31 15:23:08.216 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + Y + 800 + 368 + + + + total_registered.removed_registry_pr1(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr1(m_c).hpl + Basic + + + ARR_PR_1 + PART_RECRUITMENT_1 + + Y + + Y + local + N + N + Y + N + 1312 + 208 + + + + total_registered.removed_registry_pr2(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr2(m_c).hpl + Basic + + + ARR_PR_2 + PART_RECRUITMENT_2 + + Y + + Y + local + N + N + Y + N + 1312 + 288 + + + + total_registered.removed_registry_pr4(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr4(m_c).hpl + Basic + + + ARR_PR_4 + PART_RECRUITMENT_4 + + Y + + Y + local + N + N + Y + N + 1312 + 448 + + + + total_registered.removed_registry_pr3(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr3(m_c).hpl + Basic + + + ARR_PR_3 + PART_RECRUITMENT_3 + + Y + + Y + local + N + N + Y + N + 1312 + 368 + + + + total_registered.removed_registry_pr5(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr5(m_c).hpl + + + Basic + + + ARR_PR_5 + PART_RECRUITMENT_5 + + + Y + + Y + local + N + N + Y + N + 1312 + 528 + + + + Success + + SUCCESS + + N + 1664 + 208 + + + + Success 2 + + SUCCESS + + N + 1664 + 288 + + + + Success 3 + + SUCCESS + + N + 1664 + 368 + + + + Success 4 + + SUCCESS + + N + 1664 + 448 + + + + Success 5 + + SUCCESS + + N + 1664 + 528 + + + + + + Start + total_registered.removed_registry_pr1(m_c).hpl + Y + Y + Y + + + Start + total_registered.removed_registry_pr3(m_c).hpl + Y + Y + Y + + + Start + total_registered.removed_registry_pr2(m_c).hpl + Y + Y + Y + + + Start + total_registered.removed_registry_pr4(m_c).hpl + Y + Y + Y + + + Start + total_registered.removed_registry_pr5(m_c).hpl + Y + Y + Y + + + total_registered.removed_registry_pr1(m_c).hpl + Success + Y + Y + N + + + total_registered.removed_registry_pr2(m_c).hpl + Success 2 + Y + Y + N + + + total_registered.removed_registry_pr3(m_c).hpl + Success 3 + Y + Y + N + + + total_registered.removed_registry_pr4(m_c).hpl + Success 4 + Y + Y + N + + + total_registered.removed_registry_pr5(m_c).hpl + Success 5 + Y + Y + N + + + + + + diff --git a/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr1(m_c).hpl b/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr1(m_c).hpl new file mode 100644 index 0000000..ae952b2 --- /dev/null +++ b/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr1(m_c).hpl @@ -0,0 +1,246 @@ + + + + total_registered.removed_registry_pr1(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 904 + 118 + на 12.03.2025 статус 1.3 на тесте рубит все результаты + 303 + + + + + Table input (decision-document-service) регион 2 + Insert / update (total_registered.removed_registry) 2 + Y + + + + Insert / update (total_registered.removed_registry) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + removed_registry
+ + age_limit + age_limit + Y + + + death + death + Y + + + removed_registry + removed_registry + Y + + + deprivation_citizenship + deprivation_citizenship + Y + + + travel_abroad + travel_abroad + Y + + + living_abroad + travel_abroad + Y + + + other + other + Y + + + deprivation_citizen_percents + deprivation_citizen_percents + Y + + + age_limit_percent + age_limit_percent + Y + + + death_percent + death_percent + Y + + + travel_abroad_percent + travel_abroad_percent + Y + + + living_abroad_percent + living_abroad_percent + Y + + + other_percent + other_percent + Y + + + recruitment_id + recruitment_id + N + +
+ N + + + 1408 + 320 + +
+ + Table input (decision-document-service) регион 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_1}'), ','))::uuid AS recruitment_id +), +recr AS ( + SELECT + r.id, + r.system_pgs_status + FROM recruits r + WHERE r.system_pgs_status = '1.3' +), +last_decision AS ( + SELECT + d.recruitment_id, + d.recruit_id, + d.extra_info, + d.created_at, + d.code + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY d.recruit_id ORDER BY d.created_at DESC) AS rn, + d.recruitment_id, + d.recruit_id, + d.extra_info, + d.created_at, + d.type->>'code' AS code + FROM decision d + WHERE d.recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND EXTRACT(YEAR FROM d.created_at) = EXTRACT(YEAR FROM CURRENT_DATE) -- ищим записи на текущий год + ) d + WHERE rn = 1 -- ищем последнее решение для рекрута + AND d.code IN ('9', '10') + /*FROM decision d + WHERE EXTRACT(YEAR FROM d.created_at) = EXTRACT(YEAR FROM CURRENT_DATE) -- ищим записи на текущий год*/ +), +total_info AS ( + SELECT + d.recruitment_id, + COUNT(*) AS removed_registry, + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'ageLimit') AS age_limit, -- Количество по причине предельный возраст + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'notAlive') AS death, -- Количество по причине смерть + --COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'citizenshipLost') AS deprivation_citizenship, -- лишение гражданства + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive', 'citizenshipLost')) AS other, -- прочее + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'ageLimit') * 100.0 / NULLIF(COUNT(*), 0), 2) AS age_limit_percent, + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'notAlive') * 100.0 / NULLIF(COUNT(*), 0), 2) AS death_percent, + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive', 'citizenshipLost')) * 100.0 / NULLIF(COUNT(*), 0), 2) AS other_percent + FROM last_decision d + JOIN recr AS r ON d.recruit_id = r.id + GROUP BY d.recruitment_id +) +SELECT + current_date AS recording_date, + recruitment_id, + COALESCE(total_info.removed_registry, 0) AS removed_registry, + COALESCE(total_info.age_limit, 0) AS age_limit, + COALESCE(total_info.death, 0) AS death, + COALESCE(total_info.other, 0) AS other, + COALESCE(total_info.age_limit_percent, 0) AS age_limit_percent, + COALESCE(total_info.death_percent, 0) AS death_percent, + COALESCE(total_info.other_percent, 0) AS other_percent, + --deprivation_citizenship, + '0' AS deprivation_citizenship, + '0' AS travel_abroad, + '0' AS living_abroad, + '0' AS deprivation_citizen_percents, + '0' AS travel_abroad_percent, + '0' AS living_abroad_percent +FROM total_info; + Y + + + 752 + 320 + + + + + +
diff --git a/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr2(m_c).hpl b/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr2(m_c).hpl new file mode 100644 index 0000000..81d9f8a --- /dev/null +++ b/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr2(m_c).hpl @@ -0,0 +1,246 @@ + + + + total_registered.removed_registry_pr2(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 904 + 118 + на 12.03.2025 статус 1.3 на тесте рубит все результаты + 303 + + + + + Table input (decision-document-service) регион 2 + Insert / update (total_registered.removed_registry) 2 + Y + + + + Insert / update (total_registered.removed_registry) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + removed_registry
+ + age_limit + age_limit + Y + + + death + death + Y + + + removed_registry + removed_registry + Y + + + deprivation_citizenship + deprivation_citizenship + Y + + + travel_abroad + travel_abroad + Y + + + living_abroad + travel_abroad + Y + + + other + other + Y + + + deprivation_citizen_percents + deprivation_citizen_percents + Y + + + age_limit_percent + age_limit_percent + Y + + + death_percent + death_percent + Y + + + travel_abroad_percent + travel_abroad_percent + Y + + + living_abroad_percent + living_abroad_percent + Y + + + other_percent + other_percent + Y + + + recruitment_id + recruitment_id + N + +
+ N + + + 1408 + 320 + +
+ + Table input (decision-document-service) регион 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_2}'), ','))::uuid AS recruitment_id +), +recr AS ( + SELECT + r.id, + r.system_pgs_status + FROM recruits r + WHERE r.system_pgs_status = '1.3' +), +last_decision AS ( + SELECT + d.recruitment_id, + d.recruit_id, + d.extra_info, + d.created_at, + d.code + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY d.recruit_id ORDER BY d.created_at DESC) AS rn, + d.recruitment_id, + d.recruit_id, + d.extra_info, + d.created_at, + d.type->>'code' AS code + FROM decision d + WHERE d.recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND EXTRACT(YEAR FROM d.created_at) = EXTRACT(YEAR FROM CURRENT_DATE) -- ищим записи на текущий год + ) d + WHERE rn = 1 -- ищем последнее решение для рекрута + AND d.code IN ('9', '10') + /*FROM decision d + WHERE EXTRACT(YEAR FROM d.created_at) = EXTRACT(YEAR FROM CURRENT_DATE) -- ищим записи на текущий год*/ +), +total_info AS ( + SELECT + d.recruitment_id, + COUNT(*) AS removed_registry, + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'ageLimit') AS age_limit, -- Количество по причине предельный возраст + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'notAlive') AS death, -- Количество по причине смерть + --COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'citizenshipLost') AS deprivation_citizenship, -- лишение гражданства + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive', 'citizenshipLost')) AS other, -- прочее + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'ageLimit') * 100.0 / NULLIF(COUNT(*), 0), 2) AS age_limit_percent, + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'notAlive') * 100.0 / NULLIF(COUNT(*), 0), 2) AS death_percent, + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive', 'citizenshipLost')) * 100.0 / NULLIF(COUNT(*), 0), 2) AS other_percent + FROM last_decision d + JOIN recr AS r ON d.recruit_id = r.id + GROUP BY d.recruitment_id +) +SELECT + current_date AS recording_date, + recruitment_id, + COALESCE(total_info.removed_registry, 0) AS removed_registry, + COALESCE(total_info.age_limit, 0) AS age_limit, + COALESCE(total_info.death, 0) AS death, + COALESCE(total_info.other, 0) AS other, + COALESCE(total_info.age_limit_percent, 0) AS age_limit_percent, + COALESCE(total_info.death_percent, 0) AS death_percent, + COALESCE(total_info.other_percent, 0) AS other_percent, + --deprivation_citizenship, + '0' AS deprivation_citizenship, + '0' AS travel_abroad, + '0' AS living_abroad, + '0' AS deprivation_citizen_percents, + '0' AS travel_abroad_percent, + '0' AS living_abroad_percent +FROM total_info; + Y + + + 752 + 320 + + + + + +
diff --git a/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr3(m_c).hpl b/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr3(m_c).hpl new file mode 100644 index 0000000..18a8ede --- /dev/null +++ b/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr3(m_c).hpl @@ -0,0 +1,246 @@ + + + + total_registered.removed_registry_pr3(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 904 + 118 + на 12.03.2025 статус 1.3 на тесте рубит все результаты + 303 + + + + + Table input (decision-document-service) регион 2 + Insert / update (total_registered.removed_registry) 2 + Y + + + + Insert / update (total_registered.removed_registry) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + removed_registry
+ + age_limit + age_limit + Y + + + death + death + Y + + + removed_registry + removed_registry + Y + + + deprivation_citizenship + deprivation_citizenship + Y + + + travel_abroad + travel_abroad + Y + + + living_abroad + travel_abroad + Y + + + other + other + Y + + + deprivation_citizen_percents + deprivation_citizen_percents + Y + + + age_limit_percent + age_limit_percent + Y + + + death_percent + death_percent + Y + + + travel_abroad_percent + travel_abroad_percent + Y + + + living_abroad_percent + living_abroad_percent + Y + + + other_percent + other_percent + Y + + + recruitment_id + recruitment_id + N + +
+ N + + + 1408 + 320 + +
+ + Table input (decision-document-service) регион 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_3}'), ','))::uuid AS recruitment_id +), +recr AS ( + SELECT + r.id, + r.system_pgs_status + FROM recruits r + WHERE r.system_pgs_status = '1.3' +), +last_decision AS ( + SELECT + d.recruitment_id, + d.recruit_id, + d.extra_info, + d.created_at, + d.code + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY d.recruit_id ORDER BY d.created_at DESC) AS rn, + d.recruitment_id, + d.recruit_id, + d.extra_info, + d.created_at, + d.type->>'code' AS code + FROM decision d + WHERE d.recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND EXTRACT(YEAR FROM d.created_at) = EXTRACT(YEAR FROM CURRENT_DATE) -- ищим записи на текущий год + ) d + WHERE rn = 1 -- ищем последнее решение для рекрута + AND d.code IN ('9', '10') + /*FROM decision d + WHERE EXTRACT(YEAR FROM d.created_at) = EXTRACT(YEAR FROM CURRENT_DATE) -- ищим записи на текущий год*/ +), +total_info AS ( + SELECT + d.recruitment_id, + COUNT(*) AS removed_registry, + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'ageLimit') AS age_limit, -- Количество по причине предельный возраст + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'notAlive') AS death, -- Количество по причине смерть + --COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'citizenshipLost') AS deprivation_citizenship, -- лишение гражданства + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive', 'citizenshipLost')) AS other, -- прочее + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'ageLimit') * 100.0 / NULLIF(COUNT(*), 0), 2) AS age_limit_percent, + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'notAlive') * 100.0 / NULLIF(COUNT(*), 0), 2) AS death_percent, + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive', 'citizenshipLost')) * 100.0 / NULLIF(COUNT(*), 0), 2) AS other_percent + FROM last_decision d + JOIN recr AS r ON d.recruit_id = r.id + GROUP BY d.recruitment_id +) +SELECT + current_date AS recording_date, + recruitment_id, + COALESCE(total_info.removed_registry, 0) AS removed_registry, + COALESCE(total_info.age_limit, 0) AS age_limit, + COALESCE(total_info.death, 0) AS death, + COALESCE(total_info.other, 0) AS other, + COALESCE(total_info.age_limit_percent, 0) AS age_limit_percent, + COALESCE(total_info.death_percent, 0) AS death_percent, + COALESCE(total_info.other_percent, 0) AS other_percent, + --deprivation_citizenship, + '0' AS deprivation_citizenship, + '0' AS travel_abroad, + '0' AS living_abroad, + '0' AS deprivation_citizen_percents, + '0' AS travel_abroad_percent, + '0' AS living_abroad_percent +FROM total_info; + Y + + + 752 + 320 + + + + + +
diff --git a/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr4(m_c).hpl b/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr4(m_c).hpl new file mode 100644 index 0000000..36e59b5 --- /dev/null +++ b/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr4(m_c).hpl @@ -0,0 +1,246 @@ + + + + total_registered.removed_registry_pr4(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 904 + 118 + на 12.03.2025 статус 1.3 на тесте рубит все результаты + 303 + + + + + Table input (decision-document-service) регион 2 + Insert / update (total_registered.removed_registry) 2 + Y + + + + Insert / update (total_registered.removed_registry) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + removed_registry
+ + age_limit + age_limit + Y + + + death + death + Y + + + removed_registry + removed_registry + Y + + + deprivation_citizenship + deprivation_citizenship + Y + + + travel_abroad + travel_abroad + Y + + + living_abroad + travel_abroad + Y + + + other + other + Y + + + deprivation_citizen_percents + deprivation_citizen_percents + Y + + + age_limit_percent + age_limit_percent + Y + + + death_percent + death_percent + Y + + + travel_abroad_percent + travel_abroad_percent + Y + + + living_abroad_percent + living_abroad_percent + Y + + + other_percent + other_percent + Y + + + recruitment_id + recruitment_id + N + +
+ N + + + 1408 + 320 + +
+ + Table input (decision-document-service) регион 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_4}'), ','))::uuid AS recruitment_id +), +recr AS ( + SELECT + r.id, + r.system_pgs_status + FROM recruits r + WHERE r.system_pgs_status = '1.3' +), +last_decision AS ( + SELECT + d.recruitment_id, + d.recruit_id, + d.extra_info, + d.created_at, + d.code + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY d.recruit_id ORDER BY d.created_at DESC) AS rn, + d.recruitment_id, + d.recruit_id, + d.extra_info, + d.created_at, + d.type->>'code' AS code + FROM decision d + WHERE d.recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND EXTRACT(YEAR FROM d.created_at) = EXTRACT(YEAR FROM CURRENT_DATE) -- ищим записи на текущий год + ) d + WHERE rn = 1 -- ищем последнее решение для рекрута + AND d.code IN ('9', '10') + /*FROM decision d + WHERE EXTRACT(YEAR FROM d.created_at) = EXTRACT(YEAR FROM CURRENT_DATE) -- ищим записи на текущий год*/ +), +total_info AS ( + SELECT + d.recruitment_id, + COUNT(*) AS removed_registry, + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'ageLimit') AS age_limit, -- Количество по причине предельный возраст + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'notAlive') AS death, -- Количество по причине смерть + --COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'citizenshipLost') AS deprivation_citizenship, -- лишение гражданства + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive', 'citizenshipLost')) AS other, -- прочее + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'ageLimit') * 100.0 / NULLIF(COUNT(*), 0), 2) AS age_limit_percent, + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'notAlive') * 100.0 / NULLIF(COUNT(*), 0), 2) AS death_percent, + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive', 'citizenshipLost')) * 100.0 / NULLIF(COUNT(*), 0), 2) AS other_percent + FROM last_decision d + JOIN recr AS r ON d.recruit_id = r.id + GROUP BY d.recruitment_id +) +SELECT + current_date AS recording_date, + recruitment_id, + COALESCE(total_info.removed_registry, 0) AS removed_registry, + COALESCE(total_info.age_limit, 0) AS age_limit, + COALESCE(total_info.death, 0) AS death, + COALESCE(total_info.other, 0) AS other, + COALESCE(total_info.age_limit_percent, 0) AS age_limit_percent, + COALESCE(total_info.death_percent, 0) AS death_percent, + COALESCE(total_info.other_percent, 0) AS other_percent, + --deprivation_citizenship, + '0' AS deprivation_citizenship, + '0' AS travel_abroad, + '0' AS living_abroad, + '0' AS deprivation_citizen_percents, + '0' AS travel_abroad_percent, + '0' AS living_abroad_percent +FROM total_info; + Y + + + 752 + 320 + + + + + +
diff --git a/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr5(m_c).hpl b/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr5(m_c).hpl new file mode 100644 index 0000000..1303b08 --- /dev/null +++ b/mappings/mil_com/total_registered.removed_registry(m_c)/total_registered.removed_registry_pr5(m_c).hpl @@ -0,0 +1,246 @@ + + + + total_registered.removed_registry_pr5(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 904 + 118 + на 12.03.2025 статус 1.3 на тесте рубит все результаты + 303 + + + + + Table input (decision-document-service) регион 2 + Insert / update (total_registered.removed_registry) 2 + Y + + + + Insert / update (total_registered.removed_registry) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + total_registered + removed_registry
+ + age_limit + age_limit + Y + + + death + death + Y + + + removed_registry + removed_registry + Y + + + deprivation_citizenship + deprivation_citizenship + Y + + + travel_abroad + travel_abroad + Y + + + living_abroad + travel_abroad + Y + + + other + other + Y + + + deprivation_citizen_percents + deprivation_citizen_percents + Y + + + age_limit_percent + age_limit_percent + Y + + + death_percent + death_percent + Y + + + travel_abroad_percent + travel_abroad_percent + Y + + + living_abroad_percent + living_abroad_percent + Y + + + other_percent + other_percent + Y + + + recruitment_id + recruitment_id + N + +
+ N + + + 1408 + 320 + +
+ + Table input (decision-document-service) регион 2 + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_5}'), ','))::uuid AS recruitment_id +), +recr AS ( + SELECT + r.id, + r.system_pgs_status + FROM recruits r + WHERE r.system_pgs_status = '1.3' +), +last_decision AS ( + SELECT + d.recruitment_id, + d.recruit_id, + d.extra_info, + d.created_at, + d.code + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY d.recruit_id ORDER BY d.created_at DESC) AS rn, + d.recruitment_id, + d.recruit_id, + d.extra_info, + d.created_at, + d.type->>'code' AS code + FROM decision d + WHERE d.recruitment_id::uuid IN (SELECT recruitment_id FROM ids) + AND EXTRACT(YEAR FROM d.created_at) = EXTRACT(YEAR FROM CURRENT_DATE) -- ищим записи на текущий год + ) d + WHERE rn = 1 -- ищем последнее решение для рекрута + AND d.code IN ('9', '10') + /*FROM decision d + WHERE EXTRACT(YEAR FROM d.created_at) = EXTRACT(YEAR FROM CURRENT_DATE) -- ищим записи на текущий год*/ +), +total_info AS ( + SELECT + d.recruitment_id, + COUNT(*) AS removed_registry, + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'ageLimit') AS age_limit, -- Количество по причине предельный возраст + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'notAlive') AS death, -- Количество по причине смерть + --COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'citizenshipLost') AS deprivation_citizenship, -- лишение гражданства + COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive', 'citizenshipLost')) AS other, -- прочее + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'ageLimit') * 100.0 / NULLIF(COUNT(*), 0), 2) AS age_limit_percent, + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' = 'notAlive') * 100.0 / NULLIF(COUNT(*), 0), 2) AS death_percent, + ROUND(COUNT(*) FILTER (WHERE d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive', 'citizenshipLost')) * 100.0 / NULLIF(COUNT(*), 0), 2) AS other_percent + FROM last_decision d + JOIN recr AS r ON d.recruit_id = r.id + GROUP BY d.recruitment_id +) +SELECT + current_date AS recording_date, + recruitment_id, + COALESCE(total_info.removed_registry, 0) AS removed_registry, + COALESCE(total_info.age_limit, 0) AS age_limit, + COALESCE(total_info.death, 0) AS death, + COALESCE(total_info.other, 0) AS other, + COALESCE(total_info.age_limit_percent, 0) AS age_limit_percent, + COALESCE(total_info.death_percent, 0) AS death_percent, + COALESCE(total_info.other_percent, 0) AS other_percent, + --deprivation_citizenship, + '0' AS deprivation_citizenship, + '0' AS travel_abroad, + '0' AS living_abroad, + '0' AS deprivation_citizen_percents, + '0' AS travel_abroad_percent, + '0' AS living_abroad_percent +FROM total_info; + Y + + + 752 + 320 + + + + + +
diff --git a/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas(m_c).hpl b/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas(m_c).hpl new file mode 100644 index 0000000..2349dc9 --- /dev/null +++ b/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas(m_c).hpl @@ -0,0 +1,581 @@ + + + + total_registered.subpoenas(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 4 2 + Select values 4 2 + N + + + Table input (subpoena) регион/рег + Get variables 4 2 + N + + + Select values 4 2 + Insert / update (total_registered.subpoenas) 3 + N + + + Table input (subpoena) регион/рег + Insert / update (total_registered.subpoenas) 3 + Y + + + + Get variables 4 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + REC_ID + -1 + none + String + + + -1 + SCM + -1 + none + String + + + + + 1040 + 496 + + + + Insert / update (total_registered.subpoenas) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + mil_reg + mil_reg + + total_registered + subpoenas
+ + subpoena + count_subpoena + Y + + + appeared + count_appeared + Y + + + average_appeared + average_appeared + Y + + + not_appeared + count_not_appeared + Y + + + not_ap_good_reason + count_not_ap_good_reason + Y + + + introduced_measures + count_introduced_measures + Y + + + ap_not_required + count_ap_not_required + Y + + + electron + count_electron + Y + + + paper + count_paper + Y + + + restrictions_applied + count_restrictions_applied + Y + + + recruitment_id + recruitment_id + N + + + mil_reg + mil_reg + N + + + appeared_percent + appeared_percent + Y + + + not_appeared_percent + not_appeared_percent + Y + + + not_ap_good_reason_percent + not_ap_good_reason_percent + Y + + + ap_not_required_percent + ap_not_required_percent + Y + + + electron_percent + electron_percent + Y + + + paper_percent + paper_percent + Y + + + restrictions_applied_percent + restrictions_applied_percent + Y + + + introduced_measures_percent + introduced_measures_percent + Y + + + count_not_delivery + count_not_delivery + Y + + + appear_date_is_good + appear_date_is_good + Y + + + not_delivery_percent + not_delivery_percent + Y + + + appear_date_is_good_percent + appear_date_is_good_percent + Y + +
+ N + + + 1472 + 384 + +
+ + Select values 4 2 + SelectValues + + Y + + 1 + + none + + + + N + + REC_ID + REC_ID + String + -2 + -2 + + false + + + false + + + + + + + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + + + + + 1216 + 496 + + + + Table input (subpoena) регион/рег + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +subpoena_data AS ( + SELECT + s.id AS subpoena_id, + s.department_id::uuid, + s.status_id, + (CASE + WHEN sr.type = '1' THEN 0 + WHEN sr.type != '1' THEN 1 + ELSE NULL + END)::numeric AS mil_reg, + ssh.code AS sub_stat_hist, + s.send_date, + sh.date_time::timestamp AS history_date, + rdi.restriction_document_cancel_id AS restr_dc, + rdi.applied_date AS ap_date, + rdi.id AS rdi_id, + ssi.delivery_code AS d_code, + ssi.act_number, + s.visit_date + FROM subpoena s + JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY date_time DESC) AS rn, + subpoena_id, + status_id, + date_time + FROM subpoena_history sh + ) sh on sh.subpoena_id = s.id + JOIN subpoena_status AS ssh ON ssh.id = sh.status_id + JOIN subpoena_reason AS sr ON sr.id = s.reason_id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY created_at DESC) AS rn_d, + subpoena_id, + id + FROM restriction_document + ) AS rd ON rd.subpoena_id = s.id + LEFT JOIN ( + SELECT + restriction_document_create_id, + restriction_document_cancel_id, + applied_date, + id + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY restriction_document_create_id ORDER BY created_at DESC) AS rn_di, + * + FROM restriction_document_item + ) sub + WHERE rn_di = 1 + ) AS rdi ON rdi.restriction_document_create_id = rd.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY send_date DESC) AS rn_si, + subpoena_id, + delivery_code, + act_number + FROM subpoena_send_info + ) AS ssi ON ssi.subpoena_id = s.id + WHERE sh.rn = 1 AND rd.rn_d = 1 /*AND rdi.rn_di = 1*/ AND ssi.rn_si = 1 + AND sr.type IS NOT NULL + AND ssh.code NOT IN ('3.7','3.72', '3.71') -- 3.14 снесено от 14.03.2025 + AND s.department_id::uuid IN (SELECT recruitment_id FROM ids) + AND EXISTS ( + SELECT 1 + FROM subpoena_history sh2 + WHERE sh2.subpoena_id = s.id + AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') + ) +), +uniq_ls AS ( + SELECT + distinct + department_id, + mil_reg + FROM subpoena_data +), +t1 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(subpoena_id) AS count_subpoena + FROM subpoena_data ls + WHERE sub_stat_hist IS NOT NULL + GROUP BY ls.department_id, ls.mil_reg +), +t2 AS ( +SELECT + ls.mil_reg, + ls.department_id, + ROUND( + AVG( + CASE + WHEN ls.sub_stat_hist = '4.2' THEN + GREATEST(EXTRACT(DAY FROM (ls.history_date::timestamp - ls.visit_date::timestamp)), 0) + ELSE + GREATEST(EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ls.visit_date::timestamp)), 0) + END + ) FILTER (WHERE + CASE + WHEN ls.sub_stat_hist = '4.2' THEN + EXTRACT(DAY FROM (ls.history_date::timestamp - ls.visit_date::timestamp)) + ELSE + EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ls.visit_date::timestamp)) + END > 0 + ), 1 + ) AS average_appeared +FROM subpoena_data ls +GROUP BY ls.department_id, ls.mil_reg +), +t3 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(subpoena_id) AS count_appeared + FROM subpoena_data ls + WHERE sub_stat_hist IN ('4.1', '4.2') -- снесен 4 статус от 14.03.2025 + GROUP BY ls.department_id, ls.mil_reg +), +t4 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(subpoena_id) AS count_not_appeared + FROM subpoena_data ls + WHERE sub_stat_hist = '5' + GROUP BY ls.department_id, ls.mil_reg +), +t5 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(subpoena_id) AS count_not_ap_good_reason -- не явились по уважительной причине + FROM subpoena_data ls + WHERE sub_stat_hist = '5.1' + GROUP BY ls.department_id, ls.mil_reg +), +t6 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(subpoena_id) AS count_ap_not_required -- явка не требуется + FROM subpoena_data ls + WHERE sub_stat_hist IN ('3.8', '5.2') + GROUP BY ls.department_id, ls.mil_reg +), +t7 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(rdi_id) AS count_restrictions_applied + FROM subpoena_data ls + WHERE rdi_id IS NOT NULL AND restr_dc IS NULL + GROUP BY ls.department_id, ls.mil_reg +), +t8 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(rdi_id) AS count_introduced_measures + FROM subpoena_data ls + WHERE rdi_id IS NOT NULL AND restr_dc IS NULL AND ap_date IS NOT NULL + GROUP BY ls.department_id, ls.mil_reg +), +t9 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(subpoena_id) AS count_paper + FROM subpoena_data ls + WHERE d_code != '7' + GROUP BY ls.department_id, ls.mil_reg +), +t10 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(subpoena_id) AS count_electron + FROM subpoena_data ls + WHERE d_code = '7' + GROUP BY ls.department_id, ls.mil_reg +), +t11 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(rdi_id) AS count_restrictions + FROM subpoena_data ls + GROUP BY ls.department_id, ls.mil_reg +), +t12 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(subpoena_id) AS count_not_delivery + FROM subpoena_data ls + WHERE act_number IS NOT NULL + GROUP BY ls.department_id, ls.mil_reg +), +t13 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(subpoena_id) AS appear_date_is_good + FROM subpoena_data ls + WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') + GROUP BY ls.department_id, ls.mil_reg +) +SELECT + COALESCE(t1.count_subpoena, 0) AS count_subpoena, + COALESCE(t2.average_appeared, 0) AS average_appeared, + COALESCE(t3.count_appeared, 0) AS count_appeared, + COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, + COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, + COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, + COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, + COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, + COALESCE(t9.count_paper, 0) AS count_paper, + COALESCE(t10.count_electron, 0) AS count_electron, + COALESCE(t11.count_restrictions, 0) AS count_restrictions, + COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, + COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, + COALESCE(ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS appeared_percent, + COALESCE(ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_appeared_percent, + COALESCE(ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_ap_good_reason_percent, + COALESCE(ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS ap_not_required_percent, + COALESCE(ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS electron_percent, + COALESCE(ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS paper_percent, + COALESCE(ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS restrictions_applied_percent, + COALESCE(ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS introduced_measures_percent, + COALESCE(ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_delivery_percent, + COALESCE(ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS appear_date_is_good_percent, + ls.department_id AS recruitment_id, + current_date AS recording_date, + ls.mil_reg +FROM uniq_ls ls +LEFT JOIN t1 ON ls.department_id = t1.department_id + AND ls.mil_reg = t1.mil_reg +LEFT JOIN t2 ON ls.department_id = t2.department_id + AND ls.mil_reg = t2.mil_reg +LEFT JOIN t3 ON ls.department_id = t3.department_id + AND ls.mil_reg = t3.mil_reg +LEFT JOIN t4 ON ls.department_id = t4.department_id + AND ls.mil_reg = t4.mil_reg +LEFT JOIN t5 ON ls.department_id = t5.department_id + AND ls.mil_reg = t5.mil_reg +LEFT JOIN t6 ON ls.department_id = t6.department_id + AND ls.mil_reg = t6.mil_reg +LEFT JOIN t7 ON ls.department_id = t7.department_id + AND ls.mil_reg = t7.mil_reg +LEFT JOIN t8 ON ls.department_id = t8.department_id + AND ls.mil_reg = t8.mil_reg +LEFT JOIN t9 ON ls.department_id = t9.department_id + AND ls.mil_reg = t9.mil_reg +LEFT JOIN t10 ON ls.department_id = t10.department_id + AND ls.mil_reg = t10.mil_reg +LEFT JOIN t11 ON ls.department_id = t11.department_id + AND ls.mil_reg = t11.mil_reg +LEFT JOIN t12 ON ls.department_id = t12.department_id + AND ls.mil_reg = t12.mil_reg +LEFT JOIN t13 ON ls.department_id = t13.department_id + AND ls.mil_reg = t13.mil_reg; + Y + + + 816 + 384 + + + + + +
diff --git a/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas(m_c).hwf b/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas(m_c).hwf new file mode 100644 index 0000000..9ed662b --- /dev/null +++ b/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas(m_c).hwf @@ -0,0 +1,312 @@ + + + total_registered.subpoenas(m_c) + Y + + + + - + 2025/03/31 16:22:00.652 + - + 2025/03/31 16:22:00.652 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + Y + 624 + 384 + + + + total_registered.subpoenas_pr1(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr1(m_c).hpl + Basic + + + ARR_PR_1 + PART_RECRUITMENT_1 + + Y + + Y + local + N + N + Y + N + 1040 + 224 + + + + total_registered.subpoenas_pr2(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr2(m_c).hpl + Basic + + + ARR_PR_2 + PART_RECRUITMENT_2 + + Y + + Y + local + N + N + Y + N + 1040 + 304 + + + + total_registered.subpoenas_pr3(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr3(m_c).hpl + + + Basic + + + ARR_PR_3 + PART_RECRUITMENT_3 + + + Y + + Y + local + N + N + Y + N + 1040 + 384 + + + + total_registered.subpoenas_pr4(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr4(m_c).hpl + Basic + + + ARR_PR_4 + PART_RECRUITMENT_4 + + Y + + Y + local + N + N + Y + N + 1040 + 464 + + + + total_registered.subpoenas_pr5(m_c).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr5(m_c).hpl + Basic + + + ARR_PR_5 + PART_RECRUITMENT_5 + + Y + + Y + local + N + N + Y + N + 1040 + 544 + + + + Success + + SUCCESS + + N + 1392 + 224 + + + + Success 2 + + SUCCESS + + N + 1392 + 304 + + + + Success 3 + + SUCCESS + + N + 1392 + 384 + + + + Success 4 + + SUCCESS + + N + 1392 + 464 + + + + Success 5 + + SUCCESS + + N + 1392 + 544 + + + + + + Start + total_registered.subpoenas_pr1(m_c).hpl + Y + Y + Y + + + Start + total_registered.subpoenas_pr2(m_c).hpl + Y + Y + Y + + + Start + total_registered.subpoenas_pr3(m_c).hpl + Y + Y + Y + + + Start + total_registered.subpoenas_pr4(m_c).hpl + Y + Y + Y + + + Start + total_registered.subpoenas_pr5(m_c).hpl + Y + Y + Y + + + total_registered.subpoenas_pr1(m_c).hpl + Success + Y + Y + N + + + total_registered.subpoenas_pr2(m_c).hpl + Success 2 + Y + Y + N + + + total_registered.subpoenas_pr3(m_c).hpl + Success 3 + Y + Y + N + + + total_registered.subpoenas_pr4(m_c).hpl + Success 4 + Y + Y + N + + + total_registered.subpoenas_pr5(m_c).hpl + Success 5 + Y + Y + N + + + + + + diff --git a/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr1(m_c).hpl b/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr1(m_c).hpl new file mode 100644 index 0000000..0622fdc --- /dev/null +++ b/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr1(m_c).hpl @@ -0,0 +1,490 @@ + + + + total_registered.subpoenas_pr1(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (subpoena) регион/рег + Insert / update (total_registered.subpoenas) 3 + Y + + + + Insert / update (total_registered.subpoenas) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + mil_reg + mil_reg + + total_registered + subpoenas
+ + subpoena + count_subpoena + Y + + + appeared + count_appeared + Y + + + average_appeared + average_appeared + Y + + + not_appeared + count_not_appeared + Y + + + not_ap_good_reason + count_not_ap_good_reason + Y + + + introduced_measures + count_introduced_measures + Y + + + ap_not_required + count_ap_not_required + Y + + + electron + count_electron + Y + + + paper + count_paper + Y + + + restrictions_applied + count_restrictions_applied + Y + + + recruitment_id + recruitment_id + N + + + mil_reg + mil_reg + N + + + appeared_percent + appeared_percent + Y + + + not_appeared_percent + not_appeared_percent + Y + + + not_ap_good_reason_percent + not_ap_good_reason_percent + Y + + + ap_not_required_percent + ap_not_required_percent + Y + + + electron_percent + electron_percent + Y + + + paper_percent + paper_percent + Y + + + restrictions_applied_percent + restrictions_applied_percent + Y + + + introduced_measures_percent + introduced_measures_percent + Y + + + count_not_delivery + count_not_delivery + Y + + + appear_date_is_good + appear_date_is_good + Y + + + not_delivery_percent + not_delivery_percent + Y + + + appear_date_is_good_percent + appear_date_is_good_percent + Y + +
+ N + + + 1472 + 384 + +
+ + Table input (subpoena) регион/рег + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_1}'), ','))::uuid AS recruitment_id +), +subpoena_data AS ( + SELECT + s.id AS subpoena_id, + s.recruit_id, + s.department_id::uuid, + s.status_id, + (CASE + WHEN sr.type = '1' THEN 0 + WHEN sr.type != '1' THEN 1 + ELSE NULL + END)::numeric AS mil_reg, + ssh.code AS sub_stat_hist, + s.send_date, + sh.date_time::timestamp AS history_date, + rdi.restriction_document_cancel_id AS restr_dc, + rdi.applied_date AS ap_date, + rdi.id AS rdi_id, + rdi.status_applied, + ssi.delivery_code AS d_code, + ssi.act_number, + s.visit_date, + sh.rn, + rd.rn_d, + --rdi.rn_di, + ssi.rn_si + FROM subpoena s + JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY date_time DESC) AS rn, + subpoena_id, + status_id, + date_time + FROM subpoena_history sh + ) sh on sh.subpoena_id = s.id + JOIN subpoena_status AS ssh ON ssh.id = sh.status_id + JOIN subpoena_reason AS sr ON sr.id = s.reason_id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY created_at DESC) AS rn_d, + subpoena_id, + id + FROM restriction_document + ) AS rd ON rd.subpoena_id = s.id + LEFT JOIN ( + SELECT + restriction_document_create_id, + restriction_document_cancel_id, + status_applied, + applied_date, + id + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY restriction_document_create_id ORDER BY created_at DESC) AS rn_di, + * + FROM restriction_document_item + ) sub + WHERE rn_di = 1 + ) AS rdi ON rdi.restriction_document_create_id = rd.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY send_date DESC) AS rn_si, + subpoena_id, + delivery_code, + act_number + FROM subpoena_send_info + --WHERE act_number is not null + ) AS ssi ON ssi.subpoena_id = s.id + WHERE --sh.rn = 1 AND rd.rn_d = 1 /*AND rdi.rn_di = 1*/-- AND ssi.rn_si = 1 + --AND + sr.type IS NOT NULL + AND ssh.code NOT IN ('3.7','3.72', '3.71') -- 3.14 снесено от 14.03.2025 + AND s.department_id::uuid IN (SELECT recruitment_id FROM ids) + AND EXISTS ( + SELECT 1 + FROM subpoena_history sh2 + WHERE sh2.subpoena_id = s.id + AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') + ) +), +uniq_ls AS ( + SELECT + distinct + department_id, + mil_reg + FROM subpoena_data +), +t1 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_subpoena + FROM subpoena_data ls + WHERE sub_stat_hist IS NOT NULL and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t2 AS ( +SELECT + ls.mil_reg, + ls.department_id, + ROUND( + AVG( + CASE + WHEN ls.sub_stat_hist = '4.2' THEN + GREATEST(EXTRACT(DAY FROM (ls.history_date::timestamp - ls.visit_date::timestamp)), 0) + ELSE + GREATEST(EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ls.visit_date::timestamp)), 0) + END + ) FILTER (WHERE + CASE + WHEN ls.sub_stat_hist = '4.2' THEN + EXTRACT(DAY FROM (ls.history_date::timestamp - ls.visit_date::timestamp)) + ELSE + EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ls.visit_date::timestamp)) + END > 0 + ), 1 + ) AS average_appeared +FROM subpoena_data ls +where rn = 1 +GROUP BY ls.department_id, ls.mil_reg +), +t3 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_appeared + FROM subpoena_data ls + WHERE sub_stat_hist IN ('4.1', '4.2') and rn = 1 -- снесен 4 статус от 14.03.2025 + GROUP BY ls.department_id, ls.mil_reg +), +t4 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_not_appeared + FROM subpoena_data ls + WHERE sub_stat_hist = '5' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t5 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_not_ap_good_reason -- не явились по уважительной причине + FROM subpoena_data ls + WHERE sub_stat_hist = '5.1' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t6 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_ap_not_required -- явка не требуется + FROM subpoena_data ls + WHERE sub_stat_hist IN ('3.8', '5.2') and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t7 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct recruit_id) AS count_restrictions_applied + FROM subpoena_data ls + WHERE rdi_id IS NOT NULL AND restr_dc IS NULL and rn = 1 and rn_d = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t8 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct recruit_id) AS count_introduced_measures + FROM subpoena_data ls + WHERE status_applied = '11' and rn = 1 and rn_d = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t9 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_paper + FROM subpoena_data ls + WHERE d_code != '7' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t10 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_electron + FROM subpoena_data ls + WHERE d_code = '7' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t11 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct rdi_id) AS count_restrictions + FROM subpoena_data ls + where rn_d = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t12 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_not_delivery + FROM subpoena_data ls + WHERE act_number IS NOT NULL and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t13 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS appear_date_is_good + FROM subpoena_data ls + WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +) +SELECT + COALESCE(t1.count_subpoena, 0) AS count_subpoena, + COALESCE(t2.average_appeared, 0) AS average_appeared, + COALESCE(t3.count_appeared, 0) AS count_appeared, + COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, + COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, + COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, + COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, + COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, + COALESCE(t9.count_paper, 0) AS count_paper, + COALESCE(t10.count_electron, 0) AS count_electron, + COALESCE(t11.count_restrictions, 0) AS count_restrictions, + COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, + COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, + COALESCE(ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS appeared_percent, + COALESCE(ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_appeared_percent, + COALESCE(ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_ap_good_reason_percent, + COALESCE(ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS ap_not_required_percent, + COALESCE(ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS electron_percent, + COALESCE(ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS paper_percent, + COALESCE(ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS restrictions_applied_percent, + COALESCE(ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS introduced_measures_percent, + COALESCE(ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_delivery_percent, + COALESCE(ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS appear_date_is_good_percent, + ls.department_id AS recruitment_id, + current_date AS recording_date, + ls.mil_reg +FROM uniq_ls ls +LEFT JOIN t1 ON ls.department_id = t1.department_id + AND ls.mil_reg = t1.mil_reg +LEFT JOIN t2 ON ls.department_id = t2.department_id + AND ls.mil_reg = t2.mil_reg +LEFT JOIN t3 ON ls.department_id = t3.department_id + AND ls.mil_reg = t3.mil_reg +LEFT JOIN t4 ON ls.department_id = t4.department_id + AND ls.mil_reg = t4.mil_reg +LEFT JOIN t5 ON ls.department_id = t5.department_id + AND ls.mil_reg = t5.mil_reg +LEFT JOIN t6 ON ls.department_id = t6.department_id + AND ls.mil_reg = t6.mil_reg +LEFT JOIN t7 ON ls.department_id = t7.department_id + AND ls.mil_reg = t7.mil_reg +LEFT JOIN t8 ON ls.department_id = t8.department_id + AND ls.mil_reg = t8.mil_reg +LEFT JOIN t9 ON ls.department_id = t9.department_id + AND ls.mil_reg = t9.mil_reg +LEFT JOIN t10 ON ls.department_id = t10.department_id + AND ls.mil_reg = t10.mil_reg +LEFT JOIN t11 ON ls.department_id = t11.department_id + AND ls.mil_reg = t11.mil_reg +LEFT JOIN t12 ON ls.department_id = t12.department_id + AND ls.mil_reg = t12.mil_reg +LEFT JOIN t13 ON ls.department_id = t13.department_id + AND ls.mil_reg = t13.mil_reg; + Y + + + 816 + 384 + + + + + +
diff --git a/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr2(m_c).hpl b/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr2(m_c).hpl new file mode 100644 index 0000000..cbeff24 --- /dev/null +++ b/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr2(m_c).hpl @@ -0,0 +1,490 @@ + + + + total_registered.subpoenas_pr2(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (subpoena) регион/рег + Insert / update (total_registered.subpoenas) 3 + Y + + + + Insert / update (total_registered.subpoenas) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + mil_reg + mil_reg + + total_registered + subpoenas
+ + subpoena + count_subpoena + Y + + + appeared + count_appeared + Y + + + average_appeared + average_appeared + Y + + + not_appeared + count_not_appeared + Y + + + not_ap_good_reason + count_not_ap_good_reason + Y + + + introduced_measures + count_introduced_measures + Y + + + ap_not_required + count_ap_not_required + Y + + + electron + count_electron + Y + + + paper + count_paper + Y + + + restrictions_applied + count_restrictions_applied + Y + + + recruitment_id + recruitment_id + N + + + mil_reg + mil_reg + N + + + appeared_percent + appeared_percent + Y + + + not_appeared_percent + not_appeared_percent + Y + + + not_ap_good_reason_percent + not_ap_good_reason_percent + Y + + + ap_not_required_percent + ap_not_required_percent + Y + + + electron_percent + electron_percent + Y + + + paper_percent + paper_percent + Y + + + restrictions_applied_percent + restrictions_applied_percent + Y + + + introduced_measures_percent + introduced_measures_percent + Y + + + count_not_delivery + count_not_delivery + Y + + + appear_date_is_good + appear_date_is_good + Y + + + not_delivery_percent + not_delivery_percent + Y + + + appear_date_is_good_percent + appear_date_is_good_percent + Y + +
+ N + + + 1472 + 384 + +
+ + Table input (subpoena) регион/рег + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_2}'), ','))::uuid AS recruitment_id +), +subpoena_data AS ( + SELECT + s.id AS subpoena_id, + s.recruit_id, + s.department_id::uuid, + s.status_id, + (CASE + WHEN sr.type = '1' THEN 0 + WHEN sr.type != '1' THEN 1 + ELSE NULL + END)::numeric AS mil_reg, + ssh.code AS sub_stat_hist, + s.send_date, + sh.date_time::timestamp AS history_date, + rdi.restriction_document_cancel_id AS restr_dc, + rdi.applied_date AS ap_date, + rdi.id AS rdi_id, + rdi.status_applied, + ssi.delivery_code AS d_code, + ssi.act_number, + s.visit_date, + sh.rn, + rd.rn_d, + --rdi.rn_di, + ssi.rn_si + FROM subpoena s + JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY date_time DESC) AS rn, + subpoena_id, + status_id, + date_time + FROM subpoena_history sh + ) sh on sh.subpoena_id = s.id + JOIN subpoena_status AS ssh ON ssh.id = sh.status_id + JOIN subpoena_reason AS sr ON sr.id = s.reason_id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY created_at DESC) AS rn_d, + subpoena_id, + id + FROM restriction_document + ) AS rd ON rd.subpoena_id = s.id + LEFT JOIN ( + SELECT + restriction_document_create_id, + restriction_document_cancel_id, + status_applied, + applied_date, + id + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY restriction_document_create_id ORDER BY created_at DESC) AS rn_di, + * + FROM restriction_document_item + ) sub + WHERE rn_di = 1 + ) AS rdi ON rdi.restriction_document_create_id = rd.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY send_date DESC) AS rn_si, + subpoena_id, + delivery_code, + act_number + FROM subpoena_send_info + --WHERE act_number is not null + ) AS ssi ON ssi.subpoena_id = s.id + WHERE --sh.rn = 1 AND rd.rn_d = 1 /*AND rdi.rn_di = 1*/-- AND ssi.rn_si = 1 + --AND + sr.type IS NOT NULL + AND ssh.code NOT IN ('3.7','3.72', '3.71') -- 3.14 снесено от 14.03.2025 + AND s.department_id::uuid IN (SELECT recruitment_id FROM ids) + AND EXISTS ( + SELECT 1 + FROM subpoena_history sh2 + WHERE sh2.subpoena_id = s.id + AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') + ) +), +uniq_ls AS ( + SELECT + distinct + department_id, + mil_reg + FROM subpoena_data +), +t1 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_subpoena + FROM subpoena_data ls + WHERE sub_stat_hist IS NOT NULL and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t2 AS ( +SELECT + ls.mil_reg, + ls.department_id, + ROUND( + AVG( + CASE + WHEN ls.sub_stat_hist = '4.2' THEN + GREATEST(EXTRACT(DAY FROM (ls.history_date::timestamp - ls.visit_date::timestamp)), 0) + ELSE + GREATEST(EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ls.visit_date::timestamp)), 0) + END + ) FILTER (WHERE + CASE + WHEN ls.sub_stat_hist = '4.2' THEN + EXTRACT(DAY FROM (ls.history_date::timestamp - ls.visit_date::timestamp)) + ELSE + EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ls.visit_date::timestamp)) + END > 0 + ), 1 + ) AS average_appeared +FROM subpoena_data ls +where rn = 1 +GROUP BY ls.department_id, ls.mil_reg +), +t3 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_appeared + FROM subpoena_data ls + WHERE sub_stat_hist IN ('4.1', '4.2') and rn = 1 -- снесен 4 статус от 14.03.2025 + GROUP BY ls.department_id, ls.mil_reg +), +t4 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_not_appeared + FROM subpoena_data ls + WHERE sub_stat_hist = '5' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t5 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_not_ap_good_reason -- не явились по уважительной причине + FROM subpoena_data ls + WHERE sub_stat_hist = '5.1' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t6 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_ap_not_required -- явка не требуется + FROM subpoena_data ls + WHERE sub_stat_hist IN ('3.8', '5.2') and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t7 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct recruit_id) AS count_restrictions_applied + FROM subpoena_data ls + WHERE rdi_id IS NOT NULL AND restr_dc IS NULL and rn = 1 and rn_d = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t8 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct recruit_id) AS count_introduced_measures + FROM subpoena_data ls + WHERE status_applied = '11' and rn = 1 and rn_d = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t9 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_paper + FROM subpoena_data ls + WHERE d_code != '7' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t10 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_electron + FROM subpoena_data ls + WHERE d_code = '7' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t11 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct rdi_id) AS count_restrictions + FROM subpoena_data ls + where rn_d = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t12 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_not_delivery + FROM subpoena_data ls + WHERE act_number IS NOT NULL and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t13 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS appear_date_is_good + FROM subpoena_data ls + WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +) +SELECT + COALESCE(t1.count_subpoena, 0) AS count_subpoena, + COALESCE(t2.average_appeared, 0) AS average_appeared, + COALESCE(t3.count_appeared, 0) AS count_appeared, + COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, + COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, + COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, + COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, + COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, + COALESCE(t9.count_paper, 0) AS count_paper, + COALESCE(t10.count_electron, 0) AS count_electron, + COALESCE(t11.count_restrictions, 0) AS count_restrictions, + COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, + COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, + COALESCE(ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS appeared_percent, + COALESCE(ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_appeared_percent, + COALESCE(ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_ap_good_reason_percent, + COALESCE(ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS ap_not_required_percent, + COALESCE(ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS electron_percent, + COALESCE(ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS paper_percent, + COALESCE(ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS restrictions_applied_percent, + COALESCE(ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS introduced_measures_percent, + COALESCE(ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_delivery_percent, + COALESCE(ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS appear_date_is_good_percent, + ls.department_id AS recruitment_id, + current_date AS recording_date, + ls.mil_reg +FROM uniq_ls ls +LEFT JOIN t1 ON ls.department_id = t1.department_id + AND ls.mil_reg = t1.mil_reg +LEFT JOIN t2 ON ls.department_id = t2.department_id + AND ls.mil_reg = t2.mil_reg +LEFT JOIN t3 ON ls.department_id = t3.department_id + AND ls.mil_reg = t3.mil_reg +LEFT JOIN t4 ON ls.department_id = t4.department_id + AND ls.mil_reg = t4.mil_reg +LEFT JOIN t5 ON ls.department_id = t5.department_id + AND ls.mil_reg = t5.mil_reg +LEFT JOIN t6 ON ls.department_id = t6.department_id + AND ls.mil_reg = t6.mil_reg +LEFT JOIN t7 ON ls.department_id = t7.department_id + AND ls.mil_reg = t7.mil_reg +LEFT JOIN t8 ON ls.department_id = t8.department_id + AND ls.mil_reg = t8.mil_reg +LEFT JOIN t9 ON ls.department_id = t9.department_id + AND ls.mil_reg = t9.mil_reg +LEFT JOIN t10 ON ls.department_id = t10.department_id + AND ls.mil_reg = t10.mil_reg +LEFT JOIN t11 ON ls.department_id = t11.department_id + AND ls.mil_reg = t11.mil_reg +LEFT JOIN t12 ON ls.department_id = t12.department_id + AND ls.mil_reg = t12.mil_reg +LEFT JOIN t13 ON ls.department_id = t13.department_id + AND ls.mil_reg = t13.mil_reg; + Y + + + 816 + 384 + + + + + +
diff --git a/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr3(m_c).hpl b/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr3(m_c).hpl new file mode 100644 index 0000000..3e661b4 --- /dev/null +++ b/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr3(m_c).hpl @@ -0,0 +1,490 @@ + + + + total_registered.subpoenas_pr3(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (subpoena) регион/рег + Insert / update (total_registered.subpoenas) 3 + Y + + + + Insert / update (total_registered.subpoenas) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + mil_reg + mil_reg + + total_registered + subpoenas
+ + subpoena + count_subpoena + Y + + + appeared + count_appeared + Y + + + average_appeared + average_appeared + Y + + + not_appeared + count_not_appeared + Y + + + not_ap_good_reason + count_not_ap_good_reason + Y + + + introduced_measures + count_introduced_measures + Y + + + ap_not_required + count_ap_not_required + Y + + + electron + count_electron + Y + + + paper + count_paper + Y + + + restrictions_applied + count_restrictions_applied + Y + + + recruitment_id + recruitment_id + N + + + mil_reg + mil_reg + N + + + appeared_percent + appeared_percent + Y + + + not_appeared_percent + not_appeared_percent + Y + + + not_ap_good_reason_percent + not_ap_good_reason_percent + Y + + + ap_not_required_percent + ap_not_required_percent + Y + + + electron_percent + electron_percent + Y + + + paper_percent + paper_percent + Y + + + restrictions_applied_percent + restrictions_applied_percent + Y + + + introduced_measures_percent + introduced_measures_percent + Y + + + count_not_delivery + count_not_delivery + Y + + + appear_date_is_good + appear_date_is_good + Y + + + not_delivery_percent + not_delivery_percent + Y + + + appear_date_is_good_percent + appear_date_is_good_percent + Y + +
+ N + + + 1472 + 384 + +
+ + Table input (subpoena) регион/рег + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_3}'), ','))::uuid AS recruitment_id +), +subpoena_data AS ( + SELECT + s.id AS subpoena_id, + s.recruit_id, + s.department_id::uuid, + s.status_id, + (CASE + WHEN sr.type = '1' THEN 0 + WHEN sr.type != '1' THEN 1 + ELSE NULL + END)::numeric AS mil_reg, + ssh.code AS sub_stat_hist, + s.send_date, + sh.date_time::timestamp AS history_date, + rdi.restriction_document_cancel_id AS restr_dc, + rdi.applied_date AS ap_date, + rdi.id AS rdi_id, + rdi.status_applied, + ssi.delivery_code AS d_code, + ssi.act_number, + s.visit_date, + sh.rn, + rd.rn_d, + --rdi.rn_di, + ssi.rn_si + FROM subpoena s + JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY date_time DESC) AS rn, + subpoena_id, + status_id, + date_time + FROM subpoena_history sh + ) sh on sh.subpoena_id = s.id + JOIN subpoena_status AS ssh ON ssh.id = sh.status_id + JOIN subpoena_reason AS sr ON sr.id = s.reason_id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY created_at DESC) AS rn_d, + subpoena_id, + id + FROM restriction_document + ) AS rd ON rd.subpoena_id = s.id + LEFT JOIN ( + SELECT + restriction_document_create_id, + restriction_document_cancel_id, + status_applied, + applied_date, + id + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY restriction_document_create_id ORDER BY created_at DESC) AS rn_di, + * + FROM restriction_document_item + ) sub + WHERE rn_di = 1 + ) AS rdi ON rdi.restriction_document_create_id = rd.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY send_date DESC) AS rn_si, + subpoena_id, + delivery_code, + act_number + FROM subpoena_send_info + --WHERE act_number is not null + ) AS ssi ON ssi.subpoena_id = s.id + WHERE --sh.rn = 1 AND rd.rn_d = 1 /*AND rdi.rn_di = 1*/-- AND ssi.rn_si = 1 + --AND + sr.type IS NOT NULL + AND ssh.code NOT IN ('3.7','3.72', '3.71') -- 3.14 снесено от 14.03.2025 + AND s.department_id::uuid IN (SELECT recruitment_id FROM ids) + AND EXISTS ( + SELECT 1 + FROM subpoena_history sh2 + WHERE sh2.subpoena_id = s.id + AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') + ) +), +uniq_ls AS ( + SELECT + distinct + department_id, + mil_reg + FROM subpoena_data +), +t1 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_subpoena + FROM subpoena_data ls + WHERE sub_stat_hist IS NOT NULL and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t2 AS ( +SELECT + ls.mil_reg, + ls.department_id, + ROUND( + AVG( + CASE + WHEN ls.sub_stat_hist = '4.2' THEN + GREATEST(EXTRACT(DAY FROM (ls.history_date::timestamp - ls.visit_date::timestamp)), 0) + ELSE + GREATEST(EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ls.visit_date::timestamp)), 0) + END + ) FILTER (WHERE + CASE + WHEN ls.sub_stat_hist = '4.2' THEN + EXTRACT(DAY FROM (ls.history_date::timestamp - ls.visit_date::timestamp)) + ELSE + EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ls.visit_date::timestamp)) + END > 0 + ), 1 + ) AS average_appeared +FROM subpoena_data ls +where rn = 1 +GROUP BY ls.department_id, ls.mil_reg +), +t3 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_appeared + FROM subpoena_data ls + WHERE sub_stat_hist IN ('4.1', '4.2') and rn = 1 -- снесен 4 статус от 14.03.2025 + GROUP BY ls.department_id, ls.mil_reg +), +t4 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_not_appeared + FROM subpoena_data ls + WHERE sub_stat_hist = '5' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t5 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_not_ap_good_reason -- не явились по уважительной причине + FROM subpoena_data ls + WHERE sub_stat_hist = '5.1' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t6 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_ap_not_required -- явка не требуется + FROM subpoena_data ls + WHERE sub_stat_hist IN ('3.8', '5.2') and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t7 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct recruit_id) AS count_restrictions_applied + FROM subpoena_data ls + WHERE rdi_id IS NOT NULL AND restr_dc IS NULL and rn = 1 and rn_d = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t8 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct recruit_id) AS count_introduced_measures + FROM subpoena_data ls + WHERE status_applied = '11' and rn = 1 and rn_d = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t9 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_paper + FROM subpoena_data ls + WHERE d_code != '7' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t10 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_electron + FROM subpoena_data ls + WHERE d_code = '7' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t11 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct rdi_id) AS count_restrictions + FROM subpoena_data ls + where rn_d = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t12 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_not_delivery + FROM subpoena_data ls + WHERE act_number IS NOT NULL and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t13 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS appear_date_is_good + FROM subpoena_data ls + WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +) +SELECT + COALESCE(t1.count_subpoena, 0) AS count_subpoena, + COALESCE(t2.average_appeared, 0) AS average_appeared, + COALESCE(t3.count_appeared, 0) AS count_appeared, + COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, + COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, + COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, + COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, + COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, + COALESCE(t9.count_paper, 0) AS count_paper, + COALESCE(t10.count_electron, 0) AS count_electron, + COALESCE(t11.count_restrictions, 0) AS count_restrictions, + COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, + COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, + COALESCE(ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS appeared_percent, + COALESCE(ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_appeared_percent, + COALESCE(ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_ap_good_reason_percent, + COALESCE(ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS ap_not_required_percent, + COALESCE(ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS electron_percent, + COALESCE(ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS paper_percent, + COALESCE(ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS restrictions_applied_percent, + COALESCE(ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS introduced_measures_percent, + COALESCE(ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_delivery_percent, + COALESCE(ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS appear_date_is_good_percent, + ls.department_id AS recruitment_id, + current_date AS recording_date, + ls.mil_reg +FROM uniq_ls ls +LEFT JOIN t1 ON ls.department_id = t1.department_id + AND ls.mil_reg = t1.mil_reg +LEFT JOIN t2 ON ls.department_id = t2.department_id + AND ls.mil_reg = t2.mil_reg +LEFT JOIN t3 ON ls.department_id = t3.department_id + AND ls.mil_reg = t3.mil_reg +LEFT JOIN t4 ON ls.department_id = t4.department_id + AND ls.mil_reg = t4.mil_reg +LEFT JOIN t5 ON ls.department_id = t5.department_id + AND ls.mil_reg = t5.mil_reg +LEFT JOIN t6 ON ls.department_id = t6.department_id + AND ls.mil_reg = t6.mil_reg +LEFT JOIN t7 ON ls.department_id = t7.department_id + AND ls.mil_reg = t7.mil_reg +LEFT JOIN t8 ON ls.department_id = t8.department_id + AND ls.mil_reg = t8.mil_reg +LEFT JOIN t9 ON ls.department_id = t9.department_id + AND ls.mil_reg = t9.mil_reg +LEFT JOIN t10 ON ls.department_id = t10.department_id + AND ls.mil_reg = t10.mil_reg +LEFT JOIN t11 ON ls.department_id = t11.department_id + AND ls.mil_reg = t11.mil_reg +LEFT JOIN t12 ON ls.department_id = t12.department_id + AND ls.mil_reg = t12.mil_reg +LEFT JOIN t13 ON ls.department_id = t13.department_id + AND ls.mil_reg = t13.mil_reg; + Y + + + 816 + 384 + + + + + +
diff --git a/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr4(m_c).hpl b/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr4(m_c).hpl new file mode 100644 index 0000000..35c168a --- /dev/null +++ b/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr4(m_c).hpl @@ -0,0 +1,490 @@ + + + + total_registered.subpoenas_pr4(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (subpoena) регион/рег + Insert / update (total_registered.subpoenas) 3 + Y + + + + Insert / update (total_registered.subpoenas) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + mil_reg + mil_reg + + total_registered + subpoenas
+ + subpoena + count_subpoena + Y + + + appeared + count_appeared + Y + + + average_appeared + average_appeared + Y + + + not_appeared + count_not_appeared + Y + + + not_ap_good_reason + count_not_ap_good_reason + Y + + + introduced_measures + count_introduced_measures + Y + + + ap_not_required + count_ap_not_required + Y + + + electron + count_electron + Y + + + paper + count_paper + Y + + + restrictions_applied + count_restrictions_applied + Y + + + recruitment_id + recruitment_id + N + + + mil_reg + mil_reg + N + + + appeared_percent + appeared_percent + Y + + + not_appeared_percent + not_appeared_percent + Y + + + not_ap_good_reason_percent + not_ap_good_reason_percent + Y + + + ap_not_required_percent + ap_not_required_percent + Y + + + electron_percent + electron_percent + Y + + + paper_percent + paper_percent + Y + + + restrictions_applied_percent + restrictions_applied_percent + Y + + + introduced_measures_percent + introduced_measures_percent + Y + + + count_not_delivery + count_not_delivery + Y + + + appear_date_is_good + appear_date_is_good + Y + + + not_delivery_percent + not_delivery_percent + Y + + + appear_date_is_good_percent + appear_date_is_good_percent + Y + +
+ N + + + 1472 + 384 + +
+ + Table input (subpoena) регион/рег + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_4}'), ','))::uuid AS recruitment_id +), +subpoena_data AS ( + SELECT + s.id AS subpoena_id, + s.recruit_id, + s.department_id::uuid, + s.status_id, + (CASE + WHEN sr.type = '1' THEN 0 + WHEN sr.type != '1' THEN 1 + ELSE NULL + END)::numeric AS mil_reg, + ssh.code AS sub_stat_hist, + s.send_date, + sh.date_time::timestamp AS history_date, + rdi.restriction_document_cancel_id AS restr_dc, + rdi.applied_date AS ap_date, + rdi.id AS rdi_id, + rdi.status_applied, + ssi.delivery_code AS d_code, + ssi.act_number, + s.visit_date, + sh.rn, + rd.rn_d, + --rdi.rn_di, + ssi.rn_si + FROM subpoena s + JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY date_time DESC) AS rn, + subpoena_id, + status_id, + date_time + FROM subpoena_history sh + ) sh on sh.subpoena_id = s.id + JOIN subpoena_status AS ssh ON ssh.id = sh.status_id + JOIN subpoena_reason AS sr ON sr.id = s.reason_id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY created_at DESC) AS rn_d, + subpoena_id, + id + FROM restriction_document + ) AS rd ON rd.subpoena_id = s.id + LEFT JOIN ( + SELECT + restriction_document_create_id, + restriction_document_cancel_id, + status_applied, + applied_date, + id + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY restriction_document_create_id ORDER BY created_at DESC) AS rn_di, + * + FROM restriction_document_item + ) sub + WHERE rn_di = 1 + ) AS rdi ON rdi.restriction_document_create_id = rd.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY send_date DESC) AS rn_si, + subpoena_id, + delivery_code, + act_number + FROM subpoena_send_info + --WHERE act_number is not null + ) AS ssi ON ssi.subpoena_id = s.id + WHERE --sh.rn = 1 AND rd.rn_d = 1 /*AND rdi.rn_di = 1*/-- AND ssi.rn_si = 1 + --AND + sr.type IS NOT NULL + AND ssh.code NOT IN ('3.7','3.72', '3.71') -- 3.14 снесено от 14.03.2025 + AND s.department_id::uuid IN (SELECT recruitment_id FROM ids) + AND EXISTS ( + SELECT 1 + FROM subpoena_history sh2 + WHERE sh2.subpoena_id = s.id + AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') + ) +), +uniq_ls AS ( + SELECT + distinct + department_id, + mil_reg + FROM subpoena_data +), +t1 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_subpoena + FROM subpoena_data ls + WHERE sub_stat_hist IS NOT NULL and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t2 AS ( +SELECT + ls.mil_reg, + ls.department_id, + ROUND( + AVG( + CASE + WHEN ls.sub_stat_hist = '4.2' THEN + GREATEST(EXTRACT(DAY FROM (ls.history_date::timestamp - ls.visit_date::timestamp)), 0) + ELSE + GREATEST(EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ls.visit_date::timestamp)), 0) + END + ) FILTER (WHERE + CASE + WHEN ls.sub_stat_hist = '4.2' THEN + EXTRACT(DAY FROM (ls.history_date::timestamp - ls.visit_date::timestamp)) + ELSE + EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ls.visit_date::timestamp)) + END > 0 + ), 1 + ) AS average_appeared +FROM subpoena_data ls +where rn = 1 +GROUP BY ls.department_id, ls.mil_reg +), +t3 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_appeared + FROM subpoena_data ls + WHERE sub_stat_hist IN ('4.1', '4.2') and rn = 1 -- снесен 4 статус от 14.03.2025 + GROUP BY ls.department_id, ls.mil_reg +), +t4 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_not_appeared + FROM subpoena_data ls + WHERE sub_stat_hist = '5' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t5 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_not_ap_good_reason -- не явились по уважительной причине + FROM subpoena_data ls + WHERE sub_stat_hist = '5.1' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t6 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_ap_not_required -- явка не требуется + FROM subpoena_data ls + WHERE sub_stat_hist IN ('3.8', '5.2') and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t7 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct recruit_id) AS count_restrictions_applied + FROM subpoena_data ls + WHERE rdi_id IS NOT NULL AND restr_dc IS NULL and rn = 1 and rn_d = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t8 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct recruit_id) AS count_introduced_measures + FROM subpoena_data ls + WHERE status_applied = '11' and rn = 1 and rn_d = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t9 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_paper + FROM subpoena_data ls + WHERE d_code != '7' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t10 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_electron + FROM subpoena_data ls + WHERE d_code = '7' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t11 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct rdi_id) AS count_restrictions + FROM subpoena_data ls + where rn_d = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t12 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_not_delivery + FROM subpoena_data ls + WHERE act_number IS NOT NULL and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t13 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS appear_date_is_good + FROM subpoena_data ls + WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +) +SELECT + COALESCE(t1.count_subpoena, 0) AS count_subpoena, + COALESCE(t2.average_appeared, 0) AS average_appeared, + COALESCE(t3.count_appeared, 0) AS count_appeared, + COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, + COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, + COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, + COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, + COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, + COALESCE(t9.count_paper, 0) AS count_paper, + COALESCE(t10.count_electron, 0) AS count_electron, + COALESCE(t11.count_restrictions, 0) AS count_restrictions, + COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, + COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, + COALESCE(ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS appeared_percent, + COALESCE(ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_appeared_percent, + COALESCE(ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_ap_good_reason_percent, + COALESCE(ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS ap_not_required_percent, + COALESCE(ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS electron_percent, + COALESCE(ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS paper_percent, + COALESCE(ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS restrictions_applied_percent, + COALESCE(ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS introduced_measures_percent, + COALESCE(ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_delivery_percent, + COALESCE(ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS appear_date_is_good_percent, + ls.department_id AS recruitment_id, + current_date AS recording_date, + ls.mil_reg +FROM uniq_ls ls +LEFT JOIN t1 ON ls.department_id = t1.department_id + AND ls.mil_reg = t1.mil_reg +LEFT JOIN t2 ON ls.department_id = t2.department_id + AND ls.mil_reg = t2.mil_reg +LEFT JOIN t3 ON ls.department_id = t3.department_id + AND ls.mil_reg = t3.mil_reg +LEFT JOIN t4 ON ls.department_id = t4.department_id + AND ls.mil_reg = t4.mil_reg +LEFT JOIN t5 ON ls.department_id = t5.department_id + AND ls.mil_reg = t5.mil_reg +LEFT JOIN t6 ON ls.department_id = t6.department_id + AND ls.mil_reg = t6.mil_reg +LEFT JOIN t7 ON ls.department_id = t7.department_id + AND ls.mil_reg = t7.mil_reg +LEFT JOIN t8 ON ls.department_id = t8.department_id + AND ls.mil_reg = t8.mil_reg +LEFT JOIN t9 ON ls.department_id = t9.department_id + AND ls.mil_reg = t9.mil_reg +LEFT JOIN t10 ON ls.department_id = t10.department_id + AND ls.mil_reg = t10.mil_reg +LEFT JOIN t11 ON ls.department_id = t11.department_id + AND ls.mil_reg = t11.mil_reg +LEFT JOIN t12 ON ls.department_id = t12.department_id + AND ls.mil_reg = t12.mil_reg +LEFT JOIN t13 ON ls.department_id = t13.department_id + AND ls.mil_reg = t13.mil_reg; + Y + + + 816 + 384 + + + + + +
diff --git a/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr5(m_c).hpl b/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr5(m_c).hpl new file mode 100644 index 0000000..a929b9f --- /dev/null +++ b/mappings/mil_com/total_registered.subpoenas(m_c)/total_registered.subpoenas_pr5(m_c).hpl @@ -0,0 +1,490 @@ + + + + total_registered.subpoenas_pr5(m_c) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Table input (subpoena) регион/рег + Insert / update (total_registered.subpoenas) 3 + Y + + + + Insert / update (total_registered.subpoenas) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + mil_reg + mil_reg + + total_registered + subpoenas
+ + subpoena + count_subpoena + Y + + + appeared + count_appeared + Y + + + average_appeared + average_appeared + Y + + + not_appeared + count_not_appeared + Y + + + not_ap_good_reason + count_not_ap_good_reason + Y + + + introduced_measures + count_introduced_measures + Y + + + ap_not_required + count_ap_not_required + Y + + + electron + count_electron + Y + + + paper + count_paper + Y + + + restrictions_applied + count_restrictions_applied + Y + + + recruitment_id + recruitment_id + N + + + mil_reg + mil_reg + N + + + appeared_percent + appeared_percent + Y + + + not_appeared_percent + not_appeared_percent + Y + + + not_ap_good_reason_percent + not_ap_good_reason_percent + Y + + + ap_not_required_percent + ap_not_required_percent + Y + + + electron_percent + electron_percent + Y + + + paper_percent + paper_percent + Y + + + restrictions_applied_percent + restrictions_applied_percent + Y + + + introduced_measures_percent + introduced_measures_percent + Y + + + count_not_delivery + count_not_delivery + Y + + + appear_date_is_good + appear_date_is_good + Y + + + not_delivery_percent + not_delivery_percent + Y + + + appear_date_is_good_percent + appear_date_is_good_percent + Y + +
+ N + + + 1472 + 384 + +
+ + Table input (subpoena) регион/рег + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_PR_5}'), ','))::uuid AS recruitment_id +), +subpoena_data AS ( + SELECT + s.id AS subpoena_id, + s.recruit_id, + s.department_id::uuid, + s.status_id, + (CASE + WHEN sr.type = '1' THEN 0 + WHEN sr.type != '1' THEN 1 + ELSE NULL + END)::numeric AS mil_reg, + ssh.code AS sub_stat_hist, + s.send_date, + sh.date_time::timestamp AS history_date, + rdi.restriction_document_cancel_id AS restr_dc, + rdi.applied_date AS ap_date, + rdi.id AS rdi_id, + rdi.status_applied, + ssi.delivery_code AS d_code, + ssi.act_number, + s.visit_date, + sh.rn, + rd.rn_d, + --rdi.rn_di, + ssi.rn_si + FROM subpoena s + JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY date_time DESC) AS rn, + subpoena_id, + status_id, + date_time + FROM subpoena_history sh + ) sh on sh.subpoena_id = s.id + JOIN subpoena_status AS ssh ON ssh.id = sh.status_id + JOIN subpoena_reason AS sr ON sr.id = s.reason_id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY created_at DESC) AS rn_d, + subpoena_id, + id + FROM restriction_document + ) AS rd ON rd.subpoena_id = s.id + LEFT JOIN ( + SELECT + restriction_document_create_id, + restriction_document_cancel_id, + status_applied, + applied_date, + id + FROM ( + SELECT + ROW_NUMBER() OVER (PARTITION BY restriction_document_create_id ORDER BY created_at DESC) AS rn_di, + * + FROM restriction_document_item + ) sub + WHERE rn_di = 1 + ) AS rdi ON rdi.restriction_document_create_id = rd.id + LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY send_date DESC) AS rn_si, + subpoena_id, + delivery_code, + act_number + FROM subpoena_send_info + --WHERE act_number is not null + ) AS ssi ON ssi.subpoena_id = s.id + WHERE --sh.rn = 1 AND rd.rn_d = 1 /*AND rdi.rn_di = 1*/-- AND ssi.rn_si = 1 + --AND + sr.type IS NOT NULL + AND ssh.code NOT IN ('3.7','3.72', '3.71') -- 3.14 снесено от 14.03.2025 + AND s.department_id::uuid IN (SELECT recruitment_id FROM ids) + AND EXISTS ( + SELECT 1 + FROM subpoena_history sh2 + WHERE sh2.subpoena_id = s.id + AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') + ) +), +uniq_ls AS ( + SELECT + distinct + department_id, + mil_reg + FROM subpoena_data +), +t1 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_subpoena + FROM subpoena_data ls + WHERE sub_stat_hist IS NOT NULL and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t2 AS ( +SELECT + ls.mil_reg, + ls.department_id, + ROUND( + AVG( + CASE + WHEN ls.sub_stat_hist = '4.2' THEN + GREATEST(EXTRACT(DAY FROM (ls.history_date::timestamp - ls.visit_date::timestamp)), 0) + ELSE + GREATEST(EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ls.visit_date::timestamp)), 0) + END + ) FILTER (WHERE + CASE + WHEN ls.sub_stat_hist = '4.2' THEN + EXTRACT(DAY FROM (ls.history_date::timestamp - ls.visit_date::timestamp)) + ELSE + EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ls.visit_date::timestamp)) + END > 0 + ), 1 + ) AS average_appeared +FROM subpoena_data ls +where rn = 1 +GROUP BY ls.department_id, ls.mil_reg +), +t3 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_appeared + FROM subpoena_data ls + WHERE sub_stat_hist IN ('4.1', '4.2') and rn = 1 -- снесен 4 статус от 14.03.2025 + GROUP BY ls.department_id, ls.mil_reg +), +t4 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_not_appeared + FROM subpoena_data ls + WHERE sub_stat_hist = '5' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t5 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_not_ap_good_reason -- не явились по уважительной причине + FROM subpoena_data ls + WHERE sub_stat_hist = '5.1' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t6 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_ap_not_required -- явка не требуется + FROM subpoena_data ls + WHERE sub_stat_hist IN ('3.8', '5.2') and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t7 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct recruit_id) AS count_restrictions_applied + FROM subpoena_data ls + WHERE rdi_id IS NOT NULL AND restr_dc IS NULL and rn = 1 and rn_d = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t8 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct recruit_id) AS count_introduced_measures + FROM subpoena_data ls + WHERE status_applied = '11' and rn = 1 and rn_d = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t9 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_paper + FROM subpoena_data ls + WHERE d_code != '7' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t10 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_electron + FROM subpoena_data ls + WHERE d_code = '7' and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t11 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct rdi_id) AS count_restrictions + FROM subpoena_data ls + where rn_d = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t12 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS count_not_delivery + FROM subpoena_data ls + WHERE act_number IS NOT NULL and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +), +t13 AS ( + SELECT + ls.mil_reg, + ls.department_id, + COUNT(distinct subpoena_id) AS appear_date_is_good + FROM subpoena_data ls + WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') and rn = 1 + GROUP BY ls.department_id, ls.mil_reg +) +SELECT + COALESCE(t1.count_subpoena, 0) AS count_subpoena, + COALESCE(t2.average_appeared, 0) AS average_appeared, + COALESCE(t3.count_appeared, 0) AS count_appeared, + COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, + COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, + COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, + COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, + COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, + COALESCE(t9.count_paper, 0) AS count_paper, + COALESCE(t10.count_electron, 0) AS count_electron, + COALESCE(t11.count_restrictions, 0) AS count_restrictions, + COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, + COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, + COALESCE(ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS appeared_percent, + COALESCE(ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_appeared_percent, + COALESCE(ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_ap_good_reason_percent, + COALESCE(ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS ap_not_required_percent, + COALESCE(ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS electron_percent, + COALESCE(ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS paper_percent, + COALESCE(ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS restrictions_applied_percent, + COALESCE(ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS introduced_measures_percent, + COALESCE(ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS not_delivery_percent, + COALESCE(ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2), 0) AS appear_date_is_good_percent, + ls.department_id AS recruitment_id, + current_date AS recording_date, + ls.mil_reg +FROM uniq_ls ls +LEFT JOIN t1 ON ls.department_id = t1.department_id + AND ls.mil_reg = t1.mil_reg +LEFT JOIN t2 ON ls.department_id = t2.department_id + AND ls.mil_reg = t2.mil_reg +LEFT JOIN t3 ON ls.department_id = t3.department_id + AND ls.mil_reg = t3.mil_reg +LEFT JOIN t4 ON ls.department_id = t4.department_id + AND ls.mil_reg = t4.mil_reg +LEFT JOIN t5 ON ls.department_id = t5.department_id + AND ls.mil_reg = t5.mil_reg +LEFT JOIN t6 ON ls.department_id = t6.department_id + AND ls.mil_reg = t6.mil_reg +LEFT JOIN t7 ON ls.department_id = t7.department_id + AND ls.mil_reg = t7.mil_reg +LEFT JOIN t8 ON ls.department_id = t8.department_id + AND ls.mil_reg = t8.mil_reg +LEFT JOIN t9 ON ls.department_id = t9.department_id + AND ls.mil_reg = t9.mil_reg +LEFT JOIN t10 ON ls.department_id = t10.department_id + AND ls.mil_reg = t10.mil_reg +LEFT JOIN t11 ON ls.department_id = t11.department_id + AND ls.mil_reg = t11.mil_reg +LEFT JOIN t12 ON ls.department_id = t12.department_id + AND ls.mil_reg = t12.mil_reg +LEFT JOIN t13 ON ls.department_id = t13.department_id + AND ls.mil_reg = t13.mil_reg; + Y + + + 816 + 384 + + + + + +
diff --git a/mappings/mil_district/appeals.reasons_appeal(m_d).hpl b/mappings/mil_district/appeals.reasons_appeal(m_d).hpl new file mode 100644 index 0000000..c6e04d0 --- /dev/null +++ b/mappings/mil_district/appeals.reasons_appeal(m_d).hpl @@ -0,0 +1,351 @@ + + + + appeals.reasons_appeal(m_d) + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/01/28 10:29:54.859 + - + 2025/01/28 10:29:54.859 + + + + + + Execute SQL script + Table input (appeal_document) регионы + Y + + + Get variables 3 2 + Select values 3 2 + Y + + + Insert / update (main_dashboard.appeals) 2 + Execute SQL script 2 + Y + + + Select values 3 2 + Insert / update (main_dashboard.appeals) 2 + Y + + + Table input (appeal_document) регионы + Get variables 3 2 + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM appeals.reasons_appeal +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 320 + 256 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM appeals.reasons_appeal +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1344 + 256 + + + + Get variables 3 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 752 + 256 + + + + Insert / update (main_dashboard.appeals) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + = + schema + schema + + appeals + reasons_appeal
+ + appeal + appeal + Y + + + incorrect_inf + incorrect_inf + Y + + + incorrect_inf_percent + incorrect_inf_percent + Y + + + sending_documents + sending_documents + Y + + + sending_documents_percent + sending_documents_percent + Y + + + decision_disagreement + decision_disagreement + Y + + + decision_disagreement_persent + decision_disagreement_persent + Y + + + complaint_withdrawal + complaint_withdrawal + Y + + + complaint_withdrawal_percent + complaint_withdrawal_percent + Y + + + recruitment_id + recruitment_id + N + + + schema + schema + N + +
+ Y + + + 1104 + 256 + +
+ + Select values 3 2 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 896 + 256 + + + + Table input (appeal_document) регионы + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(appeal), 0) appeal, + COALESCE(SUM(incorrect_inf), 0) incorrect_inf, + COALESCE(SUM(sending_documents), 0) sending_documents, + COALESCE(SUM(decision_disagreement), 0) decision_disagreement, + COALESCE(SUM(complaint_withdrawal), 0) complaint_withdrawal, + COALESCE( + CASE + WHEN SUM(appeal) > 0 + THEN ROUND((SUM(incorrect_inf) / SUM(appeal) * 100), 2) + ELSE 0 + END, + 0 + ) incorrect_inf_percent, + COALESCE( + CASE + WHEN SUM(appeal) > 0 + THEN ROUND((SUM(sending_documents) / SUM(appeal) * 100), 2) + ELSE 0 + END, + 0 + ) sending_documents_percent, + COALESCE( + CASE + WHEN SUM(appeal) > 0 + THEN ROUND((SUM(decision_disagreement) / SUM(appeal) * 100), 2) + ELSE 0 + END, + 0 + ) decision_disagreement_persent, + COALESCE( + CASE + WHEN SUM(appeal) > 0 + THEN ROUND((SUM(complaint_withdrawal) / SUM(appeal) * 100), 2) + ELSE 0 + END, + 0 + ) complaint_withdrawal_percent, + '${MD_ID}' AS recruitment_id, + 'Region' AS schema +FROM appeals.reasons_appeal +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE; + Y + + + 528 + 256 + + + + + +
diff --git a/mappings/mil_district/appeals.topic_appeal(m_d).hpl b/mappings/mil_district/appeals.topic_appeal(m_d).hpl new file mode 100644 index 0000000..03ef672 --- /dev/null +++ b/mappings/mil_district/appeals.topic_appeal(m_d).hpl @@ -0,0 +1,334 @@ + + + + appeals.topic_appeal(m_d) + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/01/28 10:29:54.859 + - + 2025/01/28 10:29:54.859 + + + + + + Execute SQL script + Table input (appeals.topic_appeal(m_d)) + Y + + + Get variables 3 2 + Select values 3 2 + Y + + + Insert / update (appeals.topic_appeal) + Execute SQL script 2 + Y + + + Select values 3 2 + Insert / update (appeals.topic_appeal) + Y + + + Table input (appeals.topic_appeal(m_d)) + Get variables 3 2 + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM appeals.topic_appeal +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 320 + 256 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM appeals.topic_appeal +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1344 + 256 + + + + Get variables 3 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 752 + 256 + + + + Insert / update (appeals.topic_appeal) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + + = + schema + schema + + + appeals + topic_appeal
+ + recruitment_id + recruitment_id + N + + + schema + schema + N + + + registration + registration + Y + + + registration_percent + registration_percent + Y + + + sabpoena + sabpoena + Y + + + sabpoena_percent + sabpoena_percent + Y + + + temporary_measures + temporary_measures + Y + + + temporary_measures_percent + temporary_measures_percent + Y + + + appear + appear + Y + +
+ Y + + + 1104 + 256 + +
+ + Select values 3 2 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 896 + 256 + + + + Table input (appeals.topic_appeal(m_d)) + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(appear), 0) appear, + COALESCE(SUM(registration), 0) registration, + COALESCE(SUM(sabpoena), 0) sabpoena, + COALESCE(SUM(temporary_measures), 0) temporary_measures, + COALESCE( + CASE + WHEN SUM(appear) > 0 + THEN ROUND((SUM(registration) / SUM(appear) * 100), 2) + ELSE 0 + END, + 0 + ) registration_percent, + COALESCE( + CASE + WHEN SUM(appear) > 0 + THEN ROUND((SUM(sabpoena) / SUM(appear) * 100), 2) + ELSE 0 + END, + 0 + ) sabpoena_percent, + COALESCE( + CASE + WHEN SUM(appear) > 0 + THEN ROUND((SUM(temporary_measures) / SUM(appear) * 100), 2) + ELSE 0 + END, + 0 + ) temporary_measures_percent, + '${MD_ID}' AS recruitment_id, + 'Region' AS schema +FROM appeals.topic_appeal +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE; + Y + + + 528 + 256 + + + + + +
diff --git a/mappings/mil_district/array_mildis.hwf b/mappings/mil_district/array_mildis.hwf new file mode 100644 index 0000000..0f583c3 --- /dev/null +++ b/mappings/mil_district/array_mildis.hwf @@ -0,0 +1,156 @@ + + + array_mildis + Y + + + + 0 + - + 2024/12/10 09:44:55.162 + - + 2024/12/10 09:44:55.162 + + + ORG_ROW + + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 400 + 304 + + + + Success + + SUCCESS + + N + 1152 + 304 + + + + select_recruitments_mildis(m_d)rows.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_district/select_recruitments_mildis(m_d)rows.hpl + Basic + + Y + + N + local + N + N + Y + N + 720 + 304 + + + + select_recruitments_mildis(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/select_recruitments_mildis(m_d).hpl + txt + C:\Users\acer\Desktop\лог + Rowlevel + + + MILDIS_ROW + MIL_DISTRICT_ROW + + Y + + Y + local + N + N + Y + N + 976 + 304 + + + + SQL + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.array_mildis + N + N + N + 560 + 304 + + + + + + select_recruitments_mildis(m_d)rows.hpl + select_recruitments_mildis(m_d).hpl + Y + Y + N + + + select_recruitments_mildis(m_d).hpl + Success + Y + Y + N + + + Start + SQL + Y + Y + Y + + + SQL + select_recruitments_mildis(m_d)rows.hpl + Y + Y + N + + + + + + diff --git a/mappings/mil_district/job_get_rows_mildis.hwf b/mappings/mil_district/job_get_rows_mildis.hwf new file mode 100644 index 0000000..4c2d639 --- /dev/null +++ b/mappings/mil_district/job_get_rows_mildis.hwf @@ -0,0 +1,122 @@ + + + job_get_rows_mildis + Y + + + + - + 2024/12/10 12:37:22.616 + - + 2024/12/10 12:37:22.616 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 432 + 336 + + + + array_mildis.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/mil_district/array_mildis.hwf + Nothing + + Y + + N + local + N + N + Y + N + 592 + 336 + + + + Success + + SUCCESS + + N + 912 + 336 + + + + rows_id-array_mildis.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/mil_district/rows_id-array_mildis.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 768 + 336 + + + + + + Start + array_mildis.hwf + Y + Y + Y + + + array_mildis.hwf + rows_id-array_mildis.hpl + Y + Y + N + + + rows_id-array_mildis.hpl + Success + Y + Y + N + + + + + + diff --git a/mappings/mil_district/job_recruitments_mildis.hwf b/mappings/mil_district/job_recruitments_mildis.hwf new file mode 100644 index 0000000..e31db7e --- /dev/null +++ b/mappings/mil_district/job_recruitments_mildis.hwf @@ -0,0 +1,1091 @@ + + + job_recruitments_mildis + Y + + + + 0 + - + 2024/08/15 16:02:12.821 + - + 2024/08/15 16:02:12.821 + + + MD_ARRAY + + + + + REG_ID + + + + + VK_ARRAY + + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 208 + 1152 + + + + main_dashboard.appeals(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/main_dashboard.appeals(m_d).hpl + txt + ${Internal.Entry.Current.Folder}/\logs\appeals + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 688 + + + + Success + + SUCCESS + + N + 1552 + 688 + + + + main_dashboard.recruitment_campaign(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/main_dashboard.recruitment_campaign(m_d).hpl + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 752 + + + + Success 2 + + SUCCESS + + N + 1552 + 752 + + + + main_dashboard.total_registered(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/main_dashboard.total_registered(m_d).hpl + txt + C:\Users\acer\Desktop\лог + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 816 + + + + Success 3 + + SUCCESS + + N + 1552 + 816 + + + + main_dashboard.waiting_registration(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/main_dashboard.waiting_registration(m_d).hpl + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 880 + + + + Success 4 + + SUCCESS + + N + 1552 + 880 + + + + recruitment_campaign.subpoenas(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/recruitment_campaign.subpoenas(m_d).hpl + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 944 + + + + Success 6 + + SUCCESS + + N + 1552 + 944 + + + + total_registered.reg_mil_cat(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/total_registered.reg_mil_cat(m_d).hpl + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 1008 + + + + Success 7 + + SUCCESS + + N + 1552 + 1008 + + + + total_registered.removed_registry(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/total_registered.removed_registry(m_d).hpl + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 1072 + + + + Success 8 + + SUCCESS + + N + 1552 + 1072 + + + + total_registered.subpoenas(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/total_registered.subpoenas(m_d).hpl + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 1136 + + + + Success 9 + + SUCCESS + + N + 1552 + 1136 + + + + total_registered.driver_license(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/total_registered.driver_license(m_d).hpl + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 1216 + + + + Success 10 + + SUCCESS + + N + 1552 + 1216 + + + + total_registered.child_minor(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/total_registered.child_minor(m_d).hpl + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 1280 + + + + Success 11 + + SUCCESS + + N + 1552 + 1280 + + + + total_registered.age(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/total_registered.age(m_d).hpl + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 1360 + + + + Success 12 + + SUCCESS + + N + 1552 + 1360 + + + + total_registered.marital_status(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/total_registered.marital_status(m_d).hpl + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 1440 + + + + Success 13 + + SUCCESS + + N + 1552 + 1440 + + + + total_registered.education_level(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/total_registered.education_level(m_d).hpl + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 1520 + + + + Success 14 + + SUCCESS + + N + 1552 + 1520 + + + + total_registered.busyness(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/total_registered.busyness(m_d).hpl + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 1600 + + + + Success 15 + + SUCCESS + + N + 1552 + 1600 + + + + recruitment_campaign.appeals(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/recruitment_campaign.appeals(m_d).hpl + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 1680 + + + + Success 16 + + SUCCESS + + N + 1552 + 1680 + + + + job_get_rows_mildis.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/mil_district/job_get_rows_mildis.hwf + Nothing + + Y + + N + local + N + N + Y + Y + 416 + 1152 + + + + appeals.reasons_appeal(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/appeals.reasons_appeal(m_d).hpl + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 624 + + + + Success 5 + + SUCCESS + + N + 1552 + 624 + + + + appeals.topic_appeal(m_d).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/mil_district/appeals.topic_appeal(m_d).hpl + Basic + + + MD_ARRAY + MD_ARRAY_ID + + + MD_ID + RECRUITMENT_MD_ID + + Y + + Y + local + N + N + Y + N + 1296 + 544 + + + + Success 17 + + SUCCESS + + N + 1552 + 544 + + + + + + Start + job_get_rows_mildis.hwf + Y + Y + Y + + + job_get_rows_mildis.hwf + main_dashboard.appeals(m_d).hpl + Y + Y + N + + + job_get_rows_mildis.hwf + main_dashboard.total_registered(m_d).hpl + Y + Y + N + + + job_get_rows_mildis.hwf + main_dashboard.recruitment_campaign(m_d).hpl + Y + Y + N + + + job_get_rows_mildis.hwf + main_dashboard.waiting_registration(m_d).hpl + Y + Y + N + + + job_get_rows_mildis.hwf + recruitment_campaign.subpoenas(m_d).hpl + Y + Y + N + + + job_get_rows_mildis.hwf + total_registered.reg_mil_cat(m_d).hpl + Y + Y + N + + + job_get_rows_mildis.hwf + total_registered.removed_registry(m_d).hpl + Y + Y + N + + + job_get_rows_mildis.hwf + total_registered.subpoenas(m_d).hpl + Y + Y + N + + + job_get_rows_mildis.hwf + total_registered.driver_license(m_d).hpl + Y + Y + N + + + job_get_rows_mildis.hwf + total_registered.child_minor(m_d).hpl + Y + Y + N + + + job_get_rows_mildis.hwf + total_registered.age(m_d).hpl + Y + Y + N + + + job_get_rows_mildis.hwf + total_registered.marital_status(m_d).hpl + Y + Y + N + + + job_get_rows_mildis.hwf + total_registered.education_level(m_d).hpl + Y + Y + N + + + job_get_rows_mildis.hwf + total_registered.busyness(m_d).hpl + Y + Y + N + + + job_get_rows_mildis.hwf + recruitment_campaign.appeals(m_d).hpl + Y + Y + N + + + main_dashboard.appeals(m_d).hpl + Success + Y + Y + N + + + main_dashboard.recruitment_campaign(m_d).hpl + Success 2 + Y + Y + N + + + main_dashboard.total_registered(m_d).hpl + Success 3 + Y + Y + N + + + main_dashboard.waiting_registration(m_d).hpl + Success 4 + Y + Y + N + + + recruitment_campaign.subpoenas(m_d).hpl + Success 6 + Y + Y + N + + + total_registered.reg_mil_cat(m_d).hpl + Success 7 + Y + Y + N + + + total_registered.removed_registry(m_d).hpl + Success 8 + Y + Y + N + + + total_registered.subpoenas(m_d).hpl + Success 9 + Y + Y + N + + + total_registered.driver_license(m_d).hpl + Success 10 + Y + Y + N + + + total_registered.child_minor(m_d).hpl + Success 11 + Y + Y + N + + + total_registered.age(m_d).hpl + Success 12 + Y + Y + N + + + total_registered.marital_status(m_d).hpl + Success 13 + Y + Y + N + + + total_registered.education_level(m_d).hpl + Success 14 + Y + Y + N + + + total_registered.busyness(m_d).hpl + Success 15 + Y + Y + N + + + recruitment_campaign.appeals(m_d).hpl + Success 16 + Y + Y + N + + + job_get_rows_mildis.hwf + appeals.reasons_appeal(m_d).hpl + Y + Y + N + + + appeals.reasons_appeal(m_d).hpl + Success 5 + Y + Y + N + + + appeals.topic_appeal(m_d).hpl + Success 17 + Y + Y + N + + + job_get_rows_mildis.hwf + appeals.topic_appeal(m_d).hpl + Y + Y + N + + + + + + + METASTORE.pentaho + + Default Run Configuration + {"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null} + + + + {"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"} + + Pentaho local + {"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"pentaho","value":"N"},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]} + + + + diff --git a/mappings/mil_district/main_dashboard.appeals(m_d).hpl b/mappings/mil_district/main_dashboard.appeals(m_d).hpl new file mode 100644 index 0000000..5994da9 --- /dev/null +++ b/mappings/mil_district/main_dashboard.appeals(m_d).hpl @@ -0,0 +1,332 @@ + + + + main_dashboard.appeals(m_d) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 2 + Select values 3 2 + Y + + + Select values 3 2 + Insert / update (main_dashboard.appeals) 2 + Y + + + Table input (appeal_document) регионы + Get variables 3 2 + Y + + + Execute SQL script + Table input (appeal_document) регионы + Y + + + Insert / update (main_dashboard.appeals) 2 + Execute SQL script 2 + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM main_dashboard.appeals +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 240 + 192 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM main_dashboard.appeals +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1264 + 192 + + + + Get variables 3 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 672 + 192 + + + + Insert / update (main_dashboard.appeals) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + = + schema + schema + + main_dashboard + appeals
+ + total_appeals + total_appeals + Y + + + average_consideration + average_consideration + Y + + + resolved + resolved + Y + + + average_rating + average_rating + Y + + + average_to_face + average_to_face + Y + + + "average_EPGU" + average_epgu + Y + + + average_to_face_percent + average_to_face_percent + Y + + + "average_EPGU_percent" + average_epgu_percent + Y + + + recruitment_id + recruitment_id + N + + + schema + schema + N + +
+ Y + + + 1024 + 192 + +
+ + Select values 3 2 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 816 + 192 + + + + Table input (appeal_document) регионы + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(total_appeals), 0) total_appeals, + COALESCE(SUM(resolved), 0) resolved, + COALESCE(ROUND(AVG(average_consideration) FILTER (where average_consideration!=0),1), 0) average_consideration, + COALESCE(ROUND(AVG(average_rating)FILTER (where average_rating!=0),1), 0) average_rating, + COALESCE(SUM(average_to_face), 0) average_to_face, + COALESCE(SUM("average_EPGU"), 0) average_epgu, + COALESCE( + CASE + WHEN (SUM(average_to_face) + SUM("average_EPGU")) > 0 + THEN ROUND((SUM(average_to_face) / (SUM(average_to_face) + SUM("average_EPGU")) * 100), 2) + ELSE 0 + END, + 0 + ) average_to_face_percent, + COALESCE( + CASE + WHEN (SUM(average_to_face) + SUM("average_EPGU")) > 0 + THEN ROUND((SUM("average_EPGU") / (SUM(average_to_face) + SUM("average_EPGU")) * 100), 2) + ELSE 0 + END, + 0 + ) average_epgu_percent, + '${MD_ID}' AS recruitment_id, + 'Region' AS schema +FROM main_dashboard.appeals +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE; + Y + + + 448 + 192 + + + + + +
diff --git a/mappings/mil_district/main_dashboard.recruitment_campaign(m_d).hpl b/mappings/mil_district/main_dashboard.recruitment_campaign(m_d).hpl new file mode 100644 index 0000000..c7d7ffe --- /dev/null +++ b/mappings/mil_district/main_dashboard.recruitment_campaign(m_d).hpl @@ -0,0 +1,370 @@ + + + + main_dashboard.recruitment_campaign(m_d) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 4 3 + Select values 4 3 + Y + + + Select values 4 3 + Insert / update (main_dashboard.recruitment_campaign) + Y + + + Table input (subpoena) регион/осень + Get variables 4 3 + Y + + + Execute SQL script + Table input (subpoena) регион/осень + Y + + + Insert / update (main_dashboard.recruitment_campaign) + Execute SQL script 2 + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM main_dashboard.recruitment_campaign +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 336 + 384 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM main_dashboard.recruitment_campaign +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1520 + 384 + + + + Get variables 4 3 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 784 + 384 + + + + Insert / update (main_dashboard.recruitment_campaign) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + = + schema + schema + + + = + spring_autumn + spring_autumn + + main_dashboard + recruitment_campaign
+ + subpoenas_sent + count_subpoena + Y + + + appeared_on_subpoenas + count_appeared + Y + + + not_appeared_on_subpoenas + count_not_appeared + Y + + + new_recruits + new_recruits + Y + + + postponement_have_right + postponement_have_right + Y + + + postponement_granted + postponement_granted + Y + + + appeared_on_subpoenas_percent + appeared_on_subpoenas_percent + Y + + + not_appeared_on_subpoenas_percent + not_appeared_on_subpoenas_percent + Y + + + postponement_have_right_percent + postponement_have_right_percent + Y + + + postponement_granted_percent + postponement_granted_percent + Y + + + recruitment_id + recruitment_id + N + + + spring_autumn + spring_autumn + N + + + schema + schema + N + +
+ N + + + 1280 + 384 + +
+ + Select values 4 3 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 960 + 384 + + + + Table input (subpoena) регион/осень + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(subpoenas_sent), 0) count_subpoena, + COALESCE(SUM(appeared_on_subpoenas), 0) count_appeared, + COALESCE(SUM(not_appeared_on_subpoenas), 0) count_not_appeared, + COALESCE(SUM(new_recruits), 0) new_recruits, + COALESCE(SUM(postponement_have_right), 0) postponement_have_right, + COALESCE(SUM(postponement_granted), 0) postponement_granted, + COALESCE( + CASE + WHEN SUM(subpoenas_sent) > 0 + THEN ROUND((SUM(appeared_on_subpoenas) / SUM(subpoenas_sent) * 100), 2) + ELSE 0 + END, + 0 + ) appeared_on_subpoenas_percent, + COALESCE( + CASE + WHEN SUM(subpoenas_sent) > 0 + THEN ROUND((SUM(not_appeared_on_subpoenas) / SUM(subpoenas_sent) * 100), 2) + ELSE 0 + END, + 0 + ) not_appeared_on_subpoenas_percent, + COALESCE( + CASE + WHEN SUM(new_recruits) > 0 + THEN ROUND((SUM(postponement_have_right) / SUM(new_recruits) * 100), 2) + ELSE 0 + END, + 0 + ) postponement_have_right_percent, + COALESCE( + CASE + WHEN SUM(new_recruits) > 0 + THEN ROUND((SUM(postponement_granted) / SUM(new_recruits) * 100), 2) + ELSE 0 + END, + 0 + ) postponement_granted_percent, + '${MD_ID}' AS recruitment_id, + spring_autumn, + 'Region' AS schema +FROM main_dashboard.recruitment_campaign +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE +GROUP BY spring_autumn; + Y + + + 528 + 384 + + + + + +
diff --git a/mappings/mil_district/main_dashboard.total_registered(m_d).hpl b/mappings/mil_district/main_dashboard.total_registered(m_d).hpl new file mode 100644 index 0000000..732607d --- /dev/null +++ b/mappings/mil_district/main_dashboard.total_registered(m_d).hpl @@ -0,0 +1,357 @@ + + + + main_dashboard.total_registered(m_d) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 2 2 + Select values 2 2 + Y + + + Select values 2 2 + Insert / update (main_dashboard.total_registered) 2 + Y + + + Table input (person_registry) регион + Get variables 2 2 + Y + + + Insert / update (main_dashboard.total_registered) 2 + Execute SQL script 2 + Y + + + Execute SQL script + Table input (person_registry) регион + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM main_dashboard.total_registered +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 160 + 304 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM main_dashboard.total_registered +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1280 + 304 + + + + Get variables 2 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 560 + 304 + + + + Insert / update (main_dashboard.total_registered) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + = + schema + schema + + + = + convicts + convicts + + main_dashboard + total_registered
+ + total_registered + total_count + Y + + + "total_registered_M" + male_count + Y + + + "total_registered_W" + female_count + Y + + + mobilization_criterion + mobilization_criterion + Y + + + volunteer_criterion + volunteer_criterion + Y + + + contract_criterion + contract_criterion + Y + + + mobilization_criterion_percent + mobilization_criterion_percent + Y + + + volunteer_criterion_percent + volunteer_criterion_percent + Y + + + contract_criterion_percent + contract_criterion_percent + Y + + + recruitment_id + recruitment_id + N + + + schema + schema + Y + + + convicts + convicts + N + +
+ N + + + 1024 + 304 + +
+ + Select values 2 2 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 768 + 304 + + + + Table input (person_registry) регион + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(total_registered), 0) total_count, + COALESCE(SUM("total_registered_M"), 0) male_count, + COALESCE(SUM("total_registered_W"), 0) female_count, + COALESCE(SUM(mobilization_criterion), 0) mobilization_criterion, + COALESCE(SUM(volunteer_criterion), 0) volunteer_criterion, + COALESCE(SUM(contract_criterion), 0) contract_criterion, + COALESCE( + CASE + WHEN SUM(total_registered) > 0 + THEN ROUND((SUM(mobilization_criterion) / SUM(total_registered) * 100), 2) + ELSE 0 + END, + 0 + ) mobilization_criterion_percent, + COALESCE( + CASE + WHEN SUM(total_registered) > 0 + THEN ROUND((SUM(volunteer_criterion) / SUM(total_registered) * 100), 2) + ELSE 0 + END, + 0 + ) volunteer_criterion_percent, + COALESCE( + CASE + WHEN SUM(total_registered) > 0 + THEN ROUND((SUM(contract_criterion) / SUM(total_registered) * 100), 2) + ELSE 0 + END, + 0 + ) contract_criterion_percent, + '${MD_ID}' AS recruitment_id, + convicts, + 'Region' AS schema +FROM main_dashboard.total_registered +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE +GROUP BY convicts; + Y + + + 352 + 304 + + + + + +
diff --git a/mappings/mil_district/main_dashboard.waiting_registration(m_d).hpl b/mappings/mil_district/main_dashboard.waiting_registration(m_d).hpl new file mode 100644 index 0000000..69bc685 --- /dev/null +++ b/mappings/mil_district/main_dashboard.waiting_registration(m_d).hpl @@ -0,0 +1,347 @@ + + + + main_dashboard.waiting_registration(m_d) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 5 + Select values 5 + Y + + + Select values 5 + Insert / update (main_dashboard.waiting_registration) 2 + Y + + + Table input 2 (person_registry) регион + Get variables 5 + Y + + + Execute SQL script + Table input 2 (person_registry) регион + Y + + + Insert / update (main_dashboard.waiting_registration) 2 + Execute SQL script 2 + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM main_dashboard.waiting_registration +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 320 + 336 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM main_dashboard.waiting_registration +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1504 + 336 + + + + Get variables 5 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 768 + 336 + + + + Insert / update (main_dashboard.waiting_registration) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + + = + schema + schema + + + main_dashboard + waiting_registration
+ + waiting_registration + waiting_count + Y + + + "waiting_registration_M" + male_count + Y + + + "waiting_registration_W" + female_count + Y + + + mobilization_criterion + mobilization_criterion + Y + + + volunteer_criterion + volunteer_criterion + Y + + + contract_criterion + contract_criterion + Y + + + mobilization_criterion_percent + mobilization_criterion_percent + Y + + + volunteer_criterion_percent + volunteer_criterion_percent + Y + + + contract_criterion_percent + contract_criterion_percent + Y + + + recruitment_id + recruitment_id + N + + + schema + schema + N + +
+ N + + + 1216 + 336 + +
+ + Select values 5 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 912 + 336 + + + + Table input 2 (person_registry) регион + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(waiting_registration), 0) waiting_count, + COALESCE(SUM("waiting_registration_M"), 0) male_count, + COALESCE(SUM("waiting_registration_W"), 0) female_count, + COALESCE(SUM(mobilization_criterion), 0) mobilization_criterion, + COALESCE(SUM(volunteer_criterion), 0) volunteer_criterion, + COALESCE(SUM(contract_criterion), 0) contract_criterion, + COALESCE( + CASE + WHEN SUM(waiting_registration) > 0 + THEN ROUND((SUM(mobilization_criterion) / SUM(waiting_registration) * 100), 2) + ELSE 0 + END, + 0 + ) mobilization_criterion_percent, + COALESCE( + CASE + WHEN SUM(waiting_registration) > 0 + THEN ROUND((SUM(volunteer_criterion) / SUM(waiting_registration) * 100), 2) + ELSE 0 + END, + 0 + ) volunteer_criterion_percent, + COALESCE( + CASE + WHEN SUM(waiting_registration) > 0 + THEN ROUND((SUM(contract_criterion) / SUM(waiting_registration) * 100), 2) + ELSE 0 + END, + 0 + ) contract_criterion_percent, + '${MD_ID}' AS recruitment_id, + 'Region' AS schema +FROM main_dashboard.waiting_registration +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE; + Y + + + 528 + 336 + + + + + +
diff --git a/mappings/mil_district/recruitment_campaign.appeals(m_d).hpl b/mappings/mil_district/recruitment_campaign.appeals(m_d).hpl new file mode 100644 index 0000000..d8827d6 --- /dev/null +++ b/mappings/mil_district/recruitment_campaign.appeals(m_d).hpl @@ -0,0 +1,335 @@ + + + + recruitment_campaign.appeals(m_d) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 2 + Select values 3 2 + Y + + + Select values 3 2 + Insert / update (main_dashboard.appeals) + Y + + + Table input (appeal_document) регионы + Get variables 3 2 + Y + + + Execute SQL script + Table input (appeal_document) регионы + Y + + + Insert / update (main_dashboard.appeals) + Execute SQL script 2 + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM recruitment_campaign.appeals +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 304 + 352 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM recruitment_campaign.appeals +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1360 + 352 + + + + Get variables 3 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 736 + 352 + + + + Insert / update (main_dashboard.appeals) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + = + schema + schema + + recruitment_campaign + appeals
+ + total_appeals + total_appeals + Y + + + average_consideration + average_consideration + Y + + + resolved + resolved + Y + + + not_resolved + not_resolved + Y + + + not_resolved_percent + not_resolved_percent + Y + + + average_rating + average_rating + Y + + + resolved_percent + resolved_percent + Y + + + recruitment_id + recruitment_id + N + + + spring_autumn + spring_autumn + N + + + schema + schema + N + +
+ N + + + 1104 + 352 + +
+ + Select values 3 2 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 880 + 352 + + + + Table input (appeal_document) регионы + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(total_appeals), 0) total_appeals, + coalesce(ROUND(avg(average_consideration) FILTER (where average_consideration!=0),1),0) as average_consideration, + COALESCE(SUM(resolved), 0) resolved, + COALESCE(SUM(not_resolved), 0) not_resolved, + COALESCE( + CASE + WHEN SUM(total_appeals) > 0 + THEN ROUND((SUM(not_resolved) / SUM(total_appeals) * 100), 2) + ELSE 0 + END, + 0 + ) not_resolved_percent, + + coalesce(ROUND(avg(average_rating) FILTER (where average_rating!=0),1),0) as average_rating, + COALESCE( + CASE + WHEN SUM(total_appeals) > 0 + THEN ROUND((SUM(resolved) / SUM(total_appeals) * 100), 2) + ELSE 0 + END, + 0 + ) resolved_percent, + + '${MD_ID}' AS recruitment_id, + spring_autumn, + 'Region' AS schema +FROM recruitment_campaign.appeals +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE +GROUP BY spring_autumn; + Y + + + 512 + 352 + + + + + +
diff --git a/mappings/mil_district/recruitment_campaign.subpoenas(m_d).hpl b/mappings/mil_district/recruitment_campaign.subpoenas(m_d).hpl new file mode 100644 index 0000000..c4548f8 --- /dev/null +++ b/mappings/mil_district/recruitment_campaign.subpoenas(m_d).hpl @@ -0,0 +1,454 @@ + + + + recruitment_campaign.subpoenas(m_d) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/09 13:13:59.825 + - + 2024/08/09 13:13:59.825 + + + + + + Get variables 4 3 + Select values 4 3 + Y + + + Select values 4 3 + Insert / update (recruitment_campaign.subpoenas) 3 + Y + + + Table input (subpoena) осень/регионы + Get variables 4 3 + Y + + + Execute SQL script + Table input (subpoena) осень/регионы + Y + + + Insert / update (recruitment_campaign.subpoenas) 3 + Execute SQL script 2 + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM recruitment_campaign.subpoenas +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 384 + 320 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM recruitment_campaign.subpoenas +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1616 + 320 + + + + Get variables 4 3 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 864 + 320 + + + + Insert / update (recruitment_campaign.subpoenas) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + = + schema + schema + + + = + spring_autumn + spring_autumn + + recruitment_campaign + subpoenas
+ + subpoena + count_subpoena + Y + + + appeared + count_appeared + Y + + + not_appeared + count_not_appeared + Y + + + not_ap_good_reason + count_not_ap_good_reason + Y + + + introduced_measures + count_introduced_measures + Y + + + ap_not_required + count_ap_not_required + Y + + + restrictions_applied + count_restrictions_applied + Y + + + appeared_percent + appeared_percent + Y + + + not_appeared_percent + not_appeared_percent + Y + + + not_ap_good_reason_percent + not_ap_good_reason_percent + Y + + + ap_not_required_percent + ap_not_required_percent + Y + + + restrictions_applied_percent + restrictions_applied_percent + Y + + + introduced_measures_percent + introduced_measures_percent + Y + + + recruitment_id + recruitment_id + N + + + rest + rest + Y + + + spring_autumn + spring_autumn + N + + + count_not_delivery + count_not_delivery + Y + + + appear_date_is_good + appear_date_is_good + Y + + + not_delivery_percent + not_delivery_percent + Y + + + appear_date_is_good_percent + appear_date_is_good_percent + Y + + + schema + schema + N + +
+ N + + + 1344 + 320 + +
+ + Select values 4 3 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 1040 + 320 + + + + Table input (subpoena) осень/регионы + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(subpoena), 0) count_subpoena, + COALESCE(SUM(appeared), 0) count_appeared, + COALESCE(SUM(not_appeared), 0) count_not_appeared, + COALESCE(SUM(not_ap_good_reason), 0) count_not_ap_good_reason, + COALESCE(SUM(introduced_measures), 0) count_introduced_measures, + COALESCE(SUM(ap_not_required), 0) count_ap_not_required, + COALESCE(SUM(restrictions_applied), 0) count_restrictions_applied, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(appeared) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) appeared_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(not_appeared) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_appeared_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(not_ap_good_reason) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_ap_good_reason_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(ap_not_required) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) ap_not_required_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(restrictions_applied) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) restrictions_applied_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(introduced_measures) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) introduced_measures_percent, + COALESCE(SUM(rest), 0) rest, + COALESCE(SUM(count_not_delivery), 0) count_not_delivery, + COALESCE(SUM(appear_date_is_good), 0) appear_date_is_good, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(count_not_delivery) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_delivery_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(count_not_delivery) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_delivery_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(appear_date_is_good) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) appear_date_is_good_percent, + '${MD_ID}' AS recruitment_id, + spring_autumn, + 'Region' AS schema +FROM recruitment_campaign.subpoenas +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE +GROUP BY spring_autumn; + Y + + + 608 + 320 + + + + + +
diff --git a/mappings/mil_district/rows_id-array_mildis.hpl b/mappings/mil_district/rows_id-array_mildis.hpl new file mode 100644 index 0000000..f893561 --- /dev/null +++ b/mappings/mil_district/rows_id-array_mildis.hpl @@ -0,0 +1,74 @@ + + + + rows_id-array_mildis + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/12/10 12:40:41.832 + - + 2024/12/10 12:40:41.832 + + + + + + Table input + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 672 + 256 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +recruitment_dstr_id AS RECRUITMENT_MD_ID, +string_to_array(trim(both '{}' FROM replace(reg_array_id, ' ', '')), ',')::uuid[] AS MD_ARRAY_ID +FROM ervu_dashboard.array_mildis + N + + + 448 + 256 + + + + + + diff --git a/mappings/mil_district/select_recruitments_mildis(m_d).hpl b/mappings/mil_district/select_recruitments_mildis(m_d).hpl new file mode 100644 index 0000000..48e805c --- /dev/null +++ b/mappings/mil_district/select_recruitments_mildis(m_d).hpl @@ -0,0 +1,193 @@ + + + + select_recruitments_mildis(m_d) + Y + + + + Normal + 0 + + + ORG_ROW + + + + + SCM + + + + + N + 1000 + 100 + - + 2024/08/15 14:58:19.728 + - + 2024/08/15 14:58:19.728 + + + + + + Get variables 3 2 + Select values 3 2 + Y + + + Table input/регион + Get variables 3 2 + Y + + + Select values 3 2 + Insert / update + Y + + + + Get variables 3 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + MILDIS_ROW + -1 + none + String + + + + + 656 + 208 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_dstr_id + MILDIS_ROW + + + ervu_dashboard + array_mildis
+ + reg_array_id + reg_array_id + Y + + + recruitment_dstr_id + recruitment_dstr_id + Y + +
+ N + + + 992 + 208 + +
+ + Select values 3 2 + SelectValues + + Y + + 1 + + none + + + + N + + MILDIS_ROW + MILDIS_ROW + String + -2 + -2 + + false + + + false + + + + + + + + + + 800 + 208 + + + + Table input/регион + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + '${MILDIS_ROW}' AS recruitment_dstr_id, + ARRAY( + SELECT idm_id + FROM ( + SELECT idm_id + FROM ervu_dashboard.recruitment + WHERE schema = 'Organization' AND parent_id = '${MILDIS_ROW}' + UNION ALL + SELECT idm_id + FROM ervu_dashboard.recruitment + WHERE idm_id = '${MILDIS_ROW}' + ) subquery + ) AS reg_array_id +FROM ervu_dashboard.recruitment +WHERE idm_id = '${MILDIS_ROW}'; + Y + + + 528 + 208 + + + + + +
diff --git a/mappings/mil_district/select_recruitments_mildis(m_d)rows.hpl b/mappings/mil_district/select_recruitments_mildis(m_d)rows.hpl new file mode 100644 index 0000000..6420254 --- /dev/null +++ b/mappings/mil_district/select_recruitments_mildis(m_d)rows.hpl @@ -0,0 +1,82 @@ + + + + select_recruitments_mildis(m_d)rows + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/12/10 10:43:22.293 + - + 2024/12/10 10:43:22.293 + + + + + + Table input/Военный округ + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 688 + 240 + + + + Table input/Военный округ + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + idm_id AS MIL_DISTRICT_ROW +FROM + ervu_dashboard.recruitment +WHERE schema = 'Region' +AND idm_id in ( + 'b23f384f-b114-4003-9277-2eaa2d9ae180', -- главный ВК Восточного военного округа (уровень ВО) + '25633423-52e6-45bb-9d54-7f85b74a3f7d', -- главный ВК Ленинградского военного округа (уровень ВО) + '30a01af9-a871-411a-90e3-d81592bb074f', -- главный ВК Московского военного округа (уровень ВО) + '58ef9cdc-8a9d-429e-89a5-1c49e2684a98', -- главный ВК Центрального военного округа (уровень ВО) + 'b00de68d-2e09-4776-9b48-1566a7222dca' -- главный ВК Южного военного округа (уровень ВО) +) + N + + + 512 + 240 + + + + + + diff --git a/mappings/mil_district/total_registered.age(m_d).hpl b/mappings/mil_district/total_registered.age(m_d).hpl new file mode 100644 index 0000000..d7d6863 --- /dev/null +++ b/mappings/mil_district/total_registered.age(m_d).hpl @@ -0,0 +1,463 @@ + + + + total_registered.age(m_d) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 2 + Select values 3 2 + Y + + + Select values 3 2 + Insert / update (total_registered.age) + Y + + + Table input (person_registry) регион/все + Get variables 3 2 + Y + + + Execute SQL script + Table input (person_registry) регион/все + Y + + + Insert / update (total_registered.age) + Execute SQL script 2 + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.age +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 208 + 624 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.age +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1376 + 624 + + + + Get variables 3 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 672 + 624 + + + + Insert / update (total_registered.age) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + = + schema + schema + + + = + "all_M_W" + gender + + + = + registered + registered + + + = + convicts + convicts + + total_registered + age
+ + "17_years" + 17_year_count + Y + + + "18-26_years" + 18-26_year_count + Y + + + "27-30_years" + 27-30_year_count + Y + + + "31-35_years" + 31-35_year_count + Y + + + "36-40_years" + 36-40_year_count + Y + + + "41-45_years" + 41-45_year_count + Y + + + "51+_years" + 51+_year_count + Y + + + "all_M_W" + gender + N + + + "46-50_years" + 46-50_year_count + Y + + + "17_years_percent" + 17_year_percent + Y + + + "18-26_years_percent" + 18-26_year_percent + Y + + + "27-30_years_percent" + 27-30_year_percent + Y + + + "31-35_years_percent" + 31-35_year_percent + Y + + + "36-40_years_percent" + 36-40_year_percent + Y + + + "41-45_years_percent" + 41-45_year_percent + Y + + + "46-50_years_percent" + 46-50_year_percent + Y + + + "51+_years_percent" + 51+_year_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + schema + schema + N + + + total_count + total_count + Y + + + convicts + convicts + N + +
+ Y + + + 1056 + 624 + +
+ + Select values 3 2 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 816 + 624 + + + + Table input (person_registry) регион/все + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(total_count), 0) total_count, + COALESCE(SUM("17_years"), 0) "17_year_count", + COALESCE(SUM("18-26_years"), 0) "18-26_year_count", + COALESCE(SUM("27-30_years"), 0) "27-30_year_count", + COALESCE(SUM("31-35_years"), 0) "31-35_year_count", + COALESCE(SUM("36-40_years"), 0) "36-40_year_count", + COALESCE(SUM("41-45_years"), 0) "41-45_year_count", + COALESCE(SUM("51+_years"), 0) "51+_year_count", + COALESCE(SUM("46-50_years"), 0) "46-50_year_count", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("17_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "17_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("18-26_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "18-26_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("27-30_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "27-30_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("31-35_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "31-35_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("36-40_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "36-40_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("41-45_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "41-45_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("46-50_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "46-50_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("51+_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "51+_year_percent", + + '${MD_ID}' AS recruitment_id, + "all_M_W" AS gender, + convicts, + registered, + 'Region' AS schema +FROM total_registered.age +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", registered, convicts; + Y + + + 432 + 624 + + + + + +
diff --git a/mappings/mil_district/total_registered.busyness(m_d).hpl b/mappings/mil_district/total_registered.busyness(m_d).hpl new file mode 100644 index 0000000..0c2a07a --- /dev/null +++ b/mappings/mil_district/total_registered.busyness(m_d).hpl @@ -0,0 +1,371 @@ + + + + total_registered.busyness(m_d) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 2 + Select values 3 2 + Y + + + Select values 3 2 + Insert / update (total_registered.busyness) + Y + + + Table input (person_registry) РФ/все + Get variables 3 2 + Y + + + Execute SQL script + Table input (person_registry) РФ/все + Y + + + Insert / update (total_registered.busyness) + Execute SQL script 2 + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.busyness +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + + 368 + 752 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.busyness +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + + 1552 + 752 + + + + Get variables 3 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 864 + 752 + + + + Insert / update (total_registered.busyness) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + = + schema + schema + + + = + "all_M_W" + gender + + + = + registered + registered + + + = + convicts + convicts + + total_registered + busyness
+ + study + study + Y + + + work + work + Y + + + study_percent + study_percent + Y + + + work_percent + work_percent + Y + + + recruitment_id + recruitment_id + N + + + registered + registered + N + + + "all_M_W" + gender + N + + + not_work + no_info + Y + + + not_work_percent + no_info_percent + Y + + + busyness + total_people + Y + + + schema + schema + N + + + convicts + convicts + N + +
+ Y + + + 1264 + 752 + +
+ + Select values 3 2 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 1008 + 752 + + + + Table input (person_registry) РФ/все + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(study), 0) study, + COALESCE(SUM(work), 0) work, + COALESCE( + CASE + WHEN SUM(busyness) > 0 + THEN ROUND((SUM(study) / SUM(busyness) * 100), 2) + ELSE 0 + END, + 0 + ) study_percent, + COALESCE( + CASE + WHEN SUM(busyness) > 0 + THEN ROUND((SUM(work) / SUM(busyness) * 100), 2) + ELSE 0 + END, + 0 + ) work_percent, + + COALESCE(SUM(not_work), 0) no_info, + COALESCE( + CASE + WHEN SUM(busyness) > 0 + THEN ROUND((SUM(not_work) / SUM(busyness) * 100), 2) + ELSE 0 + END, + 0 + ) no_info_percent, + + COALESCE(SUM(busyness), 0) total_people, + '${MD_ID}' AS recruitment_id, + "all_M_W" AS gender, + registered, + convicts, + 'Region' AS schema +FROM total_registered.busyness +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", registered, convicts; + Y + + + 624 + 752 + + + + + +
diff --git a/mappings/mil_district/total_registered.child_minor(m_d).hpl b/mappings/mil_district/total_registered.child_minor(m_d).hpl new file mode 100644 index 0000000..ebb6a49 --- /dev/null +++ b/mappings/mil_district/total_registered.child_minor(m_d).hpl @@ -0,0 +1,394 @@ + + + + total_registered.child_minor(m_d) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 4 2 + Select values 4 2 + Y + + + Select values 4 2 + Insert / update (total_registered.child_minor) + Y + + + Table input (person_registry)регион/все + Get variables 4 2 + Y + + + Insert / update (total_registered.child_minor) + Execute SQL script 2 + Y + + + Execute SQL script + Table input (person_registry)регион/все + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.child_minor +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 336 + 416 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.child_minor +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1488 + 416 + + + + Get variables 4 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 800 + 416 + + + + Insert / update (total_registered.child_minor) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + = + schema + schema + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + child_minor
+ + no_child + no_children + Y + + + "1_child" + one_child + Y + + + "2_child" + two_children + Y + + + "3_child" + three_children + Y + + + "4_more_child" + four_or_more_children + Y + + + "all_M_W" + gender + N + + + no_child_percent + no_children_percent + Y + + + "1_child_percent" + one_child_percent + Y + + + "2_child_percent" + two_children_percent + Y + + + "3_child_percent" + three_children_percent + Y + + + "4_more_child_percent" + four_or_more_children_percent + Y + + + recruitment_id + recruitment_id + N + + + schema + schema + N + + + total_count + total_count + Y + + + convicts + convicts + N + +
+ N + + + 1248 + 416 + +
+ + Select values 4 2 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 992 + 416 + + + + Table input (person_registry)регион/все + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(total_count), 0) total_count, + COALESCE(SUM(no_child), 0) no_children, + COALESCE(SUM("1_child"), 0) one_child, + COALESCE(SUM("2_child"), 0) two_children, + COALESCE(SUM("3_child"), 0) three_children, + COALESCE(SUM("4_more_child"), 0) four_or_more_children, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM(no_child) / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) no_children_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("1_child") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) one_child_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("2_child") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) two_children_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("3_child") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) three_children_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("4_more_child") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) four_or_more_children_percent, + '${MD_ID}' AS recruitment_id, + "all_M_W" AS gender, + convicts, + 'Region' AS schema +FROM total_registered.child_minor +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", convicts; + Y + + + 560 + 416 + + + + + +
diff --git a/mappings/mil_district/total_registered.driver_license(m_d).hpl b/mappings/mil_district/total_registered.driver_license(m_d).hpl new file mode 100644 index 0000000..9e6cbec --- /dev/null +++ b/mappings/mil_district/total_registered.driver_license(m_d).hpl @@ -0,0 +1,403 @@ + + + + total_registered.driver_license(m_d) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 2 + Select values 3 2 + Y + + + Select values 3 2 + Insert / update (total_registered.driver_license) 2 + Y + + + Table input (driver_license) регионы/все + Get variables 3 2 + Y + + + Insert / update (total_registered.driver_license) 2 + Execute SQL script 2 + Y + + + Execute SQL script + Table input (driver_license) регионы/все + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.driver_license +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 240 + 480 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.driver_license +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1504 + 480 + + + + Get variables 3 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 752 + 480 + + + + Insert / update (total_registered.driver_license) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + = + schema + schema + + + = + convicts + convicts + + total_registered + driver_license
+ + "A" + a + Y + + + "B" + b + Y + + + "C" + c + Y + + + "D" + d + Y + + + "E" + e + Y + + + nope + nope + Y + + + "A_repcent" + a_percent + Y + + + "B_repcent" + b_percent + Y + + + "C_repcent" + c_percent + Y + + + "D_repcent" + d_percent + Y + + + "E_repcent" + e_percent + Y + + + "all_M_W" + gender + N + + + recruitment_id + recruitment_id + N + + + schema + schema + N + + + total_count + total + Y + + + convicts + convicts + N + +
+ Y + + + 1152 + 480 + +
+ + Select values 3 2 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 896 + 480 + + + + Table input (driver_license) регионы/все + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(total_count), 0) total, + COALESCE(SUM("A"), 0) a, + COALESCE(SUM("B"), 0) b, + COALESCE(SUM("C"), 0) c, + COALESCE(SUM("D"), 0) d, + COALESCE(SUM("E"), 0) e, + COALESCE(SUM(nope), 0) nope, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("A") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) a_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("B") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) b_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("C") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) c_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("D") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) d_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("E") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) e_percent, -- нет такой категории + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM(nope) / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) nope_percent, + '${MD_ID}' AS recruitment_id, + "all_M_W" AS gender, + convicts, + 'Region' AS schema +FROM total_registered.driver_license +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", convicts; + Y + + + 528 + 480 + + + + + +
diff --git a/mappings/mil_district/total_registered.education_level(m_d).hpl b/mappings/mil_district/total_registered.education_level(m_d).hpl new file mode 100644 index 0000000..759415a --- /dev/null +++ b/mappings/mil_district/total_registered.education_level(m_d).hpl @@ -0,0 +1,377 @@ + + + + total_registered.education_level(m_d) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 2 + Select values 3 2 + Y + + + Select values 3 2 + Insert / update (total_registered.education_level) + Y + + + Table input (person_registry) РФ/все + Get variables 3 2 + Y + + + Insert / update (total_registered.education_level) + Execute SQL script 2 + Y + + + Execute SQL script + Table input (person_registry) РФ/все + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.education_level +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 304 + 416 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.education_level +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1472 + 416 + + + + Get variables 3 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 784 + 416 + + + + Insert / update (total_registered.education_level) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + = + schema + schema + + + = + "all_M_W" + gender + + + = + convicts + convicts + + + total_registered + education_level
+ + higher + higher + Y + + + average + average_prof + Y + + + "all_M_W" + gender + N + + + only_general + only_general + Y + + + no_data + count_nodata + Y + + + higher_percent + higher_percentage + Y + + + average_percent + average_prof_percentage + Y + + + only_general_percent + only_general_percentage + Y + + + no_data_percent + count_nodata_percentage + Y + + + recruitment_id + recruitment_id + N + + + education_level + total + Y + + + schema + schema + N + + + convicts + convicts + N + +
+ Y + + + 1184 + 416 + +
+ + Select values 3 2 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 928 + 416 + + + + Table input (person_registry) РФ/все + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(higher), 0) higher, + COALESCE(SUM(average), 0) average_prof, + COALESCE(SUM(only_general), 0) only_general, + COALESCE(SUM(no_data), 0) count_nodata, + COALESCE( + CASE + WHEN SUM(education_level) > 0 + THEN ROUND((SUM(higher) / SUM(education_level) * 100), 2) + ELSE 0 + END, + 0 + ) higher_percentage, + COALESCE( + CASE + WHEN SUM(education_level) > 0 + THEN ROUND((SUM(average) / SUM(education_level) * 100), 2) + ELSE 0 + END, + 0 + ) average_prof_percentage, + COALESCE( + CASE + WHEN SUM(education_level) > 0 + THEN ROUND((SUM(only_general) / SUM(education_level) * 100), 2) + ELSE 0 + END, + 0 + ) only_general_percentage, + COALESCE( + CASE + WHEN SUM(education_level) > 0 + THEN ROUND((SUM(no_data) / SUM(education_level) * 100), 2) + ELSE 0 + END, + 0 + ) count_nodata_percentage, + + COALESCE(SUM(education_level), 0) total, + '${MD_ID}' AS recruitment_id, + "all_M_W" AS gender, + convicts, + 'Region' AS schema +FROM total_registered.education_level +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", convicts; + Y + + + 512 + 416 + + + + + +
diff --git a/mappings/mil_district/total_registered.marital_status(m_d).hpl b/mappings/mil_district/total_registered.marital_status(m_d).hpl new file mode 100644 index 0000000..d9b0404 --- /dev/null +++ b/mappings/mil_district/total_registered.marital_status(m_d).hpl @@ -0,0 +1,356 @@ + + + + total_registered.marital_status(m_d) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 2 + Select values 3 2 + Y + + + Select values 3 2 + Insert / update (total_registered.marital_status) + Y + + + Table input (person_registry) регионы/все + Get variables 3 2 + Y + + + Insert / update (total_registered.marital_status) + Execute SQL script 2 + Y + + + Execute SQL script + Table input (person_registry) регионы/все + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.marital_status +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 320 + 416 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.marital_status +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1472 + 416 + + + + Get variables 3 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 784 + 416 + + + + Insert / update (total_registered.marital_status) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + = + schema + schema + + + = + "all_M_W" + gender + + + = + convicts + convicts + + total_registered + marital_status
+ + married + married + Y + + + not_married + not_married + Y + + + married_percent + married_percent + Y + + + not_married_percent + not_married_percent + Y + + + "all_M_W" + gender + N + + + recruitment_id + recruitment_id + N + + + marital_status + total + Y + + + schema + schema + N + + + convicts + convicts + N + + + other + other + Y + + + other_percent + other_percent + Y + +
+ Y + + + 1184 + 416 + +
+ + Select values 3 2 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 928 + 416 + + + + Table input (person_registry) регионы/все + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(married), 0) married, + COALESCE(SUM(not_married), 0) not_married, + COALESCE(SUM(other), 0) other, + COALESCE( + CASE + WHEN SUM(marital_status) > 0 + THEN ROUND((SUM(married) / SUM(marital_status) * 100), 2) + ELSE 0 + END, + 0 + ) married_percent, + COALESCE( + CASE + WHEN SUM(marital_status) > 0 + THEN ROUND((SUM(not_married) / SUM(marital_status) * 100), 2) + ELSE 0 + END, + 0 + ) not_married_percent, + COALESCE( + CASE + WHEN SUM(marital_status) > 0 + THEN ROUND((SUM(other) / SUM(marital_status) * 100), 2) + ELSE 0 + END, + 0 + ) other_percent, + COALESCE(SUM(marital_status), 0) total, + '${MD_ID}' AS recruitment_id, + "all_M_W" AS gender, + convicts, + 'Region' AS schema +FROM total_registered.marital_status +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", convicts; + Y + + + 560 + 416 + + + + + +
diff --git a/mappings/mil_district/total_registered.reg_mil_cat(m_d).hpl b/mappings/mil_district/total_registered.reg_mil_cat(m_d).hpl new file mode 100644 index 0000000..c93c29e --- /dev/null +++ b/mappings/mil_district/total_registered.reg_mil_cat(m_d).hpl @@ -0,0 +1,396 @@ + + + + total_registered.reg_mil_cat(m_d) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 3 + Select values 3 + Y + + + Select values 3 + Insert / update (total_registered.reg_mil_cat) + Y + + + Table input (person_registry) военком/рег + Get variables 3 + Y + + + Execute SQL script + Table input (person_registry) военком/рег + Y + + + Insert / update (total_registered.reg_mil_cat) + Execute SQL script 2 + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.reg_mil_cat +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 192 + 336 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.reg_mil_cat +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1312 + 336 + + + + Get variables 3 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 672 + 336 + + + + Insert / update (total_registered.reg_mil_cat) + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + = + schema + schema + + + = + mil_reg + mil_reg + + total_registered + reg_mil_cat
+ + first_reg_17 + first_reg_17 + Y + + + first_reg_18 + first_reg_18 + Y + + + "mil_spec_W" + mil_spec_w + Y + + + recruitment_id + recruitment_id + N + + + returned_dep_liberty + returned_dep_liberty + Y + + + punished + punished + Y + + + received_citizenship + received_citizenship + Y + + + first_reg_17_percent + first_reg_17_percent + Y + + + first_reg_18_percent + first_reg_18_percent + Y + + + returned_dep_liberty_percent + returned_dep_liberty_percent + Y + + + "mil_spec_W_percent" + mil_spec_w_percent + Y + + + punished_percent + punished_percent + Y + + + received_citizenship_percent + received_citizenship_percent + Y + + + mil_reg + mil_reg + N + + + schema + schema + N + +
+ N + + + 1072 + 336 + +
+ + Select values 3 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 816 + 336 + + + + Table input (person_registry) военком/рег + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(COALESCE(SUM(first_reg_17), 0), 0) first_reg_17, + COALESCE(COALESCE(SUM(first_reg_18), 0), 0) first_reg_18, + COALESCE(COALESCE(SUM("mil_spec_W"), 0), 0) mil_spec_w, + COALESCE(COALESCE(SUM(returned_dep_liberty), 0), 0) returned_dep_liberty, + COALESCE(COALESCE(SUM(punished), 0), 0) punished, + COALESCE(COALESCE(SUM(received_citizenship), 0), 0) received_citizenship, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM(first_reg_17) / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) first_reg_17_percent, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM(first_reg_18) / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) first_reg_18_percent, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM(returned_dep_liberty) / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) returned_dep_liberty_percent, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM("mil_spec_W") / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) mil_spec_w_percent, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM(punished) / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) punished_percent, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM(received_citizenship) / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) received_citizenship_percent, + '${MD_ID}'::uuid AS recruitment_id, + mil_reg, + 'Region' AS schema +FROM total_registered.reg_mil_cat +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE +GROUP BY mil_reg; + Y + + + 416 + 336 + + + + + +
diff --git a/mappings/mil_district/total_registered.removed_registry(m_d).hpl b/mappings/mil_district/total_registered.removed_registry(m_d).hpl new file mode 100644 index 0000000..d005ac1 --- /dev/null +++ b/mappings/mil_district/total_registered.removed_registry(m_d).hpl @@ -0,0 +1,390 @@ + + + + total_registered.removed_registry(m_d) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 2 2 + Select values 2 2 + Y + + + Select values 2 2 + Insert / update (total_registered.removed_registry) 2 + Y + + + Table input (decision-document-service) регион 2 + Get variables 2 2 + Y + + + Execute SQL script + Table input (decision-document-service) регион 2 + Y + + + Insert / update (total_registered.removed_registry) 2 + Execute SQL script 2 + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.removed_registry +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 224 + 336 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.removed_registry +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1392 + 336 + + + + Get variables 2 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 752 + 336 + + + + Insert / update (total_registered.removed_registry) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + = + schema + schema + + total_registered + removed_registry
+ + age_limit + age_limit + Y + + + death + death + Y + + + removed_registry + removed_registry + Y + + + deprivation_citizenship + deprivation_citizenship + Y + + + travel_abroad + travel_abroad + Y + + + living_abroad + living_abroad + Y + + + other + other + Y + + + deprivation_citizen_percents + deprivation_citizen_percents + Y + + + age_limit_percent + age_limit_percent + Y + + + death_percent + death_percent + Y + + + travel_abroad_percent + travel_abroad_percent + Y + + + living_abroad_percent + living_abroad_percent + Y + + + other_percent + other_percent + Y + + + recruitment_id + recruitment_id + N + + + schema + schema + N + +
+ N + + + 1120 + 336 + +
+ + Select values 2 2 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 880 + 336 + + + + Table input (decision-document-service) регион 2 + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(age_limit), 0) age_limit, + COALESCE(SUM(death), 0) death, + COALESCE(SUM(removed_registry), 0) removed_registry, + COALESCE(SUM(deprivation_citizenship), 0) deprivation_citizenship, + COALESCE(SUM(travel_abroad), 0) travel_abroad, + COALESCE(SUM(living_abroad), 0) living_abroad, + COALESCE(SUM(other), 0) other, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(deprivation_citizenship) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) deprivation_citizen_percents, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(age_limit) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) age_limit_percent, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(death) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) death_percent, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(travel_abroad) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) travel_abroad_percent, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(living_abroad) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) living_abroad_percent, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(other) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) other_percent, + '${MD_ID}' AS recruitment_id, + 'Region' AS schema +FROM total_registered.removed_registry +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE; + Y + + + 464 + 336 + + + + + +
diff --git a/mappings/mil_district/total_registered.subpoenas(m_d).hpl b/mappings/mil_district/total_registered.subpoenas(m_d).hpl new file mode 100644 index 0000000..0bb2dd4 --- /dev/null +++ b/mappings/mil_district/total_registered.subpoenas(m_d).hpl @@ -0,0 +1,486 @@ + + + + total_registered.subpoenas(m_d) + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2024/08/02 11:56:22.507 + - + 2024/08/02 11:56:22.507 + + + + + + Get variables 4 2 + Select values 4 2 + Y + + + Select values 4 2 + Insert / update (total_registered.subpoenas) 3 + Y + + + Table input (subpoena) регион/рег + Get variables 4 2 + Y + + + Execute SQL script + Table input (subpoena) регион/рег + Y + + + Insert / update (total_registered.subpoenas) 3 + Execute SQL script 2 + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.subpoenas +WHERE recording_date = current_date + AND schema = 'Region' + AND recruitment_id = '${MD_ID}' + + + 272 + 400 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM total_registered.subpoenas +WHERE recording_date = current_date + AND schema = 'MD_LVL' + AND recruitment_id = '${MD_ID}' + + + 1376 + 400 + + + + Get variables 4 2 + GetVariable + + Y + + 1 + + none + + + + + -1 + MD_ID + -1 + none + String + + + -1 + MD_ARRAY + -1 + none + String + + + + + 688 + 400 + + + + Insert / update (total_registered.subpoenas) 3 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + MD_ID + + + = + schema + schema + + + = + mil_reg + mil_reg + + total_registered + subpoenas
+ + subpoena + count_subpoena + Y + + + appeared + count_appeared + Y + + + average_appeared + average_appeared + Y + + + not_appeared + count_not_appeared + Y + + + not_ap_good_reason + count_not_ap_good_reason + Y + + + introduced_measures + count_introduced_measures + Y + + + ap_not_required + count_ap_not_required + Y + + + electron + count_electron + Y + + + paper + count_paper + Y + + + restrictions_applied + count_restrictions_applied + Y + + + recruitment_id + recruitment_id + N + + + mil_reg + mil_reg + N + + + appeared_percent + appeared_percent + Y + + + not_appeared_percent + not_appeared_percent + Y + + + not_ap_good_reason_percent + not_ap_good_reason_percent + Y + + + ap_not_required_percent + ap_not_required_percent + Y + + + electron_percent + electron_percent + Y + + + paper_percent + paper_percent + Y + + + restrictions_applied_percent + restrictions_applied_percent + Y + + + introduced_measures_percent + introduced_measures_percent + Y + + + count_not_delivery + count_not_delivery + Y + + + appear_date_is_good + appear_date_is_good + Y + + + not_delivery_percent + not_delivery_percent + Y + + + appear_date_is_good_percent + appear_date_is_good_percent + Y + + + schema + schema + N + +
+ N + + + 1136 + 400 + +
+ + Select values 4 2 + SelectValues + + Y + + 1 + + none + + + + N + + MD_ID + MD_ID + String + -2 + -2 + + false + + + false + + + + + + + + MD_ARRAY + MD_ARRAY + String + -2 + -2 + + false + + + false + + + + + + + + + + 864 + 400 + + + + Table input (subpoena) регион/рег + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + COALESCE(SUM(subpoena), 0) count_subpoena, + COALESCE(SUM(appeared), 0) count_appeared, + COALESCE(SUM(average_appeared), 0) average_appeared, + COALESCE(SUM(not_appeared), 0) count_not_appeared, + COALESCE(SUM(not_ap_good_reason), 0) count_not_ap_good_reason, + COALESCE(SUM(introduced_measures), 0) count_introduced_measures, + COALESCE(SUM(ap_not_required), 0) count_ap_not_required, + COALESCE(SUM(electron), 0) count_electron, + COALESCE(SUM(paper), 0) count_paper, + COALESCE(SUM(restrictions_applied), 0) count_restrictions_applied, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(appeared) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) appeared_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(not_appeared) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_appeared_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(not_ap_good_reason) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_ap_good_reason_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(ap_not_required) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) ap_not_required_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(electron) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) electron_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(paper) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) paper_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(restrictions_applied) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) restrictions_applied_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(introduced_measures) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) introduced_measures_percent, + + COALESCE(SUM(count_not_delivery), 0) count_not_delivery, + COALESCE(SUM(appear_date_is_good), 0) appear_date_is_good, + + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(count_not_delivery) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_delivery_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(appear_date_is_good) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) appear_date_is_good_percent, + '${MD_ID}' AS recruitment_id, + mil_reg, + 'Region' AS schema +FROM total_registered.subpoenas +WHERE recruitment_id = ANY ('${MD_ARRAY}') +AND schema = 'Organization' +AND recording_date = CURRENT_DATE +GROUP BY mil_reg; + Y + + + 480 + 400 + + + + + +
diff --git a/mappings/pack.pub_recruitment.hpl b/mappings/pack.pub_recruitment.hpl index d2190ee..11d2bc8 100644 --- a/mappings/pack.pub_recruitment.hpl +++ b/mappings/pack.pub_recruitment.hpl @@ -1,3 +1,4 @@ + pack.pub_recruitment @@ -6,7 +7,6 @@ Normal - / N @@ -16,8 +16,6 @@ 2024/08/15 14:02:51.713 - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -27,7 +25,71 @@ Table output Y + + Table input + Insert / update + N + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + idm_id + idm_id + + ervu_dashboard + recruitment
+ + id + id + Y + + + parent_id + parent_id + Y + + + schema + schema + Y + + + shortname + shortname + Y + + + updated_at + updated_at + Y + + + idm_id + idm_id + N + +
+ N + + + 512 + 208 + +
Table input TableInput @@ -40,30 +102,34 @@ postgres.subpoena - select -rt2.id, -rt2.shortname, -rt2.parent_id, -rt2.idm_id, -case -when rt.idm_id='bb7aa36f-446e-4262-a609-28694ca2e398' then '12' -when rt.idm_id='092d6963-287c-454e-8d73-8e09ebee972e' then '62' -when rt.idm_id='84bc45ab-c032-410e-9dc5-07e92719ede4' then '65' -end as code -from recruitment rt -left join recruitment rt2 on rt2.parent_id=rt.idm_id::text -where rt.idm_id in ('bb7aa36f-446e-4262-a609-28694ca2e398','092d6963-287c-454e-8d73-8e09ebee972e','84bc45ab-c032-410e-9dc5-07e92719ede4') - 0 - N + 0 + SELECT + rt.id, + rt.fullname as shortname, + rt.parent_id, + rt.idm_id, + rt.schema, + rt.military_code AS code, + rt.updated_at +FROM public.recruitment rt +WHERE + rt.idm_id ~ '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$' + AND (rt.schema = 'Ministry' OR (rt.schema IS NOT NULL AND rt.parent_id IS NOT NULL)) + AND rt.hidden IS NOT TRUE + AND ( + rt.fullname ILIKE '%военный%' + OR + rt.fullname ILIKE '%округ%' + OR + rt.fullname ILIKE '%министерство%' +) + AND rt.fullname NOT ILIKE '%тест%' N - N - 208 208 - Y @@ -77,31 +143,27 @@ where rt.idm_id in ('bb7aa36f-446e-4262-a609-28694ca2e398','092d6963-287c-454e-8 none - ervu-dashboard - ervu_dashboard - recruitment
1000 - N - N - Y - N - N - - N - Y - N - - Y - N - + ervu-dashboard - + + N + N + N + N + Y + N + ervu_dashboard + N + recruitment
+ N + Y + N + Y - 480 - 208 - Y + 320
diff --git a/mappings/predictive_metrics/data_collection.hpl b/mappings/predictive_metrics/data_collection.hpl new file mode 100644 index 0000000..068b5da --- /dev/null +++ b/mappings/predictive_metrics/data_collection.hpl @@ -0,0 +1,203 @@ + + + + data_collection + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/27 12:45:14.184 + - + 2025/02/27 12:45:14.184 + + + + + + Table input + Merge join + Y + + + Table input 2 + Merge join + Y + + + Merge join + Table output + Y + + + + Merge join + MergeJoin + + Y + + 1 + + none + + + INNER + + recruitment_id + + + idm_id + + Table input + Table input 2 + + + 768 + 368 + + + + Table input + TableInput + + Y + + 1 + + none + + + postgres.person_registry + N + 0 + WITH year_series AS ( + SELECT generate_series( + date_trunc('year', CURRENT_DATE) - INTERVAL '54 years', + date_trunc('year', CURRENT_DATE) - INTERVAL '1 year', + INTERVAL '1 year' + )::date AS year_date +) +SELECT + COALESCE(r.target_recruitment_id, r.current_recruitment_id) as recruitment_id, + ys.year_date AS year, + COALESCE(COUNT(r.id) FILTER ( + WHERE r.military_registration_date >= ys.year_date + AND r.military_registration_date < ys.year_date + INTERVAL '1 year' + ), 0) AS count_all, + COALESCE(COUNT(r.id) FILTER ( + WHERE r.military_registration_date >= ys.year_date + AND r.military_registration_date < ys.year_date + INTERVAL '1 year' + AND DATE_PART('year', AGE(r.military_registration_date, r.birth_date)) < 18 + ), 0) AS reaching_17_age, + COALESCE(COUNT(r.id) FILTER ( + WHERE r.military_registration_date >= ys.year_date + AND r.military_registration_date < ys.year_date + INTERVAL '1 year' + AND r.gender = 'FEMALE' + ), 0) AS women_military_specialty, + 'Department' as schema +FROM year_series ys +LEFT JOIN recruits r ON 1=1 +GROUP BY ys.year_date, COALESCE(r.target_recruitment_id, r.current_recruitment_id) +ORDER BY recruitment_id, year DESC; + N + + + 544 + 304 + + + + Table input 2 + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + -- Берем только записи с максимальной версией для каждого idm_id +SELECT DISTINCT ON (idm_id) idm_id +FROM ervu_dashboard.recruitment +WHERE schema = 'Department' +ORDER BY idm_id, updated_at DESC + + N + + + 544 + 496 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + recruitment_id + recruitment_id + + + recording_date + year + + + count_all + count_all + + + reaching_17_age + reaching_17_age + + + women_military_specialty + women_military_specialty + + + schema + schema + + + N + N + N + N + Y + N + forecast + Y + registered_citizens
+ N + Y + Y + Y + + + 960 + 368 + +
+ + + +
diff --git a/mappings/predictive_metrics/next_lvl_org_pm.hpl b/mappings/predictive_metrics/next_lvl_org_pm.hpl new file mode 100644 index 0000000..d868ab0 --- /dev/null +++ b/mappings/predictive_metrics/next_lvl_org_pm.hpl @@ -0,0 +1,177 @@ + + + + next_lvl_org_pm + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/27 12:55:12.966 + - + 2025/02/27 12:55:12.966 + + + + + + Table input + Table output + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + WITH latest_hierarchy AS ( + -- Берем только записи с максимальной версией для каждого idm_id + SELECT DISTINCT ON (idm_id) * + FROM ervu_dashboard.recruitment + ORDER BY idm_id, updated_at DESC +), +hierarchy_cte AS ( + -- Строим связи между уровнями (Department → Organization → Region → Ministry) + SELECT + h.idm_id AS department_id, + h.parent_id AS organization_id, + h2.parent_id AS region_id, + h3.parent_id AS ministry_id + FROM latest_hierarchy h + LEFT JOIN latest_hierarchy h2 ON h.parent_id = h2.idm_id -- Organization + LEFT JOIN latest_hierarchy h3 ON h2.parent_id = h3.idm_id -- Region + WHERE h.schema = 'Department' -- Начинаем с Department +), +aggregated_counts AS ( + -- Агрегируем для Organization + SELECT + h.organization_id AS level_id, + SUM(r.reaching_17_age) AS total_reaching_17_age, + SUM(r.women_military_specialty) AS total_women_military_specialty, + SUM(r.count_all) AS total_count_all, + recording_date AS recording_date, + 'Organization' AS level + FROM forecast.registered_citizens r + JOIN hierarchy_cte h ON r.recruitment_id = h.department_id + WHERE h.organization_id IS NOT NULL + GROUP BY h.organization_id, recording_date + + UNION ALL + + -- Агрегируем для Region + SELECT + h.region_id AS level_id, + SUM(r.reaching_17_age) AS total_reaching_17_age, + SUM(r.women_military_specialty) AS total_women_military_specialty, + SUM(r.count_all) AS total_count_all, + recording_date AS recording_date, + 'Region' AS level + FROM forecast.registered_citizens r + JOIN hierarchy_cte h ON r.recruitment_id = h.department_id + WHERE h.region_id IS NOT NULL + GROUP BY h.region_id, recording_date + + UNION ALL + + -- Агрегируем для Ministry + SELECT + h.ministry_id AS level_id, + SUM(r.reaching_17_age) AS total_reaching_17_age, + SUM(r.women_military_specialty) AS total_women_military_specialty, + SUM(r.count_all) AS total_count_all, + recording_date AS recording_date, + 'Ministry' AS level + FROM forecast.registered_citizens r + JOIN hierarchy_cte h ON r.recruitment_id = h.department_id + WHERE h.ministry_id IS NOT NULL + GROUP BY h.ministry_id, recording_date +) +SELECT * FROM aggregated_counts; + N + + + 672 + 304 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + recruitment_id + level_id + + + reaching_17_age + total_reaching_17_age + + + women_military_specialty + total_women_military_specialty + + + count_all + total_count_all + + + recording_date + recording_date + + + schema + level + + + N + N + N + N + + Y + + N + forecast + Y + registered_citizens
+ + N + Y + N + Y + + + 912 + 304 + +
+ + + +
diff --git a/mappings/predictive_metrics/predictive.hwf b/mappings/predictive_metrics/predictive.hwf new file mode 100644 index 0000000..a307c17 --- /dev/null +++ b/mappings/predictive_metrics/predictive.hwf @@ -0,0 +1,165 @@ + + + predictive + Y + + + + - + 2025/02/27 13:51:40.861 + - + 2025/02/27 13:51:40.861 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 304 + 352 + + + + data_collection.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/predictive_metrics/data_collection.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 448 + 352 + + + + next_lvl_org_pm.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/predictive_metrics/next_lvl_org_pm.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 592 + 352 + + + + predictive_data.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/predictive_metrics/predictive_data.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 736 + 352 + + + + Success + + SUCCESS + + N + 880 + 352 + + + + + + Start + data_collection.hpl + Y + Y + Y + + + data_collection.hpl + next_lvl_org_pm.hpl + Y + Y + N + + + next_lvl_org_pm.hpl + predictive_data.hpl + Y + Y + N + + + predictive_data.hpl + Success + Y + Y + N + + + + + + + debug_plugin + + + diff --git a/mappings/predictive_metrics/predictive_data.hpl b/mappings/predictive_metrics/predictive_data.hpl new file mode 100644 index 0000000..14e9197 --- /dev/null +++ b/mappings/predictive_metrics/predictive_data.hpl @@ -0,0 +1,461 @@ + + + + predictive_data + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/02/27 13:48:40.269 + - + 2025/02/27 13:48:40.269 + + + + + + Table input + Table output + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + -- Адаптированный запрос для таблицы forecast.registered_citizens с учетом указанной структуры +-- recording_date - год наблюдения +-- recruitment_id - идентификатор военкомата +-- count_all - всего на учете +-- reaching_17_age - поставлено на учет по достижении 17 лет +-- women_military_specialty - женщины, получившие ВУС +-- schema - уровень военкомата + +-- 1. Проверяем наличие данных за весь необходимый период и создаем полную сетку лет + +WITH RECURSIVE years AS ( -- Теперь синтаксис правильный + SELECT + EXTRACT(YEAR FROM CURRENT_DATE)::int AS year, + 'Текущий год' AS prediction_type + UNION ALL + SELECT + year + 1, + 'Прогнозный год' + FROM years + WHERE year < EXTRACT(YEAR FROM CURRENT_DATE)::int + 49 -- +49, т.к. первый год уже включён +), +year_range AS ( + SELECT + EXTRACT(YEAR FROM CURRENT_DATE) - 54 AS min_year, -- Для первых двух показателей + EXTRACT(YEAR FROM CURRENT_DATE) - 34 AS min_year_females, -- Для женщин с ВУС + EXTRACT(YEAR FROM CURRENT_DATE) AS max_year +), + +all_years AS ( + SELECT generate_series(min_year, max_year) AS year + FROM year_range +), + +all_years_females AS ( + SELECT generate_series(min_year_females, max_year) AS year + FROM year_range +), + +all_regions AS ( + SELECT DISTINCT recruitment_id, schema FROM forecast.registered_citizens +), + +-- 2. Создаем полную сетку регион-год для всех показателей +full_grid_males AS ( + SELECT + r.recruitment_id, + r.schema, + y.year + FROM all_regions r + CROSS JOIN all_years y +), + +full_grid_females AS ( + SELECT + r.recruitment_id, + r.schema, + y.year + FROM all_regions r + CROSS JOIN all_years_females y +), + +-- 3. Объединяем сетку с имеющимися данными, чтобы выявить пропуски +males_data AS ( + SELECT + g.recruitment_id, + g.schema, + g.year, + COALESCE(h.count_all, NULL) AS count_all, + COALESCE(h.reaching_17_age, NULL) AS reaching_17_age + FROM full_grid_males g + LEFT JOIN forecast.registered_citizens h ON g.recruitment_id = h.recruitment_id AND g.year = EXTRACT(YEAR FROM h.recording_date) +), + +females_data AS ( + SELECT + g.recruitment_id, + g.schema, + g.year, + COALESCE(h.women_military_specialty, NULL) AS women_military_specialty + FROM full_grid_females g + LEFT JOIN forecast.registered_citizens h ON g.recruitment_id = h.recruitment_id AND g.year = EXTRACT(YEAR FROM h.recording_date) +), + +-- 4. Рассчитываем статистики для выявления выбросов +males_stats AS ( + SELECT + recruitment_id, + schema, + AVG(count_all) AS avg_count_all, + STDDEV(count_all) AS stddev_count_all, -- σ для фильтрации выбросов + AVG(reaching_17_age) AS avg_reaching_17_age, + STDDEV(reaching_17_age) AS stddev_reaching_17_age -- σ для фильтрации выбросов + FROM males_data + WHERE count_all IS NOT NULL AND reaching_17_age IS NOT NULL + GROUP BY recruitment_id, schema +), + +females_stats AS ( + SELECT + recruitment_id, + schema, + AVG(women_military_specialty) AS avg_women_military_specialty, + STDDEV(women_military_specialty) AS stddev_women_military_specialty -- σ для фильтрации выбросов + FROM females_data + WHERE women_military_specialty IS NOT NULL + GROUP BY recruitment_id, schema +), + +-- 5. Выявляем выбросы и помечаем их для интерполяции +males_outliers AS ( + SELECT + m.recruitment_id, + m.schema, + m.year, + m.count_all, + CASE + WHEN m.count_all IS NULL OR ABS(m.count_all - s.avg_count_all) > s.stddev_count_all + THEN TRUE ELSE FALSE + END AS count_all_is_outlier, + m.reaching_17_age, + CASE + WHEN m.reaching_17_age IS NULL OR ABS(m.reaching_17_age - s.avg_reaching_17_age) > s.stddev_reaching_17_age + THEN TRUE ELSE FALSE + END AS reaching_17_age_is_outlier + FROM males_data m + JOIN males_stats s ON m.recruitment_id = s.recruitment_id AND m.schema = s.schema +), + +females_outliers AS ( + SELECT + f.recruitment_id, + f.schema, + f.year, + f.women_military_specialty, + CASE + WHEN f.women_military_specialty IS NULL OR ABS(f.women_military_specialty - s.avg_women_military_specialty) > s.stddev_women_military_specialty + THEN TRUE ELSE FALSE + END AS women_military_specialty_is_outlier + FROM females_data f + JOIN females_stats s ON f.recruitment_id = s.recruitment_id AND f.schema = s.schema +), + +-- 6. Подготовка данных для интерполяции (находим ближайшие НЕ выбросы) +males_interpolation_prep AS ( + SELECT + mo.recruitment_id, + mo.schema, + mo.year, + mo.count_all, + mo.count_all_is_outlier, + mo.reaching_17_age, + mo.reaching_17_age_is_outlier, + -- Для интерполяции "Всего на учете" ищем ближайшие не-выбросы + (SELECT MAX(year) FROM males_outliers + WHERE recruitment_id = mo.recruitment_id AND schema = mo.schema AND year < mo.year AND NOT count_all_is_outlier) AS prev_year_count_all, + (SELECT MIN(year) FROM males_outliers + WHERE recruitment_id = mo.recruitment_id AND schema = mo.schema AND year > mo.year AND NOT count_all_is_outlier) AS next_year_count_all, + -- Для интерполяции "Поставлено на учет по достижении 17 лет" ищем ближайшие не-выбросы + (SELECT MAX(year) FROM males_outliers + WHERE recruitment_id = mo.recruitment_id AND schema = mo.schema AND year < mo.year AND NOT reaching_17_age_is_outlier) AS prev_year_reaching_17_age, + (SELECT MIN(year) FROM males_outliers + WHERE recruitment_id = mo.recruitment_id AND schema = mo.schema AND year > mo.year AND NOT reaching_17_age_is_outlier) AS next_year_reaching_17_age + FROM males_outliers mo +), + +females_interpolation_prep AS ( + SELECT + fo.recruitment_id, + fo.schema, + fo.year, + fo.women_military_specialty, + fo.women_military_specialty_is_outlier, + -- Для интерполяции "Женщины, получившие ВУС" ищем ближайшие не-выбросы + (SELECT MAX(year) FROM females_outliers + WHERE recruitment_id = fo.recruitment_id AND schema = fo.schema AND year < fo.year AND NOT women_military_specialty_is_outlier) AS prev_year_women_military_specialty, + (SELECT MIN(year) FROM females_outliers + WHERE recruitment_id = fo.recruitment_id AND schema = fo.schema AND year > fo.year AND NOT women_military_specialty_is_outlier) AS next_year_women_military_specialty + FROM females_outliers fo +), + +-- 7. Выполняем линейную интерполяцию для выбросов и отсутствующих значений +males_interpolated AS ( + SELECT + m.recruitment_id, + m.schema, + m.year, + CASE + WHEN m.count_all_is_outlier AND m.prev_year_count_all IS NOT NULL AND m.next_year_count_all IS NOT NULL THEN + -- Linear interpolation formula: y = y1 + ((x - x1) / (x2 - x1)) * (y2 - y1) + (SELECT p.count_all FROM males_outliers p + WHERE p.recruitment_id = m.recruitment_id AND p.schema = m.schema AND p.year = m.prev_year_count_all) + + ((m.year - m.prev_year_count_all)::float / (m.next_year_count_all - m.prev_year_count_all)) * + ((SELECT n.count_all FROM males_outliers n + WHERE n.recruitment_id = m.recruitment_id AND n.schema = m.schema AND n.year = m.next_year_count_all) - + (SELECT p.count_all FROM males_outliers p + WHERE p.recruitment_id = m.recruitment_id AND p.schema = m.schema AND p.year = m.prev_year_count_all)) + ELSE m.count_all + END AS count_all, + CASE + WHEN m.reaching_17_age_is_outlier AND m.prev_year_reaching_17_age IS NOT NULL AND m.next_year_reaching_17_age IS NOT NULL THEN + -- Linear interpolation formula: y = y1 + ((x - x1) / (x2 - x1)) * (y2 - y1) + (SELECT p.reaching_17_age FROM males_outliers p + WHERE p.recruitment_id = m.recruitment_id AND p.schema = m.schema AND p.year = m.prev_year_reaching_17_age) + + ((m.year - m.prev_year_reaching_17_age)::float / (m.next_year_reaching_17_age - m.prev_year_reaching_17_age)) * + ((SELECT n.reaching_17_age FROM males_outliers n + WHERE n.recruitment_id = m.recruitment_id AND n.schema = m.schema AND n.year = m.next_year_reaching_17_age) - + (SELECT p.reaching_17_age FROM males_outliers p + WHERE p.recruitment_id = m.recruitment_id AND p.schema = m.schema AND p.year = m.prev_year_reaching_17_age)) + ELSE m.reaching_17_age + END AS reaching_17_age + FROM males_interpolation_prep m +), + +females_interpolated AS ( + SELECT + f.recruitment_id, + f.schema, + f.year, + CASE + WHEN f.women_military_specialty_is_outlier AND f.prev_year_women_military_specialty IS NOT NULL AND f.next_year_women_military_specialty IS NOT NULL THEN + -- Linear interpolation formula: y = y1 + ((x - x1) / (x2 - x1)) * (y2 - y1) + (SELECT p.women_military_specialty FROM females_outliers p + WHERE p.recruitment_id = f.recruitment_id AND p.schema = f.schema AND p.year = f.prev_year_women_military_specialty) + + ((f.year - f.prev_year_women_military_specialty)::float / (f.next_year_women_military_specialty - f.prev_year_women_military_specialty)) * + ((SELECT n.women_military_specialty FROM females_outliers n + WHERE n.recruitment_id = f.recruitment_id AND n.schema = f.schema AND n.year = f.next_year_women_military_specialty) - + (SELECT p.women_military_specialty FROM females_outliers p + WHERE p.recruitment_id = f.recruitment_id AND p.schema = f.schema AND p.year = f.prev_year_women_military_specialty)) + ELSE f.women_military_specialty + END AS women_military_specialty + FROM females_interpolation_prep f +), + +-- 8. Объединяем интерполированные данные +combined_data AS ( + SELECT + m.recruitment_id, + m.schema, + m.year, + m.count_all, + m.reaching_17_age, + f.women_military_specialty + FROM males_interpolated m + LEFT JOIN females_interpolated f ON m.recruitment_id = f.recruitment_id AND m.schema = f.schema AND m.year = f.year +), + + + +-- 9. Рассчитываем параметры линейной регрессии +average_values AS ( + SELECT + recruitment_id, + schema, + year, + count_all, + reaching_17_age, + women_military_specialty, + -- Вычисляем средние значения отдельно + AVG(year) FILTER (WHERE count_all IS NOT NULL) OVER (PARTITION BY recruitment_id, schema) AS avg_x_count_all, + AVG(count_all) FILTER (WHERE count_all IS NOT NULL) OVER (PARTITION BY recruitment_id, schema) AS avg_y_count_all, + AVG(year) FILTER (WHERE reaching_17_age IS NOT NULL) OVER (PARTITION BY recruitment_id, schema) AS avg_x_reaching_17_age, + AVG(reaching_17_age) FILTER (WHERE reaching_17_age IS NOT NULL) OVER (PARTITION BY recruitment_id, schema) AS avg_y_reaching_17_age, + AVG(year) FILTER (WHERE women_military_specialty IS NOT NULL) OVER (PARTITION BY recruitment_id, schema) AS avg_x_women_military_specialty, + AVG(women_military_specialty) FILTER (WHERE women_military_specialty IS NOT NULL) OVER (PARTITION BY recruitment_id, schema) AS avg_y_women_military_specialty + FROM combined_data +), +regression_stats AS ( + SELECT + recruitment_id, + schema, + + -- count_all + COUNT(*) FILTER (WHERE count_all IS NOT NULL) AS n_count_all, + AVG(year) FILTER (WHERE count_all IS NOT NULL) AS avg_x_count_all, + AVG(count_all) FILTER (WHERE count_all IS NOT NULL) AS avg_y_count_all, + SUM((year - avg_x_count_all) * (count_all - avg_y_count_all)) FILTER (WHERE count_all IS NOT NULL) AS sum_xy_count_all, + SUM(POWER(year - avg_x_count_all, 2)) FILTER (WHERE count_all IS NOT NULL) AS sum_x_squared_count_all, + + -- reaching_17_age + COUNT(*) FILTER (WHERE reaching_17_age IS NOT NULL) AS n_reaching_17_age, + AVG(year) FILTER (WHERE reaching_17_age IS NOT NULL) AS avg_x_reaching_17_age, + AVG(reaching_17_age) FILTER (WHERE reaching_17_age IS NOT NULL) AS avg_y_reaching_17_age, + SUM((year - avg_x_reaching_17_age) * (reaching_17_age - avg_y_reaching_17_age)) FILTER (WHERE reaching_17_age IS NOT NULL) AS sum_xy_reaching_17_age, + SUM(POWER(year - avg_x_reaching_17_age, 2)) FILTER (WHERE reaching_17_age IS NOT NULL) AS sum_x_squared_reaching_17_age, + + -- women_military_specialty + COUNT(*) FILTER (WHERE women_military_specialty IS NOT NULL) AS n_women_military_specialty, + AVG(year) FILTER (WHERE women_military_specialty IS NOT NULL) AS avg_x_women_military_specialty, + AVG(women_military_specialty) FILTER (WHERE women_military_specialty IS NOT NULL) AS avg_y_women_military_specialty, + SUM((year - avg_x_women_military_specialty) * (women_military_specialty - avg_y_women_military_specialty)) FILTER (WHERE women_military_specialty IS NOT NULL) AS sum_xy_women_military_specialty, + SUM(POWER(year - avg_x_women_military_specialty, 2)) FILTER (WHERE women_military_specialty IS NOT NULL) AS sum_x_squared_women_military_specialty + + FROM average_values + GROUP BY recruitment_id, schema +), + +-- 10. Вычисляем параметры уравнения линейной регрессии +regression_params AS ( + SELECT + recruitment_id, + schema, + -- Параметры для count_all + CASE + WHEN sum_x_squared_count_all <> 0 THEN sum_xy_count_all / sum_x_squared_count_all + ELSE 0 + END AS k_count_all, + avg_y_count_all - (CASE + WHEN sum_x_squared_count_all <> 0 THEN sum_xy_count_all / sum_x_squared_count_all + ELSE 0 + END) * avg_x_count_all AS b_count_all, + + -- Параметры для reaching_17_age + CASE + WHEN sum_x_squared_reaching_17_age <> 0 THEN sum_xy_reaching_17_age / sum_x_squared_reaching_17_age + ELSE 0 + END AS k_reaching_17_age, + avg_y_reaching_17_age - (CASE + WHEN sum_x_squared_reaching_17_age <> 0 THEN sum_xy_reaching_17_age / sum_x_squared_reaching_17_age + ELSE 0 + END) * avg_x_reaching_17_age AS b_reaching_17_age, + + -- Параметры для women_military_specialty + CASE + WHEN sum_x_squared_women_military_specialty <> 0 THEN sum_xy_women_military_specialty / sum_x_squared_women_military_specialty + ELSE 0 + END AS k_women_military_specialty, + avg_y_women_military_specialty - (CASE + WHEN sum_x_squared_women_military_specialty <> 0 THEN sum_xy_women_military_specialty / sum_x_squared_women_military_specialty + ELSE 0 + END) * avg_x_women_military_specialty AS b_women_military_specialty + FROM regression_stats +) + +-- 11. Рассчитываем прогнозные значения на текущий и следующий годы + +SELECT + r.recruitment_id, + r.schema, + MAKE_DATE(y.year, 1, 1) AS prediction_year, + ROUND(r.k_count_all * y.year + r.b_count_all) AS count_all, + ROUND(r.k_reaching_17_age * y.year + r.b_reaching_17_age) AS reaching_17_age, + ROUND(r.k_women_military_specialty * y.year + r.b_women_military_specialty) AS women_military_specialty, + y.prediction_type +FROM years y +CROSS JOIN regression_params r +ORDER BY r.schema, r.recruitment_id, prediction_year; + + N + + + 720 + 304 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + recruitment_id + recruitment_id + + + schema + schema + + + recording_date + prediction_year + + + count_all + count_all + + + reaching_17_age + reaching_17_age + + + women_military_specialty + women_military_specialty + + + N + N + N + N + + Y + + N + forecast + Y + registered_citizens
+ + N + Y + N + Y + + + 928 + 304 + +
+ + + +
diff --git a/mappings/ratings/job_ratings.hwf b/mappings/ratings/job_ratings.hwf new file mode 100644 index 0000000..fb3352e --- /dev/null +++ b/mappings/ratings/job_ratings.hwf @@ -0,0 +1,350 @@ + + + job_ratings + Y + + + + 0 + - + 2024/12/24 16:11:59.295 + - + 2024/12/24 16:11:59.295 + + + REG_ID + + + + + VK_ARRAY + + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + Y + 464 + 256 + + + + rows_id-array_reg.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/region/rows_id-array_reg.hpl + Basic + + Y + + N + local + N + N + Y + Y + 704 + 256 + + + + ratings.appear_subpoena.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/ratings/ratings.appear_subpoena.hpl + Basic + + + VK_ARRAY + VK_ARRAY_ID + + + REG_ID + RECRUITMENT_REG_ID + + Y + + Y + local + N + N + Y + N + 1104 + 144 + + + + ratings.conscription_info.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/ratings/ratings.conscription_info.hpl + Basic + + + VK_ARRAY + VK_ARRAY_ID + + + REG_ID + RECRUITMENT_REG_ID + + Y + + Y + local + N + N + Y + N + 1104 + 256 + + + + ratings.consideration_complaint.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/ratings/ratings.consideration_complaint.hpl + Basic + + + VK_ARRAY + VK_ARRAY_ID + + + REG_ID + RECRUITMENT_REG_ID + + Y + + N + local + N + N + Y + N + 1104 + 368 + + + + Success + + SUCCESS + + N + 1296 + 144 + + + + Success 2 + + SUCCESS + + N + 1296 + 256 + + + + Success 3 + + SUCCESS + + N + 1296 + 368 + + + + SQL ratings.appear_subppoena + + SQL + + ervu-dashboard + N + delete from ratings.appear_subppoena where recording_date = current_date + N + N + N + 832 + 144 + + + + SQL ratings.conscription_info + + SQL + + ervu-dashboard + N + delete from ratings.conscription_info where recording_date = current_date + N + N + N + 832 + 256 + + + + SQL ratings.consideration_complaint + + SQL + + ervu-dashboard + N + delete from ratings.consideration_complaint where recording_date = current_date + N + N + N + 832 + 368 + + + + + + Start + rows_id-array_reg.hpl + Y + Y + Y + + + ratings.appear_subpoena.hpl + Success + Y + Y + N + + + ratings.consideration_complaint.hpl + Success 3 + Y + Y + N + + + ratings.conscription_info.hpl + Success 2 + Y + Y + N + + + rows_id-array_reg.hpl + SQL ratings.appear_subppoena + Y + Y + N + + + SQL ratings.appear_subppoena + ratings.appear_subpoena.hpl + Y + Y + N + + + rows_id-array_reg.hpl + SQL ratings.conscription_info + Y + Y + N + + + SQL ratings.conscription_info + ratings.conscription_info.hpl + Y + Y + N + + + rows_id-array_reg.hpl + SQL ratings.consideration_complaint + N + Y + N + + + SQL ratings.consideration_complaint + ratings.consideration_complaint.hpl + Y + Y + N + + + Start + SQL ratings.consideration_complaint + Y + Y + Y + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 496 + 48 + запуск после отработки регионов /region/job_recruitments_region + 372 + + + + diff --git a/mappings/ratings/ratings.appear_subpoena.hpl b/mappings/ratings/ratings.appear_subpoena.hpl new file mode 100644 index 0000000..1719485 --- /dev/null +++ b/mappings/ratings/ratings.appear_subpoena.hpl @@ -0,0 +1,228 @@ + + + + ratings.appear_subpoena + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/12/24 16:15:10.943 + - + 2024/12/24 16:15:10.943 + + + + + + Table input + Get variables + Y + + + Get variables + Select values + Y + + + Select values + Insert / update + Y + + + + Get variables + GetVariable + + Y + + 1 + + none + + + + + -1 + REG_ID + -1 + none + String + + + + + 592 + 256 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + id_region + REG_ID + + ratings + appear_subppoena
+ + appear_mil_com + appear_mil_com + Y + + + appear_mil_com_percent + appear_mil_com_percent + Y + + + id_region + region_id + N + +
+ N + + + 976 + 256 + +
+ + Select values + SelectValues + + Y + + 1 + + none + + + + N + + REG_ID + REG_ID + String + -2 + -2 + + false + + + false + + + + + + + + + + 768 + 256 + + + + Table input + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + 0 + WITH +subpoena_data AS ( + SELECT + s.id AS subpoena_id, + s.create_date, + s.department_id AS recruitment_id, + s.status_id, + sr.type, + ssh.code AS sub_stat_hist, + s.send_date, + sh.date_time::timestamp AS history_date, + ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn + FROM public.subpoena s + JOIN subpoena_status ss ON s.status_id = ss.id + JOIN subpoena_reason AS sr ON sr.id = s.reason_id + JOIN subpoena_history AS sh ON sh.subpoena_id = s.id + JOIN subpoena_status AS ssh ON ssh.id = sh.status_id + WHERE ('${VK_ARRAY}' IS NULL + OR '${VK_ARRAY}' = '' + OR s.department_id = ANY ( + string_to_array( + trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' + )::uuid[] + ) + ) + AND sr.type IS NOT NULL + AND ssh.code NOT IN ('3.7','3.72', '3.71') + AND EXISTS ( + SELECT 1 + FROM subpoena_history sh2 + WHERE sh2.subpoena_id = s.id + AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') + ) +), +last_status AS ( + SELECT * + FROM subpoena_data + WHERE rn = 1 +), +season_separations AS ( + SELECT distinct + ls.recruitment_id, + ls.create_date, + ls.sub_stat_hist, + ls.subpoena_id, + ls.history_date + FROM last_status ls + WHERE ls.create_date >= DATE_TRUNC('year', CURRENT_DATE) +) +SELECT + '${REG_ID}' AS region_id, + COUNT(*) FILTER (WHERE tt.sub_stat_hist IN ('4.1', '4.2')) AS appear_mil_com, + ROUND( + COUNT(*) FILTER (WHERE tt.sub_stat_hist IN ('4.1', '4.2'))::NUMERIC / NULLIF(COUNT(*), 0) * 100, 2 + ) AS appear_mil_com_percent +FROM season_separations tt +HAVING COUNT(*) FILTER (WHERE tt.sub_stat_hist IN ('4.1', '4.2')) > 0; + + Y + + + 416 + 256 + + + + + +
diff --git a/mappings/ratings/ratings.conscription_info.hpl b/mappings/ratings/ratings.conscription_info.hpl new file mode 100644 index 0000000..e967cbc --- /dev/null +++ b/mappings/ratings/ratings.conscription_info.hpl @@ -0,0 +1,242 @@ + + + + ratings.conscription_info + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/12/24 16:16:57.706 + - + 2024/12/24 16:16:57.706 + + + + + + Get variables + Select values + Y + + + Select values + Insert / update + Y + + + Table input + Get variables + Y + + + + Get variables + GetVariable + + Y + + 1 + + none + + + + + -1 + REG_ID + -1 + none + String + + + + + 816 + 368 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + id_region + REG_ID + + + = + spring_autumn + spring_autumn + + ratings + conscription_info
+ + execution + appear_mil_com + Y + + + execution_percent + appear_mil_com_percent + Y + + + id_region + region_id + N + + + spring_autumn + spring_autumn + N + +
+ N + + + 1200 + 368 + +
+ + Select values + SelectValues + + Y + + 1 + + none + + + + N + + REG_ID + REG_ID + String + -2 + -2 + + false + + + false + + + + + + + + + + 992 + 368 + + + + Table input + TableInput + + Y + + 1 + + none + + + postgres.subpoena + N + 0 + WITH +subpoena_data AS ( + SELECT + s.id AS subpoena_id, + s.create_date, + s.department_id AS recruitment_id, + s.status_id, + sr.type, + ssh.code AS sub_stat_hist, + s.send_date, + sh.date_time::timestamp AS history_date--, + --ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn + FROM public.subpoena s + JOIN subpoena_status ss ON s.status_id = ss.id + JOIN subpoena_reason AS sr ON sr.id = s.reason_id + JOIN subpoena_history AS sh ON sh.subpoena_id = s.id + JOIN subpoena_status AS ssh ON ssh.id = sh.status_id + WHERE ('${VK_ARRAY}' IS NULL + OR '${VK_ARRAY}' = '' + OR s.department_id = ANY ( + string_to_array( + trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' + )::uuid[] + ) + ) + AND sr.type = '3' + AND ssh.code NOT IN ('3.7','3.72', '3.71') + AND EXISTS ( + SELECT 1 + FROM subpoena_history sh2 + WHERE sh2.subpoena_id = s.id + AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') + ) +), +/*last_status AS ( + SELECT * + FROM subpoena_data + WHERE rn = 1 +),*/ +season_separations AS ( + SELECT distinct + ls.recruitment_id, + ls.create_date, + ls.sub_stat_hist, + ls.subpoena_id, + ls.history_date, + CASE + WHEN EXTRACT(MONTH FROM ls.create_date) BETWEEN 1 AND 6 THEN 'Весна' + WHEN EXTRACT(MONTH FROM ls.create_date) BETWEEN 7 AND 12 THEN 'Осень' + END AS spring_autumn + FROM subpoena_data ls + --WHERE ls.create_date >= DATE_TRUNC('year', CURRENT_DATE) +) +SELECT + '${REG_ID}' AS region_id, + tt.spring_autumn, + COUNT(distinct tt.subpoena_id) FILTER (WHERE tt.sub_stat_hist IN ('5')) AS appear_mil_com, + ROUND( + COUNT(distinct tt.subpoena_id) FILTER (WHERE tt.sub_stat_hist IN ('5'))::NUMERIC / NULLIF(COUNT(distinct tt.subpoena_id), 0) * 100, 2 + ) AS appear_mil_com_percent +FROM season_separations tt +group by tt.spring_autumn + Y + + + 640 + 368 + + + + + +
diff --git a/mappings/ratings/ratings.consideration_complaint.hpl b/mappings/ratings/ratings.consideration_complaint.hpl new file mode 100644 index 0000000..1ea3fb9 --- /dev/null +++ b/mappings/ratings/ratings.consideration_complaint.hpl @@ -0,0 +1,219 @@ + + + + ratings.consideration_complaint + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/12/24 16:18:12.882 + - + 2024/12/24 16:18:12.882 + + + + + + Table input + Get variables + N + + + Get variables + Select values + N + + + Select values + Insert / update + N + + + Table input + Insert / update + Y + + + + Get variables + GetVariable + + Y + + 1 + + none + + + + + -1 + REG_ID + -1 + none + String + + + + + 624 + 416 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + id_region + region_id + + + + = + recording_date + recording_date + + + ratings + consideration_complaint
+ + consideration_complaint + consideration_complaint + Y + + + consideration_complaint_percent + consideration_complaint_percent + Y + + + id_region + region_id + N + + + recording_date + recording_date + N + +
+ N + + + 976 + 224 + +
+ + Select values + SelectValues + + Y + + 1 + + none + + + + N + + REG_ID + REG_ID + String + -2 + -2 + + false + + + false + + + + + + + + + + 784 + 416 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + -- '1' - Удовлетворена, '2' - Частично удовлетворена, '3' - Отказано в удовлетворении +--WITH total AS ( +-- SELECT * +-- FROM public.appeal_document ad +-- WHERE extra_info->>'result' IN ('1', '2', '3') +-- AND ( +-- '${VK_ARRAY}' IS NULL +-- OR '${VK_ARRAY}' = '' +-- OR ad.vk_id = ANY ( +-- string_to_array( +-- trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' +-- )::uuid[] +-- ) +-- ) +--) +--SELECT +-- '${REG_ID}' AS region_id, +-- COUNT(*) FILTER (WHERE tt.extra_info->>'result' IN ('1', '2')) AS consideration_complaint, +-- ROUND( +-- COUNT(*) FILTER (WHERE tt.extra_info->>'result' IN ('1', '2'))::NUMERIC / NULLIF(COUNT(*), 0) * 100, 2 +-- ) AS consideration_complaint_percent +--FROM total tt; + +select +count(*) as total_count, +count(*) FILTER (where solution_type='Решено') AS consideration_complaint, +COALESCE(ROUND((count(*) FILTER (where solution_type='Решено'))* 100 / NULLIF(count(*),0), 0),0) as consideration_complaint_percent, +region_id, +current_date as recording_date +from appeals.appeals_list +where region_id is not null +group by region_id + N + + + 400 + 224 + + + + + +
diff --git a/mappings/recording_date/job_last_recording_date.hwf b/mappings/recording_date/job_last_recording_date.hwf index 32a6c9f..b4f60ab 100644 --- a/mappings/recording_date/job_last_recording_date.hwf +++ b/mappings/recording_date/job_last_recording_date.hwf @@ -52,8 +52,6 @@ N N ${Internal.Entry.Current.Folder}/last_recording_date.hpl - - Basic Y @@ -64,7 +62,7 @@ N Y N - 512 + 496 240 @@ -75,7 +73,31 @@ ervu-dashboard N - delete from public.last_recording_date + update public.last_recording_date +set entry = '1', +start_time = now() + + + + N + N + N + 432 + 64 + + + + SQL.delete 2 + + SQL + + ervu-dashboard + N + delete from public.last_recording_date + + + + N N N @@ -88,20 +110,41 @@ Start SQL.delete - Y + N Y Y SQL.delete last_recording_date + N + N + Y + + + last_recording_date + Success Y Y N - last_recording_date + SQL.delete Success + N + Y + N + + + Start + SQL.delete 2 + Y + Y + Y + + + SQL.delete 2 + last_recording_date Y Y N diff --git a/mappings/region/appeals.reasons_appeal(reg).hpl b/mappings/region/appeals.reasons_appeal(reg).hpl new file mode 100644 index 0000000..ca290ca --- /dev/null +++ b/mappings/region/appeals.reasons_appeal(reg).hpl @@ -0,0 +1,245 @@ + + + + appeals.reasons_appeal(reg) + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/01/27 11:51:55.468 + - + 2025/01/27 11:51:55.468 + + + + + + Execute SQL script + Table input (appeal_document) регионы + Y + + + Insert / update (main_dashboard.appeals) 2 + Execute SQL script 2 + Y + + + Table input (appeal_document) регионы + Insert / update (main_dashboard.appeals) 2 + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + N + N + N + DELETE FROM appeals.reasons_appeal +WHERE recording_date = current_date + AND schema = 'Organization' + + + 512 + 336 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM appeals.reasons_appeal +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + + + 1296 + 336 + + + + Insert / update (main_dashboard.appeals) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + schema + schema + + + = + recording_date + recording_date + + appeals + reasons_appeal
+ + recruitment_id + recruitment_id + N + + + schema + schema + N + + + appeal + appeal + Y + + + incorrect_inf + incorrect_inf + Y + + + incorrect_inf_percent + incorrect_inf_percent + Y + + + sending_documents + sending_documents + Y + + + sending_documents_percent + sending_documents_percent + Y + + + decision_disagreement + decision_disagreement + Y + + + decision_disagreement_persent + decision_disagreement_percent + Y + + + complaint_withdrawal + complaint_withdrawal + Y + + + complaint_withdrawal_percent + complaint_withdrawal_percent + Y + +
+ Y + + + 1056 + 336 + +
+ + Table input (appeal_document) регионы + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_REG}'), ','))::uuid AS recruitment_id +), +summary_counts AS ( + SELECT + region_id AS recruitment_id, + COUNT(*) AS total_appeals, + COUNT(*) FILTER (WHERE fact ILIKE 'Внесли изменения%') AS incorrect_inf, -- Некорректные данные + COUNT(*) FILTER (WHERE fact ILIKE 'Досыл%') AS sending_documents, -- Досыл документов + COUNT(*) FILTER (WHERE fact ILIKE 'Не согласен%') AS decision_disagreement, -- Несогласие с решением + COUNT(*) FILTER (WHERE fact ILIKE 'Прошу%') AS complaint_withdrawal -- Отзыв жалобы + FROM appeals.appeals_list + WHERE region_id::uuid IN (SELECT recruitment_id FROM ids) + GROUP BY region_id +) +SELECT + 'Organization' AS schema, + i.recruitment_id, + current_date AS recording_date, + COALESCE(sc.total_appeals, 0) AS appeal, + COALESCE(sc.incorrect_inf, 0) AS incorrect_inf, + COALESCE(sc.sending_documents, 0) AS sending_documents, + COALESCE(sc.decision_disagreement, 0) AS decision_disagreement, + COALESCE(sc.complaint_withdrawal, 0) AS complaint_withdrawal, + COALESCE(ROUND(sc.incorrect_inf * 100.0 / NULLIF(sc.total_appeals, 0), 2), 0) AS incorrect_inf_percent, + COALESCE(ROUND(sc.sending_documents * 100.0 / NULLIF(sc.total_appeals, 0), 2), 0) AS sending_documents_percent, + COALESCE(ROUND(sc.decision_disagreement * 100.0 / NULLIF(sc.total_appeals, 0), 2), 0) AS decision_disagreement_percent, + COALESCE(ROUND(sc.complaint_withdrawal * 100.0 / NULLIF(sc.total_appeals, 0), 2), 0) AS complaint_withdrawal_percent +FROM ids i +LEFT JOIN summary_counts sc ON sc.recruitment_id = i.recruitment_id; + Y + + + 720 + 336 + + + + + +
diff --git a/mappings/region/appeals.review_rating.hpl b/mappings/region/appeals.review_rating.hpl new file mode 100644 index 0000000..30e2d79 --- /dev/null +++ b/mappings/region/appeals.review_rating.hpl @@ -0,0 +1,156 @@ + + + + appeals.review_rating + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/01/28 14:15:12.495 + - + 2025/01/28 14:15:12.495 + + + + + + Table input + Insert / update + Y + + + Execute SQL script + Table input + Y + + + + Execute SQL script + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + + N + + N + + N + N + N + DELETE FROM appeals.review_rating WHERE recording_date = current_date AND schema = 'Organization' + + + + 416 + 464 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + schema + schema + + appeals + review_rating
+ + schema + schema + N + + + recruitment_id + recruitment_id + N + + + speed + average_consideration + Y + + + rating + average_rating + Y + +
+ N + + + 864 + 464 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + current_date AS recording_date, + 'Organization' AS schema, + ap.average_rating, + ap.average_consideration, + ap.recruitment_id +FROM main_dashboard.appeals ap +WHERE recording_date = current_date AND schema = 'Organization' + + N + + + 640 + 464 + + + + + +
diff --git a/mappings/region/appeals.topic_appeal(reg).hpl b/mappings/region/appeals.topic_appeal(reg).hpl new file mode 100644 index 0000000..e1517a2 --- /dev/null +++ b/mappings/region/appeals.topic_appeal(reg).hpl @@ -0,0 +1,248 @@ + + + + appeals.topic_appeal(reg) + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/03/25 13:26:59.797 + - + 2025/03/25 13:26:59.797 + + + + + + Execute SQL script + Table input (appeal_document) регионы + Y + + + Insert / update (main_dashboard.appeals) 2 + Execute SQL script 2 + Y + + + Table input (appeal_document) регионы + Insert / update (main_dashboard.appeals) 2 + Y + + + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + N + N + N + DELETE FROM appeals.topic_appeal +WHERE recording_date = current_date + AND schema = 'Organization' + + + 528 + 320 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + Y + N + N + DELETE FROM appeals.topic_appeal +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + + + 1312 + 320 + + + + Insert / update (main_dashboard.appeals) 2 + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_id + recruitment_id + + + + = + schema + schema + + + + = + recording_date + recording_date + + + appeals + topic_appeal
+ + recruitment_id + recruitment_id + N + + + schema + schema + N + + + registration + registration + Y + + + registration_percent + registration_percent + Y + + + sabpoena + sabpoena + Y + + + sabpoena_percent + sabpoena_percent + Y + + + temporary_measures + temporary_measures + Y + + + temporary_measures_percent + temporary_measures_percent + Y + + + recording_date + recording_date + N + + + appear + appeal + Y + +
+ Y + + + 1072 + 320 + +
+ + Table input (appeal_document) регионы + TableInput + + N + + 1 + + none + + + ervu-dashboard + N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_REG}'), ','))::uuid AS recruitment_id +), +summary_counts AS ( + SELECT + region_id AS recruitment_id, + COUNT(*) AS total_appeals, + SUM( + CASE + WHEN subcategory LIKE 'Решение о постановке на воинский учёт%' + OR subcategory LIKE 'Отзыв ранее направленной жалобы по воинскому учету%' + OR subcategory LIKE 'Досыл документов к ранее направленной жалобе по воинскому учету%' + OR subcategory LIKE 'Решение об отказе во внесении изменений в Реестр воинского учёта%' + THEN 1 ELSE 0 + END + ) AS registration, -- постановка на учет + SUM(CASE WHEN subcategory LIKE 'Решение (заключение) призывной комиссии по призыву граждан на военную службу%' THEN 1 ELSE 0 END) AS sabpoena, -- повестки (призыв на службу) + SUM(CASE WHEN subcategory LIKE 'Решение об установлении ограничительных мер%' THEN 1 ELSE 0 END) AS temporary_measures -- временные меры + FROM appeals.appeals_list + WHERE region_id::uuid IN (SELECT recruitment_id FROM ids) + GROUP BY region_id +) +SELECT + 'Organization' AS schema, + i.recruitment_id, + current_date AS recording_date, + COALESCE(sc.total_appeals, 0) AS appeal, + COALESCE(sc.registration, 0) AS registration, + COALESCE(sc.sabpoena, 0) AS sabpoena, + COALESCE(sc.temporary_measures, 0) AS temporary_measures, + COALESCE(ROUND(sc.registration * 100.0 / NULLIF(sc.total_appeals, 0), 2), 0) AS registration_percent, + COALESCE(ROUND(sc.sabpoena * 100.0 / NULLIF(sc.total_appeals, 0), 2), 0) AS sabpoena_percent, + COALESCE(ROUND(sc.temporary_measures * 100.0 / NULLIF(sc.total_appeals, 0), 2), 0) AS temporary_measures_percent +FROM ids i +LEFT JOIN summary_counts sc ON sc.recruitment_id = i.recruitment_id + Y + + + 736 + 320 + + + + + +
diff --git a/mappings/region/array_reg.hwf b/mappings/region/array_reg.hwf new file mode 100644 index 0000000..f0a19d0 --- /dev/null +++ b/mappings/region/array_reg.hwf @@ -0,0 +1,157 @@ + + + array_reg + Y + + + + 0 + - + 2024/12/10 09:44:55.162 + - + 2024/12/10 09:44:55.162 + + + ORG_ROW + + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 400 + 304 + + + + Success + + SUCCESS + + N + 1152 + 304 + + + + select_recruitments_region(reg)rows.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/region/select_recruitments_region(reg)rows.hpl + Basic + + Y + + N + local + N + N + Y + N + 720 + 304 + + + + select_recruitments_region(reg).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/region/select_recruitments_region(reg).hpl + txt + C:\Users\acer\Desktop\лог + Rowlevel + + + ORG_ROW + ORGANIZATION_ROW + + + Y + + Y + local + N + N + Y + N + 976 + 304 + + + + SQL + + SQL + + ervu-dashboard + N + delete from ervu_dashboard.array_reg + N + N + N + 560 + 304 + + + + + + select_recruitments_region(reg)rows.hpl + select_recruitments_region(reg).hpl + Y + Y + N + + + select_recruitments_region(reg).hpl + Success + Y + Y + N + + + Start + SQL + Y + Y + Y + + + SQL + select_recruitments_region(reg)rows.hpl + Y + Y + Y + + + + + + diff --git a/mappings/region/auxiliary/array_region.hpl b/mappings/region/auxiliary/array_region.hpl new file mode 100644 index 0000000..944c416 --- /dev/null +++ b/mappings/region/auxiliary/array_region.hpl @@ -0,0 +1,73 @@ + + + + array_region + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/01/27 17:33:33.546 + - + 2025/01/27 17:33:33.546 + + + + + + Table input + Copy rows to result + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT ARRAY_AGG(idm_id) AS ARRAY_REGION +FROM ervu_dashboard.recruitment +WHERE schema = 'Organization' + N + + + 432 + 240 + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 704 + 240 + + + + + + diff --git a/mappings/region/auxiliary/update_appeal_recruitments.hpl b/mappings/region/auxiliary/update_appeal_recruitments.hpl new file mode 100644 index 0000000..5ac4250 --- /dev/null +++ b/mappings/region/auxiliary/update_appeal_recruitments.hpl @@ -0,0 +1,291 @@ + + + + update_appeal_recruitments + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/01/27 13:36:22.747 + - + 2025/01/27 13:36:22.747 + + + + + + Table input + Insert / update + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + region + region + + appeals + appeals_list
+ + region + region + N + + + region_id + idm_id + Y + +
+ N + + + 784 + 144 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + WITH ranked_recruitment AS ( + SELECT + rt.idm_id, + rt.shortname, + al.region, + row_number() OVER (PARTITION BY al.region ORDER BY rt.shortname) AS rn + FROM + appeals.appeals_list al + JOIN + ervu_dashboard.recruitment rt + ON + (al.region ILIKE '%Адыге%' AND rt.shortname ILIKE '%Адыге%') +OR (al.region ILIKE '%Республик%Башк%р%' AND rt.shortname ILIKE '%Республик%Башк%р%') +OR (al.region ILIKE '%Республик%Бурят%' AND rt.shortname ILIKE '%Республик%Бурят%') +OR (al.region ILIKE '%Республик%Алтай%' AND rt.shortname ILIKE '%Республик%Алтай%') +OR (al.region ILIKE '%Дагест%' AND rt.shortname ILIKE '%Дагест%') +OR (al.region ILIKE '%Ингушет%' AND rt.shortname ILIKE '%Ингушет%') +OR (al.region ILIKE '%Кабардино-Балкар%' AND rt.shortname ILIKE '%Кабардино-Балкар%') +OR (al.region ILIKE '%Республик%Калмыки%' AND rt.shortname ILIKE '%Республик%Калмыки%') +OR (al.region ILIKE '%Карачаево-Черкесс%Республик%' AND rt.shortname ILIKE '%Карачаево-Черкесс%Республик%') +OR (al.region ILIKE '%Карел%' AND rt.shortname ILIKE '%Карел%') +OR (al.region ILIKE '%Коми%' AND rt.shortname ILIKE '%Коми%') +OR (al.region ILIKE '%Марий%Эл%' AND rt.shortname ILIKE '%Марий%Эл%') +OR (al.region ILIKE '%Мордови%' AND rt.shortname ILIKE '%Мордови%') +OR (al.region ILIKE '%Саха%(Якутия)%' AND rt.shortname ILIKE '%Саха%(Якутия)%') +OR (al.region ILIKE '%Северн%Осети%Алан%' AND rt.shortname ILIKE '%Северн%Осети%Алан%') +OR (al.region ILIKE '%Татарстан%' AND rt.shortname ILIKE '%Татарстан%') +OR (al.region ILIKE '%Тыва%' AND rt.shortname ILIKE '%Тыва%') +OR (al.region ILIKE '%Удмуртск%' AND rt.shortname ILIKE '%Удмуртск%') +OR (al.region ILIKE '%Хакас%' AND rt.shortname ILIKE '%Хакас%') +OR (al.region ILIKE '%Чеченск%' AND rt.shortname ILIKE '%Чеченск%') +OR (al.region ILIKE '%Чуваш%' AND rt.shortname ILIKE '%Чуваш%') +OR (al.region ILIKE '%Алтайск%кра%' AND rt.shortname ILIKE '%Алтайск%кра%') +OR (al.region ILIKE '%Краснодарск%' AND rt.shortname ILIKE '%Краснодарск%') +OR (al.region ILIKE '%Красноярск%' AND rt.shortname ILIKE '%Красноярск%') +OR (al.region ILIKE '%Приморск%' AND rt.shortname ILIKE '%Приморск%') +OR (al.region ILIKE '%Ставропольск%' AND rt.shortname ILIKE '%Ставропольск%') +OR (al.region ILIKE '%Хабаровск%' AND rt.shortname ILIKE '%Хабаровск%') +OR (al.region ILIKE '%Амурск%' AND rt.shortname ILIKE '%Амурск%') +OR (al.region ILIKE '%Архангельск%' AND rt.shortname ILIKE '%Архангельск%') +OR (al.region ILIKE '%Астраханск%' AND rt.shortname ILIKE '%Астраханск%') +OR (al.region ILIKE '%Белгородск%' AND rt.shortname ILIKE '%Белгородск%') +OR (al.region ILIKE '%Брянск%' AND rt.shortname ILIKE '%Брянск%') +OR (al.region ILIKE '%Владимирск%' AND rt.shortname ILIKE '%Владимирск%') +OR (al.region ILIKE '%Волгоградск%' AND rt.shortname ILIKE '%Волгоградск%') +OR (al.region ILIKE '%Вологодск%' AND rt.shortname ILIKE '%Вологодск%') +OR (al.region ILIKE '%Воронежск%' AND rt.shortname ILIKE '%Воронежск%') +OR (al.region ILIKE '%Ивановск%' AND rt.shortname ILIKE '%Ивановск%') +OR (al.region ILIKE '%Иркутск%' AND rt.shortname ILIKE '%Иркутск%') +OR (al.region ILIKE '%Калининградск%' AND rt.shortname ILIKE '%Калининградск%') +OR (al.region ILIKE '%Калужск%' AND rt.shortname ILIKE '%Калужск%') +OR (al.region ILIKE '%Камчатск%' AND rt.shortname ILIKE '%Камчатск%') +OR (al.region ILIKE '%Кемеровск%' AND rt.shortname ILIKE '%Кемеровск%') +OR (al.region ILIKE '%Кировск%' AND rt.shortname ILIKE '%Кировск%') +OR (al.region ILIKE '%Костромск%' AND rt.shortname ILIKE '%Костромск%') +OR (al.region ILIKE '%Курганск%' AND rt.shortname ILIKE '%Курганск%') +OR (al.region ILIKE '%Курск%' AND rt.shortname ILIKE '%Курск%') +OR (al.region ILIKE '%Ленинградск%' AND rt.shortname ILIKE '%Ленинградск%') +OR (al.region ILIKE '%Липецк%' AND rt.shortname ILIKE '%Липецк%') +OR (al.region ILIKE '%Магаданск%' AND rt.shortname ILIKE '%Магаданск%') +OR (al.region ILIKE '%Московск%' AND rt.shortname ILIKE '%Московск%') +OR (al.region ILIKE '%Мурманск%' AND rt.shortname ILIKE '%Мурманск%') +OR (al.region ILIKE '%Нижегородск%' AND rt.shortname ILIKE '%Нижегородск%') +OR (al.region ILIKE '%Новгородск%' AND rt.shortname ILIKE '%Новгородск%') +OR (al.region ILIKE '%Новосибирск%' AND rt.shortname ILIKE '%Новосибирск%') +OR (al.region ILIKE '%Омск%обл%' AND rt.shortname ILIKE 'ВК Омск%обл%' and rt.shortname NOT ILIKE '%Костромс%' and rt.shortname NOT ILIKE 'Военный комиссариат Томск%') +OR (al.region ILIKE '%Оренбургск%' AND rt.shortname ILIKE '%Оренбургск%') +OR (al.region ILIKE '%Орловск%' AND rt.shortname ILIKE '%Орловск%') +OR (al.region ILIKE '%Пензенск%' AND rt.shortname ILIKE '%Пензенск%') +OR (al.region ILIKE '%Пермск$' AND rt.shortname ILIKE '%Пермск$') +OR (al.region ILIKE '%Псковск%' AND rt.shortname ILIKE '%Псковск%') +OR (al.region ILIKE '%Ростовск%' AND rt.shortname ILIKE '%Ростовск%') +OR (al.region ILIKE '%Рязанск%' AND rt.shortname ILIKE '%Рязанск%') +OR (al.region ILIKE '%Самарск%' AND rt.shortname ILIKE '%Самарск%') +OR (al.region ILIKE '%Саратовск%' AND rt.shortname ILIKE '%Саратовск%') +OR (al.region ILIKE '%Сахалинск%' AND rt.shortname ILIKE '%Сахалинск%') +OR (al.region ILIKE '%Свердловск%' AND rt.shortname ILIKE '%Свердловск%') +OR (al.region ILIKE '%Смоленск%' AND rt.shortname ILIKE '%Смоленск%') +OR (al.region ILIKE '%Тамбовск%' AND rt.shortname ILIKE '%Тамбовск%') +OR (al.region ILIKE '%Тверск%' AND rt.shortname ILIKE '%Тверск%') +OR (al.region ILIKE '%Томск%обл%' AND rt.shortname ILIKE 'Военный комиссариат Томской обл%' and rt.shortname NOT ILIKE '%Костромс%' and rt.shortname NOT ILIKE 'Военный комиссариат Омск%') +OR (al.region ILIKE '%Тульск%' AND rt.shortname ILIKE '%Тульск%') +OR (al.region ILIKE '%Тюменск%' AND rt.shortname ILIKE '%Тюменск%') +OR (al.region ILIKE '%Ульяновск%' AND rt.shortname ILIKE '%Ульяновск%') +OR (al.region ILIKE '%Челябинск%' AND rt.shortname ILIKE '%Челябинск%') +OR (al.region ILIKE '%Забайкальск%' AND rt.shortname ILIKE '%Забайкальск%') +OR (al.region ILIKE '%Ярославск%' AND rt.shortname ILIKE '%Ярославск%') +OR (al.region ILIKE '%г%Москв%' AND rt.shortname ILIKE '%г%Москв%') +OR (al.region ILIKE '%г%Санкт-Петербург%' AND rt.shortname ILIKE '%г%Санкт-Петербург%') +OR (al.region ILIKE '%Еврейск%автономн%' AND rt.shortname ILIKE '%Еврейск%автономн%') +OR (al.region ILIKE '%Ненецк%автономн%' AND rt.shortname ILIKE '%Ненецк%автономн%') +OR (al.region ILIKE '%Хант%Мансийск%' AND rt.shortname ILIKE '%Хант%Мансийск%') +OR (al.region ILIKE '%Чукотск%автономн%' AND rt.shortname ILIKE '%Чукотск%автономн%') +OR (al.region ILIKE '%Ямал%Ненецк%автономн%' AND rt.shortname ILIKE '%Ямал%Ненецк%автономн%') +OR (al.region ILIKE '%Крым%' AND rt.shortname ILIKE '%Крым%') +OR (al.region ILIKE '%г%Севастопол%' AND rt.shortname ILIKE '%г%Севастопол%') +OR (al.region ILIKE '%Запорожск%' AND rt.shortname ILIKE '%Запорожск%') +OR (al.region ILIKE '%Донецк%Народн%' AND rt.shortname ILIKE '%Донецк%Народн%') +OR (al.region ILIKE '%Луганск%Народн%' AND rt.shortname ILIKE '%Луганск%Народн%') +OR (al.region ILIKE '%Херсонск%' AND rt.shortname ILIKE '%Херсонск%') +WHERE + rt.schema = 'Organization' +) +SELECT DISTINCT + idm_id, + shortname, + region +FROM ranked_recruitment rrt +where +(rrt.region ILIKE '%Адыге%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Республик%Башк%р%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Республик%Бурят%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Республик%Алтай' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Дагест%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Ингушет%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Кабардино-Балкар%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Республик%Калмыки%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Карачаево-Черкесс%Республик%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Карел%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Коми%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Марий%Эл%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Мордови%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Саха%(Якутия)%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Северн%Осети%Алан%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Татарстан%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Тыва%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Удмуртск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Хакас%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Чеченск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Чуваш%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Алтайск%кра%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Краснодарск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Красноярск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Приморск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Ставропольск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Хабаровск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Амурск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Архангельск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Астраханск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Белгородск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Брянск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Владимирск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Волгоградск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Вологодск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Воронежск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Ивановск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Иркутск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Калининградск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Калужск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Камчатск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Кемеровск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Кировск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Костромск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Курганск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Курск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Ленинградск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Липецк%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Магаданск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Московск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Мурманск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Нижегородск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Новгородск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Новосибирск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Омск%обл%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Оренбургск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Орловск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Пензенск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Пермск$' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Псковск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Ростовск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Рязанск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Самарск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Саратовск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Сахалинск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Свердловск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Смоленск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Тамбовск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Тверск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Томск%обл%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Тульск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Тюменск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Ульяновск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Челябинск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Забайкальск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Ярославск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%г%Москв%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%г%Санкт-Петербург%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Еврейск%автономн%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Ненецк%автономн%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Хант%Мансийск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Чукотск%автономн%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Ямал%Ненецк%автономн%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Крым%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%г%Севастопол%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Запорожск%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Донецк%Народн%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Луганск%Народн%' AND rrt.rn = 1) OR +(rrt.region ILIKE '%Херсонск%' AND rrt.rn = 1); + + N + + + 480 + 144 + + + + + +
diff --git a/mappings/region/job_get_rows_reg.hwf b/mappings/region/job_get_rows_reg.hwf new file mode 100644 index 0000000..85eac85 --- /dev/null +++ b/mappings/region/job_get_rows_reg.hwf @@ -0,0 +1,120 @@ + + + job_get_rows_reg + Y + + + + - + 2024/12/10 12:37:22.616 + - + 2024/12/10 12:37:22.616 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 432 + 336 + + + + array_reg.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/region/array_reg.hwf + Nothing + + Y + + N + local + N + N + Y + N + 592 + 336 + + + + Success + + SUCCESS + + N + 912 + 336 + + + + rows_id-array_reg.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/region/rows_id-array_reg.hpl + Basic + + Y + + N + local + N + N + Y + N + 768 + 336 + + + + + + Start + array_reg.hwf + Y + Y + Y + + + array_reg.hwf + rows_id-array_reg.hpl + Y + Y + N + + + rows_id-array_reg.hpl + Success + Y + Y + N + + + + + + diff --git a/mappings/region/job_recruitments_region.hwf b/mappings/region/job_recruitments_region.hwf index 28fe39e..c7f3efd 100644 --- a/mappings/region/job_recruitments_region.hwf +++ b/mappings/region/job_recruitments_region.hwf @@ -5,16 +5,37 @@ + 0 - 2024/08/15 16:02:12.821 - 2024/08/15 16:02:12.821 + + ARR_REG + + + + + PRNT_ID + + + + + REC_ID + + + REG_ID + + SCM + + + VK_ARRAY @@ -36,8 +57,8 @@ 0 1 N - 112 - 464 + 688 + 784
@@ -57,12 +78,8 @@ Basic - VK_ARRAY - VK_ARRAY_ID - - - REG_ID - RECRUITMENT_REG_ID + ARR_REG + ARRAY_REGION Y @@ -71,35 +88,9 @@ N N Y - N - 976 - 16 - - - - select_recruitments_region(reg) - - PIPELINE - - N - N - N - N - N - N - ${Internal.Entry.Current.Folder}/select_recruitments_region(reg).hpl - Basic - - Y - - N - local - N - N - Y - N - 352 - 464 + Y + 1696 + 256 @@ -108,8 +99,8 @@ SUCCESS N - 1184 - 16 + 1936 + 256 @@ -124,6 +115,8 @@ N Y ${Internal.Entry.Current.Folder}/main_dashboard.recruitment_campaign(reg).hpl + txt + C:\Users\acer\Desktop\лог Basic @@ -142,8 +135,8 @@ N Y N - 976 - 80 + 1696 + 400 @@ -152,8 +145,8 @@ SUCCESS N - 1184 - 80 + 2224 + 400 @@ -186,8 +179,8 @@ N Y N - 976 - 144 + 1696 + 464 @@ -196,8 +189,8 @@ SUCCESS N - 1184 - 144 + 2224 + 464 @@ -230,8 +223,8 @@ N Y N - 976 - 208 + 1696 + 528 @@ -240,8 +233,8 @@ SUCCESS N - 1184 - 208 + 2224 + 528 @@ -274,8 +267,8 @@ N Y N - 976 - 272 + 1696 + 592 @@ -284,8 +277,8 @@ SUCCESS N - 1184 - 272 + 2224 + 592 @@ -318,8 +311,8 @@ N Y N - 976 - 336 + 1696 + 656 @@ -328,8 +321,8 @@ SUCCESS N - 1184 - 336 + 2224 + 656 @@ -362,8 +355,8 @@ N Y N - 976 - 400 + 1696 + 720 @@ -372,8 +365,8 @@ SUCCESS N - 1184 - 400 + 2224 + 720 @@ -406,8 +399,8 @@ N Y N - 976 - 464 + 1696 + 784 @@ -416,128 +409,8 @@ SUCCESS N - 1184 - 464 - - - - SQL.md.appeals - - SQL - - ervu-dashboard - N - DELETE FROM main_dashboard.appeals where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - N - N - N - 752 - 16 - - - - SQL.md.rec_cam - - SQL - - ervu-dashboard - N - DELETE FROM main_dashboard.recruitment_campaign where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - N - N - N - 752 - 80 - - - - SQL.md.tot_reg - - SQL - - ervu-dashboard - N - DELETE FROM main_dashboard.total_registered where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - N - N - N - 752 - 144 - - - - SQL.md.wait_reg - - SQL - - ervu-dashboard - N - DELETE FROM main_dashboard.waiting_registration where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - N - N - N - 752 - 208 - - - - SQL.rcam.subpoenas - - SQL - - ervu-dashboard - N - DELETE FROM recruitment_campaign.subpoenas where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - N - N - N - 752 - 272 - - - - SQL.totreg.mrc - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.reg_mil_cat where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - N - N - N - 752 - 336 - - - - SQL.totreg.remreg - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.removed_registry where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - N - N - N - 752 - 400 - - - - SQL.totreg.sub - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.subpoenas where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - N - N - N - 752 - 464 + 2224 + 784 @@ -570,8 +443,8 @@ N Y N - 976 - 544 + 1696 + 864 @@ -580,23 +453,8 @@ SUCCESS N - 1184 - 544 - - - - SQL.totreg.drlic - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.driver_license where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - N - N - N - 752 - 544 + 2224 + 864 @@ -629,8 +487,8 @@ N Y N - 976 - 608 + 1696 + 944 @@ -639,23 +497,8 @@ SUCCESS N - 1184 - 608 - - - - SQL.totreg.chmi - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.child_minor where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - N - N - N - 752 - 608 + 2224 + 944 @@ -688,8 +531,8 @@ N Y N - 976 - 688 + 1696 + 1024 @@ -698,23 +541,8 @@ SUCCESS N - 1184 - 688 - - - - SQL.totreg.age - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.age where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - N - N - N - 752 - 688 + 2224 + 1024 @@ -747,8 +575,8 @@ N Y N - 976 - 768 + 1696 + 1104 @@ -757,23 +585,8 @@ SUCCESS N - 1184 - 768 - - - - SQL.totreg.marstat - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.marital_status where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - N - N - N - 752 - 768 + 2224 + 1104 @@ -806,8 +619,8 @@ N Y N - 976 - 848 + 1696 + 1184 @@ -816,23 +629,8 @@ SUCCESS N - 1184 - 848 - - - - SQL.totreg.edulev - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.education_level where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - N - N - N - 752 - 848 + 2224 + 1184 @@ -865,8 +663,8 @@ N Y N - 976 - 928 + 1696 + 1264 @@ -875,23 +673,8 @@ SUCCESS N - 1184 - 928 - - - - SQL.totreg.busyn - - SQL - - ervu-dashboard - N - DELETE FROM total_registered.busyness where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - N - N - N - 752 - 928 + 2224 + 1264 @@ -909,12 +692,8 @@ Basic - VK_ARRAY - VK_ARRAY_ID - - - REG_ID - RECRUITMENT_REG_ID + ARR_REG + ARRAY_REGION Y @@ -924,8 +703,8 @@ N Y N - 976 - 1008 + 1696 + 16 @@ -934,27 +713,685 @@ SUCCESS N - 1184 - 1008 + 2224 + 16 - SQL.reccam.appeals(reg) + job_get_rows_reg.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/region/job_get_rows_reg.hwf + Nothing + + Y + + N + local + N + N + Y + Y + 928 + 784 + + + + appeals.reasons_appeal(reg).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/region/appeals.reasons_appeal(reg).hpl + txt + ${PROJECT_HOME}/log + Basic + + + ARR_REG + ARRAY_REGION + + Y + + Y + local + N + N + Y + N + 1696 + 336 + + + + Success 5 + + SUCCESS + + N + 1936 + 336 + + + + update_appeal_recruitments.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/region/auxiliary/update_appeal_recruitments.hpl + Basic + + Y + + N + local + N + N + Y + N + 1152 + 288 + + + + array_region.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/region/auxiliary/array_region.hpl + Basic + + Y + + N + local + N + N + Y + Y + 1344 + 288 + + + + appeals.review_rating.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/region/appeals.review_rating.hpl + Basic + + Y + + N + local + N + N + Y + N + 1808 + 176 + + + + Success 17 + + SUCCESS + + N + 1936 + 176 + + + + SQL main_dashboard.recruitment_campaign SQL ervu-dashboard N - DELETE FROM recruitment_campaign.appeals where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date + /*DELETE FROM main_dashboard.recruitment_campaign +WHERE recording_date = current_date + AND schema = 'Organization'*/ N N N - 752 - 1008 + 976 + 1232 + + + + main_dashboard.recruitment_campaign + + SQL + + ervu-dashboard + N + DELETE FROM main_dashboard.recruitment_campaign +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + N + N + N + 2016 + 400 + + + + SQL recruitment_campaign.subpoenas + + SQL + + ervu-dashboard + N + /*DELETE FROM recruitment_campaign.subpoenas +WHERE recording_date = current_date + AND schema = 'Organization'*/ + N + N + N + 976 + 1424 + + + + recruitment_campaign.subpoenas + + SQL + + ervu-dashboard + N + DELETE FROM recruitment_campaign.subpoenas +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + N + N + N + 2016 + 592 + + + + SQL main_dashboard.total_registered + + SQL + + ervu-dashboard + N + /*DELETE FROM main_dashboard.total_registered +WHERE recording_date = current_date + AND schema = 'Organization'*/ + N + N + N + 976 + 1296 + + + + SQL main_dashboard.waiting_registration + + SQL + + ervu-dashboard + N + /*DELETE FROM main_dashboard.waiting_registration +WHERE recording_date = current_date + AND schema = 'Organization'*/ + N + N + N + 976 + 1360 + + + + SQL total_registered.reg_mil_cat + + SQL + + ervu-dashboard + N + /*DELETE FROM total_registered.reg_mil_cat +WHERE recording_date = current_date + AND schema = 'Organization'*/ + N + N + N + 976 + 1488 + + + + SQL total_registered.removed_registry + + SQL + + ervu-dashboard + N + /*DELETE FROM total_registered.removed_registry +WHERE recording_date = current_date + AND schema = 'Organization'*/ + N + N + N + 976 + 1552 + + + + SQL total_registered.subpoenas + + SQL + + ervu-dashboard + N + /*DELETE FROM total_registered.subpoenas +WHERE recording_date = current_date + AND schema = 'Organization'*/ + N + N + N + 976 + 1616 + + + + SQL total_registered.driver_license + + SQL + + ervu-dashboard + N + /*DELETE FROM total_registered.driver_license +WHERE recording_date = current_date + AND schema = 'Organization'*/ + N + N + N + 976 + 1696 + + + + SQL total_registered.child_minor + + SQL + + ervu-dashboard + N + /*DELETE FROM total_registered.child_minor +WHERE recording_date = current_date + AND schema = 'Organization'*/ + N + N + N + 976 + 1776 + + + + SQL total_registered.age + + SQL + + ervu-dashboard + N + /*DELETE FROM total_registered.age +WHERE recording_date = current_date + AND schema = 'Organization'*/ + N + N + N + 976 + 1856 + + + + SQL total_registered.marital_status + + SQL + + ervu-dashboard + N + /*DELETE FROM total_registered.marital_status +WHERE recording_date = current_date + AND schema = 'Organization'*/ + N + N + N + 976 + 1936 + + + + SQL total_registered.education_level + + SQL + + ervu-dashboard + N + /*DELETE FROM total_registered.education_level +WHERE recording_date = current_date + AND schema = 'Organization'*/ + N + N + N + 976 + 2016 + + + + SQL total_registered.busyness + + SQL + + ervu-dashboard + N + /*DELETE FROM total_registered.busyness +WHERE recording_date = current_date + AND schema = 'Organization'*/ + N + N + N + 976 + 2096 + + + + SQL recruitment_campaign.appeals + + SQL + + ervu-dashboard + N + /*DELETE FROM recruitment_campaign.appeals +WHERE recording_date = current_date + AND schema = 'Organization'*/ + N + N + N + 976 + 2176 + + + + main_dashboard.total_registered + + SQL + + ervu-dashboard + N + DELETE FROM main_dashboard.total_registered +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + N + N + N + 2016 + 464 + + + + main_dashboard.waiting_registration + + SQL + + ervu-dashboard + N + DELETE FROM main_dashboard.waiting_registration +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + N + N + N + 2016 + 528 + + + + total_registered.reg_mil_cat + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.reg_mil_cat +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + N + N + N + 2016 + 656 + + + + total_registered.removed_registry + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.removed_registry +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + N + N + N + 2016 + 720 + + + + total_registered.subpoenas + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.subpoenas +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + N + N + N + 2016 + 784 + + + + total_registered.driver_license + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.driver_license +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + N + N + N + 2016 + 864 + + + + total_registered.child_minor + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.child_minor +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + N + N + N + 2016 + 944 + + + + total_registered.age + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.age +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + N + N + N + 2016 + 1024 + + + + total_registered.marital_status + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.marital_status +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + N + N + N + 2016 + 1104 + + + + total_registered.education_level + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.education_level +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + N + N + N + 2016 + 1184 + + + + total_registered.busyness + + SQL + + ervu-dashboard + N + DELETE FROM total_registered.busyness +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + N + N + N + 2016 + 1264 + + + + appeals.topic_appeal(reg).hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/region/appeals.topic_appeal(reg).hpl + Basic + + + ARR_REG + ARRAY_REGION + + Y + + Y + local + N + N + Y + N + 1696 + 96 + + + + Success 18 + + SUCCESS + + N + 1936 + 96 + + Start + job_get_rows_reg.hwf + Y + Y + Y + main_dashboard.appeals(reg) Success @@ -963,295 +1400,337 @@ N - main_dashboard.recruitment_campaign(reg) - Success 2 + appeals.reasons_appeal(reg).hpl + Success 5 Y Y N - main_dashboard.total_registered(reg) - Success 3 + job_get_rows_reg.hwf + update_appeal_recruitments.hpl Y Y N - main_dashboard.waiting_registration(reg) - Success 4 + update_appeal_recruitments.hpl + array_region.hpl Y Y N - recruitment_campaign.subpoenas(reg) - Success 6 + array_region.hpl + appeals.reasons_appeal(reg).hpl Y Y N - total_registered.reg_mil_cat(reg) - Success 7 - Y - Y - N - - - total_registered.removed_registry(reg) - Success 8 - Y - Y - N - - - total_registered.subpoenas(reg) - Success 9 - Y - Y - N - - - select_recruitments_region(reg) - SQL.md.appeals - Y - Y - N - - - SQL.md.appeals + array_region.hpl main_dashboard.appeals(reg) Y Y N - select_recruitments_region(reg) - SQL.md.rec_cam + appeals.review_rating.hpl + Success 17 Y Y N - SQL.md.rec_cam + main_dashboard.appeals(reg) + appeals.review_rating.hpl + Y + Y + N + + + main_dashboard.recruitment_campaign(reg) + main_dashboard.recruitment_campaign + Y + Y + N + + + main_dashboard.recruitment_campaign + Success 2 + Y + Y + Y + + + recruitment_campaign.subpoenas(reg) + recruitment_campaign.subpoenas + Y + Y + N + + + recruitment_campaign.subpoenas + Success 6 + Y + Y + Y + + + main_dashboard.total_registered(reg) + main_dashboard.total_registered + Y + Y + N + + + main_dashboard.total_registered + Success 3 + Y + Y + Y + + + main_dashboard.waiting_registration(reg) + main_dashboard.waiting_registration + Y + Y + N + + + main_dashboard.waiting_registration + Success 4 + Y + Y + Y + + + total_registered.reg_mil_cat(reg) + total_registered.reg_mil_cat + Y + Y + N + + + total_registered.reg_mil_cat + Success 7 + Y + Y + Y + + + total_registered.removed_registry(reg) + total_registered.removed_registry + Y + Y + N + + + total_registered.removed_registry + Success 8 + Y + Y + Y + + + total_registered.subpoenas(reg) + total_registered.subpoenas + Y + Y + N + + + total_registered.subpoenas + Success 9 + Y + Y + Y + + + total_registered.driver_license(reg) + total_registered.driver_license + Y + Y + N + + + total_registered.driver_license + Success 10 + Y + Y + Y + + + total_registered.child_minor(reg) + total_registered.child_minor + Y + Y + N + + + total_registered.child_minor + Success 11 + Y + Y + Y + + + total_registered.age(reg) + total_registered.age + Y + Y + N + + + total_registered.age + Success 12 + Y + Y + Y + + + total_registered.marital_status(reg) + total_registered.marital_status + Y + Y + N + + + total_registered.marital_status + Success 13 + Y + Y + Y + + + total_registered.education_level(reg) + total_registered.education_level + Y + Y + N + + + total_registered.education_level + Success 14 + Y + Y + Y + + + total_registered.busyness(reg) + total_registered.busyness + Y + Y + N + + + total_registered.busyness + Success 15 + Y + Y + Y + + + job_get_rows_reg.hwf main_dashboard.recruitment_campaign(reg) Y Y N - select_recruitments_region(reg) - SQL.md.tot_reg - Y - Y - N - - - SQL.md.tot_reg + job_get_rows_reg.hwf main_dashboard.total_registered(reg) Y Y N - select_recruitments_region(reg) - SQL.md.wait_reg - Y - Y - N - - - SQL.md.wait_reg + job_get_rows_reg.hwf main_dashboard.waiting_registration(reg) Y Y N - select_recruitments_region(reg) - SQL.rcam.subpoenas - Y - Y - N - - - SQL.rcam.subpoenas + job_get_rows_reg.hwf recruitment_campaign.subpoenas(reg) Y Y N - select_recruitments_region(reg) - SQL.totreg.mrc - Y - Y - N - - - SQL.totreg.mrc + job_get_rows_reg.hwf total_registered.reg_mil_cat(reg) Y Y N - select_recruitments_region(reg) - SQL.totreg.remreg - Y - Y - N - - - SQL.totreg.remreg + job_get_rows_reg.hwf total_registered.removed_registry(reg) Y Y N - select_recruitments_region(reg) - SQL.totreg.sub - Y - Y - N - - - SQL.totreg.sub + job_get_rows_reg.hwf total_registered.subpoenas(reg) Y Y N - Start - select_recruitments_region(reg) - Y - Y - Y - - - select_recruitments_region(reg) - SQL.totreg.drlic - Y - Y - N - - - SQL.totreg.drlic + job_get_rows_reg.hwf total_registered.driver_license(reg) Y Y N - total_registered.driver_license(reg) - Success 10 - Y - Y - N - - - select_recruitments_region(reg) - SQL.totreg.chmi - Y - Y - N - - - SQL.totreg.chmi + job_get_rows_reg.hwf total_registered.child_minor(reg) Y Y N - total_registered.child_minor(reg) - Success 11 - Y - Y - N - - - select_recruitments_region(reg) - SQL.totreg.age - Y - Y - N - - - SQL.totreg.age + job_get_rows_reg.hwf total_registered.age(reg) Y Y N - total_registered.age(reg) - Success 12 - Y - Y - N - - - SQL.totreg.marstat + job_get_rows_reg.hwf total_registered.marital_status(reg) Y Y N - total_registered.marital_status(reg) - Success 13 - Y - Y - N - - - select_recruitments_region(reg) - SQL.totreg.marstat - Y - Y - N - - - SQL.totreg.edulev + job_get_rows_reg.hwf total_registered.education_level(reg) Y Y N - total_registered.education_level(reg) - Success 14 - Y - Y - N - - - select_recruitments_region(reg) - SQL.totreg.edulev - Y - Y - N - - - SQL.totreg.busyn + job_get_rows_reg.hwf total_registered.busyness(reg) Y Y N - total_registered.busyness(reg) - Success 15 + array_region.hpl + appeals.topic_appeal(reg).hpl Y Y N - select_recruitments_region(reg) - SQL.totreg.busyn + appeals.topic_appeal(reg).hpl + Success 18 Y Y N @@ -1264,19 +1743,12 @@ N - SQL.reccam.appeals(reg) + array_region.hpl recruitment_campaign.appeals(reg) Y Y N - - select_recruitments_region(reg) - SQL.reccam.appeals(reg) - Y - Y - N - diff --git a/mappings/region/main_dashboard.appeals(reg).hpl b/mappings/region/main_dashboard.appeals(reg).hpl index 54d2cfa..99dcdff 100644 --- a/mappings/region/main_dashboard.appeals(reg).hpl +++ b/mappings/region/main_dashboard.appeals(reg).hpl @@ -1,3 +1,4 @@ + main_dashboard.appeals(reg) @@ -7,7 +8,6 @@ Normal 0 - / N @@ -17,8 +17,6 @@ 2024/08/02 11:56:22.507 - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -26,19 +24,91 @@ Get variables 3 2 Select values 3 2 - Y + N Select values 3 2 Insert / update (main_dashboard.appeals) 2 - Y + N Table input (appeal_document) регионы Get variables 3 2 + N + + + Execute SQL script + Table input (appeal_document) регионы + Y + + + Insert / update (main_dashboard.appeals) 2 + Execute SQL script 2 + Y + + + Table input (appeal_document) регионы + Insert / update (main_dashboard.appeals) 2 Y + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + N + N + N + DELETE FROM main_dashboard.appeals +WHERE recording_date = current_date + AND schema = 'Organization' + + + 384 + 192 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + N + N + N + DELETE FROM main_dashboard.appeals +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + + + 1152 + 192 + + Get variables 3 2 GetVariable @@ -52,36 +122,31 @@ - REG_ID - - String - - - - -1 + REG_ID -1 none + String - VK_ARRAY - - String - - - - -1 + VK_ARRAY -1 none + String + + + -1 + SCM + -1 + none + String - - 672 - 192 - Y + 688 + 256 @@ -95,18 +160,26 @@ none - ervu-dashboard 100 - Y + ervu-dashboard + + = + recruitment_id + recruitment_id + + + = + schema + schema + + + = + recording_date + recording_date + main_dashboard appeals
- - REG_ID - recruitment_id - = - - total_appeals total_appeals @@ -152,13 +225,17 @@ recruitment_id N + + schema + schema + N +
+ Y - - 1024 + 912 192 - Y
@@ -208,13 +285,28 @@ + + SCM + SCM + String + -2 + -2 + + false + + + false + + + + + + - - 816 - 192 - Y + 832 + 256 @@ -228,80 +320,72 @@ none - postgres.appeal-document-service - WITH -t1 AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total_appeals - FROM public.appeal_document - WHERE - ( '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' - OR vk_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - )) -), -t2 AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE ROUND( - AVG( - (TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date) - ), - 2 - ) - END AS average_consideration - FROM public.appeal_document ad - WHERE - ( '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' - OR vk_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - )) -), -resolved AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS resolved - FROM public.appeal_document ad - WHERE ad.extra_info->>'result' = '1' - AND ( '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' - OR vk_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - )) -) -SELECT - t1.total_appeals, - t2.average_consideration, - r.resolved, - '${REG_ID}' AS recruitment_id, - 0 AS average_rating, - 0 AS average_to_face, - 0 AS average_epgu, - 0 AS average_to_face_percent, - 0 AS average_epgu_percent -FROM t1, t2, resolved AS r; - 0 - + ervu-dashboard N + 0 + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_REG}'), ','))::uuid AS recruitment_id +), +base_data AS ( + SELECT + region_id, + solution_type, + CASE + WHEN incoming_date <> '-' THEN incoming_date::date + ELSE NULL + END AS incoming_date, + + CASE + WHEN fact_end_date <> '-' THEN fact_end_date::date + ELSE NULL + END AS fact_end_date, + + CASE + WHEN response_evalution <> '-' THEN response_evalution::NUMERIC -- оценка ответа заявителем + ELSE 0 + END AS response_evalution, + source + FROM appeals.appeals_list al + WHERE region_id::uuid IN (SELECT recruitment_id FROM ids) +), +aggregated_data AS ( + SELECT + region_id AS recruitment_id, + COUNT(*) AS total_appeals, + COUNT(*) FILTER (WHERE solution_type = 'Решено') AS resolved, + -- Среднее время рассмотрения, учитывая возможные NULL для дат + ROUND(AVG(CASE + WHEN fact_end_date IS NOT NULL AND incoming_date IS NOT NULL + THEN fact_end_date::DATE - incoming_date::DATE + ELSE NULL + END), 1) AS average_consideration, + -- Средний рейтинг, учитывая 0 для некорректных значений + ROUND(AVG(response_evalution), 1) AS average_rating, + COUNT(*) FILTER (WHERE source = 'ПОС') AS total_pos, + COUNT(*) FILTER (WHERE source = 'ЕПГУ') AS total_epgu + FROM base_data + GROUP BY region_id +) +SELECT + i.recruitment_id, + current_date AS recording_date, + 'Organization' AS schema, + COALESCE(ad.total_appeals, 0) AS total_appeals, + COALESCE(ad.resolved, 0) AS resolved, + COALESCE(ad.average_consideration, 0) AS average_consideration, + COALESCE(ad.average_rating, 0) AS average_rating, + COALESCE(ad.total_pos, 0) AS average_to_face, + COALESCE(ad.total_epgu, 0) AS average_epgu, + COALESCE(ROUND(ad.total_pos::NUMERIC * 100 / NULLIF(ad.total_appeals, 0), 1), 0) AS average_to_face_percent, + COALESCE(ROUND(ad.total_epgu::NUMERIC * 100 / NULLIF(ad.total_appeals, 0), 1), 0) AS average_epgu_percent +FROM ids i +LEFT JOIN aggregated_data ad ON ad.recruitment_id = i.recruitment_id; Y - N - - 448 + 592 192 - Y diff --git a/mappings/region/main_dashboard.recruitment_campaign(reg).hpl b/mappings/region/main_dashboard.recruitment_campaign(reg).hpl index 0ec6542..307466f 100644 --- a/mappings/region/main_dashboard.recruitment_campaign(reg).hpl +++ b/mappings/region/main_dashboard.recruitment_campaign(reg).hpl @@ -1,3 +1,4 @@ + main_dashboard.recruitment_campaign(reg) @@ -7,7 +8,6 @@ Normal 0 - / N @@ -17,8 +17,6 @@ 2024/08/02 11:56:22.507 - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -33,26 +31,11 @@ Get variables 4 3 Y - - Get variables 4 3 2 - Select values 4 3 2 - Y - - - Table input (subpoena) регион/весна - Get variables 4 3 2 - Y - Select values 4 3 Insert / update (main_dashboard.recruitment_campaign) Y - - Select values 4 3 2 - Insert / update (main_dashboard.recruitment_campaign) 2 - Y - Get variables 4 3 @@ -67,81 +50,24 @@ - REG_ID - - String - - - - -1 + REG_ID -1 none + String - VK_ARRAY - - String - - - - -1 + VK_ARRAY -1 none + String - - 464 - 432 - Y - - - - Get variables 4 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - 448 - 496 - Y + 880 + 480 @@ -155,18 +81,26 @@ none - ervu-dashboard 100 - N + ervu-dashboard + + = + recruitment_id + REG_ID + + + = + schema + schema + + + = + spring_autumn + spring_autumn + main_dashboard recruitment_campaign
- - REG_ID - recruitment_id - = - - subpoenas_sent count_subpoena @@ -227,105 +161,17 @@ spring_autumn N + + schema + schema + N +
- - - - 960 - 432 - Y - -
- - Insert / update (main_dashboard.recruitment_campaign) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 N - - main_dashboard - recruitment_campaign
- - REG_ID - recruitment_id - = - - - - subpoenas_sent - count_subpoena - Y - - - appeared_on_subpoenas - count_appeared - Y - - - not_appeared_on_subpoenas - count_not_appeared - Y - - - new_recruits - new_recruits - Y - - - postponement_have_right - postponement_have_right - Y - - - postponement_granted - postponement_granted - Y - - - appeared_on_subpoenas_percent - appeared_on_subpoenas_percent - Y - - - not_appeared_on_subpoenas_percent - not_appeared_on_subpoenas_percent - Y - - - postponement_have_right_percent - postponement_have_right_percent - Y - - - postponement_granted_percent - postponement_granted_percent - Y - - - recruitment_id - recruitment_id - N - - - spring_autumn - spring_autumn - N - -
- - 960 - 496 - Y + 1376 + 480
@@ -377,161 +223,9 @@ - - 640 - 432 - Y - - - - Select values 4 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - 640 - 496 - Y - - - - Table input (subpoena) регион/весна - TableInput - - Y - - 1 - - none - - - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn -- добавляем строку для получения последнего статуса - FROM public.subpoena s - JOIN public.subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN public.subpoena_status AS ss ON ss.id = s.status_id - JOIN public.subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN public.subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN public.restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN public.restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN public.subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '1' -- от 18 до 30 лет и нет отсрочки (нужны эти условия), разделение весна/осень - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR s.department_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -- выбираем только последнюю запись для каждой повестки -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -) -SELECT - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t1.count_subpoena END AS count_subpoena, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t2.count_appeared END AS count_appeared, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t3.count_not_appeared END AS count_not_appeared, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(t2.count_appeared * 100.0 / NULLIF(t1.count_subpoena, 0), 2) END AS appeared_on_subpoenas_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(t3.count_not_appeared * 100.0 / NULLIF(t1.count_subpoena, 0), 2) END AS not_appeared_on_subpoenas_percent, - 0 AS new_recruits, - 0 AS postponement_have_right, - 0 AS postponement_granted, - 0 AS postponement_have_right_percent, - 0 AS postponement_granted_percent, - 'Весна' AS spring_autumn, - '${REG_ID}' AS recruitment_id, - 1 AS org -FROM t1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1; - 0 - - N - Y - N - - - - 208 - 496 - Y + 1056 + 480 @@ -545,87 +239,61 @@ FULL OUTER JOIN t3 ON 1 = 1; none - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn -- добавляем строку для получения последнего статуса - FROM public.subpoena s - JOIN public.subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN public.subpoena_status AS ss ON ss.id = s.status_id - JOIN public.subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN public.subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN public.restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN public.restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN public.subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '1' -- от 18 до 30 лет и нет отсрочки (нужны эти условия), разделение весна/осень - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR s.department_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -- выбираем только последнюю запись для каждой повестки -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -) -SELECT - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t1.count_subpoena END AS count_subpoena, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t2.count_appeared END AS count_appeared, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t3.count_not_appeared END AS count_not_appeared, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(t2.count_appeared * 100.0 / NULLIF(t1.count_subpoena, 0), 2) END AS appeared_on_subpoenas_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(t3.count_not_appeared * 100.0 / NULLIF(t1.count_subpoena, 0), 2) END AS not_appeared_on_subpoenas_percent, - 0 AS new_recruits, - 0 AS postponement_have_right, - 0 AS postponement_granted, - 0 AS postponement_have_right_percent, - 0 AS postponement_granted_percent, - 'Осень' AS spring_autumn, - '${REG_ID}' AS recruitment_id, - 1 AS org -FROM t1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1; - 0 - + ervu-dashboard N + 0 + SELECT + COALESCE(SUM(subpoenas_sent), 0) count_subpoena, + COALESCE(SUM(appeared_on_subpoenas), 0) count_appeared, + COALESCE(SUM(not_appeared_on_subpoenas), 0) count_not_appeared, + COALESCE(SUM(new_recruits), 0) new_recruits, + COALESCE(SUM(postponement_have_right), 0) postponement_have_right, + COALESCE(SUM(postponement_granted), 0) postponement_granted, + COALESCE( + CASE + WHEN SUM(subpoenas_sent) > 0 + THEN ROUND((SUM(appeared_on_subpoenas) / SUM(subpoenas_sent) * 100), 2) + ELSE 0 + END, + 0 + ) appeared_on_subpoenas_percent, + COALESCE( + CASE + WHEN SUM(subpoenas_sent) > 0 + THEN ROUND((SUM(not_appeared_on_subpoenas) / SUM(subpoenas_sent) * 100), 2) + ELSE 0 + END, + 0 + ) not_appeared_on_subpoenas_percent, + COALESCE( + CASE + WHEN SUM(new_recruits) > 0 + THEN ROUND((SUM(postponement_have_right) / SUM(new_recruits) * 100), 2) + ELSE 0 + END, + 0 + ) postponement_have_right_percent, + COALESCE( + CASE + WHEN SUM(new_recruits) > 0 + THEN ROUND((SUM(postponement_granted) / SUM(new_recruits) * 100), 2) + ELSE 0 + END, + 0 + ) postponement_granted_percent, + '${REG_ID}' AS recruitment_id, + spring_autumn, + 'Organization' AS schema +FROM main_dashboard.recruitment_campaign +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema IN ('Department', 'REG_LVL') +AND recording_date = CURRENT_DATE +GROUP BY spring_autumn; Y - N - - 208 - 432 - Y + 624 + 480 diff --git a/mappings/region/main_dashboard.total_registered(reg).hpl b/mappings/region/main_dashboard.total_registered(reg).hpl index d3b4874..8bd12ad 100644 --- a/mappings/region/main_dashboard.total_registered(reg).hpl +++ b/mappings/region/main_dashboard.total_registered(reg).hpl @@ -89,6 +89,16 @@ recruitment_id REG_ID + + = + schema + schema + + + = + convicts + convicts + main_dashboard total_registered
@@ -141,6 +151,16 @@ recruitment_id N + + schema + schema + N + + + convicts + convicts + N + N @@ -214,102 +234,48 @@ none - postgres.person_registry + ervu-dashboard N 0 - WITH vse as ( -select *, -r.id as r_id -FROM public.recruits AS r - JOIN public.recruits_info AS ri - ON ri.recruit_id = r.id - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NOT NULL AND '${VK_ARRAY}' != '' - AND r.target_recruitment_id = ANY ( - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN ARRAY[]::uuid[] - ELSE string_to_array(trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',')::uuid[] - END - ) - ) -), -extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - vse ri - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_16 - FROM children_birth_dates - WHERE AGE(make_date(year, month, day)) < interval '16 years' - GROUP BY recruit_id -), -recruit_data AS ( - SELECT - COUNT(*) AS total_count, - 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, - 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, - 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 - FROM vse as ri - LEFT JOIN children_count AS cc - ON ri.r_id = cc.recruit_id - ) -SELECT - '${REG_ID}' AS recruitment_id, - COALESCE(rd.total_count, 0) AS total_count, - COALESCE(rd.male_count, 0) AS male_count, - COALESCE(rd.female_count, 0) AS female_count, - COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, - COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, - COALESCE(rd.contract_criterion, 0) AS contract_criterion, - CASE - WHEN rd.total_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.total_count * 100, 2) - ELSE 0 - END AS mobilization_criterion_percent, - CASE - WHEN rd.total_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.total_count * 100, 2) - ELSE 0 - END AS volunteer_criterion_percent, - CASE - WHEN rd.total_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.total_count * 100, 2) - ELSE 0 - END AS contract_criterion_percent -FROM recruit_data AS rd; - + SELECT + COALESCE(SUM(total_registered), 0) total_count, + COALESCE(SUM("total_registered_M"), 0) male_count, + COALESCE(SUM("total_registered_W"), 0) female_count, + COALESCE(SUM(mobilization_criterion), 0) mobilization_criterion, + COALESCE(SUM(volunteer_criterion), 0) volunteer_criterion, + COALESCE(SUM(contract_criterion), 0) contract_criterion, + COALESCE( + CASE + WHEN SUM(total_registered) > 0 + THEN ROUND((SUM(mobilization_criterion) / SUM(total_registered) * 100), 2) + ELSE 0 + END, + 0 + ) mobilization_criterion_percent, + COALESCE( + CASE + WHEN SUM(total_registered) > 0 + THEN ROUND((SUM(volunteer_criterion) / SUM(total_registered) * 100), 2) + ELSE 0 + END, + 0 + ) volunteer_criterion_percent, + COALESCE( + CASE + WHEN SUM(total_registered) > 0 + THEN ROUND((SUM(contract_criterion) / SUM(total_registered) * 100), 2) + ELSE 0 + END, + 0 + ) contract_criterion_percent, + '${REG_ID}' AS recruitment_id, + convicts, + 'Organization' AS schema +FROM main_dashboard.total_registered +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema IN ('Department', 'REG_LVL') +AND recording_date = CURRENT_DATE +GROUP BY convicts; Y diff --git a/mappings/region/main_dashboard.waiting_registration(reg).hpl b/mappings/region/main_dashboard.waiting_registration(reg).hpl index 716a29a..4f5fecf 100644 --- a/mappings/region/main_dashboard.waiting_registration(reg).hpl +++ b/mappings/region/main_dashboard.waiting_registration(reg).hpl @@ -88,6 +88,13 @@ = recruitment_id REG_ID + + + + = + schema + schema + main_dashboard waiting_registration
@@ -142,9 +149,9 @@ N - waiting_registration_percent - waiting_percent - Y + schema + schema + N N @@ -219,110 +226,46 @@ none - postgres.person_registry + ervu-dashboard N 0 - WITH vse as ( -select *, -r.id as r_id -FROM public.recruits AS r - JOIN public.recruits_info AS ri - ON ri.recruit_id = r.id - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'false' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NOT NULL AND '${VK_ARRAY}' != '' - AND r.target_recruitment_id = ANY ( - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN ARRAY[]::uuid[] - ELSE string_to_array(trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',')::uuid[] - END - ) - ) -), -extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - vse ri - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_16 - FROM children_birth_dates - WHERE AGE(make_date(year, month, day)) < interval '16 years' - GROUP BY recruit_id -), -recruit_data AS ( - SELECT - COUNT(*) AS waiting_count, - 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, - 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, - 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 - FROM vse as ri - LEFT JOIN children_count AS cc - ON ri.r_id = cc.recruit_id -) -SELECT - '${REG_ID}' AS recruitment_id, - COALESCE(rd.waiting_count, 0) AS waiting_count, - COALESCE(rd.male_count, 0) AS male_count, - COALESCE(rd.female_count, 0) AS female_count, - COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, - COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, - COALESCE(rd.contract_criterion, 0) AS contract_criterion, - CASE - WHEN rd.waiting_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.waiting_count * 100, 2) - ELSE 0 - END AS mobilization_criterion_percent, - CASE - WHEN rd.waiting_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.waiting_count * 100, 2) - ELSE 0 - END AS volunteer_criterion_percent, - CASE - WHEN rd.waiting_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.waiting_count * 100, 2) - ELSE 0 - END AS contract_criterion_percent, - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE ROUND( - COALESCE( - (rd.waiting_count::DECIMAL / NULLIF( - (SELECT COUNT(*) FROM public.recruits WHERE vu_current_info ->> 'isMilitaryRegistered' = 'false'), 0) * 100 - ), 0 - ), 2 - ) - END AS waiting_percent -FROM recruit_data AS rd; + SELECT + COALESCE(SUM(waiting_registration),0) waiting_count, + COALESCE(SUM("waiting_registration_M"),0) male_count, + COALESCE(SUM("waiting_registration_W"),0) female_count, + COALESCE(SUM(mobilization_criterion),0) mobilization_criterion, + COALESCE(SUM(volunteer_criterion),0) volunteer_criterion, + COALESCE(SUM(contract_criterion),0) contract_criterion, + COALESCE( + CASE + WHEN SUM(waiting_registration) > 0 + THEN ROUND((SUM(mobilization_criterion) / SUM(waiting_registration) * 100), 2) + ELSE 0 + END, + 0 + ) mobilization_criterion_percent, + COALESCE( + CASE + WHEN SUM(waiting_registration) > 0 + THEN ROUND((SUM(volunteer_criterion) / SUM(waiting_registration) * 100), 2) + ELSE 0 + END, + 0 + ) volunteer_criterion_percent, + COALESCE( + CASE + WHEN SUM(waiting_registration) > 0 + THEN ROUND((SUM(contract_criterion) / SUM(waiting_registration) * 100), 2) + ELSE 0 + END, + 0 + ) contract_criterion_percent, + '${REG_ID}' AS recruitment_id, + 'Organization' AS schema +FROM main_dashboard.waiting_registration +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema IN ('Department', 'REG_LVL') +AND recording_date = CURRENT_DATE; Y diff --git a/mappings/region/recruitment_campaign.appeals(reg).hpl b/mappings/region/recruitment_campaign.appeals(reg).hpl index fccda1a..779a171 100644 --- a/mappings/region/recruitment_campaign.appeals(reg).hpl +++ b/mappings/region/recruitment_campaign.appeals(reg).hpl @@ -1,3 +1,4 @@ + recruitment_campaign.appeals(reg) @@ -7,7 +8,6 @@ Normal 0 - / N @@ -17,8 +17,6 @@ 2024/08/02 11:56:22.507 - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -26,34 +24,90 @@ Get variables 3 2 Select values 3 2 - Y - - - Get variables 3 2 2 - Select values 3 2 2 - Y + N Table input (appeal_document) регионы Get variables 3 2 - Y + N Select values 3 2 Insert / update (main_dashboard.appeals) + N + + + Execute SQL script + Table input (appeal_document) регионы Y - Table input (appeal_document) регионы 2 - Get variables 3 2 2 + Insert / update (main_dashboard.appeals) + Execute SQL script 2 Y - Select values 3 2 2 - Insert / update (main_dashboard.appeals) 2 + Table input (appeal_document) регионы + Insert / update (main_dashboard.appeals) Y + + Execute SQL script + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + N + N + N + DELETE FROM recruitment_campaign.appeals +WHERE recording_date = current_date + AND schema = 'Organization' + + + 256 + 272 + + + + Execute SQL script 2 + ExecSql + + N + + 1 + + none + + + + + ervu-dashboard + N + N + N + N + N + DELETE FROM recruitment_campaign.appeals +WHERE recording_date = current_date + AND schema = 'REG_LVL' + + + 1360 + 272 + + Get variables 3 2 GetVariable @@ -67,81 +121,24 @@ - REG_ID - - String - - - - -1 + REG_ID -1 none + String - VK_ARRAY - - String - - - - -1 + VK_ARRAY -1 none + String - - 672 - 192 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - 672 - 352 - Y + 704 + 416 @@ -155,18 +152,31 @@ none - ervu-dashboard 100 - N + ervu-dashboard + + = + recruitment_id + recruitment_id + + + = + schema + schema + + + = + spring_autumn + spring_autumn + + + = + recording_date + recording_date + recruitment_campaign appeals
- - REG_ID - recruitment_id - = - - total_appeals total_appeals @@ -212,90 +222,17 @@ spring_autumn N + + schema + schema + N +
- - - - 1040 - 192 - Y - -
- - Insert / update (main_dashboard.appeals) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 N - - recruitment_campaign - appeals
- - REG_ID - recruitment_id - = - - - - total_appeals - total_appeals - Y - - - average_consideration - average_consideration - Y - - - resolved - resolved - Y - - - not_resolved - not_resolved - Y - - - not_resolved_percent - not_resolved_percent - Y - - - average_rating - average_rating - Y - - - resolved_percent - resolved_percent - Y - - - recruitment_id - recruitment_id - N - - - spring_autumn - spring_autumn - N - -
- - 1040 - 352 - Y + 1088 + 272
@@ -347,16 +284,14 @@ - - 816 - 192 - Y + 848 + 416 - Select values 3 2 2 - SelectValues + Table input (appeal_document) регионы + TableInput Y @@ -365,157 +300,89 @@ none - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - 816 - 352 - Y - - - - Table input (appeal_document) регионы - TableInput - - N - - 1 - - none - - - postgres.appeal-document-service - -- ad.extra_info->>'result' = '**' 1 - удовлетворена, 2 - частично удовлетворена, 3 - отказано в удовлетворении -WITH appeals_data AS ( - SELECT - COUNT(*) AS total_appeals, - ROUND(AVG((TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date)), 2) AS average_consideration, - COUNT(CASE WHEN ad.extra_info->>'result' = '1' THEN 1 ELSE 0 END) AS resolved, - COUNT(CASE WHEN ad.extra_info->>'result' = '3' THEN 1 ELSE 0 END) AS not_resolved - FROM public.appeal_document ad - WHERE - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN false - ELSE vk_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - END -) -SELECT - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.total_appeals END AS total_appeals, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.average_consideration END AS average_consideration, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.resolved END AS resolved, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.not_resolved END AS not_resolved, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(ad.resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) END AS resolved_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(ad.not_resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) END AS not_resolved_percent, - '${REG_ID}' AS recruitment_id, - 0 AS average_rating, - 'Осень' AS spring_autumn -FROM appeals_data AS ad; - 0 - + ervu-dashboard N - Y - N - - - - 448 - 192 - Y - - - - Table input (appeal_document) регионы 2 - TableInput - - N - - 1 - - none - - - postgres.appeal-document-service - -- ad.extra_info->>'result' = '**' 1 - удовлетворена, 2 - частично удовлетворена, 3 - отказано в удовлетворении -WITH appeals_data AS ( - SELECT - COUNT(*) AS total_appeals, - ROUND(AVG((TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date)), 2) AS average_consideration, - COUNT(CASE WHEN ad.extra_info->>'result' = '1' THEN 1 ELSE 0 END) AS resolved, - COUNT(CASE WHEN ad.extra_info->>'result' = '3' THEN 1 ELSE 0 END) AS not_resolved - FROM public.appeal_document ad - WHERE - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN false - ELSE vk_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - END -) -SELECT - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.total_appeals END AS total_appeals, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.average_consideration END AS average_consideration, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.resolved END AS resolved, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.not_resolved END AS not_resolved, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(ad.resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) END AS resolved_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(ad.not_resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) END AS not_resolved_percent, - '${REG_ID}' AS recruitment_id, - 0 AS average_rating, - 'Весна' AS spring_autumn -FROM appeals_data AS ad; 0 - - N + WITH +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_REG}'), ','))::uuid AS recruitment_id +), +base_data AS ( + SELECT + region_id, + solution_type, + CASE + WHEN incoming_date <> '-' THEN to_date(incoming_date, 'DD.MM.YYYY') + ELSE NULL + END AS incoming_date, + + CASE + WHEN fact_end_date <> '-' THEN to_date(fact_end_date, 'DD.MM.YYYY') + ELSE NULL + END AS fact_end_date, + + CASE + WHEN response_evalution <> '-' THEN response_evalution::NUMERIC -- оценка ответа заявителем + ELSE 0 + END AS response_evalution, + source + FROM appeals.appeals_list al + WHERE region_id::uuid IN (SELECT recruitment_id FROM ids) +), +aggregated_data AS ( + SELECT + region_id AS recruitment_id, + COUNT(*) AS total_appeals, + COUNT(*) FILTER (WHERE solution_type = 'Решено') AS resolved, + COUNT(*) FILTER (WHERE solution_type != 'Решено') AS not_resolved, + -- Среднее время рассмотрения, учитывая возможные NULL для дат + ROUND(AVG(CASE + WHEN fact_end_date IS NOT NULL AND incoming_date IS NOT NULL + THEN fact_end_date::DATE - incoming_date::DATE + ELSE NULL + END), 1) AS average_consideration, + -- Средний рейтинг, учитывая 0 для некорректных значений + ROUND(AVG(response_evalution), 1) AS average_rating, + CASE WHEN incoming_date between (extract (year from incoming_date)||'-04-01')::date and (extract (year from incoming_date)||'-09-30')::date then 'Весна' + WHEN incoming_date between (extract (year from incoming_date)||'-10-01')::date and (extract (year from incoming_date)+1||'-03-31')::date then 'Осень' + END AS spring_autumn + FROM base_data + GROUP BY region_id, incoming_date +), agr2 as ( +SELECT + i.recruitment_id, + current_date AS recording_date, + COALESCE(spring_autumn, 'undefined') as spring_autumn, + 'Organization' AS schema, + COALESCE(ad.total_appeals, 0) AS total_appeals, + COALESCE(ad.resolved, 0) AS resolved, + COALESCE(ad.not_resolved, 0) AS not_resolved, + COALESCE(ad.average_consideration, 0) AS average_consideration, + COALESCE(ad.average_rating, 0) AS average_rating, + COALESCE(ROUND(ad.resolved::NUMERIC * 100 / NULLIF(ad.total_appeals, 0), 1), 0) AS resolved_percent, + COALESCE(ROUND(ad.not_resolved::NUMERIC * 100 / NULLIF(ad.total_appeals, 0), 1), 0) AS not_resolved_percent +FROM ids i +LEFT JOIN aggregated_data ad ON ad.recruitment_id = i.recruitment_id +) +SELECT +recruitment_id, +recording_date, +spring_autumn, +schema, +sum(total_appeals) as total_appeals, +sum(resolved) as resolved, +sum(not_resolved) as not_resolved, +coalesce(ROUND(avg(average_consideration) FILTER (where average_consideration!=0),1),0) as average_consideration, +coalesce(ROUND(avg(average_rating) FILTER (where average_rating!=0),1),0) as average_rating, +COALESCE(ROUND(sum(resolved::NUMERIC) * 100 / NULLIF(sum(total_appeals), 0), 1), 0) AS resolved_percent, +COALESCE(ROUND(sum(not_resolved)::NUMERIC * 100 / NULLIF(sum(total_appeals), 0), 1), 0) AS not_resolved_percent +from agr2 +GROUP BY 1,2,3,4; Y - N - - 448 - 352 - Y + 496 + 272 diff --git a/mappings/region/recruitment_campaign.subpoenas(reg).hpl b/mappings/region/recruitment_campaign.subpoenas(reg).hpl index 6affc60..0c505c9 100644 --- a/mappings/region/recruitment_campaign.subpoenas(reg).hpl +++ b/mappings/region/recruitment_campaign.subpoenas(reg).hpl @@ -1,3 +1,4 @@ + recruitment_campaign.subpoenas(reg) @@ -7,7 +8,6 @@ Normal 0 - / N @@ -17,8 +17,6 @@ 2024/08/09 13:13:59.825 - 2024/08/09 13:13:59.825 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -33,26 +31,11 @@ Get variables 4 3 Y - - Get variables 4 3 2 - Select values 4 3 2 - Y - - - Table input (subpoena) весна/регионы - Get variables 4 3 2 - Y - Select values 4 3 Insert / update (recruitment_campaign.subpoenas) 3 Y - - Select values 4 3 2 - Insert / update (recruitment_campaign.subpoenas) 3 2 - Y - Get variables 4 3 @@ -67,81 +50,24 @@ - REG_ID - - String - - - - -1 + REG_ID -1 none + String - VK_ARRAY - - String - - - - -1 + VK_ARRAY -1 none + String - - 416 - 400 - Y - - - - Get variables 4 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - 416 - 480 - Y + 1344 + 448 @@ -155,18 +81,26 @@ none - ervu-dashboard 100 - N + ervu-dashboard + + = + recruitment_id + REG_ID + + + = + schema + schema + + + = + spring_autumn + spring_autumn + recruitment_campaign subpoenas
- - REG_ID - recruitment_id - = - - subpoena count_subpoena @@ -267,145 +201,17 @@ appear_date_is_good_percent Y + + schema + schema + N +
- - - - 896 - 400 - Y - -
- - Insert / update (recruitment_campaign.subpoenas) 3 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 N - - recruitment_campaign - subpoenas
- - REG_ID - recruitment_id - = - - - - subpoena - count_subpoena - Y - - - appeared - count_appeared - Y - - - not_appeared - count_not_appeared - Y - - - not_ap_good_reason - count_not_ap_good_reason - Y - - - introduced_measures - count_introduced_measures - Y - - - ap_not_required - count_ap_not_required - Y - - - restrictions_applied - count_restrictions_applied - Y - - - appeared_percent - appeared_percent - Y - - - not_appeared_percent - not_appeared_percent - Y - - - not_ap_good_reason_percent - not_ap_good_reason_percent - Y - - - ap_not_required_percent - ap_not_required_percent - Y - - - restrictions_applied_percent - restrictions_applied_percent - Y - - - introduced_measures_percent - introduced_measures_percent - Y - - - recruitment_id - recruitment_id - N - - - rest - rest - Y - - - spring_autumn - spring_autumn - N - - - count_not_delivery - count_not_delivery - Y - - - appear_date_is_good - appear_date_is_good - Y - - - not_delivery_percent - not_delivery_percent - Y - - - appear_date_is_good_percent - appear_date_is_good_percent - Y - -
- - 896 - 480 - Y + 1824 + 448
@@ -457,253 +263,9 @@ - - 592 - 400 - Y - - - - Select values 4 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - 592 - 480 - Y - - - - Table input (subpoena) весна/регионы - TableInput - - Y - - 1 - - none - - - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '3' - AND ssh.code NOT IN ('3.14','3.7','3.72', '3.71') - AND ( - COALESCE('${VK_ARRAY}', '') = '' - OR s.department_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), - ',' - )::uuid[] - ) - ) -), -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery - FROM last_status - WHERE d_code IS NULL -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') -) -SELECT - COALESCE(t1.count_subpoena, 0) AS count_subpoena, - COALESCE(t2.average_appeared, 0) AS average_appeared, - COALESCE(t3.count_appeared, 0) AS count_appeared, - COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, - COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, - COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, - COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, - COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, - COALESCE(t9.count_paper, 0) AS count_paper, - COALESCE(t10.count_electron, 0) AS count_electron, - COALESCE(t11.count_restrictions, 0) AS count_restrictions, - COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, - COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, - ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appeared_percent, - ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS electron_percent, - ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS paper_percent, - ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_delivery_percent, - ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appear_date_is_good_percent, - '${REG_ID}' AS recruitment_id, - 1 AS org, - 0 AS rest, - 'Весна' AS spring_autumn -FROM t1 -FULL OUTER JOIN t2 ON true -FULL OUTER JOIN t3 ON true -FULL OUTER JOIN t4 ON true -FULL OUTER JOIN t5 ON true -FULL OUTER JOIN t6 ON true -FULL OUTER JOIN t7 ON true -FULL OUTER JOIN t8 ON true -FULL OUTER JOIN t9 ON true -FULL OUTER JOIN t10 ON true -FULL OUTER JOIN t11 ON true -FULL OUTER JOIN t12 ON true -FULL OUTER JOIN t13 ON true -WHERE NOT ( - COALESCE('${VK_ARRAY}', '') = '' - AND ( - COALESCE(t1.count_subpoena, 0) > 0 - OR COALESCE(t2.average_appeared, 0) > 0 - OR COALESCE(t3.count_appeared, 0) > 0 - OR COALESCE(t4.count_not_appeared, 0) > 0 - OR COALESCE(t5.count_not_ap_good_reason, 0) > 0 - OR COALESCE(t6.count_ap_not_required, 0) > 0 - OR COALESCE(t7.count_restrictions_applied, 0) > 0 - OR COALESCE(t8.count_introduced_measures, 0) > 0 - OR COALESCE(t9.count_paper, 0) > 0 - OR COALESCE(t10.count_electron, 0) > 0 - OR COALESCE(t11.count_restrictions, 0) > 0 - OR COALESCE(t12.count_not_delivery, 0) > 0 - OR COALESCE(t13.appear_date_is_good, 0) > 0 - ) -); - 0 - - N - Y - N - - - - 160 - 480 - Y + 1520 + 448 @@ -717,179 +279,105 @@ WHERE NOT ( none - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '3' - AND ssh.code NOT IN ('3.14','3.7','3.72', '3.71') - AND ( - COALESCE('${VK_ARRAY}', '') = '' - OR s.department_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), - ',' - )::uuid[] - ) - ) -), -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery - FROM last_status - WHERE d_code IS NULL -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') -) -SELECT - COALESCE(t1.count_subpoena, 0) AS count_subpoena, - COALESCE(t2.average_appeared, 0) AS average_appeared, - COALESCE(t3.count_appeared, 0) AS count_appeared, - COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, - COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, - COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, - COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, - COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, - COALESCE(t9.count_paper, 0) AS count_paper, - COALESCE(t10.count_electron, 0) AS count_electron, - COALESCE(t11.count_restrictions, 0) AS count_restrictions, - COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, - COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, - ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appeared_percent, - ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS electron_percent, - ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS paper_percent, - ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_delivery_percent, - ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appear_date_is_good_percent, - '${REG_ID}' AS recruitment_id, - 1 AS org, - 0 AS rest, - 'Осень' AS spring_autumn -FROM t1 -FULL OUTER JOIN t2 ON true -FULL OUTER JOIN t3 ON true -FULL OUTER JOIN t4 ON true -FULL OUTER JOIN t5 ON true -FULL OUTER JOIN t6 ON true -FULL OUTER JOIN t7 ON true -FULL OUTER JOIN t8 ON true -FULL OUTER JOIN t9 ON true -FULL OUTER JOIN t10 ON true -FULL OUTER JOIN t11 ON true -FULL OUTER JOIN t12 ON true -FULL OUTER JOIN t13 ON true -WHERE NOT ( - COALESCE('${VK_ARRAY}', '') = '' - AND ( - COALESCE(t1.count_subpoena, 0) > 0 - OR COALESCE(t2.average_appeared, 0) > 0 - OR COALESCE(t3.count_appeared, 0) > 0 - OR COALESCE(t4.count_not_appeared, 0) > 0 - OR COALESCE(t5.count_not_ap_good_reason, 0) > 0 - OR COALESCE(t6.count_ap_not_required, 0) > 0 - OR COALESCE(t7.count_restrictions_applied, 0) > 0 - OR COALESCE(t8.count_introduced_measures, 0) > 0 - OR COALESCE(t9.count_paper, 0) > 0 - OR COALESCE(t10.count_electron, 0) > 0 - OR COALESCE(t11.count_restrictions, 0) > 0 - OR COALESCE(t12.count_not_delivery, 0) > 0 - OR COALESCE(t13.appear_date_is_good, 0) > 0 - ) -); - 0 - + ervu-dashboard N + 0 + SELECT + COALESCE(SUM(subpoena), 0) count_subpoena, + COALESCE(SUM(appeared), 0) count_appeared, + COALESCE(SUM(not_appeared), 0) count_not_appeared, + COALESCE(SUM(not_ap_good_reason), 0) count_not_ap_good_reason, + COALESCE(SUM(introduced_measures), 0) count_introduced_measures, + COALESCE(SUM(ap_not_required), 0) count_ap_not_required, + COALESCE(SUM(restrictions_applied), 0) count_restrictions_applied, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(appeared) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) appeared_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(not_appeared) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_appeared_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(not_ap_good_reason) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_ap_good_reason_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(ap_not_required) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) ap_not_required_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(restrictions_applied) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) restrictions_applied_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(introduced_measures) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) introduced_measures_percent, + COALESCE(SUM(rest), 0) rest, + COALESCE(SUM(count_not_delivery), 0) count_not_delivery, + COALESCE(SUM(appear_date_is_good), 0) appear_date_is_good, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(count_not_delivery) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_delivery_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(count_not_delivery) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_delivery_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(appear_date_is_good) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) appear_date_is_good_percent, + '${REG_ID}' AS recruitment_id, + spring_autumn, + 'Organization' AS schema +FROM recruitment_campaign.subpoenas +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema IN ('Department', 'REG_LVL') +AND recording_date = CURRENT_DATE +GROUP BY spring_autumn; Y - N - - 160 - 400 - Y + 1088 + 448 diff --git a/mappings/region/rows_id-array_reg.hpl b/mappings/region/rows_id-array_reg.hpl new file mode 100644 index 0000000..5acca11 --- /dev/null +++ b/mappings/region/rows_id-array_reg.hpl @@ -0,0 +1,74 @@ + + + + rows_id-array_reg + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/12/10 12:40:41.832 + - + 2024/12/10 12:40:41.832 + + + + + + Table input + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 672 + 256 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT +recruitment_reg_id AS RECRUITMENT_REG_ID, +string_to_array(trim(both '{}' FROM replace(vk_array_id, ' ', '')), ',')::uuid[] AS VK_ARRAY_ID +FROM ervu_dashboard.array_reg + N + + + 448 + 256 + + + + + + diff --git a/mappings/region/select_recruitments_region(reg).hpl b/mappings/region/select_recruitments_region(reg).hpl index a76b1c4..f7a624c 100644 --- a/mappings/region/select_recruitments_region(reg).hpl +++ b/mappings/region/select_recruitments_region(reg).hpl @@ -1,3 +1,4 @@ + select_recruitments_region(reg) @@ -7,8 +8,17 @@ Normal 0 - / + + ORG_ROW + + + + + SCM + + + N 1000 @@ -17,21 +27,29 @@ 2024/08/15 14:58:19.728 - 2024/08/15 14:58:19.728 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N + + Get variables 3 2 + Select values 3 2 + Y + Table input/регион - Copy rows to result + Get variables 3 2 + Y + + + Select values 3 2 + Insert / update Y - Copy rows to result - RowsToResult + Get variables 3 2 + GetVariable Y @@ -40,12 +58,101 @@ none + + + + + + + -1 + ORG_ROW + -1 + none + String + + + - - 512 + 656 + 208 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruitment_reg_id + ORG_ROW + + + ervu_dashboard + array_reg
+ + vk_array_id + vk_array_id + Y + + + recruitment_reg_id + recruitment_reg_id + Y + +
+ N + + + 992 + 208 + +
+ + Select values 3 2 + SelectValues + + Y + + 1 + + none + + + + N + + ORG_ROW + ORG_ROW + String + -2 + -2 + + false + + + false + + + + + + + + + + 800 208 - Y @@ -60,41 +167,29 @@ ervu-dashboard - WITH -t1 AS (SELECT ARRAY_AGG(t.idm_id) AS RECRUITMENT12_ID FROM ervu_dashboard.recruitment AS t WHERE t.code = '12'), -t2 AS (SELECT ARRAY_AGG(t.idm_id) AS RECRUITMENT62_ID FROM ervu_dashboard.recruitment AS t WHERE t.code = '62'), -t3 AS (SELECT ARRAY_AGG(t.idm_id) AS RECRUITMENT65_ID FROM ervu_dashboard.recruitment AS t WHERE t.code = '65'), -t4 AS (SELECT ARRAY_AGG(t.idm_id) AS RECRUITMENT48_ID FROM ervu_dashboard.recruitment AS t WHERE t.code = '48') -SELECT - t1.RECRUITMENT12_ID AS VK_ARRAY_ID, - '12' AS RECRUITMENT_REG_ID -FROM t1 -UNION ALL -SELECT - t2.RECRUITMENT62_ID, - '62' -FROM t2 -UNION ALL -SELECT - t3.RECRUITMENT65_ID, - '65' -FROM t3 -UNION ALL -SELECT - t4.RECRUITMENT48_ID, - '48' -FROM t4; - 10 - N - N - N + + SELECT + '${ORG_ROW}' AS recruitment_reg_id, + ARRAY( + SELECT idm_id + FROM ( + SELECT idm_id + FROM ervu_dashboard.recruitment + WHERE schema = 'Department' AND parent_id = '${ORG_ROW}' + UNION ALL + SELECT idm_id + FROM ervu_dashboard.recruitment + WHERE idm_id = '${ORG_ROW}' + ) subquery + ) AS vk_array_id +FROM ervu_dashboard.recruitment +WHERE idm_id = '${ORG_ROW}'; + Y - - 336 + 528 208 - Y diff --git a/mappings/region/select_recruitments_region(reg)rows.hpl b/mappings/region/select_recruitments_region(reg)rows.hpl new file mode 100644 index 0000000..de91546 --- /dev/null +++ b/mappings/region/select_recruitments_region(reg)rows.hpl @@ -0,0 +1,76 @@ + + + + select_recruitments_region(reg)rows + Y + + + + Normal + + + N + 1000 + 100 + - + 2024/12/10 10:43:22.293 + - + 2024/12/10 10:43:22.293 + + + + + + Table input/регион + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 688 + 240 + + + + Table input/регион + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + + SELECT + idm_id AS ORGANIZATION_ROW +FROM + ervu_dashboard.recruitment +WHERE schema = 'Organization' + + N + + + 512 + 240 + + + + + + diff --git a/mappings/region/total_registered.age(reg).hpl b/mappings/region/total_registered.age(reg).hpl index b629a30..3a74385 100644 --- a/mappings/region/total_registered.age(reg).hpl +++ b/mappings/region/total_registered.age(reg).hpl @@ -26,16 +26,6 @@ Select values 3 2 Y - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - Table input (person_registry) регион/все Get variables 3 2 @@ -46,71 +36,6 @@ Insert / update (total_registered.age) Y - - Table input (person_registry) регион/мужчины - Get variables 3 2 2 - Y - - - Select values 3 2 2 - Insert / update (total_registered.age) 2 - Y - - - Table input (person_registry) регион/женщины - Get variables 3 2 2 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.age) 3 - Y - - - Get variables 3 2 3 - Select values 3 2 3 - Y - - - Get variables 3 2 2 3 - Select values 3 2 2 3 - Y - - - Get variables 3 2 2 2 2 - Select values 3 2 2 2 2 - Y - - - Select values 3 2 3 - Insert / update (total_registered.age) 4 - Y - - - Select values 3 2 2 3 - Insert / update (total_registered.age) 2 2 - Y - - - Select values 3 2 2 2 2 - Insert / update (total_registered.age) 3 2 - Y - - - Table input (person_registry) регион/все 2 - Get variables 3 2 3 - Y - - - Table input (person_registry) регион/женщины 2 - Get variables 3 2 2 2 2 - Y - - - Table input (person_registry) регион/мужчины 2 - Get variables 3 2 2 3 - Y - Get variables 3 2 @@ -141,173 +66,8 @@ - 672 - 192 - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 672 - 352 - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 672 - 512 - - - - Get variables 3 2 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 656 - 1056 - - - - Get variables 3 2 2 3 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 656 - 896 - - - - Get variables 3 2 3 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 656 - 736 + 1568 + 752 @@ -329,129 +89,25 @@ recruitment_id REG_ID - total_registered - age
- - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - Y - - - 1056 - 192 - -
- - Insert / update (total_registered.age) 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - = - recruitment_id - REG_ID + schema + schema + + + = + registered + registered + + + = + "all_M_W" + gender + + + = + convicts + convicts total_registered age
@@ -487,7 +143,7 @@ "51+_years" - 41-45_year_count + 51+_year_count Y @@ -550,508 +206,27 @@ registered N -
- Y - - - 1056 - 352 - -
- - Insert / update (total_registered.age) 2 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - total_registered - age
- "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender + schema + schema N - "46-50_years" - 46-50_year_count + total_count + total_count Y - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered + convicts + convicts N
Y - 1040 - 896 - -
- - Insert / update (total_registered.age) 3 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - total_registered - age
- - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- Y - - - 1072 - 512 - -
- - Insert / update (total_registered.age) 3 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - total_registered - age
- - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- Y - - - 1056 - 1056 - -
- - Insert / update (total_registered.age) 4 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - total_registered - age
- - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- Y - - - 1040 - 736 + 1952 + 752
@@ -1104,278 +279,8 @@ - 816 - 192 - - - - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 352 - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 512 - - - - Select values 3 2 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 800 - 1056 - - - - Select values 3 2 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 800 - 896 - - - - Select values 3 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 800 - 736 + 1712 + 752 @@ -1389,709 +294,99 @@ none - ervu_person_registry + ervu-dashboard N 0 - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -age_counts AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) - END AS "17_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) - END AS "18-26_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) - END AS "27-30_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) - END AS "31-35_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) - END AS "36-40_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) - END AS "41-45_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) - END AS "46-50_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) - END AS "51+_year_count" - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "51+_year_percent", + SELECT + COALESCE(SUM(total_count), 0) total_count, + COALESCE(SUM("17_years"), 0) "17_year_count", + COALESCE(SUM("18-26_years"), 0) "18-26_year_count", + COALESCE(SUM("27-30_years"), 0) "27-30_year_count", + COALESCE(SUM("31-35_years"), 0) "31-35_year_count", + COALESCE(SUM("36-40_years"), 0) "36-40_year_count", + COALESCE(SUM("41-45_years"), 0) "41-45_year_count", + COALESCE(SUM("51+_years"), 0) "51+_year_count", + COALESCE(SUM("46-50_years"), 0) "46-50_year_count", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("17_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "17_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("18-26_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "18-26_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("27-30_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "27-30_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("31-35_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "31-35_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("36-40_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "36-40_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("41-45_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "41-45_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("46-50_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "46-50_year_percent", + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("51+_years") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) "51+_year_percent", '${REG_ID}' AS recruitment_id, - 'ALL' AS gender, - 'true' AS registered -FROM age_counts, total_count; + "all_M_W" AS gender, + convicts, + registered, + 'Organization' AS schema +FROM total_registered.age +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema IN ('Department', 'REG_LVL') +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", registered, convicts; Y - 432 - 192 - - - - Table input (person_registry) регион/все 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -age_counts AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) - END AS "17_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) - END AS "18-26_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) - END AS "27-30_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) - END AS "31-35_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) - END AS "36-40_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) - END AS "41-45_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) - END AS "46-50_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) - END AS "51+_year_count" - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "51+_year_percent", - - '${REG_ID}' AS recruitment_id, - 'ALL' AS gender, - 'false' AS registered -FROM age_counts, total_count; - Y - - - 416 - 736 - - - - Table input (person_registry) регион/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -age_counts AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) - END AS "17_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) - END AS "18-26_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) - END AS "27-30_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) - END AS "31-35_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) - END AS "36-40_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) - END AS "41-45_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) - END AS "46-50_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) - END AS "51+_year_count" - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "51+_year_percent", - - '${REG_ID}' AS recruitment_id, - 'W' AS gender, - 'true' AS registered -FROM age_counts, total_count; - Y - - - 416 - 512 - - - - Table input (person_registry) регион/женщины 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' - AND r.current_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -age_counts AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) - END AS "17_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) - END AS "18-26_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) - END AS "27-30_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) - END AS "31-35_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) - END AS "36-40_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) - END AS "41-45_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) - END AS "46-50_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) - END AS "51+_year_count" - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' - AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "51+_year_percent", - - '${REG_ID}' AS recruitment_id, - 'W' AS gender, - 'false' AS registered -FROM age_counts, total_count; - Y - - - 400 - 1056 - - - - Table input (person_registry) регион/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.gender = 'MALE' - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -age_counts AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) - END AS "17_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) - END AS "18-26_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) - END AS "27-30_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) - END AS "31-35_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) - END AS "36-40_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) - END AS "41-45_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) - END AS "46-50_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) - END AS "51+_year_count" - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "51+_year_percent", - - '${REG_ID}' AS recruitment_id, - 'M' AS gender, - 'true' AS registered -FROM age_counts, total_count; - Y - - - 432 - 352 - - - - Table input (person_registry) регион/мужчины 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' - AND r.current_recruitment_id IS NOT NULL - AND r.gender = 'MALE' - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -age_counts AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) - END AS "17_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) - END AS "18-26_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) - END AS "27-30_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) - END AS "31-35_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) - END AS "36-40_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) - END AS "41-45_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) - END AS "46-50_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) - END AS "51+_year_count" - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' - AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "51+_year_percent", - - '${REG_ID}' AS recruitment_id, - 'M' AS gender, - 'false' AS registered -FROM age_counts, total_count; - Y - - - 416 - 896 + 1328 + 752 diff --git a/mappings/region/total_registered.busyness(reg).hpl b/mappings/region/total_registered.busyness(reg).hpl index 0168803..a7f97c9 100644 --- a/mappings/region/total_registered.busyness(reg).hpl +++ b/mappings/region/total_registered.busyness(reg).hpl @@ -26,16 +26,6 @@ Select values 3 2 Y - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - Table input (person_registry) РФ/все Get variables 3 2 @@ -46,26 +36,6 @@ Insert / update (total_registered.busyness) Y - - Select values 3 2 2 - Insert / update (total_registered.busyness) 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.busyness) 3 - Y - - - Table input (person_registry) РФ/женщины - Get variables 3 2 2 2 - Y - - - Table input (person_registry) РФ/мужчины - Get variables 3 2 2 - Y - Get variables 3 2 @@ -96,74 +66,8 @@ - 672 - 192 - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 672 - 352 - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 672 - 512 + 640 + 576 @@ -185,84 +89,20 @@ recruitment_id REG_ID - total_registered - busyness
- - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - - - Y - - - 1072 - 192 - -
- - Insert / update (total_registered.busyness) 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - = - recruitment_id - REG_ID + schema + schema + + + = + "all_M_W" + gender + + + = + convicts + convicts total_registered busyness
@@ -303,12 +143,12 @@ not_work - not_work + no_info Y not_work_percent - not_work_percent + no_info_percent Y @@ -316,91 +156,22 @@ total_people Y -
- Y - - - 1072 - 352 - -
- - Insert / update (total_registered.busyness) 3 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - total_registered - busyness
- study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id + schema + schema N - registered - registered + convicts + convicts N - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y -
Y - 1072 - 512 + 1040 + 576
@@ -453,116 +224,8 @@ - 816 - 192 - - - - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 352 - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 512 + 784 + 576 @@ -576,358 +239,54 @@ none - ervu_person_registry + ervu-dashboard N 0 - WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, + SELECT + COALESCE(SUM(study), 0) study, + COALESCE(SUM(work), 0) work, + COALESCE( + CASE + WHEN SUM(busyness) > 0 + THEN ROUND((SUM(study) / SUM(busyness) * 100), 2) + ELSE 0 + END, + 0 + ) study_percent, + COALESCE( + CASE + WHEN SUM(busyness) > 0 + THEN ROUND((SUM(work) / SUM(busyness) * 100), 2) + ELSE 0 + END, + 0 + ) work_percent, - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, + COALESCE(SUM(not_work), 0) no_info, + COALESCE( + CASE + WHEN SUM(busyness) > 0 + THEN ROUND((SUM(not_work) / SUM(busyness) * 100), 2) + ELSE 0 + END, + 0 + ) no_info_percent, - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS no_info, - - -- Общее количество людей - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total_people - FROM status_info -) -SELECT - 'ALL' AS gender, - 'true' AS registered, + COALESCE(SUM(busyness), 0) total_people, '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE study END AS study, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE work END AS work, - 0 AS not_work, - 0 AS not_work_percent, - total_people, - - -- Процент людей, которые учатся - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(study * 100.0 / NULLIF(total_people, 0), 2) END AS study_percent, - - -- Процент людей, которые работают - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(work * 100.0 / NULLIF(total_people, 0), 2) END AS work_percent - - -- Процент людей, для которых отсутствуют сведения - -- CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) END AS no_info_percent -FROM summary; + "all_M_W" AS gender, + registered, + convicts, + 'Organization' AS schema +FROM total_registered.busyness +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", registered, convicts; Y - 432 - 192 - - - - Table input (person_registry) РФ/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'true' - AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS no_info, - - -- Общее количество людей - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total_people - FROM status_info -) -SELECT - 'W' AS gender, - 'true' AS registered, - '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE study END AS study, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE work END AS work, - 0 AS not_work, - 0 AS not_work_percent, - total_people, - - -- Процент людей, которые учатся - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(study * 100.0 / NULLIF(total_people, 0), 2) END AS study_percent, - - -- Процент людей, которые работают - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(work * 100.0 / NULLIF(total_people, 0), 2) END AS work_percent - - -- Процент людей, для которых отсутствуют сведения - -- CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) END AS no_info_percent -FROM summary; - Y - - - 432 - 512 - - - - Table input (person_registry) РФ/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'true' - AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS no_info, - - -- Общее количество людей - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total_people - FROM status_info -) -SELECT - 'M' AS gender, - 'true' AS registered, - '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE study END AS study, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE work END AS work, - 0 AS not_work, - 0 AS not_work_percent, - total_people, - - -- Процент людей, которые учатся - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(study * 100.0 / NULLIF(total_people, 0), 2) END AS study_percent, - - -- Процент людей, которые работают - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(work * 100.0 / NULLIF(total_people, 0), 2) END AS work_percent - - -- Процент людей, для которых отсутствуют сведения - -- CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) END AS no_info_percent -FROM summary; - Y - - - 432 - 352 + 400 + 576 diff --git a/mappings/region/total_registered.child_minor(reg).hpl b/mappings/region/total_registered.child_minor(reg).hpl index 0c4e6d8..04838e3 100644 --- a/mappings/region/total_registered.child_minor(reg).hpl +++ b/mappings/region/total_registered.child_minor(reg).hpl @@ -1,3 +1,4 @@ + total_registered.child_minor(reg) @@ -7,7 +8,6 @@ Normal 0 - / N @@ -17,8 +17,6 @@ 2024/08/02 11:56:22.507 - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -38,36 +36,6 @@ Insert / update (total_registered.child_minor) Y - - Get variables 4 2 2 - Select values 4 2 2 - Y - - - Select values 4 2 2 - Insert / update (total_registered.child_minor) 2 - Y - - - Get variables 4 2 2 2 - Select values 4 2 2 2 - Y - - - Select values 4 2 2 2 - Insert / update (total_registered.child_minor) 2 2 - Y - - - Table input (person_registry)РФ/мужчины - Get variables 4 2 2 - Y - - - Table input (person_registry)РФ/женщины - Get variables 4 2 2 2 - Y - Get variables 4 2 @@ -82,126 +50,24 @@ - VK_ARRAY - - String - - - - -1 + VK_ARRAY -1 none + String - REG_ID - - String - - - - -1 + REG_ID -1 none + String - - 592 - 288 - Y - - - - Get variables 4 2 2 - GetVariable - - Y - - 1 - - none - - - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - REG_ID - - String - - - - - -1 - -1 - none - - - - - - 592 - 384 - Y - - - - Get variables 4 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - REG_ID - - String - - - - - -1 - -1 - none - - - - - - 592 - 480 - Y + 1024 + 416 @@ -215,18 +81,31 @@ none - ervu-dashboard 100 - N + ervu-dashboard + + = + recruitment_id + REG_ID + + + = + schema + schema + + + = + "all_M_W" + gender + + + = + convicts + convicts + total_registered child_minor
- - REG_ID - recruitment_id - = - - no_child no_children @@ -287,197 +166,27 @@ recruitment_id N + + schema + schema + N + + + total_count + total_count + Y + + + convicts + convicts + Y +
- - - - 1040 - 288 - Y - -
- - Insert / update (total_registered.child_minor) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 N - - total_registered - child_minor
- - REG_ID - recruitment_id - = - - - - no_child - no_children - Y - - - "1_child" - one_child - Y - - - "2_child" - two_children - Y - - - "3_child" - three_children - Y - - - "4_more_child" - four_or_more_children - Y - - - "all_M_W" - gender - N - - - no_child_percent - no_children_percent - Y - - - "1_child_percent" - one_child_percent - Y - - - "2_child_percent" - two_children_percent - Y - - - "3_child_percent" - three_children_percent - Y - - - "4_more_child_percent" - four_or_more_children_percent - Y - - - recruitment_id - recruitment_id - N - -
- - 1040 - 384 - Y - -
- - Insert / update (total_registered.child_minor) 2 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered - child_minor
- - REG_ID - recruitment_id - = - - - - no_child - no_children - Y - - - "1_child" - one_child - Y - - - "2_child" - two_children - Y - - - "3_child" - three_children - Y - - - "4_more_child" - four_or_more_children - Y - - - "all_M_W" - gender - N - - - no_child_percent - no_children_percent - Y - - - "1_child_percent" - one_child_percent - Y - - - "2_child_percent" - two_children_percent - Y - - - "3_child_percent" - three_children_percent - Y - - - "4_more_child_percent" - four_or_more_children_percent - Y - - - recruitment_id - recruitment_id - N - -
- - - - 1040 - 480 - Y + 1472 + 416
@@ -529,377 +238,9 @@ - - 784 - 288 - Y - - - - Select values 4 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - 784 - 384 - Y - - - - Select values 4 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - 784 - 480 - Y - - - - Table input (person_registry)РФ/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_18 - FROM - children_birth_dates - WHERE - make_date(year, month, day) > CURRENT_DATE - INTERVAL '18 years' - GROUP BY - recruit_id -), -final_counts AS ( - SELECT - COALESCE(children_under_18, 0) AS children_count, - COUNT(*) AS num_people - FROM - public.recruits_info ri - LEFT JOIN - children_count cc ON ri.recruit_id = cc.recruit_id - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) - GROUP BY - COALESCE(children_under_18, 0) -), -total_women AS ( - SELECT - COUNT(*) AS total_women_count - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - 'W' AS gender, - '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) END AS no_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) END AS one_child, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) END AS two_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) END AS three_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) END AS four_or_more_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_women_count FROM total_women), 0), 2) END AS no_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_women_count FROM total_women), 0), 2) END AS one_child_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_women_count FROM total_women), 0), 2) END AS two_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_women_count FROM total_women), 0), 2) END AS three_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_women_count FROM total_women), 0), 2) END AS four_or_more_children_percent -FROM - final_counts; - 0 - - N - Y - N - - - - 352 - 480 - Y - - - - Table input (person_registry)РФ/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_18 - FROM - children_birth_dates - WHERE - make_date(year, month, day) > CURRENT_DATE - INTERVAL '18 years' - GROUP BY - recruit_id -), -final_counts AS ( - SELECT - COALESCE(children_under_18, 0) AS children_count, - COUNT(*) AS num_people - FROM - public.recruits_info ri - LEFT JOIN - children_count cc ON ri.recruit_id = cc.recruit_id - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) - GROUP BY - COALESCE(children_under_18, 0) -), -total_men AS ( - SELECT - COUNT(*) AS total_men_count - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - 'M' AS gender, - '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) END AS no_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) END AS one_child, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) END AS two_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) END AS three_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) END AS four_or_more_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) END AS no_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) END AS one_child_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) END AS two_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) END AS three_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) END AS four_or_more_children_percent -FROM - final_counts; - 0 - - N - Y - N - - - - 352 - 384 - Y + 1216 + 416 @@ -913,101 +254,70 @@ FROM none - ervu_person_registry - WITH extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_18 - FROM - children_birth_dates - WHERE - AGE(make_date(year, month, day)) < interval '18 years' - GROUP BY - recruit_id -), -final_counts AS ( - SELECT - COALESCE(children_under_18, 0) AS children_count, - COUNT(*) AS num_people - FROM - public.recruits_info ri - LEFT JOIN - children_count cc ON ri.recruit_id = cc.recruit_id - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) - GROUP BY - COALESCE(children_under_18, 0) -), -total_people AS ( - SELECT SUM(num_people) AS total_count - FROM final_counts -) -SELECT - 'ALL' AS gender, - '${REG_ID}' as recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) END AS no_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) END AS one_child, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) END AS two_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) END AS three_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) END AS four_or_more_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) END AS no_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) END AS one_child_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) END AS two_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) END AS three_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) END AS four_or_more_children_percent -FROM - final_counts; - 0 - + ervu-dashboard N + 0 + SELECT + COALESCE(SUM(total_count), 0) total_count, + COALESCE(SUM(no_child), 0) no_children, + COALESCE(SUM("1_child"), 0) one_child, + COALESCE(SUM("2_child"), 0) two_children, + COALESCE(SUM("3_child"), 0) three_children, + COALESCE(SUM("4_more_child"), 0) four_or_more_children, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM(no_child) / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) no_children_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("1_child") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) one_child_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("2_child") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) two_children_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("3_child") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) three_children_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("4_more_child") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) four_or_more_children_percent, + '${REG_ID}' AS recruitment_id, + "all_M_W" AS gender, + convicts, + 'Organization' AS schema +FROM total_registered.child_minor +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema IN ('Department', 'REG_LVL') +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", convicts; Y - N - - 352 - 288 - Y + 784 + 416 diff --git a/mappings/region/total_registered.driver_license(reg).hpl b/mappings/region/total_registered.driver_license(reg).hpl index a315be7..3902487 100644 --- a/mappings/region/total_registered.driver_license(reg).hpl +++ b/mappings/region/total_registered.driver_license(reg).hpl @@ -31,41 +31,11 @@ Insert / update (total_registered.driver_license) 2 Y - - Get variables 3 2 2 - Select values 3 2 2 - Y - Table input (driver_license) регионы/все Get variables 3 2 Y - - Select values 3 2 2 - Insert / update (total_registered.driver_license) 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Table input (person_registry) регионы/мужчины - Get variables 3 2 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.driver_license) 2 2 2 - Y - - - Table input (person_registry) регионы/женщины - Get variables 3 2 2 2 - Y - Get variables 3 2 @@ -96,74 +66,8 @@ - 672 - 192 - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 672 - 352 - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 672 - 512 + 1072 + 416 @@ -185,99 +89,20 @@ recruitment_id REG_ID - total_registered - driver_license
- - "A" - a - Y - - - "B" - b - Y - - - "C" - c - Y - - - "D" - d - Y - - - "E" - e - Y - - - nope - nope - Y - - - "A_repcent" - a_percent - Y - - - "B_repcent" - b_percent - Y - - - "C_repcent" - c_percent - Y - - - "D_repcent" - d_percent - Y - - - "E_repcent" - e_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - - - Y - - - 1072 - 192 - -
- - Insert / update (total_registered.driver_license) 2 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - = - recruitment_id - REG_ID + schema + schema + + + = + "all_M_W" + gender + + + = + convicts + convicts total_registered driver_license
@@ -346,106 +171,27 @@ recruitment_id N -
- Y - - - 1072 - 352 - -
- - Insert / update (total_registered.driver_license) 2 2 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - total_registered - driver_license
- "A" - a - Y - - - "B" - b - Y - - - "C" - c - Y - - - "D" - d - Y - - - "E" - e - Y - - - nope - nope - Y - - - "A_repcent" - a_percent - Y - - - "B_repcent" - b_percent - Y - - - "C_repcent" - c_percent - Y - - - "D_repcent" - d_percent - Y - - - "E_repcent" - e_percent - Y - - - "all_M_W" - gender + schema + schema N - recruitment_id - recruitment_id + total_count + total + Y + + + convicts + convicts N
Y - 1072 - 512 + 1472 + 416
@@ -498,116 +244,8 @@ - 816 - 192 - - - - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 352 - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 512 + 1216 + 416 @@ -621,202 +259,79 @@ none - ervu_person_registry + ervu-dashboard N 0 - WITH categorized AS ( - SELECT - r.id, - r.gender, - -- Проверяем наличие хотя бы одной категории, используем DISTINCT для уникальных рекрутов - 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 - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) - GROUP BY r.id, r.gender -), -aggregated AS ( - SELECT - 'ALL' AS gender, - '${REG_ID}' AS recruitment_id, - -- Считаем количество уникальных рекрутов с каждой категорией - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) END AS a, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) END AS b, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) END AS c, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) END AS d, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) END AS e, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_A = 0 AND has_B = 0 AND has_C = 0 AND has_D = 0 AND has_E = 0) END AS nope, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) END AS total - FROM categorized r -) -SELECT *, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((a * 100.0) / NULLIF(total, 0), 2) END AS a_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((b * 100.0) / NULLIF(total, 0), 2) END AS b_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((c * 100.0) / NULLIF(total, 0), 2) END AS c_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((d * 100.0) / NULLIF(total, 0), 2) END AS d_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((e * 100.0) / NULLIF(total, 0), 2) END AS e_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((nope * 100.0) / NULLIF(total, 0), 2) END AS nope_percent -FROM aggregated; + SELECT + COALESCE(SUM(total_count), 0) total, + COALESCE(SUM("A"), 0) a, + COALESCE(SUM("B"), 0) b, + COALESCE(SUM("C"), 0) c, + COALESCE(SUM("D"), 0) d, + COALESCE(SUM("E"), 0) e, + COALESCE(SUM(nope), 0) nope, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("A") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) a_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("B") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) b_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("C") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) c_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("D") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) d_percent, + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM("E") / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) e_percent, -- нет такой категории + COALESCE( + CASE + WHEN SUM(total_count) > 0 + THEN ROUND((SUM(nope) / SUM(total_count) * 100), 2) + ELSE 0 + END, + 0 + ) nope_percent, + '${REG_ID}' AS recruitment_id, + "all_M_W" AS gender, + convicts, + 'Organization' AS schema +FROM total_registered.driver_license +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema IN ('Department', 'REG_LVL') +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", convicts; Y - 448 - 192 - - - - Table input (person_registry) регионы/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH categorized AS ( - SELECT - r.id, - r.gender, - -- Проверяем наличие хотя бы одной категории, используем DISTINCT для уникальных рекрутов - 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 - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) - AND r.gender = 'FEMALE' - GROUP BY r.id, r.gender -), -aggregated AS ( - SELECT - 'W' AS gender, - '${REG_ID}' as recruitment_id, - -- Считаем количество уникальных рекрутов с каждой категорией - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) END AS a, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) END AS b, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) END AS c, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) END AS d, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) END AS e, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_A = 0 AND has_B = 0 AND has_C = 0 AND has_D = 0 AND has_E = 0) END AS nope, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) END AS total - FROM categorized r -) -SELECT *, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((a * 100.0) / NULLIF(total, 0), 2) END AS a_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((b * 100.0) / NULLIF(total, 0), 2) END AS b_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((c * 100.0) / NULLIF(total, 0), 2) END AS c_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((d * 100.0) / NULLIF(total, 0), 2) END AS d_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((e * 100.0) / NULLIF(total, 0), 2) END AS e_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((nope * 100.0) / NULLIF(total, 0), 2) END AS nope_percent -FROM aggregated; - Y - - - 432 - 512 - - - - Table input (person_registry) регионы/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH categorized AS ( - SELECT - r.id, - r.gender, - -- Проверяем наличие хотя бы одной категории, используем DISTINCT для уникальных рекрутов - 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 - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) - AND r.gender = 'MALE' - GROUP BY r.id, r.gender -), -aggregated AS ( - SELECT - 'M' AS gender, - '${REG_ID}' as recruitment_id, - -- Считаем количество уникальных рекрутов с каждой категорией - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) END AS a, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) END AS b, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) END AS c, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) END AS d, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) END AS e, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_A = 0 AND has_B = 0 AND has_C = 0 AND has_D = 0 AND has_E = 0) END AS nope, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) END AS total - FROM categorized r -) -SELECT *, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((a * 100.0) / NULLIF(total, 0), 2) END AS a_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((b * 100.0) / NULLIF(total, 0), 2) END AS b_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((c * 100.0) / NULLIF(total, 0), 2) END AS c_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((d * 100.0) / NULLIF(total, 0), 2) END AS d_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((e * 100.0) / NULLIF(total, 0), 2) END AS e_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((nope * 100.0) / NULLIF(total, 0), 2) END AS nope_percent -FROM aggregated; - Y - - - 432 - 352 + 848 + 416 diff --git a/mappings/region/total_registered.education_level(reg).hpl b/mappings/region/total_registered.education_level(reg).hpl index 760bad8..5c923c8 100644 --- a/mappings/region/total_registered.education_level(reg).hpl +++ b/mappings/region/total_registered.education_level(reg).hpl @@ -26,16 +26,6 @@ Select values 3 2 Y - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - Select values 3 2 Insert / update (total_registered.education_level) @@ -46,26 +36,6 @@ Get variables 3 2 Y - - Table input (person_registry) РФ/мужчины - Get variables 3 2 2 - Y - - - Table input (person_registry) РФ/женщины - Get variables 3 2 2 2 - Y - - - Select values 3 2 2 - Insert / update (total_registered.education_level) 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.education_level) 3 - Y - Get variables 3 2 @@ -96,74 +66,8 @@ - 672 - 192 - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 672 - 352 - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - -1 - REG_ID - -1 - none - String - - - -1 - VK_ARRAY - -1 - none - String - - - - - 672 - 512 + 1456 + 576 @@ -185,89 +89,20 @@ recruitment_id REG_ID - total_registered - education_level
- - higher - higher - Y - - - average - average_prof - Y - - - "all_M_W" - gender - N - - - only_general - only_general - Y - - - no_data - count_nodata - Y - - - higher_percent - higher_percentage - Y - - - average_percent - average_prof_percentage - Y - - - only_general_percent - only_general_percentage - Y - - - no_data_percent - count_nodata_percentage - Y - - - recruitment_id - recruitment_id - N - - - education_level - total - Y - - - Y - - - 1072 - 192 - -
- - Insert / update (total_registered.education_level) 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - = - recruitment_id - REG_ID + schema + schema + + + = + "all_M_W" + gender + + + = + convicts + convicts total_registered education_level
@@ -326,96 +161,22 @@ total Y -
- Y - - - 1072 - 352 - -
- - Insert / update (total_registered.education_level) 3 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - REG_ID - - total_registered - education_level
- higher - higher - Y - - - average - average_prof - Y - - - "all_M_W" - gender + schema + schema N - only_general - only_general - Y - - - no_data - count_nodata - Y - - - higher_percent - higher_percentage - Y - - - average_percent - average_prof_percentage - Y - - - only_general_percent - only_general_percentage - Y - - - no_data_percent - count_nodata_percentage - Y - - - recruitment_id - recruitment_id + convicts + convicts N - - education_level - total - Y -
Y - 1072 - 512 + 1856 + 576
@@ -468,116 +229,8 @@ - 816 - 192 - - - - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 352 - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 512 + 1600 + 576 @@ -591,428 +244,62 @@ none - ervu_person_registry + ervu-dashboard N 0 - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -education_status AS ( - SELECT - ri.id, + SELECT + COALESCE(SUM(higher), 0) higher, + COALESCE(SUM(average), 0) average_prof, + COALESCE(SUM(only_general), 0) only_general, + COALESCE(SUM(no_data), 0) count_nodata, + COALESCE( + CASE + WHEN SUM(education_level) > 0 + THEN ROUND((SUM(higher) / SUM(education_level) * 100), 2) + ELSE 0 + END, + 0 + ) higher_percentage, + COALESCE( + CASE + WHEN SUM(education_level) > 0 + THEN ROUND((SUM(average) / SUM(education_level) * 100), 2) + ELSE 0 + END, + 0 + ) average_prof_percentage, + COALESCE( + CASE + WHEN SUM(education_level) > 0 + THEN ROUND((SUM(only_general) / SUM(education_level) * 100), 2) + ELSE 0 + END, + 0 + ) only_general_percentage, + COALESCE( + CASE + WHEN SUM(education_level) > 0 + THEN ROUND((SUM(no_data) / SUM(education_level) * 100), 2) + ELSE 0 + END, + 0 + ) count_nodata_percentage, - -- Высшее образование (российское или иностранное) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - ) - ) AS has_higher, - - -- Среднее профессиональное образование (если нет высшего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' = '10' - ) - ) AS has_average_prof, - - -- Общее образование (если нет высшего и среднего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('7', '9') - ) - ) AS has_only_general, - - -- Нет данных об образовании (российское или иностранное) - ( - NOT ( - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - ) - ) - ) AND ( - ri.info->'svedRObr'->>'prOtsRObr' = '1' - OR ri.info->'svedInObr'->>'prOtsInObr' = '1' - ) - ) AS has_no_data - - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -final_counts AS ( - SELECT - COUNT(DISTINCT CASE WHEN has_higher THEN id END) AS higher, - COUNT(DISTINCT CASE WHEN NOT has_higher AND has_average_prof THEN id END) AS average_prof, - COUNT(DISTINCT CASE WHEN NOT has_higher AND NOT has_average_prof AND has_only_general THEN id END) AS only_general, - COUNT(DISTINCT CASE WHEN has_no_data THEN id END) AS count_nodata - FROM education_status -) -SELECT - 'ALL' AS gender, + COALESCE(SUM(education_level), 0) total, '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE higher END AS higher, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE average_prof END AS average_prof, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE only_general END AS only_general, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE count_nodata END AS count_nodata, - total_count.total, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(higher * 100.0 / NULLIF(total_count.total, 0), 2) END AS higher_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(average_prof * 100.0 / NULLIF(total_count.total, 0), 2) END AS average_prof_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(only_general * 100.0 / NULLIF(total_count.total, 0), 2) END AS only_general_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(count_nodata * 100.0 / NULLIF(total_count.total, 0), 2) END AS count_nodata_percentage -FROM final_counts, total_count; + "all_M_W" AS gender, + convicts, + 'Organization' AS schema +FROM total_registered.education_level +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema IN ('Department', 'REG_LVL') +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", convicts; Y - 400 - 192 - - - - Table input (person_registry) РФ/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -education_status AS ( - SELECT - ri.id, - - -- Высшее образование (российское или иностранное) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - ) - ) AS has_higher, - - -- Среднее профессиональное образование (если нет высшего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' = '10' - ) - ) AS has_average_prof, - - -- Общее образование (если нет высшего и среднего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('7', '9') - ) - ) AS has_only_general, - - -- Нет данных об образовании (российское или иностранное) - ( - NOT ( - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - ) - ) - ) AND ( - ri.info->'svedRObr'->>'prOtsRObr' = '1' - OR ri.info->'svedInObr'->>'prOtsInObr' = '1' - ) - ) AS has_no_data - - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -final_counts AS ( - SELECT - COUNT(DISTINCT CASE WHEN has_higher THEN id END) AS higher, - COUNT(DISTINCT CASE WHEN NOT has_higher AND has_average_prof THEN id END) AS average_prof, - COUNT(DISTINCT CASE WHEN NOT has_higher AND NOT has_average_prof AND has_only_general THEN id END) AS only_general, - COUNT(DISTINCT CASE WHEN has_no_data THEN id END) AS count_nodata - FROM education_status -) -SELECT - 'W' AS gender, - '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE higher END AS higher, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE average_prof END AS average_prof, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE only_general END AS only_general, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE count_nodata END AS count_nodata, - total_count.total, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(higher * 100.0 / NULLIF(total_count.total, 0), 2) END AS higher_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(average_prof * 100.0 / NULLIF(total_count.total, 0), 2) END AS average_prof_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(only_general * 100.0 / NULLIF(total_count.total, 0), 2) END AS only_general_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(count_nodata * 100.0 / NULLIF(total_count.total, 0), 2) END AS count_nodata_percentage -FROM final_counts, total_count; - Y - - - 432 - 512 - - - - Table input (person_registry) РФ/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -education_status AS ( - SELECT - ri.id, - - -- Высшее образование (российское или иностранное) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - ) - ) AS has_higher, - - -- Среднее профессиональное образование (если нет высшего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' = '10' - ) - ) AS has_average_prof, - - -- Общее образование (если нет высшего и среднего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('7', '9') - ) - ) AS has_only_general, - - -- Нет данных об образовании (российское или иностранное) - ( - NOT ( - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - ) - ) - ) AND ( - ri.info->'svedRObr'->>'prOtsRObr' = '1' - OR ri.info->'svedInObr'->>'prOtsInObr' = '1' - ) - ) AS has_no_data - - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -final_counts AS ( - SELECT - COUNT(DISTINCT CASE WHEN has_higher THEN id END) AS higher, - COUNT(DISTINCT CASE WHEN NOT has_higher AND has_average_prof THEN id END) AS average_prof, - COUNT(DISTINCT CASE WHEN NOT has_higher AND NOT has_average_prof AND has_only_general THEN id END) AS only_general, - COUNT(DISTINCT CASE WHEN has_no_data THEN id END) AS count_nodata - FROM education_status -) -SELECT - 'M' AS gender, - '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE higher END AS higher, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE average_prof END AS average_prof, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE only_general END AS only_general, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE count_nodata END AS count_nodata, - total_count.total, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(higher * 100.0 / NULLIF(total_count.total, 0), 2) END AS higher_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(average_prof * 100.0 / NULLIF(total_count.total, 0), 2) END AS average_prof_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(only_general * 100.0 / NULLIF(total_count.total, 0), 2) END AS only_general_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(count_nodata * 100.0 / NULLIF(total_count.total, 0), 2) END AS count_nodata_percentage -FROM final_counts, total_count; - Y - - - 416 - 352 + 1184 + 576 diff --git a/mappings/region/total_registered.marital_status(reg).hpl b/mappings/region/total_registered.marital_status(reg).hpl index 3ab065e..10fd7a7 100644 --- a/mappings/region/total_registered.marital_status(reg).hpl +++ b/mappings/region/total_registered.marital_status(reg).hpl @@ -1,3 +1,4 @@ + total_registered.marital_status(reg) @@ -7,7 +8,6 @@ Normal 0 - / N @@ -17,8 +17,6 @@ 2024/08/02 11:56:22.507 - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -28,46 +26,16 @@ Select values 3 2 Y - - Get variables 3 2 2 - Select values 3 2 2 - Y - Table input (person_registry) регионы/все Get variables 3 2 Y - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Table input (person_registry) регионы/мужчины - Get variables 3 2 2 - Y - - - Table input (person_registry) регионы/женщины - Get variables 3 2 2 2 - Y - Select values 3 2 Insert / update (total_registered.marital_status) Y - - Select values 3 2 2 - Insert / update (total_registered.marital_status) 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.marital_status) 3 - Y - Get variables 3 2 @@ -82,126 +50,24 @@ - REG_ID - - String - - - - -1 + REG_ID -1 none + String - VK_ARRAY - - String - - - - -1 + VK_ARRAY -1 none + String - - 672 - 192 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - 672 - 352 - Y - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - 672 - 512 - Y + 1344 + 592 @@ -215,18 +81,31 @@ none - ervu-dashboard 100 - Y + ervu-dashboard + + = + recruitment_id + REG_ID + + + = + schema + schema + + + = + "all_M_W" + gender + + + = + convicts + convicts + total_registered marital_status
- - REG_ID - recruitment_id - = - - married married @@ -262,147 +141,32 @@ total Y + + schema + schema + N + + + convicts + convicts + N + + + other + other + Y + + + other_percent + other_percent + Y +
- - - - 1072 - 192 - Y - -
- - Insert / update (total_registered.marital_status) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 Y - - total_registered - marital_status
- - REG_ID - recruitment_id - = - - - - married - married - Y - - - not_married - not_married - Y - - - married_percent - married_percent - Y - - - not_married_percent - not_married_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - - - marital_status - total - Y - -
- - 1072 - 352 - Y - -
- - Insert / update (total_registered.marital_status) 3 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - marital_status
- - REG_ID - recruitment_id - = - - - - married - married - Y - - - not_married - not_married - Y - - - married_percent - married_percent - Y - - - not_married_percent - not_married_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - - - marital_status - total - Y - -
- - - - 1072 - 512 - Y + 1744 + 592
@@ -454,123 +218,9 @@ - - 816 - 192 - Y - - - - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - 816 - 352 - Y - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - 816 - 512 - Y + 1488 + 592 @@ -584,262 +234,52 @@ none - ervu_person_registry - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) - END AS not_married, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) - END AS married, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) * 100.0 / COUNT(*), 2 - ) - END AS not_married_percent, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) * 100.0 / COUNT(*), 2 - ) - END AS married_percent, - - 'ALL' AS gender, - '${REG_ID}' AS recruitment_id - -FROM - public.recruits r -JOIN - public.recruits_info ri ON ri.recruit_id = r.id -WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ); - - 0 - + ervu-dashboard N - Y - N - - - - 448 - 192 - Y - - - - Table input (person_registry) регионы/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) - END AS not_married, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) - END AS married, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) * 100.0 / COUNT(*), 2 - ) - END AS not_married_percent, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) * 100.0 / COUNT(*), 2 - ) - END AS married_percent, - - 'W' AS gender, - '${REG_ID}' AS recruitment_id - -FROM - public.recruits r -JOIN - public.recruits_info ri ON ri.recruit_id = r.id -WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ); - 0 - - N + SELECT + COALESCE(SUM(married), 0) married, + COALESCE(SUM(not_married), 0) not_married, + COALESCE(SUM(other), 0) other, + COALESCE( + CASE + WHEN SUM(marital_status) > 0 + THEN ROUND((SUM(married) / SUM(marital_status) * 100), 2) + ELSE 0 + END, + 0 + ) married_percent, + COALESCE( + CASE + WHEN SUM(marital_status) > 0 + THEN ROUND((SUM(not_married) / SUM(marital_status) * 100), 2) + ELSE 0 + END, + 0 + ) not_married_percent, + COALESCE( + CASE + WHEN SUM(marital_status) > 0 + THEN ROUND((SUM(other) / SUM(marital_status) * 100), 2) + ELSE 0 + END, + 0 + ) other_percent, + COALESCE(SUM(marital_status), 0) total, + '${REG_ID}' AS recruitment_id, + "all_M_W" AS gender, + convicts, + 'Organization' AS schema +FROM total_registered.marital_status +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema IN ('Department', 'REG_LVL') +AND recording_date = CURRENT_DATE +GROUP BY "all_M_W", convicts; Y - N - - 432 - 512 - Y - - - - Table input (person_registry) регионы/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) - END AS not_married, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) - END AS married, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) * 100.0 / COUNT(*), 2 - ) - END AS not_married_percent, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) * 100.0 / COUNT(*), 2 - ) - END AS married_percent, - - 'M' AS gender, - '${REG_ID}' AS recruitment_id - -FROM - public.recruits r -JOIN - public.recruits_info ri ON ri.recruit_id = r.id -WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ); - - 0 - - N - Y - N - - - - 432 - 352 - Y + 1120 + 592 diff --git a/mappings/region/total_registered.reg_mil_cat(reg).hpl b/mappings/region/total_registered.reg_mil_cat(reg).hpl index 5760a79..e12e146 100644 --- a/mappings/region/total_registered.reg_mil_cat(reg).hpl +++ b/mappings/region/total_registered.reg_mil_cat(reg).hpl @@ -1,3 +1,4 @@ + total_registered.reg_mil_cat(reg) @@ -7,7 +8,6 @@ Normal 0 - / N @@ -17,8 +17,6 @@ 2024/08/02 11:56:22.507 - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -33,26 +31,11 @@ Get variables 3 Y - - Get variables 3 2 - Select values 3 2 - Y - - - Table input (person_registry) военком 2 - Get variables 3 2 - Y - Select values 3 Insert / update (total_registered.reg_mil_cat) Y - - Select values 3 2 - Insert / update (total_registered.reg_mil_cat) 2 - Y - Get variables 3 @@ -67,81 +50,24 @@ - REG_ID - - String - - - - -1 + REG_ID -1 none + String - VK_ARRAY - - String - - - - -1 + VK_ARRAY -1 none + String - 656 - 288 - Y - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - 656 - 400 - Y + 352 @@ -155,18 +81,26 @@ none - ervu-dashboard 100 - N + ervu-dashboard + + = + recruitment_id + REG_ID + + + = + schema + schema + + + = + mil_reg + mil_reg + total_registered reg_mil_cat
- - REG_ID - recruitment_id - = - - first_reg_17 first_reg_17 @@ -237,115 +171,17 @@ mil_reg N + + schema + schema + N +
- - - - 1056 - 288 - Y - -
- - Insert / update (total_registered.reg_mil_cat) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 N - - total_registered - reg_mil_cat
- - REG_ID - recruitment_id - = - - - - first_reg_17 - first_reg_17 - Y - - - first_reg_18 - first_reg_18 - Y - - - "mil_spec_W" - mil_spec_w - Y - - - recruitment_id - recruitment_id - N - - - returned_dep_liberty - returned_dep_liberty - Y - - - punished - punished - Y - - - received_citizenship - received_citizenship - Y - - - first_reg_17_percent - first_reg_17_percent - Y - - - first_reg_18_percent - first_reg_18_percent - Y - - - returned_dep_liberty_percent - returned_dep_liberty_percent - Y - - - "mil_spec_W_percent" - mil_spec_w_percent - Y - - - punished_percent - punished_percent - Y - - - received_citizenship_percent - received_citizenship_percent - Y - - - mil_reg - mil_reg - N - -
- 1056 - 400 - Y + 352
@@ -397,182 +233,9 @@ - 800 - 288 - Y - - - - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - 800 - 400 - Y - - - - Table input (person_registry) военком 2 - TableInput - - Y - - 1 - - none - - - postgres.person_registry - WITH base_data AS ( - -- Основной набор данных - SELECT - r.registration_reasons, - r.gender, - r.vu_current_info ->> 'isMilitaryRegistered' AS is_military_registered - FROM public.recruits r - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN ARRAY[]::uuid[] - ELSE string_to_array(trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',')::uuid[] - END - ) - ) -), -total AS ( - -- Общее количество записей - SELECT COUNT(*) AS total_count - FROM base_data -), -t1 AS ( - -- Первоначальная постановка 17 лет - SELECT COUNT(*) AS first_reg_17 - FROM base_data - WHERE registration_reasons @> '"5"' -), -t2 AS ( - -- Первоначальная постановка 18 лет - SELECT COUNT(*) AS first_reg_18 - FROM base_data - WHERE registration_reasons @> '"6"' - OR registration_reasons @> '"3"' - OR registration_reasons @> '"1"' - OR registration_reasons @> '"4"' - OR registration_reasons @> '"2"' -), -t3 AS ( - -- Женщины, получившие ВУС - SELECT COUNT(*) AS mil_spec_w - FROM base_data - WHERE registration_reasons @> '"3"' AND gender = 'FEMALE' -), -t4 AS ( - -- Возвратившиеся из мест лишения свободы - SELECT COUNT(*) AS returned_dep_liberty - FROM base_data - WHERE registration_reasons @> '"1"' -), -t5 AS ( - -- Отбывающие наказание в местах лишения свободы - SELECT COUNT(*) AS punished - FROM base_data - WHERE registration_reasons @> '"4"' -), -t6 AS ( - -- Получившие гражданство - SELECT COUNT(*) AS received_citizenship - FROM base_data - WHERE registration_reasons @> '"2"' -) -SELECT - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total.total_count, 0) END AS total_count, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t1.first_reg_17, 0) END AS first_reg_17, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t2.first_reg_18, 0) END AS first_reg_18, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t3.mil_spec_w, 0) END AS mil_spec_w, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t4.returned_dep_liberty, 0) END AS returned_dep_liberty, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t5.punished, 0) END AS punished, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t6.received_citizenship, 0) END AS received_citizenship, - -- Вычисление процентов - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t1.first_reg_17 * 100.0 / NULLIF(total.total_count, 0) END, 2) AS first_reg_17_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t2.first_reg_18 * 100.0 / NULLIF(total.total_count, 0) END, 2) AS first_reg_18_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t4.returned_dep_liberty * 100.0 / NULLIF(total.total_count, 0) END, 2) AS returned_dep_liberty_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t3.mil_spec_w * 100.0 / NULLIF(total.total_count, 0) END, 2) AS mil_spec_w_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t5.punished * 100.0 / NULLIF(total.total_count, 0) END, 2) AS punished_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t6.received_citizenship * 100.0 / NULLIF(total.total_count, 0) END, 2) AS received_citizenship_percent, - '${REG_ID}' AS recruitment_id, - 0 AS mil_reg, - 1 AS org -FROM total -FULL OUTER JOIN t1 ON 1 = 1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1; - 0 - - N - Y - N - - - - 400 - 400 - Y + 352 @@ -586,108 +249,77 @@ FULL OUTER JOIN t6 ON 1 = 1; none - postgres.person_registry - WITH base_data AS ( - -- Основной набор данных - SELECT - r.registration_reasons, - r.gender, - r.vu_current_info ->> 'isMilitaryRegistered' AS is_military_registered - FROM public.recruits r - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN ARRAY[]::uuid[] - ELSE string_to_array(trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',')::uuid[] - END - ) - ) -), -total AS ( - -- Общее количество записей - SELECT COUNT(*) AS total_count - FROM base_data -), -t1 AS ( - -- Первоначальная постановка 17 лет - SELECT COUNT(*) AS first_reg_17 - FROM base_data - WHERE registration_reasons @> '"5"' -), -t2 AS ( - -- Первоначальная постановка 18 лет - SELECT COUNT(*) AS first_reg_18 - FROM base_data - WHERE registration_reasons @> '"6"' - OR registration_reasons @> '"3"' - OR registration_reasons @> '"1"' - OR registration_reasons @> '"4"' - OR registration_reasons @> '"2"' -), -t3 AS ( - -- Женщины, получившие ВУС - SELECT COUNT(*) AS mil_spec_w - FROM base_data - WHERE registration_reasons @> '"3"' AND gender = 'FEMALE' -), -t4 AS ( - -- Возвратившиеся из мест лишения свободы - SELECT COUNT(*) AS returned_dep_liberty - FROM base_data - WHERE registration_reasons @> '"1"' -), -t5 AS ( - -- Отбывающие наказание в местах лишения свободы - SELECT COUNT(*) AS punished - FROM base_data - WHERE registration_reasons @> '"4"' -), -t6 AS ( - -- Получившие гражданство - SELECT COUNT(*) AS received_citizenship - FROM base_data - WHERE registration_reasons @> '"2"' -) -SELECT - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total.total_count, 0) END AS total_count, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t1.first_reg_17, 0) END AS first_reg_17, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t2.first_reg_18, 0) END AS first_reg_18, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t3.mil_spec_w, 0) END AS mil_spec_w, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t4.returned_dep_liberty, 0) END AS returned_dep_liberty, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t5.punished, 0) END AS punished, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t6.received_citizenship, 0) END AS received_citizenship, - -- Вычисление процентов - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t1.first_reg_17 * 100.0 / NULLIF(total.total_count, 0) END, 2) AS first_reg_17_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t2.first_reg_18 * 100.0 / NULLIF(total.total_count, 0) END, 2) AS first_reg_18_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t4.returned_dep_liberty * 100.0 / NULLIF(total.total_count, 0) END, 2) AS returned_dep_liberty_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t3.mil_spec_w * 100.0 / NULLIF(total.total_count, 0) END, 2) AS mil_spec_w_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t5.punished * 100.0 / NULLIF(total.total_count, 0) END, 2) AS punished_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t6.received_citizenship * 100.0 / NULLIF(total.total_count, 0) END, 2) AS received_citizenship_percent, - '${REG_ID}' AS recruitment_id, - 1 AS mil_reg, - 1 AS org -FROM total -FULL OUTER JOIN t1 ON 1 = 1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1; - 0 - + ervu-dashboard N + 0 + SELECT + COALESCE(SUM(first_reg_17), 0) first_reg_17, + COALESCE(SUM(first_reg_18), 0) first_reg_18, + COALESCE(SUM("mil_spec_W"), 0) mil_spec_w, + COALESCE(SUM(returned_dep_liberty), 0) returned_dep_liberty, + COALESCE(SUM(punished), 0) punished, + COALESCE(SUM(received_citizenship), 0) received_citizenship, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM(first_reg_17) / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) first_reg_17_percent, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM(first_reg_18) / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) first_reg_18_percent, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM(returned_dep_liberty) / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) returned_dep_liberty_percent, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM("mil_spec_W") / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) mil_spec_w_percent, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM(punished) / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) punished_percent, + COALESCE( + CASE + WHEN (SUM(first_reg_17) + SUM(first_reg_18)) > 0 + THEN ROUND((SUM(received_citizenship) / (SUM(first_reg_17) + SUM(first_reg_18)) * 100), 2) + ELSE 0 + END, + 0 + ) received_citizenship_percent, + '${REG_ID}'::uuid AS recruitment_id, + mil_reg, + 'Organization' AS schema +FROM total_registered.reg_mil_cat +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema IN ('Department', 'REG_LVL') +AND recording_date = CURRENT_DATE +GROUP BY mil_reg; Y - N - 400 - 288 - Y + 352 diff --git a/mappings/region/total_registered.removed_registry(reg).hpl b/mappings/region/total_registered.removed_registry(reg).hpl index cf82ace..9b0011c 100644 --- a/mappings/region/total_registered.removed_registry(reg).hpl +++ b/mappings/region/total_registered.removed_registry(reg).hpl @@ -89,6 +89,11 @@ recruitment_id REG_ID + + = + schema + schema + total_registered removed_registry
@@ -118,7 +123,7 @@ living_abroad - travel_abroad + living_abroad Y @@ -161,6 +166,11 @@ recruitment_id N + + schema + schema + N + N @@ -234,57 +244,75 @@ none - postgres.decision-document-service + ervu-dashboard N 0 - WITH -total_info AS ( -SELECT -COUNT(*) AS removed_registry, -COUNT(CASE WHEN d.extra_info ->> 'cause' = 'ageLimit' THEN 1 END) AS age_limit, -- Количество по причине предельный возраст -COUNT(CASE WHEN d.extra_info ->> 'cause' = 'notAlive' THEN 1 END) AS death, -- Количество по причине смерть -COUNT(CASE WHEN (d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive')) THEN 1 END) AS other, -ROUND(COUNT(CASE WHEN d.extra_info ->> 'cause' = 'ageLimit' THEN 1 END) * 100.0 / NULLIF(COUNT(*), 0), 2) AS age_limit_percent, -ROUND(COUNT(CASE WHEN d.extra_info ->> 'cause' = 'notAlive' THEN 1 END) * 100.0 / NULLIF(COUNT(*), 0), 2) AS death_percent, -ROUND(COUNT(CASE WHEN (d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive')) THEN 1 END) * 100.0 / NULLIF(COUNT(*), 0), 2) AS other_percent -FROM public.recruit AS r -JOIN public.decision AS d - ON d.recruit_id = r.id -JOIN public.decision_type AS dt - ON dt.id = d.type_id -WHERE r.system_pgs_status = '1.3' - AND r.current_recruitment IS NOT NULL - AND dt.code in ('9','10') - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT -'${REG_ID}' AS recruitment_id, -CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total_info.removed_registry, 0) END AS removed_registry, -CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total_info.age_limit, 0) END AS age_limit, -CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total_info.death, 0) END AS death, -CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total_info.other, 0) END AS other, -CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total_info.age_limit_percent, 0) END AS age_limit_percent, -CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total_info.death_percent, 0) END AS death_percent, -CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total_info.other_percent, 0) END AS other_percent, -'0' AS deprivation_citizenship, -'0' AS travel_abroad, -'0' AS living_abroad, -'0' AS deprivation_citizen_percents, -'0' AS travel_abroad_percent, -'0' AS living_abroad_percent -FROM total_info + SELECT + COALESCE(SUM(age_limit), 0) age_limit, + COALESCE(SUM(death), 0) death, + COALESCE(SUM(removed_registry), 0) removed_registry, + COALESCE(SUM(deprivation_citizenship), 0) deprivation_citizenship, + COALESCE(SUM(travel_abroad), 0) travel_abroad, + COALESCE(SUM(living_abroad), 0) living_abroad, + COALESCE(SUM(other), 0) other, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(deprivation_citizenship) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) deprivation_citizen_percents, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(age_limit) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) age_limit_percent, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(death) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) death_percent, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(travel_abroad) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) travel_abroad_percent, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(living_abroad) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) living_abroad_percent, + COALESCE( + CASE + WHEN SUM(removed_registry) > 0 + THEN ROUND((SUM(other) / SUM(removed_registry) * 100), 2) + ELSE 0 + END, + 0 + ) other_percent, + '${REG_ID}' AS recruitment_id, + 'Organization' AS schema +FROM total_registered.removed_registry +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema IN ('Department', 'REG_LVL') +AND recording_date = CURRENT_DATE; Y - 400 + 448 320 diff --git a/mappings/region/total_registered.subpoenas(reg).hpl b/mappings/region/total_registered.subpoenas(reg).hpl index 6394d93..02a85de 100644 --- a/mappings/region/total_registered.subpoenas(reg).hpl +++ b/mappings/region/total_registered.subpoenas(reg).hpl @@ -1,3 +1,4 @@ + total_registered.subpoenas(reg) @@ -7,7 +8,6 @@ Normal 0 - / N @@ -17,8 +17,6 @@ 2024/08/02 11:56:22.507 - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N @@ -33,26 +31,11 @@ Get variables 4 2 Y - - Get variables 4 2 2 - Select values 4 2 2 - Y - - - Table input (subpoena) регион/не рег - Get variables 4 2 2 - Y - Select values 4 2 Insert / update (total_registered.subpoenas) 3 Y - - Select values 4 2 2 - Insert / update (total_registered.subpoenas) 3 2 - Y - Get variables 4 2 @@ -67,81 +50,24 @@ - REG_ID - - String - - - - -1 + REG_ID -1 none + String - VK_ARRAY - - String - - - - -1 + VK_ARRAY -1 none + String - - 464 - 400 - Y - - - - Get variables 4 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - 464 - 528 - Y + 960 + 496 @@ -155,18 +81,26 @@ none - ervu-dashboard 100 - N + ervu-dashboard + + = + recruitment_id + REG_ID + + + = + schema + schema + + + = + mil_reg + mil_reg + total_registered subpoenas
- - REG_ID - recruitment_id - = - - subpoena count_subpoena @@ -287,165 +221,17 @@ appear_date_is_good_percent Y + + schema + schema + N +
- - - - 912 - 400 - Y - -
- - Insert / update (total_registered.subpoenas) 3 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 N - - total_registered - subpoenas
- - REG_ID - recruitment_id - = - - - - subpoena - count_subpoena - Y - - - appeared - count_appeared - Y - - - average_appeared - average_appeared - Y - - - not_appeared - count_not_appeared - Y - - - not_ap_good_reason - count_not_ap_good_reason - Y - - - introduced_measures - count_introduced_measures - Y - - - ap_not_required - count_ap_not_required - Y - - - electron - count_electron - Y - - - paper - count_paper - Y - - - restrictions_applied - count_restrictions_applied - Y - - - recruitment_id - recruitment_id - N - - - mil_reg - mil_reg - N - - - appeared_percent - appeared_percent - Y - - - not_appeared_percent - not_appeared_percent - Y - - - not_ap_good_reason_percent - not_ap_good_reason_percent - Y - - - ap_not_required_percent - ap_not_required_percent - Y - - - electron_percent - electron_percent - Y - - - paper_percent - paper_percent - Y - - - restrictions_applied_percent - restrictions_applied_percent - Y - - - introduced_measures_percent - introduced_measures_percent - Y - - - count_not_delivery - count_not_delivery - Y - - - appear_date_is_good - appear_date_is_good - Y - - - not_delivery_percent - not_delivery_percent - Y - - - appear_date_is_good_percent - appear_date_is_good_percent - Y - -
- - 912 - 528 - Y + 1408 + 496
@@ -497,252 +283,9 @@ - - 640 - 400 - Y - - - - Select values 4 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - 640 - 528 - Y - - - - Table input (subpoena) регион/не рег - TableInput - - Y - - 1 - - none - - - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '1' - AND ssh.code NOT IN ('3.14','3.7','3.72', '3.71') - AND ( - COALESCE('${VK_ARRAY}', '') = '' - OR s.department_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), - ',' - )::uuid[] - ) - ) -), -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery - FROM last_status - WHERE d_code IS NULL -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') -) -SELECT - COALESCE(t1.count_subpoena, 0) AS count_subpoena, - COALESCE(t2.average_appeared, 0) AS average_appeared, - COALESCE(t3.count_appeared, 0) AS count_appeared, - COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, - COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, - COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, - COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, - COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, - COALESCE(t9.count_paper, 0) AS count_paper, - COALESCE(t10.count_electron, 0) AS count_electron, - COALESCE(t11.count_restrictions, 0) AS count_restrictions, - COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, - COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, - ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appeared_percent, - ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS electron_percent, - ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS paper_percent, - ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_delivery_percent, - ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appear_date_is_good_percent, - '${REG_ID}' AS recruitment_id, - 1 AS org, - 0 AS mil_reg -FROM t1 -FULL OUTER JOIN t2 ON true -FULL OUTER JOIN t3 ON true -FULL OUTER JOIN t4 ON true -FULL OUTER JOIN t5 ON true -FULL OUTER JOIN t6 ON true -FULL OUTER JOIN t7 ON true -FULL OUTER JOIN t8 ON true -FULL OUTER JOIN t9 ON true -FULL OUTER JOIN t10 ON true -FULL OUTER JOIN t11 ON true -FULL OUTER JOIN t12 ON true -FULL OUTER JOIN t13 ON true -WHERE NOT ( - COALESCE('${VK_ARRAY}', '') = '' - AND ( - COALESCE(t1.count_subpoena, 0) > 0 - OR COALESCE(t2.average_appeared, 0) > 0 - OR COALESCE(t3.count_appeared, 0) > 0 - OR COALESCE(t4.count_not_appeared, 0) > 0 - OR COALESCE(t5.count_not_ap_good_reason, 0) > 0 - OR COALESCE(t6.count_ap_not_required, 0) > 0 - OR COALESCE(t7.count_restrictions_applied, 0) > 0 - OR COALESCE(t8.count_introduced_measures, 0) > 0 - OR COALESCE(t9.count_paper, 0) > 0 - OR COALESCE(t10.count_electron, 0) > 0 - OR COALESCE(t11.count_restrictions, 0) > 0 - OR COALESCE(t12.count_not_delivery, 0) > 0 - OR COALESCE(t13.appear_date_is_good, 0) > 0 - ) -); - 0 - - N - Y - N - - - - 256 - 528 - Y + 1136 + 496 @@ -756,178 +299,117 @@ WHERE NOT ( none - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type != '1' - AND ssh.code NOT IN ('3.14','3.7','3.72', '3.71') - AND ( - COALESCE('${VK_ARRAY}', '') = '' - OR s.department_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), - ',' - )::uuid[] - ) - ) -), -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery - FROM last_status - WHERE d_code IS NULL -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') -) -SELECT - COALESCE(t1.count_subpoena, 0) AS count_subpoena, - COALESCE(t2.average_appeared, 0) AS average_appeared, - COALESCE(t3.count_appeared, 0) AS count_appeared, - COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, - COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, - COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, - COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, - COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, - COALESCE(t9.count_paper, 0) AS count_paper, - COALESCE(t10.count_electron, 0) AS count_electron, - COALESCE(t11.count_restrictions, 0) AS count_restrictions, - COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, - COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, - ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appeared_percent, - ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS electron_percent, - ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS paper_percent, - ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_delivery_percent, - ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appear_date_is_good_percent, - '${REG_ID}' AS recruitment_id, - 1 AS org, - 1 AS mil_reg -FROM t1 -FULL OUTER JOIN t2 ON true -FULL OUTER JOIN t3 ON true -FULL OUTER JOIN t4 ON true -FULL OUTER JOIN t5 ON true -FULL OUTER JOIN t6 ON true -FULL OUTER JOIN t7 ON true -FULL OUTER JOIN t8 ON true -FULL OUTER JOIN t9 ON true -FULL OUTER JOIN t10 ON true -FULL OUTER JOIN t11 ON true -FULL OUTER JOIN t12 ON true -FULL OUTER JOIN t13 ON true -WHERE NOT ( - COALESCE('${VK_ARRAY}', '') = '' - AND ( - COALESCE(t1.count_subpoena, 0) > 0 - OR COALESCE(t2.average_appeared, 0) > 0 - OR COALESCE(t3.count_appeared, 0) > 0 - OR COALESCE(t4.count_not_appeared, 0) > 0 - OR COALESCE(t5.count_not_ap_good_reason, 0) > 0 - OR COALESCE(t6.count_ap_not_required, 0) > 0 - OR COALESCE(t7.count_restrictions_applied, 0) > 0 - OR COALESCE(t8.count_introduced_measures, 0) > 0 - OR COALESCE(t9.count_paper, 0) > 0 - OR COALESCE(t10.count_electron, 0) > 0 - OR COALESCE(t11.count_restrictions, 0) > 0 - OR COALESCE(t12.count_not_delivery, 0) > 0 - OR COALESCE(t13.appear_date_is_good, 0) > 0 - ) -); - 0 - + ervu-dashboard N + 0 + SELECT + COALESCE(SUM(subpoena), 0) count_subpoena, + COALESCE(SUM(appeared), 0) count_appeared, + COALESCE(SUM(average_appeared), 0) average_appeared, + COALESCE(SUM(not_appeared), 0) count_not_appeared, + COALESCE(SUM(not_ap_good_reason), 0) count_not_ap_good_reason, + COALESCE(SUM(introduced_measures), 0) count_introduced_measures, + COALESCE(SUM(ap_not_required), 0) count_ap_not_required, + COALESCE(SUM(electron), 0) count_electron, + COALESCE(SUM(paper), 0) count_paper, + COALESCE(SUM(restrictions_applied), 0) count_restrictions_applied, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(appeared) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) appeared_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(not_appeared) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_appeared_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(not_ap_good_reason) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_ap_good_reason_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(ap_not_required) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) ap_not_required_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(electron) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) electron_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(paper) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) paper_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(restrictions_applied) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) restrictions_applied_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(introduced_measures) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) introduced_measures_percent, + + COALESCE(SUM(count_not_delivery), 0) count_not_delivery, + COALESCE(SUM(appear_date_is_good), 0) appear_date_is_good, + + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(count_not_delivery) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) not_delivery_percent, + COALESCE( + CASE + WHEN SUM(subpoena) > 0 + THEN ROUND((SUM(appear_date_is_good) / SUM(subpoena) * 100), 2) + ELSE 0 + END, + 0 + ) appear_date_is_good_percent, + '${REG_ID}' AS recruitment_id, + mil_reg, + 'Organization' AS schema +FROM total_registered.subpoenas +WHERE recruitment_id = ANY ('${VK_ARRAY}') +AND schema IN ('Department', 'REG_LVL') +AND recording_date = CURRENT_DATE +GROUP BY mil_reg; Y - N - - 256 - 400 - Y + 752 + 496 diff --git a/mappings/supportive_jobs/clearing_logs.hwf b/mappings/supportive_jobs/clearing_logs.hwf new file mode 100644 index 0000000..2049b82 --- /dev/null +++ b/mappings/supportive_jobs/clearing_logs.hwf @@ -0,0 +1,83 @@ + + + clearing_logs + Y + + + + - + 2025/03/18 11:52:48.920 + - + 2025/03/18 11:52:48.920 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 512 + 320 + + + + SQL, зачистка таблиц логов workflow_logs, channel_log + + SQL + + ervu-dashboard + N + DELETE FROM public.channel_log +WHERE log_date < DATE_TRUNC('day', CURRENT_DATE) - INTERVAL '4 days'; + +DELETE FROM public.workflow_logs +WHERE workflowstart < DATE_TRUNC('day', CURRENT_DATE) - INTERVAL '4 days'; + + N + N + N + 816 + 320 + + + + Success + + SUCCESS + + N + 1184 + 320 + + + + + + Start + SQL, зачистка таблиц логов workflow_logs, channel_log + Y + Y + Y + + + SQL, зачистка таблиц логов workflow_logs, channel_log + Success + Y + Y + N + + + + + + diff --git a/mappings/supportive_jobs/percent_for_waiting_reg.hpl b/mappings/supportive_jobs/percent_for_waiting_reg.hpl new file mode 100644 index 0000000..713d101 --- /dev/null +++ b/mappings/supportive_jobs/percent_for_waiting_reg.hpl @@ -0,0 +1,111 @@ + + + + percent_for_waiting_reg + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/03/24 11:56:18.982 + - + 2025/03/24 11:56:18.982 + + + + + + Table input + Update + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + current_date AS recording_date, + wr.recruitment_id, + wr.schema, + COALESCE(ROUND(wr.waiting_registration * 100 / NULLIF ((wr.waiting_registration + tr.total_registered), 0), 2), 0) AS waiting_registration_percent--, + --wr.waiting_registration, + --tr.total_registered +FROM main_dashboard.waiting_registration wr +LEFT JOIN main_dashboard.total_registered tr + ON wr.recruitment_id = tr.recruitment_id AND tr.convicts = 'ALL' + AND wr.schema = tr.schema + AND wr.recording_date = tr.recording_date +WHERE wr.recording_date = current_date + N + + + 528 + 288 + + + + Update + Update + + Y + + 1 + + none + + + 100 + ervu-dashboard + Y + + + = + recruitment_id + recruitment_id + + + = + recording_date + recording_date + + + = + schema + schema + + main_dashboard + waiting_registration
+ + waiting_registration_percent + waiting_registration_percent + +
+ N + Y + + + 992 + 288 + +
+ + + +
diff --git a/mappings_old/country/appeals.reasons_appeal.ktr b/mappings_old/country/appeals.reasons_appeal.ktr deleted file mode 100644 index f4d2eb1..0000000 --- a/mappings_old/country/appeals.reasons_appeal.ktr +++ /dev/null @@ -1,665 +0,0 @@ - - - - appeals.reasons_appeal - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.appeal-document-service - appeal-dbhost - POSTGRESQL - Native - appeal-dbname - 2222 - appeal-dbuser - Encrypted 2be98afa91ad79785a754aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 2222 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input (appeal_document) РФ - Insert / update (main_dashboard.appeals) - Y - - - - Insert / update (main_dashboard.appeals) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - main_dashboard -
appeals
- - recruitment_id - recruitment_id - = - - - - total_appeals - total_appeals - Y - - - recruitment_id - recruitment_id - N - - - - - - - - - - - - 752 - 176 - Y - - - - Table input (appeal_document) РФ - TableInput - - Y - - 1 - - none - - - postgres.appeal-document-service - WITH -t1 AS ( - SELECT COUNT(*) AS total_appeals - FROM public.appeal_document -) -- нет причин обжалований -SELECT - t1.total_appeals, - '00' AS recruitment_id, - 0 AS incorrect_inf, - 0 AS no_data, - 0 AS other, - 0 AS incorrect_inf_percent, - 0 AS no_data_percent, - 0 AS other_percent -FROM t1; - 0 - - N - N - N - - - - - - - - - - 400 - 176 - Y - - - - - - - N - -
diff --git a/mappings_old/country/job_recruitments_country.kjb b/mappings_old/country/job_recruitments_country.kjb deleted file mode 100644 index b2e0384..0000000 --- a/mappings_old/country/job_recruitments_country.kjb +++ /dev/null @@ -1,2020 +0,0 @@ - - - job_recruitments_country - - - - 0 - / - - - 2024/08/15 16:02:12.821 - - - 2024/08/15 16:02:12.821 - - - REG_ID - - - - - VK_ARRAY - - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - - ervu-dashboard - public - job_log
- - - - - ID_JOB - Y - ID_JOB - - - CHANNEL_ID - Y - CHANNEL_ID - - - JOBNAME - Y - JOBNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - START_JOB_ENTRY - N - START_JOB_ENTRY - - - CLIENT - N - CLIENT - -
- - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - JOBNAME - Y - TRANSNAME - - - JOBENTRYNAME - Y - STEPNAME - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - RESULT - Y - RESULT - - - NR_RESULT_ROWS - Y - NR_RESULT_ROWS - - - NR_RESULT_FILES - Y - NR_RESULT_FILES - - - LOG_FIELD - N - LOG_FIELD - - - COPY_NR - N - COPY_NR - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - N - - - - Start - - SPECIAL - - Y - N - N - 0 - 0 - 60 - 12 - 0 - 1 - 1 - N - Y - 0 - 48 - 528 - - - - main_dashboard.appeals - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/main_dashboard.appeals.ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 960 - 48 - - - - Success - - SUCCESS - - N - Y - 0 - 1136 - 48 - - - - main_dashboard.recruitment_campaign - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/main_dashboard.recruitment_campaign.ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 960 - 128 - - - - Success 2 - - SUCCESS - - N - Y - 0 - 1136 - 128 - - - - main_dashboard.total_registered - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/main_dashboard.total_registered.ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 960 - 192 - - - - Success 3 - - SUCCESS - - N - Y - 0 - 1136 - 192 - - - - main_dashboard.waiting_registration - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/main_dashboard.waiting_registration.ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 960 - 272 - - - - Success 4 - - SUCCESS - - N - Y - 0 - 1136 - 272 - - - - recruitment_campaign.subpoenas - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/recruitment_campaign.subpoenas.ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 960 - 352 - - - - Success 6 - - SUCCESS - - N - Y - 0 - 1136 - 352 - - - - total_registered.reg_mil_cat - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.reg_mil_cat.ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 960 - 432 - - - - Success 7 - - SUCCESS - - N - Y - 0 - 1136 - 432 - - - - total_registered.removed_registry - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.removed_registry.ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 960 - 512 - - - - Success 8 - - SUCCESS - - N - Y - 0 - 1136 - 512 - - - - total_registered.subpoenas - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.subpoenas.ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 960 - 576 - - - - Success 9 - - SUCCESS - - N - Y - 0 - 1136 - 576 - - - - total_registered.driver_license - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.driver_license.ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 960 - 640 - - - - Success 10 - - SUCCESS - - N - Y - 0 - 1136 - 640 - - - - total_registered.child_minor - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.child_minor.ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 960 - 704 - - - - Success 11 - - SUCCESS - - N - Y - 0 - 1136 - 704 - - - - total_registered.age - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.age.ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 960 - 768 - - - - Success 12 - - SUCCESS - - N - Y - 0 - 1136 - 768 - - - - SQL.md.appeals - - SQL - - DELETE FROM main_dashboard.appeals where recruitment_id = '00' and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 768 - 48 - - - - SQL.md.rec_cam - - SQL - - DELETE FROM main_dashboard.recruitment_campaign where recruitment_id = '00' and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 768 - 128 - - - - SQL.md.tot_reg - - SQL - - DELETE FROM main_dashboard.total_registered where recruitment_id = '00' and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 768 - 192 - - - - SQL.md.wait_reg - - SQL - - DELETE FROM main_dashboard.waiting_registration where recruitment_id = '00' and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 768 - 272 - - - - SQL.rcam.subpoenas - - SQL - - DELETE FROM recruitment_campaign.subpoenas where recruitment_id = '00' and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 768 - 352 - - - - SQL.totreg.mrc - - SQL - - DELETE FROM total_registered.reg_mil_cat where recruitment_id = '00' and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 768 - 432 - - - - SQL.totreg.remreg - - SQL - - DELETE FROM total_registered.removed_registry where recruitment_id = '00' and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 768 - 512 - - - - SQL.totreg.sub - - SQL - - DELETE FROM total_registered.subpoenas where recruitment_id = '00' and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 768 - 576 - - - - total_registered.marital_status - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.marital_status.ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 960 - 832 - - - - Success 13 - - SUCCESS - - N - Y - 0 - 1136 - 832 - - - - SQL.totreg.marstat - - SQL - - DELETE FROM total_registered.marital_status where recruitment_id = '00' and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 768 - 832 - - - - SQL.totreg.chimin - - SQL - - DELETE FROM total_registered.child_minor where recruitment_id = '00' and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 768 - 704 - - - - SQL.totreg.age - - SQL - - DELETE FROM total_registered.age where recruitment_id = '00' and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 768 - 768 - - - - SQL.totreg.drilic - - SQL - - DELETE FROM total_registered.driver_license where recruitment_id = '00' and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 768 - 640 - - - - total_registered.education_level - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.education_level.ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 960 - 912 - - - - Success 14 - - SUCCESS - - N - Y - 0 - 1136 - 912 - - - - SQL.totreg.edulev - - SQL - - DELETE FROM total_registered.education_level where recruitment_id = '00' and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 768 - 912 - - - - total_registered.busyness - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.busyness.ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 960 - 992 - - - - Success 15 - - SUCCESS - - N - Y - 0 - 1136 - 992 - - - - SQL.totreg.busyn - - SQL - - DELETE FROM total_registered.busyness where recruitment_id = '00' and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 768 - 992 - - - - recruitment_campaign.appeals - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/recruitment_campaign.appeals.ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 960 - 1056 - - - - Success 16 - - SUCCESS - - N - Y - 0 - 1136 - 1056 - - - - SQL.reccam.app - - SQL - - DELETE FROM recruitment_campaign.appeals where recruitment_id = '00' and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 768 - 1056 - - - - select_recruitments_country - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/select_recruitments_country.ktr - - N - N - N - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 192 - 528 - - - - - - main_dashboard.appeals - Success - 0 - 0 - Y - Y - N - - - main_dashboard.recruitment_campaign - Success 2 - 0 - 0 - Y - Y - N - - - main_dashboard.total_registered - Success 3 - 0 - 0 - Y - Y - N - - - main_dashboard.waiting_registration - Success 4 - 0 - 0 - Y - Y - N - - - recruitment_campaign.subpoenas - Success 6 - 0 - 0 - Y - Y - N - - - total_registered.reg_mil_cat - Success 7 - 0 - 0 - Y - Y - N - - - total_registered.removed_registry - Success 8 - 0 - 0 - Y - Y - N - - - total_registered.subpoenas - Success 9 - 0 - 0 - Y - Y - N - - - total_registered.driver_license - Success 10 - 0 - 0 - Y - Y - N - - - total_registered.child_minor - Success 11 - 0 - 0 - Y - Y - N - - - total_registered.age - Success 12 - 0 - 0 - Y - Y - N - - - SQL.md.appeals - main_dashboard.appeals - 0 - 0 - Y - Y - N - - - SQL.md.rec_cam - main_dashboard.recruitment_campaign - 0 - 0 - Y - Y - N - - - SQL.md.tot_reg - main_dashboard.total_registered - 0 - 0 - Y - Y - N - - - SQL.md.wait_reg - main_dashboard.waiting_registration - 0 - 0 - Y - Y - N - - - SQL.rcam.subpoenas - recruitment_campaign.subpoenas - 0 - 0 - Y - Y - N - - - SQL.totreg.mrc - total_registered.reg_mil_cat - 0 - 0 - Y - Y - N - - - SQL.totreg.remreg - total_registered.removed_registry - 0 - 0 - Y - Y - N - - - SQL.totreg.sub - total_registered.subpoenas - 0 - 0 - Y - Y - N - - - SQL.totreg.marstat - total_registered.marital_status - 0 - 0 - Y - Y - N - - - total_registered.marital_status - Success 13 - 0 - 0 - Y - Y - N - - - SQL.totreg.chimin - total_registered.child_minor - 0 - 0 - Y - Y - N - - - SQL.totreg.age - total_registered.age - 0 - 0 - Y - Y - N - - - SQL.totreg.drilic - total_registered.driver_license - 0 - 0 - Y - Y - N - - - SQL.totreg.edulev - total_registered.education_level - 0 - 0 - Y - Y - N - - - total_registered.education_level - Success 14 - 0 - 0 - Y - Y - N - - - SQL.totreg.busyn - total_registered.busyness - 0 - 0 - Y - Y - N - - - total_registered.busyness - Success 15 - 0 - 0 - Y - Y - N - - - SQL.reccam.app - recruitment_campaign.appeals - 0 - 0 - Y - Y - N - - - recruitment_campaign.appeals - Success 16 - 0 - 0 - Y - Y - N - - - Start - select_recruitments_country - 0 - 0 - Y - Y - Y - - - select_recruitments_country - SQL.md.appeals - 0 - 0 - Y - Y - N - - - select_recruitments_country - SQL.md.rec_cam - 0 - 0 - Y - Y - N - - - select_recruitments_country - SQL.md.tot_reg - 0 - 0 - Y - Y - N - - - select_recruitments_country - SQL.md.wait_reg - 0 - 0 - Y - Y - N - - - select_recruitments_country - SQL.rcam.subpoenas - 0 - 0 - Y - Y - N - - - select_recruitments_country - SQL.totreg.mrc - 0 - 0 - Y - Y - N - - - select_recruitments_country - SQL.totreg.remreg - 0 - 0 - Y - Y - N - - - select_recruitments_country - SQL.totreg.sub - 0 - 0 - Y - Y - N - - - select_recruitments_country - SQL.totreg.drilic - 0 - 0 - Y - Y - N - - - select_recruitments_country - SQL.totreg.chimin - 0 - 0 - Y - Y - N - - - select_recruitments_country - SQL.totreg.age - 0 - 0 - Y - Y - N - - - select_recruitments_country - SQL.totreg.marstat - 0 - 0 - Y - Y - N - - - select_recruitments_country - SQL.totreg.edulev - 0 - 0 - Y - Y - N - - - select_recruitments_country - SQL.totreg.busyn - 0 - 0 - Y - Y - N - - - select_recruitments_country - SQL.reccam.app - 0 - 0 - Y - Y - N - - - - - - - METASTORE.pentaho - - Default Run Configuration - {"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null} - - - - {"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"} - - Pentaho local - {"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"pentaho","value":"N"},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]} - - - - diff --git a/mappings_old/country/main_dashboard.appeals.ktr b/mappings_old/country/main_dashboard.appeals.ktr deleted file mode 100644 index 3033777..0000000 --- a/mappings_old/country/main_dashboard.appeals.ktr +++ /dev/null @@ -1,856 +0,0 @@ - - - - main_dashboard.appeals - - - - Normal - 0 - / - - - - - - -
- - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.appeal-document-service - appeal-dbhost - POSTGRESQL - Native - appeal-dbname - 2222 - appeal-dbuser - Encrypted 2be98afa91ad79785a754aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 2222 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input (appeal_document) РФ - Insert / update (main_dashboard.appeals) - N - - - Get variables 3 2 - Select values 3 2 - Y - - - Table input (appeal_document) РФ - Get variables 3 2 - Y - - - Select values 3 2 - Insert / update (main_dashboard.appeals) - Y - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 624 - 224 - Y - - - - Insert / update (main_dashboard.appeals) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - main_dashboard -
appeals
- - REG_ID - recruitment_id - = - - - - total_appeals - total_appeals - Y - - - average_consideration - average_consideration - Y - - - resolved - resolved - Y - - - average_rating - average_rating - Y - - - average_to_face - average_to_face - Y - - - "average_EPGU" - average_epgu - Y - - - average_to_face_percent - average_to_face_percent - Y - - - "average_EPGU_percent" - average_epgu_percent - Y - - - recruitment_id - recruitment_id - N - - - - - - - - - - - - 1008 - 176 - Y - - - - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 768 - 224 - Y - - - - Table input (appeal_document) РФ - TableInput - - Y - - 1 - - none - - - postgres.appeal-document-service - WITH -t1 AS ( - SELECT COUNT(*) AS total_appeals - FROM public.appeal_document -), -t2 AS ( - SELECT - ROUND( - AVG( - (TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date) - ), - 2 - ) AS average_consideration - FROM public.appeal_document ad -), -resolved AS (-- решенные обжалования, возможно не верно - SELECT COUNT(*) AS resolved - FROM public.appeal_document ad - WHERE ad.extra_info->>'result' = '1' -) -SELECT - t1.total_appeals, - t2.average_consideration, - r.resolved, - '${REG_ID}' AS recruitment_id, - 0 AS average_rating, - 0 AS average_to_face, - 0 AS average_epgu, - 0 AS average_to_face_percent, - 0 AS average_epgu_percent -FROM t1, t2, resolved AS r; - 0 - - N - Y - N - - - - - - - - - - 400 - 176 - Y - - - - - Insert / update (main_dashboard.appeals) - Select values 3 2 - N - - - - - - - - - - - - N - - diff --git a/mappings_old/country/main_dashboard.recruitment_campaign.ktr b/mappings_old/country/main_dashboard.recruitment_campaign.ktr deleted file mode 100644 index 2402e60..0000000 --- a/mappings_old/country/main_dashboard.recruitment_campaign.ktr +++ /dev/null @@ -1,1689 +0,0 @@ - - - - main_dashboard.recruitment_campaign - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.subpoena - subpoena-dbhost - POSTGRESQL - Native - subpoena-dbname - 5555 - subpoena-dbuser - Encrypted 2beebdaaa1ac8978aaa54aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 5555 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Sort rows 2 2 - Merge join 2 - Y - - - Sort rows 3 - Merge join 2 - Y - - - Table input (person_registry) РФ/осень - Sort rows 3 - Y - - - Table input (subpoena) РФ/осень - Sort rows 2 2 - Y - - - Merge join 2 - Insert / update (main_dashboard.recruitment_campaign) - N - - - Sort rows 2 2 2 - Merge join 2 2 - Y - - - Sort rows 3 2 - Merge join 2 2 - Y - - - Table input (subpoena) РФ/весна - Sort rows 2 2 2 - Y - - - Merge join 2 2 - Insert / update (main_dashboard.recruitment_campaign) 2 - N - - - Table input (person_registry) РФ/весна - Sort rows 3 2 - Y - - - Get variables 3 2 - Select values 3 2 - Y - - - Merge join 2 - Get variables 3 2 - Y - - - Select values 3 2 - Insert / update (main_dashboard.recruitment_campaign) - Y - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Merge join 2 2 - Get variables 3 2 2 - Y - - - Select values 3 2 2 - Insert / update (main_dashboard.recruitment_campaign) 2 - Y - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 1008 - 192 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 976 - 480 - Y - - - - Insert / update (main_dashboard.recruitment_campaign) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - main_dashboard -
recruitment_campaign
- - spring_autumn - spring_autumn - = - - - - REG_ID - recruitment_id - = - - - - subpoenas_sent - count_subpoena - Y - - - appeared_on_subpoenas - count_appeared - Y - - - not_appeared_on_subpoenas - count_not_appeared - Y - - - new_recruits - new_recruits - Y - - - postponement_have_right - postponement_have_right - Y - - - postponement_granted - postponement_granted - Y - - - appeared_on_subpoenas_percent - appeared_on_subpoenas_percent - Y - - - not_appeared_on_subpoenas_percent - not_appeared_on_subpoenas_percent - Y - - - postponement_have_right_percent - postponement_have_right_percent - Y - - - postponement_granted_percent - postponement_granted_percent - Y - - - recruitment_id - recruitment_id - N - - - spring_autumn - spring_autumn - N - - - - - - - - - - - - 1312 - 128 - Y - - - - Insert / update (main_dashboard.recruitment_campaign) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - main_dashboard - recruitment_campaign
- - spring_autumn - spring_autumn - = - - - - REG_ID - recruitment_id - = - - - - subpoenas_sent - count_subpoena - Y - - - appeared_on_subpoenas - count_appeared - Y - - - not_appeared_on_subpoenas - count_not_appeared - Y - - - new_recruits - new_recruits - Y - - - postponement_have_right - postponement_have_right - Y - - - postponement_granted - postponement_granted - Y - - - appeared_on_subpoenas_percent - appeared_on_subpoenas_percent - Y - - - not_appeared_on_subpoenas_percent - not_appeared_on_subpoenas_percent - Y - - - postponement_have_right_percent - postponement_have_right_percent - Y - - - postponement_granted_percent - postponement_granted_percent - Y - - - recruitment_id - recruitment_id - N - - - spring_autumn - spring_autumn - N - -
- - - - - - - - - - 1232 - 400 - Y - -
- - Merge join 2 - MergeJoin - - Y - - 1 - - none - - - FULL OUTER - Sort rows 2 2 - Sort rows 3 - - org - - - org - - - - - - - - - - - 864 - 128 - Y - - - - Merge join 2 2 - MergeJoin - - Y - - 1 - - none - - - FULL OUTER - Sort rows 2 2 2 - Sort rows 3 2 - - org - - - org - - - - - - - - - - - 864 - 400 - Y - - - - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 1152 - 192 - Y - - - - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 1104 - 480 - Y - - - - Sort rows 2 2 - SortRows - - Y - - 1 - - none - - - %%java.io.tmpdir%% - out - 1000000 - - N - - N - - - org - Y - N - N - 0 - N - - - - - - - - - - - - 768 - 128 - Y - - - - Sort rows 2 2 2 - SortRows - - Y - - 1 - - none - - - %%java.io.tmpdir%% - out - 1000000 - - N - - N - - - org - Y - N - N - 0 - N - - - - - - - - - - - - 768 - 400 - Y - - - - Sort rows 3 - SortRows - - N - - 1 - - none - - - %%java.io.tmpdir%% - out - 1000000 - - N - - N - - - org - Y - N - N - 0 - N - - - - - - - - - - - - 752 - 240 - Y - - - - Sort rows 3 2 - SortRows - - N - - 1 - - none - - - %%java.io.tmpdir%% - out - 1000000 - - N - - N - - - org - Y - N - N - 0 - N - - - - - - - - - - - - 752 - 512 - Y - - - - Table input (person_registry) РФ/весна - TableInput - - Y - - 1 - - none - - - ervu_person_registry - SELECT -1 AS org, -COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 - AND gender = 'MALE' -- мужчины от 18 до 30 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки -) AS new_recruits, -COUNT(*) FILTER ( - WHERE conscription = true -) AS postponement_granted, -ROUND(COUNT(*) FILTER (WHERE conscription = true) * 100.0 / NULLIF(COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 - AND gender = 'MALE' -- мужчины от 18 до 30 лет - AND (conscription IS NULL OR conscription = false)), 0), 2) AS postponement_granted_percent -FROM public.recruits AS r - JOIN public.recruits_info AS ri - ON ri.recruit_id = r.id - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - 0 - - N - N - N - - - - - - - - - - 496 - 512 - Y - - - - Table input (person_registry) РФ/осень - TableInput - - Y - - 1 - - none - - - ervu_person_registry - SELECT -1 AS org, -COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 - AND gender = 'MALE' -- мужчины от 18 до 30 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки -) AS new_recruits, -COUNT(*) FILTER ( - WHERE conscription = true -) AS postponement_granted, -ROUND(COUNT(*) FILTER (WHERE conscription = true) * 100.0 / NULLIF(COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 - AND gender = 'MALE' -- мужчины от 18 до 30 лет - AND (conscription IS NULL OR conscription = false)), 0), 2) AS postponement_granted_percent -FROM public.recruits AS r - JOIN public.recruits_info AS ri - ON ri.recruit_id = r.id - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - 0 - - N - N - N - - - - - - - - - - 496 - 240 - Y - - - - Table input (subpoena) РФ/весна - TableInput - - Y - - 1 - - none - - - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - s.recruit_id, -- recruit_id добавляем, если есть - sh.date_time - FROM public.subpoena s - JOIN public.subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN public.subpoena_status AS ss ON ss.id = s.status_id - JOIN public.subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN public.subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN public.restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN public.restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN public.subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '3' - AND EXTRACT(YEAR FROM AGE(s.date_birth)) BETWEEN 18 AND 30 -), -last_status_data AS ( - -- Выбираем последнюю дату истории для каждой subpoena - SELECT - s.subpoena_id, - MAX(s.history_date) AS last_history_date - FROM subpoena_data s - GROUP BY s.subpoena_id -), -last_status AS ( - -- Соединяем таблицу с максимальной датой и оригинальные данные, чтобы выбрать последние записи - SELECT - sd.* - FROM subpoena_data sd - JOIN last_status_data lsd - ON sd.subpoena_id = lsd.subpoena_id - AND sd.history_date = lsd.last_history_date -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist in ('5', '5.1') -), -t4 AS ( - SELECT COUNT(DISTINCT recruit_id) AS new_recruits - FROM subpoena_data -) -SELECT - t1.count_subpoena, - t2.count_appeared, - t3.count_not_appeared, - ROUND(count_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS appeared_on_subpoenas_percent, - ROUND(count_not_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_appeared_on_subpoenas_percent, - -- t4.new_recruits, - 0 AS postponement_have_right, - -- 0 AS postponement_granted, - 0 AS postponement_have_right_percent, - -- 0 AS postponement_granted_percent, - 'Весна' AS spring_autumn, - '${REG_ID}' AS recruitment_id, - 1 AS org -FROM t1 -JOIN t2 ON true -JOIN t3 ON true -JOIN t4 ON true; - 0 - - N - Y - N - - - - - - - - - - 496 - 400 - Y - - - - Table input (subpoena) РФ/осень - TableInput - - Y - - 1 - - none - - - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - s.recruit_id, -- recruit_id добавляем, если есть - sh.date_time - FROM public.subpoena s - JOIN public.subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN public.subpoena_status AS ss ON ss.id = s.status_id - JOIN public.subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN public.subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN public.restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN public.restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN public.subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '3' -- статус изменен на 3 - AND EXTRACT(YEAR FROM AGE(s.date_birth)) BETWEEN 18 AND 30 -), -last_status_data AS ( - -- Выбираем последнюю дату истории для каждой subpoena - SELECT - s.subpoena_id, - MAX(s.history_date) AS last_history_date - FROM subpoena_data s - GROUP BY s.subpoena_id -), -last_status AS ( - -- Соединяем таблицу с максимальной датой и оригинальные данные, чтобы выбрать последние записи - SELECT - sd.* - FROM subpoena_data sd - JOIN last_status_data lsd - ON sd.subpoena_id = lsd.subpoena_id - AND sd.history_date = lsd.last_history_date -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist in ('5', '5.1') -- добавлен статус 5.1 -), -t4 AS ( - SELECT COUNT(DISTINCT recruit_id) AS new_recruits - FROM subpoena_data -) -SELECT - t1.count_subpoena, - t2.count_appeared, - t3.count_not_appeared, - ROUND(count_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS appeared_on_subpoenas_percent, - ROUND(count_not_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_appeared_on_subpoenas_percent, - -- t4.new_recruits, - 0 AS postponement_have_right, - -- 0 AS postponement_granted, - 0 AS postponement_have_right_percent, - -- 0 AS postponement_granted_percent, - 'Осень' AS spring_autumn, - '${REG_ID}' AS recruitment_id, - 1 AS org -FROM t1 -JOIN t2 ON true -JOIN t3 ON true -JOIN t4 ON true; - 0 - - N - Y - N - - - - - - - - - - 496 - 128 - Y - - - - - - - N - -
diff --git a/mappings_old/country/main_dashboard.total_registered.ktr b/mappings_old/country/main_dashboard.total_registered.ktr deleted file mode 100644 index 2512eac..0000000 --- a/mappings_old/country/main_dashboard.total_registered.ktr +++ /dev/null @@ -1,898 +0,0 @@ - - - - main_dashboard.total_registered - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input (person_registry) РФ - Insert / update (main_dashboard.total_registered) - N - - - Get variables 3 2 - Select values 3 2 - Y - - - Table input (person_registry) РФ - Get variables 3 2 - Y - - - Select values 3 2 - Insert / update (main_dashboard.total_registered) - Y - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 752 - 432 - Y - - - - Insert / update (main_dashboard.total_registered) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - main_dashboard -
total_registered
- - REG_ID - recruitment_id - = - - - - total_registered - total_count - Y - - - "total_registered_M" - male_count - Y - - - "total_registered_W" - female_count - Y - - - mobilization_criterion - mobilization_criterion - Y - - - volunteer_criterion - volunteer_criterion - Y - - - contract_criterion - contract_criterion - Y - - - mobilization_criterion_percent - mobilization_criterion_percent - Y - - - volunteer_criterion_percent - volunteer_criterion_percent - Y - - - contract_criterion_percent - contract_criterion_percent - Y - - - recruitment_id - recruitment_id - N - - - - - - - - - - - - 1136 - 368 - Y - - - - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 896 - 432 - Y - - - - Table input (person_registry) РФ - TableInput - - Y - - 1 - - none - - - postgres.person_registry - WITH vse as ( -select *, -r.id as r_id -FROM public.recruits AS r - JOIN public.recruits_info AS ri - ON ri.recruit_id = r.id - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL -), -extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - vse ri - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_16 - FROM - children_birth_dates - WHERE - AGE(make_date(year, month, day)) < interval '16 years' - GROUP BY - recruit_id -), -recruit_data AS ( - SELECT - COUNT(*) AS total_count, - 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') -- мужчины от 18 до 70 лет - OR - (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 45 - AND gender = 'FEMALE') -- женщины от 18 до 45 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки - AND COALESCE(cc.children_under_16, 0) < 5 -- исключить рекрутов с 5 и более детьми младше 16 лет - ) AS mobilization_criterion, - COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 - AND gender = 'MALE' -- мужчины от 18 до 30 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки - ) AS volunteer_criterion, - COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 - AND gender = 'MALE' -- мужчины от 18 до 50 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки - AND ri.info->'svedSudim'->>'prOtsSvedSudim' = '1' -- признак отсутствия данных о судимости - ) AS contract_criterion - FROM vse as ri - LEFT JOIN children_count AS cc - ON ri.r_id = cc.recruit_id - ) -SELECT - total_count, - male_count, - female_count, - '${REG_ID}' AS recruitment_id, - mobilization_criterion, - volunteer_criterion, - contract_criterion, - ROUND(mobilization_criterion::NUMERIC / NULLIF(total_count, 0) * 100, 2) AS mobilization_criterion_percent, - ROUND(volunteer_criterion::NUMERIC / NULLIF(total_count, 0) * 100, 2) AS volunteer_criterion_percent, - ROUND(contract_criterion::NUMERIC / NULLIF(total_count, 0) * 100, 2) AS contract_criterion_percent -FROM recruit_data; - 0 - - N - Y - N - - - - - - - - - - 528 - 368 - Y - - - - - - - N - -
diff --git a/mappings_old/country/main_dashboard.waiting_registration.ktr b/mappings_old/country/main_dashboard.waiting_registration.ktr deleted file mode 100644 index 63e08fb..0000000 --- a/mappings_old/country/main_dashboard.waiting_registration.ktr +++ /dev/null @@ -1,904 +0,0 @@ - - - - main_dashboard.waiting_registration - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input 2 (person_registry) РФ - Insert / update (main_dashboard.waiting_registration) - N - - - Get variables 3 2 - Select values 3 2 - Y - - - Table input 2 (person_registry) РФ - Get variables 3 2 - Y - - - Select values 3 2 - Insert / update (main_dashboard.waiting_registration) - Y - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 656 - 224 - Y - - - - Insert / update (main_dashboard.waiting_registration) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - main_dashboard -
waiting_registration
- - REG_ID - recruitment_id - = - - - - waiting_registration - waiting_count - Y - - - "waiting_registration_M" - male_count - Y - - - "waiting_registration_W" - female_count - Y - - - mobilization_criterion - mobilization_criterion - Y - - - volunteer_criterion - volunteer_criterion - Y - - - contract_criterion - contract_criterion - Y - - - mobilization_criterion_percent - mobilization_criterion_percent - Y - - - volunteer_criterion_percent - volunteer_criterion_percent - Y - - - contract_criterion_percent - contract_criterion_percent - Y - - - waiting_registration_percent - waiting_percent - Y - - - recruitment_id - recruitment_id - N - - - - - - - - - - - - 976 - 160 - Y - - - - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 800 - 224 - Y - - - - Table input 2 (person_registry) РФ - TableInput - - Y - - 1 - - none - - - postgres.person_registry - WITH vse as ( -select *, -r.id as r_id -FROM public.recruits AS r - JOIN public.recruits_info AS ri - ON ri.recruit_id = r.id - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'false' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL -), -extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - vse ri - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_16 - FROM - children_birth_dates - WHERE - AGE(make_date(year, month, day)) < interval '16 years' - GROUP BY - recruit_id -), -recruit_data AS ( - SELECT - COUNT(*) AS waiting_count, - 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') -- мужчины от 18 до 70 лет - OR - (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 45 - AND gender = 'FEMALE') -- женщины от 18 до 45 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки - AND COALESCE(cc.children_under_16, 0) < 5 -- исключить рекрутов с 5 и более детьми младше 16 лет - ) AS mobilization_criterion, - COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 - AND gender = 'MALE' -- мужчины от 18 до 30 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки - ) AS volunteer_criterion, - COUNT(*) FILTER ( - WHERE EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 - AND gender = 'MALE' -- мужчины от 18 до 50 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки - AND ri.info->'svedSudim'->>'prOtsSvedSudim' = '1' -- признак отсутствия данных о судимости - ) AS contract_criterion - FROM vse as ri - LEFT JOIN children_count AS cc - ON ri.r_id = cc.recruit_id -) -SELECT - waiting_count, - ROUND(COALESCE((waiting_count::DECIMAL / NULLIF((SELECT COUNT(*) FROM public.recruits), 0) * 100), 0), 2) AS waiting_percent, - male_count, - female_count, - '${REG_ID}' AS recruitment_id, - mobilization_criterion, - volunteer_criterion, - contract_criterion, - ROUND(mobilization_criterion::NUMERIC / NULLIF(waiting_count, 0) * 100, 2) AS mobilization_criterion_percent, - ROUND(volunteer_criterion::NUMERIC / NULLIF(waiting_count, 0) * 100, 2) AS volunteer_criterion_percent, - ROUND(contract_criterion::NUMERIC / NULLIF(waiting_count, 0) * 100, 2) AS contract_criterion_percent -FROM recruit_data; - 0 - - N - Y - N - - - - - - - - - - 464 - 160 - Y - - - - - - - N - -
diff --git a/mappings_old/country/ratings.consideration_complaint.ktr b/mappings_old/country/ratings.consideration_complaint.ktr deleted file mode 100644 index b7c7e6c..0000000 --- a/mappings_old/country/ratings.consideration_complaint.ktr +++ /dev/null @@ -1,665 +0,0 @@ - - - - ratings.consideration_complaint - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.appeal-document-service - appeal-dbhost - POSTGRESQL - Native - appeal-dbname - 2222 - appeal-dbuser - Encrypted 2be98afa91ad79785a754aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 2222 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input (appeal_document) РФ - Insert / update (main_dashboard.appeals) - Y - - - - Insert / update (main_dashboard.appeals) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - main_dashboard -
appeals
- - recruitment_id - recruitment_id - = - - - - total_appeals - total_appeals - Y - - - recruitment_id - recruitment_id - N - - - - - - - - - - - - 752 - 176 - Y - - - - Table input (appeal_document) РФ - TableInput - - Y - - 1 - - none - - - postgres.appeal-document-service - WITH -t1 AS ( - SELECT COUNT(*) AS total_appeals - FROM public.appeal_document -) -- нет причин обжалований -SELECT - t1.total_appeals, - '00' AS recruitment_id, - 0 AS incorrect_inf, - 0 AS no_data, - 0 AS other, - 0 AS incorrect_inf_percent, - 0 AS no_data_percent, - 0 AS other_percent -FROM t1; - 0 - - N - N - N - - - - - - - - - - 400 - 176 - Y - - - - - - - N - -
diff --git a/mappings_old/country/recruitment_campaign.appeals.ktr b/mappings_old/country/recruitment_campaign.appeals.ktr deleted file mode 100644 index 3e8db34..0000000 --- a/mappings_old/country/recruitment_campaign.appeals.ktr +++ /dev/null @@ -1,1112 +0,0 @@ - - - - recruitment_campaign.appeals - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.appeal-document-service - appeal-dbhost - POSTGRESQL - Native - appeal-dbname - 2222 - appeal-dbuser - Encrypted 2be98afa91ad79785a754aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 2222 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input (appeal_document) РФ/осень - Insert / update (main_dashboard.appeals) - N - - - Table input (appeal_document) РФ/весна - Insert / update (main_dashboard.appeals) 2 - N - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Table input (appeal_document) РФ/осень - Get variables 3 2 2 - Y - - - Select values 3 2 2 - Insert / update (main_dashboard.appeals) - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Table input (appeal_document) РФ/весна - Get variables 3 2 2 2 - Y - - - Select values 3 2 2 2 - Insert / update (main_dashboard.appeals) 2 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 592 - 208 - Y - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 608 - 384 - Y - - - - Insert / update (main_dashboard.appeals) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - recruitment_campaign -
appeals
- - REG_ID - recruitment_id - = - - - - spring_autumn - spring_autumn - = - - - - total_appeals - total_appeals - Y - - - average_consideration - average_consideration - Y - - - resolved - resolved - Y - - - not_resolved - not_resolved - Y - - - not_resolved_percent - not_resolved_percent - Y - - - average_rating - average_rating - Y - - - resolved_percent - resolved_percent - Y - - - recruitment_id - recruitment_id - N - - - spring_autumn - spring_autumn - N - - - - - - - - - - - - 848 - 128 - Y - - - - Insert / update (main_dashboard.appeals) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - recruitment_campaign - appeals
- - REG_ID - recruitment_id - = - - - - spring_autumn - spring_autumn - = - - - - total_appeals - total_appeals - Y - - - average_consideration - average_consideration - Y - - - resolved - resolved - Y - - - not_resolved - not_resolved - Y - - - not_resolved_percent - not_resolved_percent - Y - - - average_rating - average_rating - Y - - - resolved_percent - resolved_percent - Y - - - recruitment_id - recruitment_id - N - - - spring_autumn - spring_autumn - N - -
- - - - - - - - - - 848 - 304 - Y - -
- - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 736 - 208 - Y - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 752 - 384 - Y - - - - Table input (appeal_document) РФ/весна - TableInput - - N - - 1 - - none - - - postgres.appeal-document-service - -- ad.extra_info->>'result' = '**' 1 - удовлетворена, 2 - частично удовлетворена, 3 - отказано в удовлетворении -WITH appeals_data AS ( - SELECT - COUNT(*) AS total_appeals, - ROUND(AVG((TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date)), 2) AS average_consideration, - COUNT(CASE WHEN ad.extra_info->>'result' = '1' THEN 1 END) AS resolved, - COUNT(CASE WHEN ad.extra_info->>'result' = '3' THEN 1 END) AS not_resolved - FROM public.appeal_document ad -) -SELECT - ad.total_appeals, - ad.average_consideration, - ad.resolved, - ad.not_resolved, - ROUND(ad.resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) AS resolved_percent, - ROUND(ad.not_resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) AS not_resolved_percent, - '${REG_ID}' AS recruitment_id, - 0 AS average_rating, - 'Весна' as spring_autumn -FROM appeals_data AS ad; - 0 - - N - Y - N - - - - - - - - - - 496 - 304 - Y - - - - Table input (appeal_document) РФ/осень - TableInput - - Y - - 1 - - none - - - postgres.appeal-document-service - -- ad.extra_info->>'result' = '**' 1 - удовлетворена, 2 - частично удовлетворена, 3 - отказано в удовлетворении -WITH appeals_data AS ( - SELECT - COUNT(*) AS total_appeals, - ROUND(AVG((TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date)), 2) AS average_consideration, - COUNT(CASE WHEN ad.extra_info->>'result' = '1' THEN 1 END) AS resolved, - COUNT(CASE WHEN ad.extra_info->>'result' = '3' THEN 1 END) AS not_resolved - FROM public.appeal_document ad -) -SELECT - ad.total_appeals, - ad.average_consideration, - ad.resolved, - ad.not_resolved, - ROUND(ad.resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) AS resolved_percent, - ROUND(ad.not_resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) AS not_resolved_percent, - '${REG_ID}' AS recruitment_id, - 0 AS average_rating, - 'Осень' as spring_autumn -FROM appeals_data AS ad; - 0 - - N - Y - N - - - - - - - - - - 496 - 128 - Y - - - - - - - N - -
diff --git a/mappings_old/country/recruitment_campaign.subpoenas.ktr b/mappings_old/country/recruitment_campaign.subpoenas.ktr deleted file mode 100644 index a73edd4..0000000 --- a/mappings_old/country/recruitment_campaign.subpoenas.ktr +++ /dev/null @@ -1,1443 +0,0 @@ - - - - recruitment_campaign.subpoenas - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/09 13:13:59.825 - - - 2024/08/09 13:13:59.825 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.subpoena - subpoena-dbhost - POSTGRESQL - Native - subpoena-dbname - 5555 - subpoena-dbuser - Encrypted 2beebdaaa1ac8978aaa54aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 5555 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input (subpoena) Весна/РФ - Insert / update (recruitment_campaign.subpoenas) 3 - N - - - Get variables 3 2 - Select values 3 2 - Y - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Table input (subpoena) Весна/РФ - Get variables 3 2 2 - Y - - - Select values 3 2 2 - Insert / update (recruitment_campaign.subpoenas) 3 - Y - - - Table input (subpoena) осень/РФ - Insert / update (recruitment_campaign.subpoenas) - N - - - Table input (subpoena) осень/РФ - Get variables 3 2 - Y - - - Select values 3 2 - Insert / update (recruitment_campaign.subpoenas) - Y - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 208 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 352 - Y - - - - Insert / update (recruitment_campaign.subpoenas) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - recruitment_campaign -
subpoenas
- - REG_ID - recruitment_id - = - - - - spring_autumn - spring_autumn - = - - - - subpoena - count_subpoena - Y - - - appeared - count_appeared - Y - - - not_appeared - count_not_appeared - Y - - - not_ap_good_reason - count_not_ap_good_reason - Y - - - introduced_measures - count_introduced_measures - Y - - - ap_not_required - count_ap_not_required - Y - - - restrictions_applied - count_restrictions_applied - Y - - - appeared_percent - appeared_percent - Y - - - not_appeared_percent - not_appeared_percent - Y - - - not_ap_good_reason_percent - not_ap_good_reason_percent - Y - - - ap_not_required_percent - ap_not_required_percent - Y - - - restrictions_applied_percent - restrictions_applied_percent - Y - - - introduced_measures_percent - introduced_measures_percent - Y - - - recruitment_id - recruitment_id - N - - - rest - rest - Y - - - spring_autumn - spring_autumn - N - - - count_not_delivery - count_not_delivery - Y - - - appear_date_is_good - appear_date_is_good - Y - - - not_delivery_percent - not_delivery_percent - Y - - - appear_date_is_good_percent - appear_date_is_good_percent - Y - - - - - - - - - - - - 1088 - 144 - Y - - - - Insert / update (recruitment_campaign.subpoenas) 3 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - recruitment_campaign - subpoenas
- - REG_ID - recruitment_id - = - - - - spring_autumn - spring_autumn - = - - - - subpoena - count_subpoena - Y - - - appeared - count_appeared - Y - - - not_appeared - count_not_appeared - Y - - - not_ap_good_reason - count_not_ap_good_reason - Y - - - introduced_measures - count_introduced_measures - Y - - - ap_not_required - count_ap_not_required - Y - - - restrictions_applied - count_restrictions_applied - Y - - - appeared_percent - appeared_percent - Y - - - not_appeared_percent - not_appeared_percent - Y - - - not_ap_good_reason_percent - not_ap_good_reason_percent - Y - - - ap_not_required_percent - ap_not_required_percent - Y - - - restrictions_applied_percent - restrictions_applied_percent - Y - - - introduced_measures_percent - introduced_measures_percent - Y - - - recruitment_id - recruitment_id - N - - - rest - rest - Y - - - spring_autumn - spring_autumn - N - - - count_not_delivery - count_not_delivery - Y - - - appear_date_is_good - appear_date_is_good - Y - - - not_delivery_percent - not_delivery_percent - Y - - - appear_date_is_good_percent - appear_date_is_good_percent - Y - -
- - - - - - - - - - 1088 - 304 - Y - -
- - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 208 - Y - - - - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 352 - Y - - - - Table input (subpoena) Весна/РФ - TableInput - - Y - - 1 - - none - - - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn -- добавляем строку для получения последнего статуса - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '3' - and ssh.code not in ('3.14','3.7','3.72', '3.71') -), --- фильтруем только последние статусы для каждой повестки -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -- выбираем только последнюю запись для каждой повестки -), --- Подсчет различных метрик -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( -- количество повесток по которым применены ограничения - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( -- количество повесток по которым введены меры - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery --не вручена - FROM last_status - WHERE d_code is null -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') - ) -SELECT - t1.count_subpoena, - t2.average_appeared, - t3.count_appeared, - t4.count_not_appeared, - t5.count_not_ap_good_reason, - t6.count_ap_not_required, - t7.count_restrictions_applied, - t8.count_introduced_measures, - t9.count_paper, - t10.count_electron, - t11.count_restrictions, - t12.count_not_delivery, - t13.appear_date_is_good, - ROUND(count_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS appeared_percent, - ROUND(count_not_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(count_not_ap_good_reason * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(count_ap_not_required * 100.0 / NULLIF(count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(count_electron * 100.0 / NULLIF(count_subpoena, 0), 2) AS electron_percent, - ROUND(count_paper * 100.0 / NULLIF(count_subpoena, 0), 2) AS paper_percent, - ROUND(count_restrictions_applied * 100.0 / NULLIF(count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(count_introduced_measures * 100.0 / NULLIF(count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(count_not_delivery * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_delivery_percent, --процент не врученных - ROUND(appear_date_is_good * 100.0 / NULLIF(count_subpoena, 0), 2) AS appear_date_is_good_percent, --процент не врученных - '${REG_ID}' AS recruitment_id, - 0 as rest, - 'Весна' as spring_autumn, - 1 AS org -FROM t1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1 -FULL OUTER JOIN t7 ON 1 = 1 -FULL OUTER JOIN t8 ON 1 = 1 -FULL OUTER JOIN t9 ON 1 = 1 -FULL OUTER JOIN t10 ON 1 = 1 -FULL OUTER JOIN t11 ON 1 = 1 -FULL OUTER JOIN t12 ON 1 = 1 -FULL OUTER JOIN t13 ON 1 = 1; - - 0 - - N - Y - N - - - - - - - - - - 400 - 304 - Y - - - - Table input (subpoena) осень/РФ - TableInput - - N - - 1 - - none - - - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn -- добавляем строку для получения последнего статуса - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '3' - and ssh.code not in ('3.14','3.7','3.72', '3.71') -), --- фильтруем только последние статусы для каждой повестки -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -- выбираем только последнюю запись для каждой повестки -), --- Подсчет различных метрик -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( -- количество повесток по которым применены ограничения - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( -- количество повесток по которым введены меры - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery --не вручена - FROM last_status - WHERE d_code is null -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') - ) -SELECT - t1.count_subpoena, - t2.average_appeared, - t3.count_appeared, - t4.count_not_appeared, - t5.count_not_ap_good_reason, - t6.count_ap_not_required, - t7.count_restrictions_applied, - t8.count_introduced_measures, - t9.count_paper, - t10.count_electron, - t11.count_restrictions, - t12.count_not_delivery, - t13.appear_date_is_good, - ROUND(count_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS appeared_percent, - ROUND(count_not_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(count_not_ap_good_reason * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(count_ap_not_required * 100.0 / NULLIF(count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(count_electron * 100.0 / NULLIF(count_subpoena, 0), 2) AS electron_percent, - ROUND(count_paper * 100.0 / NULLIF(count_subpoena, 0), 2) AS paper_percent, - ROUND(count_restrictions_applied * 100.0 / NULLIF(count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(count_introduced_measures * 100.0 / NULLIF(count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(count_not_delivery * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_delivery_percent, --процент не врученных - ROUND(appear_date_is_good * 100.0 / NULLIF(count_subpoena, 0), 2) AS appear_date_is_good_percent, --процент не врученных - '${REG_ID}' AS recruitment_id, - 0 as rest, - 'Осень' as spring_autumn, - 1 AS org -FROM t1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1 -FULL OUTER JOIN t7 ON 1 = 1 -FULL OUTER JOIN t8 ON 1 = 1 -FULL OUTER JOIN t9 ON 1 = 1 -FULL OUTER JOIN t10 ON 1 = 1 -FULL OUTER JOIN t11 ON 1 = 1 -FULL OUTER JOIN t12 ON 1 = 1 -FULL OUTER JOIN t13 ON 1 = 1; - - 0 - - N - Y - N - - - - - - - - - - 400 - 144 - Y - - - - - - - N - -
diff --git a/mappings_old/country/select_recruitments_country.ktr b/mappings_old/country/select_recruitments_country.ktr deleted file mode 100644 index a261ebc..0000000 --- a/mappings_old/country/select_recruitments_country.ktr +++ /dev/null @@ -1,570 +0,0 @@ - - - - select_recruitments_country - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:58:19.728 - - - 2024/08/15 14:58:19.728 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input/регион - Copy rows to result - Y - - - - Copy rows to result - RowsToResult - - Y - - 1 - - none - - - - - - - - - - - - 512 - 208 - Y - - - - Table input/регион - TableInput - - Y - - 1 - - none - - - ervu-dashboard - WITH -t1 AS (SELECT ARRAY_AGG(t.idm_id) AS RECRUITMENT00_ID FROM ervu_dashboard.recruitment AS t WHERE t.code = '0000000') -SELECT - t1.RECRUITMENT00_ID AS VK_ARRAY_ID, - '00' AS RECRUITMENT_REG_ID -FROM t1 - - 10 - - N - N - N - - - - - - - - - - 336 - 208 - Y - - - - - - - N - - diff --git a/mappings_old/country/total_registered.age.ktr b/mappings_old/country/total_registered.age.ktr deleted file mode 100644 index ffb3762..0000000 --- a/mappings_old/country/total_registered.age.ktr +++ /dev/null @@ -1,2720 +0,0 @@ - - - - total_registered.age - - - - Normal - 0 - / - - - - - - -
- - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input (person_registry) РФ/женщины/на учете - Insert / update (total_registered.age) 3 - N - - - Table input (person_registry) РФ/мужчины/на учете - Insert / update (total_registered.age) 2 - N - - - Table input (person_registry) РФ/все/на учете - Insert / update (total_registered.age) - N - - - Table input (person_registry) РФ/все/не на учете - Insert / update (total_registered.age) 4 - N - - - Table input (person_registry) РФ/женщины/не на учете - Insert / update (total_registered.age) 3 2 - N - - - Table input (person_registry) РФ/мужчины/не на учете - Insert / update (total_registered.age) 2 2 - N - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Get variables 3 2 2 3 - Select values 3 2 2 3 - Y - - - Table input (person_registry) РФ/все/на учете - Get variables 3 2 2 - Y - - - Select values 3 2 2 - Insert / update (total_registered.age) - Y - - - Table input (person_registry) РФ/мужчины/на учете - Get variables 3 2 2 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.age) 2 - Y - - - Table input (person_registry) РФ/женщины/на учете - Get variables 3 2 2 3 - Y - - - Select values 3 2 2 3 - Insert / update (total_registered.age) 3 - Y - - - Get variables 3 2 2 4 - Select values 3 2 2 4 - Y - - - Table input (person_registry) РФ/все/не на учете - Get variables 3 2 2 4 - Y - - - Select values 3 2 2 4 - Insert / update (total_registered.age) 4 - Y - - - Get variables 3 2 2 5 - Select values 3 2 2 5 - Y - - - Table input (person_registry) РФ/мужчины/не на учете - Get variables 3 2 2 5 - Y - - - Select values 3 2 2 5 - Insert / update (total_registered.age) 2 2 - Y - - - Get variables 3 2 2 6 - Select values 3 2 2 6 - Y - - - Table input (person_registry) РФ/женщины/не на учете - Get variables 3 2 2 6 - Y - - - Select values 3 2 2 6 - Insert / update (total_registered.age) 3 2 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 624 - 256 - Y - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 624 - 352 - Y - - - - Get variables 3 2 2 3 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 624 - 448 - Y - - - - Get variables 3 2 2 4 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 624 - 608 - Y - - - - Get variables 3 2 2 5 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 624 - 704 - Y - - - - Get variables 3 2 2 6 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 624 - 800 - Y - - - - Insert / update (total_registered.age) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered -
age
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - registered - registered - = - - - - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - - - - - - - - - - 1024 - 224 - Y - - - - Insert / update (total_registered.age) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - age
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - registered - registered - = - - - - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- - - - - - - - - - 1024 - 320 - Y - -
- - Insert / update (total_registered.age) 2 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - age
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - registered - registered - = - - - - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- - - - - - - - - - 1024 - 672 - Y - -
- - Insert / update (total_registered.age) 3 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - age
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - registered - registered - = - - - - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- - - - - - - - - - 1024 - 416 - Y - -
- - Insert / update (total_registered.age) 3 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - age
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - registered - registered - = - - - - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- - - - - - - - - - 1024 - 768 - Y - -
- - Insert / update (total_registered.age) 4 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - age
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - registered - registered - = - - - - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- - - - - - - - - - 1024 - 576 - Y - -
- - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 768 - 256 - Y - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 768 - 352 - Y - - - - Select values 3 2 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 768 - 448 - Y - - - - Select values 3 2 2 4 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 768 - 608 - Y - - - - Select values 3 2 2 5 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 768 - 704 - Y - - - - Select values 3 2 2 6 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 768 - 800 - Y - - - - Table input (person_registry) РФ/все/на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -age_counts AS ( - SELECT - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) AS "17_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) AS "51+_year_count" - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "51+_year_percent", - - '${REG_ID}' as recruitment_id, - 'ALL' as gender, - 'true' as registered - -FROM age_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 400 - 224 - Y - - - - Table input (person_registry) РФ/все/не на учете - TableInput - - N - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -age_counts AS ( - SELECT - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) AS "17_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) AS "51+_year_count" - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "51+_year_percent", - - '${REG_ID}' as recruitment_id, - 'ALL' as gender, - 'false' as registered - -FROM age_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 400 - 576 - Y - - - - Table input (person_registry) РФ/женщины/на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'FEMALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -age_counts AS ( - SELECT - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) AS "17_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) AS "51+_year_count" - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'FEMALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "51+_year_percent", - - '${REG_ID}' as recruitment_id, - 'W' as gender, - 'true' as registered - -FROM age_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 400 - 416 - Y - - - - Table input (person_registry) РФ/женщины/не на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'FEMALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -age_counts AS ( - SELECT - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) AS "17_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) AS "51+_year_count" - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'FEMALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "51+_year_percent", - - '${REG_ID}' as recruitment_id, - 'W' as gender, - 'false' as registered - -FROM age_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 400 - 768 - Y - - - - Table input (person_registry) РФ/мужчины/на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'MALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -age_counts AS ( - SELECT - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) AS "17_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) AS "51+_year_count" - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'MALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "51+_year_percent", - - '${REG_ID}' as recruitment_id, - 'M' as gender, - 'true' as registered - -FROM age_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 400 - 320 - Y - - - - Table input (person_registry) РФ/мужчины/не на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'MALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -age_counts AS ( - SELECT - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) AS "17_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) AS "18-26_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) AS "27-30_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) AS "31-35_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) AS "36-40_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) AS "41-45_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) AS "46-50_year_count", - COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) AS "51+_year_count" - FROM public.recruits r - join public.recruits_info ri on ri.recruit_id=r.id - WHERE r.gender = 'MALE' AND r.vu_current_info->>'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0),2) AS "51+_year_percent", - - '${REG_ID}' as recruitment_id, - 'M' as gender, - 'false' as registered - -FROM age_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 400 - 672 - Y - - - - - - - N - -
diff --git a/mappings_old/country/total_registered.busyness.ktr b/mappings_old/country/total_registered.busyness.ktr deleted file mode 100644 index e2811e3..0000000 --- a/mappings_old/country/total_registered.busyness.ktr +++ /dev/null @@ -1,2724 +0,0 @@ - - - - total_registered.busyness - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input (person_registry) РФ/все/на учете - Insert / update (total_registered.busyness) - N - - - Table input (person_registry) РФ/мужчины/на учете - Insert / update (total_registered.busyness) 2 - N - - - Table input (person_registry) РФ/женщины/на учете - Insert / update (total_registered.busyness) 3 - N - - - Table input (person_registry) РФ/все/не на учете - Insert / update (total_registered.busyness) 4 - N - - - Table input (person_registry) РФ/женщины/не на учете - Insert / update (total_registered.busyness) 3 2 - N - - - Table input (person_registry) РФ/мужчины/не на учете - Insert / update (total_registered.busyness) 2 2 - N - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Get variables 3 2 2 3 - Select values 3 2 2 3 - Y - - - Get variables 3 2 2 4 - Select values 3 2 2 4 - Y - - - Get variables 3 2 2 5 - Select values 3 2 2 5 - Y - - - Get variables 3 2 2 6 - Select values 3 2 2 6 - Y - - - Table input (person_registry) РФ/все/на учете - Get variables 3 2 2 - Y - - - Select values 3 2 2 - Insert / update (total_registered.busyness) - Y - - - Table input (person_registry) РФ/мужчины/на учете - Get variables 3 2 2 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.busyness) 2 - Y - - - Table input (person_registry) РФ/женщины/на учете - Get variables 3 2 2 3 - Y - - - Select values 3 2 2 3 - Insert / update (total_registered.busyness) 3 - Y - - - Table input (person_registry) РФ/все/не на учете - Get variables 3 2 2 4 - Y - - - Select values 3 2 2 4 - Insert / update (total_registered.busyness) 4 - Y - - - Table input (person_registry) РФ/мужчины/не на учете - Get variables 3 2 2 5 - Y - - - Select values 3 2 2 5 - Insert / update (total_registered.busyness) 2 2 - Y - - - Table input (person_registry) РФ/женщины/не на учете - Get variables 3 2 2 6 - Y - - - Select values 3 2 2 6 - Insert / update (total_registered.busyness) 3 2 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 640 - 256 - Y - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 640 - 352 - Y - - - - Get variables 3 2 2 3 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 640 - 448 - Y - - - - Get variables 3 2 2 4 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 624 - 608 - Y - - - - Get variables 3 2 2 5 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 640 - 704 - Y - - - - Get variables 3 2 2 6 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 640 - 800 - Y - - - - Insert / update (total_registered.busyness) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered -
busyness
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - registered - registered - = - - - - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - - - - - - - - - - - - 1024 - 224 - Y - - - - Insert / update (total_registered.busyness) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - busyness
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - registered - registered - = - - - - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - -
- - - - - - - - - - 1024 - 320 - Y - -
- - Insert / update (total_registered.busyness) 2 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - busyness
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - registered - registered - = - - - - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - -
- - - - - - - - - - 1024 - 672 - Y - -
- - Insert / update (total_registered.busyness) 3 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - busyness
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - registered - registered - = - - - - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - -
- - - - - - - - - - 1024 - 416 - Y - -
- - Insert / update (total_registered.busyness) 3 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - busyness
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - registered - registered - = - - - - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - -
- - - - - - - - - - 1024 - 768 - Y - -
- - Insert / update (total_registered.busyness) 4 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - busyness
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - registered - registered - = - - - - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - -
- - - - - - - - - - 1024 - 576 - Y - -
- - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 784 - 256 - Y - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 784 - 352 - Y - - - - Select values 3 2 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 784 - 448 - Y - - - - Select values 3 2 2 4 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 768 - 608 - Y - - - - Select values 3 2 2 5 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 784 - 704 - Y - - - - Select values 3 2 2 6 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 784 - 800 - Y - - - - Table input (person_registry) РФ/все/на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - -- в json отсутствует инфа об обучении в школе - -WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, которые ни учатся, ни работают - -- COUNT(CASE WHEN NOT is_studying_in_vuz AND NOT is_studying_in_college AND NOT is_working THEN 1 END) AS not_work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS no_info, - - -- Общее количество людей - COUNT(*) AS total_people - FROM status_info -) -SELECT - 'ALL' as gender, - 'true' as registered, - '${REG_ID}' as recruitment_id, - study, - work, - 0 as not_work, - 0 as not_work_percent, - total_people, - - -- Процент людей, которые учатся - ROUND(study * 100.0 / NULLIF(total_people, 0), 2) AS study_percent, - - -- Процент людей, которые работают - ROUND(work * 100.0 / NULLIF(total_people, 0), 2) AS work_percent - - -- Процент людей, которые ни учатся, ни работают - -- ROUND(not_work * 100.0 / NULLIF(total_people, 0), 2) AS not_work_percent - - -- Процент людей, для которых отсутствуют сведения - -- ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) AS no_info_percent -FROM summary; - 0 - - N - Y - N - - - - - - - - - - 400 - 224 - Y - - - - Table input (person_registry) РФ/все/не на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - -- в json отсутствует инфа об обучении в школе - -WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, которые ни учатся, ни работают - -- COUNT(CASE WHEN NOT is_studying_in_vuz AND NOT is_studying_in_college AND NOT is_working THEN 1 END) AS not_work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS no_info, - - -- Общее количество людей - COUNT(*) AS total_people - FROM status_info -) -SELECT - 'ALL' as gender, - 'false' as registered, - '${REG_ID}' as recruitment_id, - study, - work, - 0 as not_work, - 0 as not_work_percent, - total_people, - - -- Процент людей, которые учатся - ROUND(study * 100.0 / NULLIF(total_people, 0), 2) AS study_percent, - - -- Процент людей, которые работают - ROUND(work * 100.0 / NULLIF(total_people, 0), 2) AS work_percent - - -- Процент людей, которые ни учатся, ни работают - -- ROUND(not_work * 100.0 / NULLIF(total_people, 0), 2) AS not_work_percent - - -- Процент людей, для которых отсутствуют сведения - -- ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) AS no_info_percent -FROM summary; - 0 - - N - Y - N - - - - - - - - - - 400 - 576 - Y - - - - Table input (person_registry) РФ/женщины/на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - -- в json отсутствует инфа об обучении в школе - -WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - AND gender = 'FEMALE' -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, которые ни учатся, ни работают - -- COUNT(CASE WHEN NOT is_studying_in_vuz AND NOT is_studying_in_college AND NOT is_working THEN 1 END) AS not_work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS no_info, - - -- Общее количество людей - COUNT(*) AS total_people - FROM status_info -) -SELECT - 'W' as gender, - 'true' as registered, - '${REG_ID}' as recruitment_id, - 0 as not_work, - 0 as not_work_percent, - study, - work, - total_people, - - -- Процент людей, которые учатся - ROUND(study * 100.0 / NULLIF(total_people, 0), 2) AS study_percent, - - -- Процент людей, которые работают - ROUND(work * 100.0 / NULLIF(total_people, 0), 2) AS work_percent - - -- Процент людей, которые ни учатся, ни работают - -- ROUND(not_work * 100.0 / NULLIF(total_people, 0), 2) AS not_work_percent - - -- Процент людей, для которых отсутствуют сведения - -- ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) AS no_info_percent -FROM summary; - 0 - - N - Y - N - - - - - - - - - - 400 - 416 - Y - - - - Table input (person_registry) РФ/женщины/не на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - -- в json отсутствует инфа об обучении в школе - -WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - AND gender = 'FEMALE' -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, которые ни учатся, ни работают - -- COUNT(CASE WHEN NOT is_studying_in_vuz AND NOT is_studying_in_college AND NOT is_working THEN 1 END) AS not_work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS no_info, - - -- Общее количество людей - COUNT(*) AS total_people - FROM status_info -) -SELECT - 'W' as gender, - 'false' as registered, - '${REG_ID}' as recruitment_id, - 0 as not_work, - 0 as not_work_percent, - study, - work, - total_people, - - -- Процент людей, которые учатся - ROUND(study * 100.0 / NULLIF(total_people, 0), 2) AS study_percent, - - -- Процент людей, которые работают - ROUND(work * 100.0 / NULLIF(total_people, 0), 2) AS work_percent - - -- Процент людей, которые ни учатся, ни работают - -- ROUND(not_work * 100.0 / NULLIF(total_people, 0), 2) AS not_work_percent - - -- Процент людей, для которых отсутствуют сведения - -- ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) AS no_info_percent -FROM summary; - 0 - - N - Y - N - - - - - - - - - - 400 - 768 - Y - - - - Table input (person_registry) РФ/мужчины/на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - -- в json отсутствует инфа об обучении в школе - -WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - AND gender = 'MALE' -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, которые ни учатся, ни работают - -- COUNT(CASE WHEN NOT is_studying_in_vuz AND NOT is_studying_in_college AND NOT is_working THEN 1 END) AS not_work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS no_info, - - -- Общее количество людей - COUNT(*) AS total_people - FROM status_info -) -SELECT - 'M' as gender, - 'true' as registered, - '${REG_ID}' as recruitment_id, - 0 as not_work_percent, - 0 as not_work, - study, - work, - total_people, - - -- Процент людей, которые учатся - ROUND(study * 100.0 / NULLIF(total_people, 0), 2) AS study_percent, - - -- Процент людей, которые работают - ROUND(work * 100.0 / NULLIF(total_people, 0), 2) AS work_percent - - -- Процент людей, которые ни учатся, ни работают - -- ROUND(not_work * 100.0 / NULLIF(total_people, 0), 2) AS not_work_percent - - -- Процент людей, для которых отсутствуют сведения - -- ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) AS no_info_percent -FROM summary; - 0 - - N - Y - N - - - - - - - - - - 400 - 320 - Y - - - - Table input (person_registry) РФ/мужчины/не на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - -- в json отсутствует инфа об обучении в школе - -WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'false' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - AND gender = 'MALE' -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, которые ни учатся, ни работают - -- COUNT(CASE WHEN NOT is_studying_in_vuz AND NOT is_studying_in_college AND NOT is_working THEN 1 END) AS not_work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS no_info, - - -- Общее количество людей - COUNT(*) AS total_people - FROM status_info -) -SELECT - 'M' as gender, - 'false' as registered, - '${REG_ID}' as recruitment_id, - 0 as not_work_percent, - 0 as not_work, - study, - work, - total_people, - - -- Процент людей, которые учатся - ROUND(study * 100.0 / NULLIF(total_people, 0), 2) AS study_percent, - - -- Процент людей, которые работают - ROUND(work * 100.0 / NULLIF(total_people, 0), 2) AS work_percent - - -- Процент людей, которые ни учатся, ни работают - -- ROUND(not_work * 100.0 / NULLIF(total_people, 0), 2) AS not_work_percent - - -- Процент людей, для которых отсутствуют сведения - -- ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) AS no_info_percent -FROM summary; - 0 - - N - Y - N - - - - - - - - - - 400 - 672 - Y - - - - - - - N - -
diff --git a/mappings_old/country/total_registered.child_minor.ktr b/mappings_old/country/total_registered.child_minor.ktr deleted file mode 100644 index f4bb6ad..0000000 --- a/mappings_old/country/total_registered.child_minor.ktr +++ /dev/null @@ -1,1589 +0,0 @@ - - - - total_registered.child_minor - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input (person_registry)РФ/женщины - Insert / update (total_registered.child_minor) 3 - N - - - Table input (person_registry)РФ/мужчины - Insert / update (total_registered.child_minor) 2 - N - - - Table input (person_registry)РФ/все - Insert / update (total_registered.child_minor) - N - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Get variables 3 2 2 3 - Select values 3 2 2 3 - Y - - - Table input (person_registry)РФ/женщины - Get variables 3 2 2 3 - Y - - - Select values 3 2 2 3 - Insert / update (total_registered.child_minor) 3 - Y - - - Table input (person_registry)РФ/мужчины - Get variables 3 2 2 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.child_minor) 2 - Y - - - Table input (person_registry)РФ/все - Get variables 3 2 2 - Y - - - Select values 3 2 2 - Insert / update (total_registered.child_minor) - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 656 - 144 - Y - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 656 - 256 - Y - - - - Get variables 3 2 2 3 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 656 - 384 - Y - - - - Insert / update (total_registered.child_minor) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered -
child_minor
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - no_child - no_children - Y - - - "1_child" - one_child - Y - - - "2_child" - two_children - Y - - - "3_child" - three_children - Y - - - "4_more_child" - four_or_more_children - Y - - - "all_M_W" - gender - N - - - no_child_percent - no_children_percent - Y - - - "1_child_percent" - one_child_percent - Y - - - "2_child_percent" - two_children_percent - Y - - - "3_child_percent" - three_children_percent - Y - - - "4_more_child_percent" - four_or_more_children_percent - Y - - - recruitment_id - recruitment_id - N - - - - - - - - - - - - 1056 - 96 - Y - - - - Insert / update (total_registered.child_minor) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered - child_minor
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - no_child - no_children - Y - - - "1_child" - one_child - Y - - - "2_child" - two_children - Y - - - "3_child" - three_children - Y - - - "4_more_child" - four_or_more_children - Y - - - "all_M_W" - gender - N - - - no_child_percent - no_children_percent - Y - - - "1_child_percent" - one_child_percent - Y - - - "2_child_percent" - two_children_percent - Y - - - "3_child_percent" - three_children_percent - Y - - - "4_more_child_percent" - four_or_more_children_percent - Y - - - recruitment_id - recruitment_id - N - -
- - - - - - - - - - 1056 - 208 - Y - -
- - Insert / update (total_registered.child_minor) 3 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered - child_minor
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - no_child - no_children - Y - - - "1_child" - one_child - Y - - - "2_child" - two_children - Y - - - "3_child" - three_children - Y - - - "4_more_child" - four_or_more_children - Y - - - "all_M_W" - gender - N - - - no_child_percent - no_children_percent - Y - - - "1_child_percent" - one_child_percent - Y - - - "2_child_percent" - two_children_percent - Y - - - "3_child_percent" - three_children_percent - Y - - - "4_more_child_percent" - four_or_more_children_percent - Y - - - recruitment_id - recruitment_id - N - -
- - - - - - - - - - 1056 - 336 - Y - -
- - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 800 - 144 - Y - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 800 - 256 - Y - - - - Select values 3 2 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 800 - 384 - Y - - - - Table input (person_registry)РФ/все - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_18 - FROM - children_birth_dates - WHERE - AGE(make_date(year, month, day)) < interval '18 years' - GROUP BY - recruit_id -), -final_counts AS ( - SELECT - COALESCE(children_under_18, 0) AS children_count, - COUNT(*) AS num_people - FROM - public.recruits_info ri - LEFT JOIN - children_count cc ON ri.recruit_id = cc.recruit_id - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - GROUP BY - COALESCE(children_under_18, 0) -), -total_people AS ( - SELECT SUM(num_people) AS total_count - FROM final_counts -) -SELECT - 'ALL' AS gender, - '${REG_ID}' as recruitment_id, - COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) AS no_children, - COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) AS one_child, - COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) AS two_children, - COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) AS three_children, - COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) AS four_or_more_children, - ROUND(COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) AS no_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) AS one_child_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) AS two_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) AS three_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) AS four_or_more_children_percent -FROM - final_counts; - 0 - - N - Y - N - - - - - - - - - - 416 - 96 - Y - - - - Table input (person_registry)РФ/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_18 - FROM - children_birth_dates - WHERE - make_date(year, month, day) > CURRENT_DATE - INTERVAL '18 years' - GROUP BY - recruit_id -), -final_counts AS ( - SELECT - COALESCE(children_under_18, 0) AS children_count, - COUNT(*) AS num_people - FROM - public.recruits_info ri - LEFT JOIN - children_count cc ON ri.recruit_id = cc.recruit_id - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' - GROUP BY - COALESCE(children_under_18, 0) -), -total_men AS ( - SELECT - COUNT(*) AS total_men_count - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' -) -SELECT - 'W' AS gender, - '${REG_ID}' AS recruitment_id, - COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) AS no_children, - COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) AS one_child, - COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) AS two_children, - COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) AS three_children, - COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) AS four_or_more_children, - ROUND(COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS no_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS one_child_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS two_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS three_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS four_or_more_children_percent -FROM - final_counts; - 0 - - N - Y - N - - - - - - - - - - 416 - 336 - Y - - - - Table input (person_registry)РФ/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'MALE' -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_18 - FROM - children_birth_dates - WHERE - make_date(year, month, day) > CURRENT_DATE - INTERVAL '18 years' - GROUP BY - recruit_id -), -final_counts AS ( - SELECT - COALESCE(children_under_18, 0) AS children_count, - COUNT(*) AS num_people - FROM - public.recruits_info ri - LEFT JOIN - children_count cc ON ri.recruit_id = cc.recruit_id - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'MALE' - GROUP BY - COALESCE(children_under_18, 0) -), -total_men AS ( - SELECT - COUNT(*) AS total_men_count - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'MALE' -) -SELECT - 'M' AS gender, - '${REG_ID}' AS recruitment_id, - COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) AS no_children, - COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) AS one_child, - COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) AS two_children, - COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) AS three_children, - COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) AS four_or_more_children, - ROUND(COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS no_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS one_child_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS two_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS three_children_percent, - ROUND(COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) AS four_or_more_children_percent -FROM - final_counts; - 0 - - N - Y - N - - - - - - - - - - 416 - 208 - Y - - - - - - - N - -
diff --git a/mappings_old/country/total_registered.driver_license.ktr b/mappings_old/country/total_registered.driver_license.ktr deleted file mode 100644 index c0ed639..0000000 --- a/mappings_old/country/total_registered.driver_license.ktr +++ /dev/null @@ -1,1507 +0,0 @@ - - - - total_registered.driver_license - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input (person_registry) РФ/женщины - Insert / update (total_registered.driver_license) 2 2 2 - N - - - Table input (person_registry) РФ/мужчины - Insert / update (total_registered.driver_license) 2 2 - N - - - Table input (person_registry) РФ/все - Insert / update (total_registered.driver_license) 2 - N - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Get variables 3 2 2 3 - Select values 3 2 2 3 - Y - - - Table input (person_registry) РФ/женщины - Get variables 3 2 2 3 - Y - - - Select values 3 2 2 3 - Insert / update (total_registered.driver_license) 2 2 2 - Y - - - Table input (person_registry) РФ/мужчины - Get variables 3 2 2 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.driver_license) 2 2 - Y - - - Table input (person_registry) РФ/все - Get variables 3 2 2 - Y - - - Select values 3 2 2 - Insert / update (total_registered.driver_license) 2 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 704 - 160 - Y - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 704 - 288 - Y - - - - Get variables 3 2 2 3 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 704 - 432 - Y - - - - Insert / update (total_registered.driver_license) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered -
driver_license
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - "A" - a - Y - - - "B" - b - Y - - - "C" - c - Y - - - "D" - d - Y - - - "E" - e - Y - - - nope - nope - Y - - - "A_repcent" - a_percent - Y - - - "B_repcent" - b_percent - Y - - - "C_repcent" - c_percent - Y - - - "D_repcent" - d_percent - Y - - - "E_repcent" - e_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - - - - - - - - - - - - 1088 - 112 - Y - - - - Insert / update (total_registered.driver_license) 2 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - driver_license
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - "A" - a - Y - - - "B" - b - Y - - - "C" - c - Y - - - "D" - d - Y - - - "E" - e - Y - - - nope - nope - Y - - - "A_repcent" - a_percent - Y - - - "B_repcent" - b_percent - Y - - - "C_repcent" - c_percent - Y - - - "D_repcent" - d_percent - Y - - - "E_repcent" - e_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - -
- - - - - - - - - - 1088 - 240 - Y - -
- - Insert / update (total_registered.driver_license) 2 2 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - driver_license
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - "A" - a - Y - - - "B" - b - Y - - - "C" - c - Y - - - "D" - d - Y - - - "E" - e - Y - - - nope - nope - Y - - - "A_repcent" - a_percent - Y - - - "B_repcent" - b_percent - Y - - - "C_repcent" - c_percent - Y - - - "D_repcent" - d_percent - Y - - - "E_repcent" - e_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - -
- - - - - - - - - - 1088 - 384 - Y - -
- - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 848 - 160 - Y - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 848 - 288 - Y - - - - Select values 3 2 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 848 - 432 - Y - - - - Table input (person_registry) РФ/все - TableInput - - Y - - 1 - - none - - - postgres.person_registry - WITH categorized AS ( - SELECT - r.id, - r.gender, - -- Проверяем наличие хотя бы одной категории, используем DISTINCT для уникальных рекрутов - 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 - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - GROUP BY r.id, r.gender -), -aggregated AS ( - SELECT - 'ALL' AS gender, - '${REG_ID}' AS recruitment_id, - -- Считаем количество уникальных рекрутов с каждой категорией - COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, - COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, - COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, - COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, - COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, - COUNT(DISTINCT r.id) FILTER (WHERE has_A = 0 AND has_B = 0 AND has_C = 0 AND has_D = 0 AND has_E = 0) AS nope, - COUNT(DISTINCT r.id) AS total - FROM categorized r -) -SELECT *, - ROUND((a * 100.0) / NULLIF(total, 0), 2) AS a_percent, - ROUND((b * 100.0) / NULLIF(total, 0), 2) AS b_percent, - ROUND((c * 100.0) / NULLIF(total, 0), 2) AS c_percent, - ROUND((d * 100.0) / NULLIF(total, 0), 2) AS d_percent, - ROUND((e * 100.0) / NULLIF(total, 0), 2) AS e_percent, - ROUND((nope * 100.0) / NULLIF(total, 0), 2) AS nope_percent -FROM aggregated; - 0 - - N - Y - N - - - - - - - - - - 464 - 112 - Y - - - - Table input (person_registry) РФ/женщины - TableInput - - N - - 1 - - none - - - postgres.person_registry - WITH categorized AS ( - SELECT - r.id, - r.gender, - -- Проверяем наличие хотя бы одной категории, используем DISTINCT для уникальных рекрутов - 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 - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' - GROUP BY r.id, r.gender -), -aggregated AS ( - SELECT - 'W' AS gender, - '${REG_ID}' as recruitment_id, - -- Считаем количество уникальных рекрутов с каждой категорией - COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, - COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, - COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, - COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, - COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, - COUNT(DISTINCT r.id) FILTER (WHERE has_A = 0 AND has_B = 0 AND has_C = 0 AND has_D = 0 AND has_E = 0) AS nope, - COUNT(DISTINCT r.id) AS total - FROM categorized r -) -SELECT *, - ROUND((a * 100.0) / NULLIF(total, 0), 2) AS a_percent, - ROUND((b * 100.0) / NULLIF(total, 0), 2) AS b_percent, - ROUND((c * 100.0) / NULLIF(total, 0), 2) AS c_percent, - ROUND((d * 100.0) / NULLIF(total, 0), 2) AS d_percent, - ROUND((e * 100.0) / NULLIF(total, 0), 2) AS e_percent, - ROUND((nope * 100.0) / NULLIF(total, 0), 2) AS nope_percent -FROM aggregated; - 0 - - N - Y - N - - - - - - - - - - 464 - 384 - Y - - - - Table input (person_registry) РФ/мужчины - TableInput - - Y - - 1 - - none - - - postgres.person_registry - WITH categorized AS ( - SELECT - r.id, - r.gender, - -- Проверяем наличие хотя бы одной категории, используем DISTINCT для уникальных рекрутов - 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 - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'MALE' - GROUP BY r.id, r.gender -), -aggregated AS ( - SELECT - 'M' AS gender, - '${REG_ID}' as recruitment_id, - -- Считаем количество уникальных рекрутов с каждой категорией - COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) AS a, - COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) AS b, - COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) AS c, - COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) AS d, - COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) AS e, - COUNT(DISTINCT r.id) FILTER (WHERE has_A = 0 AND has_B = 0 AND has_C = 0 AND has_D = 0 AND has_E = 0) AS nope, - COUNT(DISTINCT r.id) AS total - FROM categorized r -) -SELECT *, - ROUND((a * 100.0) / NULLIF(total, 0), 2) AS a_percent, - ROUND((b * 100.0) / NULLIF(total, 0), 2) AS b_percent, - ROUND((c * 100.0) / NULLIF(total, 0), 2) AS c_percent, - ROUND((d * 100.0) / NULLIF(total, 0), 2) AS d_percent, - ROUND((e * 100.0) / NULLIF(total, 0), 2) AS e_percent, - ROUND((nope * 100.0) / NULLIF(total, 0), 2) AS nope_percent -FROM aggregated; - 0 - - N - Y - N - - - - - - - - - - 464 - 240 - Y - - - - - - - N - -
diff --git a/mappings_old/country/total_registered.education_level.ktr b/mappings_old/country/total_registered.education_level.ktr deleted file mode 100644 index 3e896f5..0000000 --- a/mappings_old/country/total_registered.education_level.ktr +++ /dev/null @@ -1,1671 +0,0 @@ - - - - total_registered.education_level - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input (person_registry) РФ/все - Insert / update (total_registered.education_level) - N - - - Table input (person_registry) РФ/мужчины - Insert / update (total_registered.education_level) 2 - N - - - Table input (person_registry) РФ/женщины - Insert / update (total_registered.education_level) 3 - N - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Get variables 3 2 2 3 - Select values 3 2 2 3 - Y - - - Table input (person_registry) РФ/все - Get variables 3 2 2 - Y - - - Select values 3 2 2 - Insert / update (total_registered.education_level) - Y - - - Table input (person_registry) РФ/мужчины - Get variables 3 2 2 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.education_level) 2 - Y - - - Table input (person_registry) РФ/женщины - Get variables 3 2 2 3 - Y - - - Select values 3 2 2 3 - Insert / update (total_registered.education_level) 3 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 640 - 256 - Y - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 640 - 352 - Y - - - - Get variables 3 2 2 3 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 640 - 464 - Y - - - - Insert / update (total_registered.education_level) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered -
education_level
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - higher - higher - Y - - - average - average_prof - Y - - - "all_M_W" - gender - N - - - only_general - only_general - Y - - - no_data - count_nodata - Y - - - higher_percent - higher_percentage - Y - - - average_percent - average_prof_percentage - Y - - - only_general_percent - only_general_percentage - Y - - - no_data_percent - count_nodata_percentage - Y - - - recruitment_id - recruitment_id - N - - - education_level - total - Y - - - - - - - - - - - - 1024 - 224 - Y - - - - Insert / update (total_registered.education_level) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - education_level
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - higher - higher - Y - - - average - average_prof - Y - - - "all_M_W" - gender - N - - - only_general - only_general - Y - - - no_data - count_nodata - Y - - - higher_percent - higher_percentage - Y - - - average_percent - average_prof_percentage - Y - - - only_general_percent - only_general_percentage - Y - - - no_data_percent - count_nodata_percentage - Y - - - recruitment_id - recruitment_id - N - - - education_level - total - Y - -
- - - - - - - - - - 1024 - 320 - Y - -
- - Insert / update (total_registered.education_level) 3 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - education_level
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - higher - higher - Y - - - average - average_prof - Y - - - "all_M_W" - gender - N - - - only_general - only_general - Y - - - no_data - count_nodata - Y - - - higher_percent - higher_percentage - Y - - - average_percent - average_prof_percentage - Y - - - only_general_percent - only_general_percentage - Y - - - no_data_percent - count_nodata_percentage - Y - - - recruitment_id - recruitment_id - N - - - education_level - total - Y - -
- - - - - - - - - - 1024 - 416 - Y - -
- - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 784 - 256 - Y - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 784 - 352 - Y - - - - Select values 3 2 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 784 - 464 - Y - - - - Table input (person_registry) РФ/все - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL -), -education_status AS ( - SELECT - ri.id, - - -- Высшее образование (российское или иностранное) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - ) - ) AS has_higher, - - -- Среднее профессиональное образование (если нет высшего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' = '10' - ) - ) AS has_average_prof, - - -- Общее образование (если нет высшего и среднего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('7', '9') - ) - ) AS has_only_general, - - -- Нет данных об образовании (российское или иностранное) - ( - NOT ( - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - ) - ) - ) AND ( - ri.info->'svedRObr'->>'prOtsRObr' = '1' - OR ri.info->'svedInObr'->>'prOtsInObr' = '1' - ) - ) AS has_no_data - - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL -), -final_counts AS ( - SELECT - COUNT(DISTINCT CASE WHEN has_higher THEN id END) AS higher, - COUNT(DISTINCT CASE WHEN NOT has_higher AND has_average_prof THEN id END) AS average_prof, - COUNT(DISTINCT CASE WHEN NOT has_higher AND NOT has_average_prof AND has_only_general THEN id END) AS only_general, - COUNT(DISTINCT CASE WHEN has_no_data THEN id END) AS count_nodata - FROM education_status -) -SELECT - 'ALL' AS gender, - '${REG_ID}' AS recruitment_id, - higher, - average_prof, - only_general, - count_nodata, - total_count.total, - ROUND(higher * 100.0 / NULLIF(total_count.total, 0), 2) AS higher_percentage, - ROUND(average_prof * 100.0 / NULLIF(total_count.total, 0), 2) AS average_prof_percentage, - ROUND(only_general * 100.0 / NULLIF(total_count.total, 0), 2) AS only_general_percentage, - ROUND(count_nodata * 100.0 / NULLIF(total_count.total, 0), 2) AS count_nodata_percentage -FROM final_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 400 - 224 - Y - - - - Table input (person_registry) РФ/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' -), -education_status AS ( - SELECT - ri.id, - - -- Высшее образование (российское или иностранное) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - ) - ) AS has_higher, - - -- Среднее профессиональное образование (если нет высшего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' = '10' - ) - ) AS has_average_prof, - - -- Общее образование (если нет высшего и среднего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('7', '9') - ) - ) AS has_only_general, - - -- Нет данных об образовании (российское или иностранное) - ( - NOT ( - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - ) - ) - ) AND ( - ri.info->'svedRObr'->>'prOtsRObr' = '1' - OR ri.info->'svedInObr'->>'prOtsInObr' = '1' - ) - ) AS has_no_data - - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' -), -final_counts AS ( - SELECT - COUNT(DISTINCT CASE WHEN has_higher THEN id END) AS higher, - COUNT(DISTINCT CASE WHEN NOT has_higher AND has_average_prof THEN id END) AS average_prof, - COUNT(DISTINCT CASE WHEN NOT has_higher AND NOT has_average_prof AND has_only_general THEN id END) AS only_general, - COUNT(DISTINCT CASE WHEN has_no_data THEN id END) AS count_nodata - FROM education_status -) -SELECT - 'W' AS gender, - '${REG_ID}' AS recruitment_id, - higher, - average_prof, - only_general, - count_nodata, - total_count.total, - ROUND(higher * 100.0 / NULLIF(total_count.total, 0), 2) AS higher_percentage, - ROUND(average_prof * 100.0 / NULLIF(total_count.total, 0), 2) AS average_prof_percentage, - ROUND(only_general * 100.0 / NULLIF(total_count.total, 0), 2) AS only_general_percentage, - ROUND(count_nodata * 100.0 / NULLIF(total_count.total, 0), 2) AS count_nodata_percentage -FROM final_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 400 - 416 - Y - - - - Table input (person_registry) РФ/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT COUNT(*) AS total - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'MALE' -), -education_status AS ( - SELECT - ri.id, - - -- Высшее образование (российское или иностранное) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - ) - ) AS has_higher, - - -- Среднее профессиональное образование (если нет высшего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' = '10' - ) - ) AS has_average_prof, - - -- Общее образование (если нет высшего и среднего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('7', '9') - ) - ) AS has_only_general, - - -- Нет данных об образовании (российское или иностранное) - ( - NOT ( - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - ) - ) - ) AND ( - ri.info->'svedRObr'->>'prOtsRObr' = '1' - OR ri.info->'svedInObr'->>'prOtsInObr' = '1' - ) - ) AS has_no_data - - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND r.gender = 'MALE' -), -final_counts AS ( - SELECT - COUNT(DISTINCT CASE WHEN has_higher THEN id END) AS higher, - COUNT(DISTINCT CASE WHEN NOT has_higher AND has_average_prof THEN id END) AS average_prof, - COUNT(DISTINCT CASE WHEN NOT has_higher AND NOT has_average_prof AND has_only_general THEN id END) AS only_general, - COUNT(DISTINCT CASE WHEN has_no_data THEN id END) AS count_nodata - FROM education_status -) -SELECT - 'M' AS gender, - '${REG_ID}' AS recruitment_id, - higher, - average_prof, - only_general, - count_nodata, - total_count.total, - ROUND(higher * 100.0 / NULLIF(total_count.total, 0), 2) AS higher_percentage, - ROUND(average_prof * 100.0 / NULLIF(total_count.total, 0), 2) AS average_prof_percentage, - ROUND(only_general * 100.0 / NULLIF(total_count.total, 0), 2) AS only_general_percentage, - ROUND(count_nodata * 100.0 / NULLIF(total_count.total, 0), 2) AS count_nodata_percentage -FROM final_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 400 - 320 - Y - - - - - - - N - -
diff --git a/mappings_old/country/total_registered.marital_status.ktr b/mappings_old/country/total_registered.marital_status.ktr deleted file mode 100644 index 6fc5e70..0000000 --- a/mappings_old/country/total_registered.marital_status.ktr +++ /dev/null @@ -1,1425 +0,0 @@ - - - - total_registered.marital_status - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input (person_registry) РФ/все - Insert / update (total_registered.marital_status) - N - - - Table input (person_registry) РФ/мужчины - Insert / update (total_registered.marital_status) 2 - N - - - Table input (person_registry) РФ/женщины - Insert / update (total_registered.marital_status) 3 - N - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Get variables 3 2 2 3 - Select values 3 2 2 3 - Y - - - Table input (person_registry) РФ/все - Get variables 3 2 2 - Y - - - Select values 3 2 2 - Insert / update (total_registered.marital_status) - Y - - - Table input (person_registry) РФ/мужчины - Get variables 3 2 2 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.marital_status) 2 - Y - - - Table input (person_registry) РФ/женщины - Get variables 3 2 2 3 - Y - - - Select values 3 2 2 3 - Insert / update (total_registered.marital_status) 3 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 720 - 144 - Y - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 720 - 240 - Y - - - - Get variables 3 2 2 3 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 720 - 336 - Y - - - - Insert / update (total_registered.marital_status) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered -
marital_status
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - married - married - Y - - - not_married - not_married - Y - - - married_percent - married_percent - Y - - - not_married_percent - not_married_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - - - marital_status - total - Y - - - - - - - - - - - - 1104 - 112 - Y - - - - Insert / update (total_registered.marital_status) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - marital_status
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - married - married - Y - - - not_married - not_married - Y - - - married_percent - married_percent - Y - - - not_married_percent - not_married_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - - - marital_status - total - Y - -
- - - - - - - - - - 1104 - 208 - Y - -
- - Insert / update (total_registered.marital_status) 3 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - marital_status
- - REG_ID - recruitment_id - = - - - - gender - "all_M_W" - = - - - - married - married - Y - - - not_married - not_married - Y - - - married_percent - married_percent - Y - - - not_married_percent - not_married_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - - - marital_status - total - Y - -
- - - - - - - - - - 1104 - 304 - Y - -
- - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 864 - 144 - Y - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 864 - 240 - Y - - - - Select values 3 2 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 864 - 336 - Y - - - - Table input (person_registry) РФ/все - TableInput - - Y - - 1 - - none - - - ervu_person_registry - SELECT - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) AS not_married, - - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) AS married, - - COUNT(*) AS total, - - CASE - WHEN COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) * 100.0 / COUNT(*), 2 - ) END AS not_married_percent, - - CASE - WHEN COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) * 100.0 / COUNT(*), 2 - ) END AS married_percent, - 'ALL' as gender, -'${REG_ID}' as recruitment_id - -FROM - public.recruits r -JOIN - public.recruits_info ri ON ri.recruit_id = r.id -WHERE - r.current_recruitment_id IS NOT NULL - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - 0 - - N - Y - N - - - - - - - - - - 480 - 112 - Y - - - - Table input (person_registry) РФ/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - SELECT - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) AS not_married, - - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) AS married, - - COUNT(*) AS total, - - CASE - WHEN COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) * 100.0 / COUNT(*), 2 - ) END AS not_married_percent, - - CASE - WHEN COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) * 100.0 / COUNT(*), 2 - ) END AS married_percent, - 'W' as gender, - '${REG_ID}' as recruitment_id - -FROM - public.recruits r -JOIN - public.recruits_info ri ON ri.recruit_id = r.id -WHERE - r.current_recruitment_id IS NOT NULL - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - AND r.gender = 'FEMALE'; - - 0 - - N - Y - N - - - - - - - - - - 480 - 304 - Y - - - - Table input (person_registry) РФ/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - SELECT - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) AS not_married, - - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) AS married, - - COUNT(*) AS total, - - CASE - WHEN COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) * 100.0 / COUNT(*), 2 - ) END AS not_married_percent, - - CASE - WHEN COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) * 100.0 / COUNT(*), 2 - ) END AS married_percent, - 'M' as gender, - '${REG_ID}' as recruitment_id - -FROM - public.recruits r -JOIN - public.recruits_info ri ON ri.recruit_id = r.id -WHERE - r.current_recruitment_id IS NOT NULL - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' and r.current_recruitment_id is not null and r.target_recruitment_id is not null - AND r.gender = 'MALE'; - - 0 - - N - Y - N - - - - - - - - - - 480 - 208 - Y - - - - - - - N - -
diff --git a/mappings_old/country/total_registered.reg_mil_cat.ktr b/mappings_old/country/total_registered.reg_mil_cat.ktr deleted file mode 100644 index d23e999..0000000 --- a/mappings_old/country/total_registered.reg_mil_cat.ktr +++ /dev/null @@ -1,1284 +0,0 @@ - - - - total_registered.reg_mil_cat - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input (person_registry) РФ/на учете - Insert / update (total_registered.reg_mil_cat) - N - - - Table input (person_registry) РФ/не на учете - Insert / update (total_registered.reg_mil_cat) 2 - N - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Table input (person_registry) РФ/не на учете - Get variables 3 2 2 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.reg_mil_cat) 2 - Y - - - Table input (person_registry) РФ/на учете - Get variables 3 2 2 - Y - - - Select values 3 2 2 - Insert / update (total_registered.reg_mil_cat) - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 640 - 240 - Y - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 656 - 400 - Y - - - - Insert / update (total_registered.reg_mil_cat) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered -
reg_mil_cat
- - REG_ID - recruitment_id - = - - - - mil_reg - mil_reg - = - - - - first_reg_17 - first_reg_17 - Y - - - first_reg_18 - first_reg_18 - Y - - - "mil_spec_W" - mil_spec_w - Y - - - recruitment_id - recruitment_id - N - - - returned_dep_liberty - returned_dep_liberty - Y - - - punished - punished - Y - - - received_citizenship - received_citizenship - Y - - - first_reg_17_percent - first_reg_17_percent - Y - - - first_reg_18_percent - first_reg_18_percent - Y - - - returned_dep_liberty_percent - returned_dep_liberty_percent - Y - - - "mil_spec_W_percent" - mil_spec_w_percent - Y - - - punished_percent - punished_percent - Y - - - received_citizenship_percent - received_citizenship_percent - Y - - - mil_reg - mil_reg - N - - - - - - - - - - - - 944 - 176 - Y - - - - Insert / update (total_registered.reg_mil_cat) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered - reg_mil_cat
- - REG_ID - recruitment_id - = - - - - mil_reg - mil_reg - = - - - - first_reg_17 - first_reg_17 - Y - - - first_reg_18 - first_reg_18 - Y - - - "mil_spec_W" - mil_spec_w - Y - - - recruitment_id - recruitment_id - N - - - returned_dep_liberty - returned_dep_liberty - Y - - - punished - punished - Y - - - received_citizenship - received_citizenship - Y - - - first_reg_17_percent - first_reg_17_percent - Y - - - first_reg_18_percent - first_reg_18_percent - Y - - - returned_dep_liberty_percent - returned_dep_liberty_percent - Y - - - "mil_spec_W_percent" - mil_spec_w_percent - Y - - - punished_percent - punished_percent - Y - - - received_citizenship_percent - received_citizenship_percent - Y - - - mil_reg - mil_reg - N - -
- - - - - - - - - - 944 - 336 - Y - -
- - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 784 - 240 - Y - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 800 - 400 - Y - - - - Table input (person_registry) РФ/на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH base_data AS ( - -- Основной набор данных - SELECT - r.registration_reasons, - r.gender, - r.vu_current_info ->> 'isMilitaryRegistered' AS is_military_registered - FROM public.recruits r - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL -), -total AS ( - -- Общее количество записей - SELECT COUNT(*) AS total_count - FROM base_data -), -t1 AS ( - -- Первоначальная постановка 17 лет - SELECT COUNT(*) AS first_reg_17 - FROM base_data - WHERE registration_reasons @> '"5"' -), -t2 AS ( - -- Первоначальная постановка 18 лет - SELECT COUNT(*) AS first_reg_18 - FROM base_data - WHERE registration_reasons @> '"6"' - OR registration_reasons @> '"3"' - OR registration_reasons @> '"1"' - OR registration_reasons @> '"4"' - OR registration_reasons @> '"2"' -), -t3 AS ( - -- Женщины, получившие ВУС - SELECT COUNT(*) AS mil_spec_w - FROM base_data - WHERE registration_reasons @> '"3"' AND gender = 'FEMALE' -), -t4 AS ( - -- Возвратившиеся из мест лишения свободы - SELECT COUNT(*) AS returned_dep_liberty - FROM base_data - WHERE registration_reasons @> '"1"' -), -t5 AS ( - -- Отбывающие наказание в местах лишения свободы - SELECT COUNT(*) AS punished - FROM base_data - WHERE registration_reasons @> '"4"' -), -t6 AS ( - -- Получившие гражданство - SELECT COUNT(*) AS received_citizenship - FROM base_data - WHERE registration_reasons @> '"2"' -) -SELECT - total.total_count, - t1.first_reg_17, - t2.first_reg_18, - t3.mil_spec_w, - t4.returned_dep_liberty, - t5.punished, - t6.received_citizenship, - -- Вычисление процентов - ROUND(t1.first_reg_17 * 100.0 / NULLIF(total.total_count, 0), 2) AS first_reg_17_percent, - ROUND(t2.first_reg_18 * 100.0 / NULLIF(total.total_count, 0), 2) AS first_reg_18_percent, - ROUND(t4.returned_dep_liberty * 100.0 / NULLIF(total.total_count, 0), 2) AS returned_dep_liberty_percent, - ROUND(t3.mil_spec_w * 100.0 / NULLIF(total.total_count, 0), 2) AS mil_spec_w_percent, - ROUND(t5.punished * 100.0 / NULLIF(total.total_count, 0), 2) AS punished_percent, - ROUND(t6.received_citizenship * 100.0 / NULLIF(total.total_count, 0), 2) AS received_citizenship_percent, - '${REG_ID}' AS recruitment_id, - 1 AS mil_reg, - 1 AS org -FROM total -FULL OUTER JOIN t1 ON 1 = 1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1; - 0 - - N - Y - N - - - - - - - - - - 512 - 176 - Y - - - - Table input (person_registry) РФ/не на учете - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH base_data AS ( - -- Основной набор данных - SELECT - r.registration_reasons, - r.gender, - r.vu_current_info ->> 'isMilitaryRegistered' AS is_military_registered - FROM public.recruits r - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'false' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL -), -total AS ( - -- Общее количество записей - SELECT COUNT(*) AS total_count - FROM base_data -), -t1 AS ( - -- Первоначальная постановка 17 лет - SELECT COUNT(*) AS first_reg_17 - FROM base_data - WHERE registration_reasons @> '"5"' -), -t2 AS ( - -- Первоначальная постановка 18 лет - SELECT COUNT(*) AS first_reg_18 - FROM base_data - WHERE registration_reasons @> '"6"' - OR registration_reasons @> '"3"' - OR registration_reasons @> '"1"' - OR registration_reasons @> '"4"' - OR registration_reasons @> '"2"' -), -t3 AS ( - -- Женщины, получившие ВУС - SELECT COUNT(*) AS mil_spec_w - FROM base_data - WHERE registration_reasons @> '"3"' AND gender = 'FEMALE' -), -t4 AS ( - -- Возвратившиеся из мест лишения свободы - SELECT COUNT(*) AS returned_dep_liberty - FROM base_data - WHERE registration_reasons @> '"1"' -), -t5 AS ( - -- Отбывающие наказание в местах лишения свободы - SELECT COUNT(*) AS punished - FROM base_data - WHERE registration_reasons @> '"4"' -), -t6 AS ( - -- Получившие гражданство - SELECT COUNT(*) AS received_citizenship - FROM base_data - WHERE registration_reasons @> '"2"' -) -SELECT - total.total_count, - t1.first_reg_17, - t2.first_reg_18, - t3.mil_spec_w, - t4.returned_dep_liberty, - t5.punished, - t6.received_citizenship, - -- Вычисление процентов - ROUND(t1.first_reg_17 * 100.0 / NULLIF(total.total_count, 0), 2) AS first_reg_17_percent, - ROUND(t2.first_reg_18 * 100.0 / NULLIF(total.total_count, 0), 2) AS first_reg_18_percent, - ROUND(t4.returned_dep_liberty * 100.0 / NULLIF(total.total_count, 0), 2) AS returned_dep_liberty_percent, - ROUND(t3.mil_spec_w * 100.0 / NULLIF(total.total_count, 0), 2) AS mil_spec_w_percent, - ROUND(t5.punished * 100.0 / NULLIF(total.total_count, 0), 2) AS punished_percent, - ROUND(t6.received_citizenship * 100.0 / NULLIF(total.total_count, 0), 2) AS received_citizenship_percent, - '${REG_ID}' AS recruitment_id, - 0 AS mil_reg, - 1 AS org -FROM total -FULL OUTER JOIN t1 ON 1 = 1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1; - 0 - - N - Y - N - - - - - - - - - - 512 - 336 - Y - - - - - - - N - -
diff --git a/mappings_old/country/total_registered.removed_registry.ktr b/mappings_old/country/total_registered.removed_registry.ktr deleted file mode 100644 index af98be1..0000000 --- a/mappings_old/country/total_registered.removed_registry.ktr +++ /dev/null @@ -1,862 +0,0 @@ - - - - total_registered.removed_registry - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.decision-document-service - decision-dbhost - POSTGRESQL - Native - decision-dbname - 3333 - decision-dbuser - Encrypted 2befccaab03d49b8ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 3333 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input (decision-document-service) РФ - Insert / update (total_registered.removed_registry) - N - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Table input (decision-document-service) РФ - Get variables 3 2 2 - Y - - - Select values 3 2 2 - Insert / update (total_registered.removed_registry) - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 608 - 304 - Y - - - - Insert / update (total_registered.removed_registry) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered -
removed_registry
- - REG_ID - recruitment_id - = - - - - age_limit - age_limit - Y - - - death - death - Y - - - removed_registry - removed_registry - Y - - - deprivation_citizenship - deprivation_citizenship - Y - - - travel_abroad - travel_abroad - Y - - - living_abroad - living_abroad - Y - - - other - other - Y - - - deprivation_citizen_percents - deprivation_citizen_percents - Y - - - age_limit_percent - age_limit_percent - Y - - - death_percent - death_percent - Y - - - travel_abroad_percent - travel_abroad_percent - Y - - - living_abroad_percent - living_abroad_percent - Y - - - other_percent - other_percent - Y - - - recruitment_id - recruitment_id - N - - - - - - - - - - - - 912 - 224 - Y - - - - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 752 - 304 - Y - - - - Table input (decision-document-service) РФ - TableInput - - N - - 1 - - none - - - postgres.decision-document-service - SELECT - COUNT(*) AS removed_registry, - COUNT(CASE WHEN d.extra_info ->> 'cause' = 'ageLimit' THEN 1 END) AS age_limit, -- Количество по причине предельный возраст - COUNT(CASE WHEN d.extra_info ->> 'cause' = 'notAlive' THEN 1 END) AS death, -- Количество по причине смерть - '0' AS deprivation_citizenship, - '0' AS travel_abroad, - '0' AS living_abroad, - COUNT(CASE WHEN (d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive')) THEN 1 END) AS other, -- Количество по другим причинам - '0' AS deprivation_citizen_percents, - ROUND(COUNT(CASE WHEN d.extra_info ->> 'cause' = 'ageLimit' THEN 1 END) * 100.0 / NULLIF(COUNT(*), 0), 2) AS age_limit_percent, -- Процент по причине предельный возраст - ROUND(COUNT(CASE WHEN d.extra_info ->> 'cause' = 'notAlive' THEN 1 END) * 100.0 / NULLIF(COUNT(*), 0), 2) AS death_percent, -- Процент по причине смерть - '0' AS travel_abroad_percent, - '0' AS living_abroad_percent, - ROUND(COUNT(CASE WHEN (d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive')) THEN 1 END) * 100.0 / NULLIF(COUNT(*), 0), 2) AS other_percent, -- Процент по другим причинам - '${REG_ID}' AS recruitment_id -FROM public.recruit AS r -JOIN public.decision AS d - ON d.recruit_id = r.id -JOIN public.decision_type AS dt - ON dt.id = d.type_id -WHERE r.system_pgs_status = '1.3' - AND r.current_recruitment IS NOT NULL - AND r.target_recruitment IS NOT NULL - AND dt.code IN ('9', '10'); - 0 - - N - Y - N - - - - - - - - - - 464 - 224 - Y - - - - - - - N - -
diff --git a/mappings_old/country/total_registered.subpoenas.ktr b/mappings_old/country/total_registered.subpoenas.ktr deleted file mode 100644 index 9d7d941..0000000 --- a/mappings_old/country/total_registered.subpoenas.ktr +++ /dev/null @@ -1,1492 +0,0 @@ - - - - total_registered.subpoenas - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.subpoena - subpoena-dbhost - POSTGRESQL - Native - subpoena-dbname - 5555 - subpoena-dbuser - Encrypted 2beebdaaa1ac8978aaa54aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 5555 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input (subpoena)РФ/рег - Insert / update (total_registered.subpoenas) - N - - - Table input (subpoena) РФ/не рег - Insert / update (total_registered.subpoenas) 3 - N - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Table input (subpoena)РФ/рег - Get variables 3 2 2 - Y - - - Select values 3 2 2 - Insert / update (total_registered.subpoenas) - Y - - - Table input (subpoena) РФ/не рег - Get variables 3 2 2 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.subpoenas) 3 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 640 - 208 - Y - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 640 - 384 - Y - - - - Insert / update (total_registered.subpoenas) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered -
subpoenas
- - REG_ID - recruitment_id - = - - - - mil_reg - mil_reg - = - - - - subpoena - count_subpoena - Y - - - appeared - count_appeared - Y - - - average_appeared - average_appeared - Y - - - not_appeared - count_not_appeared - Y - - - not_ap_good_reason - count_not_ap_good_reason - Y - - - introduced_measures - count_introduced_measures - Y - - - ap_not_required - count_ap_not_required - Y - - - electron - count_electron - Y - - - paper - count_paper - Y - - - restrictions_applied - count_restrictions_applied - Y - - - recruitment_id - recruitment_id - N - - - mil_reg - mil_reg - N - - - appeared_percent - appeared_percent - Y - - - not_appeared_percent - not_appeared_percent - Y - - - not_ap_good_reason_percent - not_ap_good_reason_percent - Y - - - ap_not_required_percent - ap_not_required_percent - Y - - - electron_percent - electron_percent - Y - - - paper_percent - paper_percent - Y - - - restrictions_applied_percent - restrictions_applied_percent - Y - - - introduced_measures_percent - introduced_measures_percent - Y - - - count_not_delivery - count_not_delivery - Y - - - appear_date_is_good - appear_date_is_good - Y - - - not_delivery_percent - not_delivery_percent - Y - - - appear_date_is_good_percent - appear_date_is_good_percent - Y - - - - - - - - - - - - 880 - 144 - Y - - - - Insert / update (total_registered.subpoenas) 3 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered - subpoenas
- - REG_ID - recruitment_id - = - - - - mil_reg - mil_reg - = - - - - subpoena - count_subpoena - Y - - - appeared - count_appeared - Y - - - average_appeared - average_appeared - Y - - - not_appeared - count_not_appeared - Y - - - not_ap_good_reason - count_not_ap_good_reason - Y - - - introduced_measures - count_introduced_measures - Y - - - ap_not_required - count_ap_not_required - Y - - - electron - count_electron - Y - - - paper - count_paper - Y - - - restrictions_applied - count_restrictions_applied - Y - - - recruitment_id - recruitment_id - N - - - mil_reg - mil_reg - N - - - appeared_percent - appeared_percent - Y - - - not_appeared_percent - not_appeared_percent - Y - - - not_ap_good_reason_percent - not_ap_good_reason_percent - Y - - - ap_not_required_percent - ap_not_required_percent - Y - - - electron_percent - electron_percent - Y - - - paper_percent - paper_percent - Y - - - restrictions_applied_percent - restrictions_applied_percent - Y - - - introduced_measures_percent - introduced_measures_percent - Y - - - count_not_delivery - count_not_delivery - Y - - - appear_date_is_good - appear_date_is_good - Y - - - not_delivery_percent - not_delivery_percent - Y - - - appear_date_is_good_percent - appear_date_is_good_percent - Y - -
- - - - - - - - - - 880 - 304 - Y - -
- - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 784 - 208 - Y - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 784 - 384 - Y - - - - Table input (subpoena) РФ/не рег - TableInput - - Y - - 1 - - none - - - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn -- добавляем строку для получения последнего статуса - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '1' - and ssh.code not in ('3.14','3.7','3.72', '3.71') -), --- фильтруем только последние статусы для каждой повестки -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -- выбираем только последнюю запись для каждой повестки -), --- Подсчет различных метрик -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( -- количество повесток по которым применены ограничения - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( -- количество повесток по которым введены меры - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery --не вручена - FROM last_status - WHERE d_code is null -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') - ) -SELECT - t1.count_subpoena, - t2.average_appeared, - t3.count_appeared, - t4.count_not_appeared, - t5.count_not_ap_good_reason, - t6.count_ap_not_required, - t7.count_restrictions_applied, - t8.count_introduced_measures, - t9.count_paper, - t10.count_electron, - t11.count_restrictions, - t12.count_not_delivery, - t13.appear_date_is_good, - ROUND(count_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS appeared_percent, - ROUND(count_not_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(count_not_ap_good_reason * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(count_ap_not_required * 100.0 / NULLIF(count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(count_electron * 100.0 / NULLIF(count_subpoena, 0), 2) AS electron_percent, - ROUND(count_paper * 100.0 / NULLIF(count_subpoena, 0), 2) AS paper_percent, - ROUND(count_restrictions_applied * 100.0 / NULLIF(count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(count_introduced_measures * 100.0 / NULLIF(count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(count_not_delivery * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_delivery_percent, --процент не врученных - ROUND(appear_date_is_good * 100.0 / NULLIF(count_subpoena, 0), 2) AS appear_date_is_good_percent, --процент не врученных - '${REG_ID}' AS recruitment_id, - 1 AS org, - 0 AS mil_reg -FROM t1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1 -FULL OUTER JOIN t7 ON 1 = 1 -FULL OUTER JOIN t8 ON 1 = 1 -FULL OUTER JOIN t9 ON 1 = 1 -FULL OUTER JOIN t10 ON 1 = 1 -FULL OUTER JOIN t11 ON 1 = 1 -FULL OUTER JOIN t12 ON 1 = 1 -FULL OUTER JOIN t13 ON 1 = 1; - 0 - - N - Y - N - - - - - - - - - - 544 - 304 - Y - - - - Table input (subpoena)РФ/рег - TableInput - - Y - - 1 - - none - - - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn -- добавляем строку для получения последнего статуса - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type != '1' - and ssh.code not in ('3.14','3.7','3.72', '3.71') -), --- фильтруем только последние статусы для каждой повестки -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -- выбираем только последнюю запись для каждой повестки -), --- Подсчет различных метрик -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( -- количество повесток по которым применены ограничения - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( -- количество повесток по которым введены меры - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery --не вручена - FROM last_status - WHERE d_code is null -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') - ) -SELECT - t1.count_subpoena, - t2.average_appeared, - t3.count_appeared, - t4.count_not_appeared, - t5.count_not_ap_good_reason, - t6.count_ap_not_required, - t7.count_restrictions_applied, - t8.count_introduced_measures, - t9.count_paper, - t10.count_electron, - t11.count_restrictions, - t12.count_not_delivery, - t13.appear_date_is_good, - ROUND(count_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS appeared_percent, - ROUND(count_not_appeared * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(count_not_ap_good_reason * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(count_ap_not_required * 100.0 / NULLIF(count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(count_electron * 100.0 / NULLIF(count_subpoena, 0), 2) AS electron_percent, - ROUND(count_paper * 100.0 / NULLIF(count_subpoena, 0), 2) AS paper_percent, - ROUND(count_restrictions_applied * 100.0 / NULLIF(count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(count_introduced_measures * 100.0 / NULLIF(count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(count_not_delivery * 100.0 / NULLIF(count_subpoena, 0), 2) AS not_delivery_percent, --процент не врученных - ROUND(appear_date_is_good * 100.0 / NULLIF(count_subpoena, 0), 2) AS appear_date_is_good_percent, --процент не врученных - '${REG_ID}' AS recruitment_id, - 1 AS org, - 1 AS mil_reg -FROM t1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1 -FULL OUTER JOIN t7 ON 1 = 1 -FULL OUTER JOIN t8 ON 1 = 1 -FULL OUTER JOIN t9 ON 1 = 1 -FULL OUTER JOIN t10 ON 1 = 1 -FULL OUTER JOIN t11 ON 1 = 1 -FULL OUTER JOIN t12 ON 1 = 1 -FULL OUTER JOIN t13 ON 1 = 1; - 0 - - N - Y - N - - - - - - - - - - 544 - 144 - Y - - - - - - - N - -
diff --git a/mappings_old/info_recruits/child.ktr b/mappings_old/info_recruits/child.ktr deleted file mode 100644 index b32760d..0000000 --- a/mappings_old/info_recruits/child.ktr +++ /dev/null @@ -1,653 +0,0 @@ - - - - child - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Table output - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - with child as -(select jsonb_array_elements(ri.info->'svedDeti'->'rebenok') ch, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array') -select - r.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'->'dataRozhdDok'->>'nomerZapis' birth_az_number -from public.recruits r -join child on r.id = child.recruit_id - 0 - - N - N - N - - - - - - - - - - 208 - 208 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
citizen_child
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 416 - 208 - Y - - - - - - - N - -
diff --git a/mappings_old/info_recruits/citizen_foreign.ktr b/mappings_old/info_recruits/citizen_foreign.ktr deleted file mode 100644 index 1a6a6f4..0000000 --- a/mappings_old/info_recruits/citizen_foreign.ktr +++ /dev/null @@ -1,736 +0,0 @@ - - - - citizen_foreign - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Table output - Y - - - Table input 2 - Table output 2 - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - with citizen as -(select jsonb_array_elements(ri.info->'svedIGPP'->'svedIG') cit, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedIGPP'->'svedIG') = 'array') -select - r.id recruit_id, - cit->'oksm'->>'naimOKSM' country_name, - cit->>'osnovPriobrIG' citizenship_basis, - to_date(cit->>'dataPriobrIG', 'YYYY-MM-DD') citizenship_date -from public.recruits r -join citizen on r.id = citizen.recruit_id; - 0 - - N - N - N - - - - - - - - - - 208 - 208 - Y - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - with citizen as -(select jsonb_array_elements(ri.info->'svedIGPP'->'svedPP') cit, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedIGPP'->'svedPP') = 'array') -select - r.id recruit_id, - cit->'oksm'->>'naimOKSM' country_name, - cit->>'osnovPriobrPP' residense_right_basis, - to_date(cit->>'dataPriobrPP', 'YYYY-MM-DD') residense_right_date -from public.recruits r -join citizen on r.id = citizen.recruit_id; - 0 - - N - N - N - - - - - - - - - - 208 - 304 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
citizenship_foreign
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 672 - 208 - Y - - - - Table output 2 - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard - citizenship_foreign
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 672 - 304 - Y - -
- - - - - N - -
diff --git a/mappings_old/info_recruits/citizenship.ktr b/mappings_old/info_recruits/citizenship.ktr deleted file mode 100644 index 525c141..0000000 --- a/mappings_old/info_recruits/citizenship.ktr +++ /dev/null @@ -1,645 +0,0 @@ - - - - citizenship - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Table output - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - select r.id recruit_id, -ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'osnPriob' acquiring_basis, -ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshPriob' acquiring_number, -to_date(ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'dataReshPriob', 'YYYY-MM-DD') acquiring_date, -ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'organReshPriob' acquiring_authority, -ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'osnVyh' renunciation_basis, -ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshVyh' renunciation_number, -to_date(ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'dataReshVyh', 'YYYY-MM-DD') renunciation_date, -ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'organReshVyh' renunciation_authority -from public.recruits_info ri -join public.recruits r ON ri.recruit_id = r.id -where ri.info->'svedGrazhdanRF'->>'prOtsGrazhdanRF' is null and -(ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshPriob' is not null or ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'osnVyh' is not null) - 0 - - N - N - N - - - - - - - - - - 432 - 224 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
citizenship
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 672 - 224 - Y - - - - - - - N - -
diff --git a/mappings_old/info_recruits/deputy.ktr b/mappings_old/info_recruits/deputy.ktr deleted file mode 100644 index 9b5728c..0000000 --- a/mappings_old/info_recruits/deputy.ktr +++ /dev/null @@ -1,726 +0,0 @@ - - - - deputy - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Table output - Y - - - Table input 2 - Table output 2 - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - select r.id recruit_id, -ri.info->'svedDeputat'->'deputat'->>'srokiPolnomochii' period_office, -to_date(ri.info->'svedDeputat'->'deputat'->>'dataDosrochPrekr', 'YYYY-MM-DD') end_date, -ri.info->'svedDeputat'->'deputat'->>'svedIzbrDeputatom' information -from public.recruits_info ri -join public.recruits r ON ri.recruit_id = r.id -where ri.info->'svedDeputat'->'deputat'->>'svedIzbrDeputatom' is not null; - 0 - - N - N - N - - - - - - - - - - 432 - 224 - Y - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - select r.id recruit_id, -to_date(ri.info->'svedKandidat'->'kandidat'->>'dataSnyatiyaKandidatury', 'YYYY-MM-DD') end_date, -ri.info->'svedKandidat'->'kandidat'->>'svedRegKandidata' information, -false deputy -from public.recruits_info ri -join public.recruits r ON ri.recruit_id = r.id -where ri.info->'svedKandidat'->'kandidat'->>'svedRegKandidata' is not null; - 0 - - N - N - N - - - - - - - - - - 432 - 320 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
deputy
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 800 - 224 - Y - - - - Table output 2 - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard - deputy
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 800 - 320 - Y - -
- - - - - N - -
diff --git a/mappings_old/info_recruits/disability.ktr b/mappings_old/info_recruits/disability.ktr deleted file mode 100644 index 136fb7d..0000000 --- a/mappings_old/info_recruits/disability.ktr +++ /dev/null @@ -1,735 +0,0 @@ - - - - disability - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Table output - Y - - - Table input 2 - Table output 2 - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - select - r.id recruit_id, - case when ri.info->'svedInvalid'->'invalid'->>'gruppa'='1' then 'I группа' - when ri.info->'svedInvalid'->'invalid'->>'gruppa'='2' then 'II группа' - when ri.info->'svedInvalid'->'invalid'->>'gruppa'='3' then 'III группа' - when ri.info->'svedInvalid'->'invalid'->>'gruppa'='4' then 'ребенок-инвалид' - end disability_group, - ri.info->'svedInvalid'->'invalid'->>'ustanOrg' organization_name, - to_date(ri.info->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataUstan', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataSnyat', 'YYYY-MM-DD') close_date, - to_date(ri.info->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataPodtverzhdPlan', 'YYYY-MM-DD') confirmation_date, - true disability -from public.recruits r -join public.recruits_info ri on r.id = ri.recruit_id -where ri.info->'svedInvalid'->'invalid'->>'gruppa' is not null; - 0 - - N - N - N - - - - - - - - - - 208 - 208 - Y - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - select - r.id recruit_id, - ri.info->'svedNedeesp'->'nedeesposob'->>'naimSud' organization_name, - to_date(ri.info->'svedNedeesp'->'nedeesposob'->>'dataPrisv', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedNedeesp'->'nedeesposob'->>'dataOtmeny', 'YYYY-MM-DD') close_date -from public.recruits r -join public.recruits_info ri on r.id = ri.recruit_id -where ri.info->'svedNedeesp'->'nedeesposob'->>'naimSud' is not null; - 0 - - N - N - N - - - - - - - - - - 208 - 304 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
disability
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 416 - 208 - Y - - - - Table output 2 - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard - disability
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 416 - 304 - Y - -
- - - - - N - -
diff --git a/mappings_old/info_recruits/disease.ktr b/mappings_old/info_recruits/disease.ktr deleted file mode 100644 index 9dd33bb..0000000 --- a/mappings_old/info_recruits/disease.ktr +++ /dev/null @@ -1,644 +0,0 @@ - - - - disease - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Table output - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - with zdorov as -(select jsonb_array_elements(ri.info->'svedSostZdorov'->'svedZdorov'->'sostZdorov') z, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedSostZdorov'->'svedZdorov'->'sostZdorov') = 'array') -select - r.id recruit_id, - z->>'kodZabol' code, - z->>'naimZabol' name, - to_date(z->>'dataDiagn', 'YYYY-MM-DD') reg_date -from public.recruits r -join zdorov on r.id = zdorov.recruit_id; - 0 - - N - N - N - - - - - - - - - - 208 - 208 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
disease
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 416 - 208 - Y - - - - - - - N - -
diff --git a/mappings_old/info_recruits/drivers_licence.ktr b/mappings_old/info_recruits/drivers_licence.ktr deleted file mode 100644 index 70cba5b..0000000 --- a/mappings_old/info_recruits/drivers_licence.ktr +++ /dev/null @@ -1,743 +0,0 @@ - - - - drivers_licence - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Table output - Y - - - Table input 2 - Table output 2 - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - select - r.id recruit_id, - ri.info->'svedVoditUdost'->'voditUdost'->>'serVodUd' licence_series, - ri.info->'svedVoditUdost'->'voditUdost'->>'nomVodUd' licence_number, - to_date(ri.info->'svedVoditUdost'->'voditUdost'->>'dataVodUd', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedVoditUdost'->'voditUdost'->>'srokVodUd', 'YYYY-MM-DD') close_date, - array_to_string(array( - select kat->>'kategoriya' - from jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') as kat - where jsonb_typeof(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array'), ',') categories -from public.recruits r -join public.recruits_info ri on r.id = ri.recruit_id -where ri.info->'svedVoditUdost'->'voditUdost'->>'serVodUd' is not null; - 0 - - N - N - N - - - - - - - - - - 208 - 208 - Y - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - select - r.id recruit_id, - ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'serUTM' licence_series, - ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'nomUTM' licence_number, - to_date(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataVydUTM', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataOkonchUTM', 'YYYY-MM-DD') close_date, - to_date(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataIztUTM', 'YYYY-MM-DD') seizure_date, - to_date(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataZamUTM', 'YYYY-MM-DD') replacement_date, - to_date(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataVozUTM', 'YYYY-MM-DD') return_date, - array_to_string(array( - select kat->>'kategoriya' - from jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') as kat - where jsonb_typeof(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array'), ',') categories, - true tractor_driver -from public.recruits r -join public.recruits_info ri on r.id = ri.recruit_id -where ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'serUTM' is not null; - - 0 - - N - N - N - - - - - - - - - - 208 - 304 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
drivers_licence
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 416 - 208 - Y - - - - Table output 2 - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard - drivers_licence
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 416 - 304 - Y - -
- - - - - N - -
diff --git a/mappings_old/info_recruits/info_recruits.ktr b/mappings_old/info_recruits/info_recruits.ktr deleted file mode 100644 index 32c0543..0000000 --- a/mappings_old/info_recruits/info_recruits.ktr +++ /dev/null @@ -1,751 +0,0 @@ - - - - info_recruits - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Select values 4 - Table output - Y - - - Table input - Select values 4 - Y - - - - Select values 4 - SelectValues - - Y - - 1 - - none - - - - N - - issue_date - issue_date - Date - -2 - -2 - yyyy-MM-dd - false - - - false - - - - - - - - - - - - - - - - - 448 - 208 - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - SELECT -full_name, -last_name, -first_name, -middle_name, -gender, -birth_date, -extract(year from age(birth_date)) age, -birth_place, -phone, ---system_id_ern, - -CASE WHEN (EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - )) THEN 'Высшее' - WHEN (EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' = '10' - )) THEN 'Среднее профессиональное' - WHEN (EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('7', '9') - )) THEN 'Общее' - WHEN ((ri.info->'svedRObr'->>'prOtsRObr' = '1' OR ri.info->'svedInObr'->>'prOtsInObr' = '1')) THEN 'Нет данных' -END education, -ri.info->'svedSemPolozh'->>'semPolozhNaim' marital_status, -(SELECT COUNT(*) - FROM jsonb_array_elements(ri.info->'svedDeti'->'rebenok') AS childs - WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND age(make_date(NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'den','')::int)) < make_interval(years => 18) -) number_children, -(SELECT COUNT(*) - FROM jsonb_array_elements(ri.info->'svedDeti'->'rebenok') AS childs - WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND age(make_date(NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'den','')::int)) >= make_interval(years => 18) -) number_children_18_old, -ri.info->'pasportRF'->'aktPasportRF'->>'nomDok' passport_number, -ri.info->'pasportRF'->'aktPasportRF'->>'serDok' passport_series, -ri.info->'svedVoin'->'voin'->>'dataReg' issue_date, -ri.recruit_id, --id рекрута -r.target_recruitment_id as recruitment_id -FROM public.recruits_info ri -JOIN public.recruits r ON ri.recruit_id = r.id - 0 - - N - N - N - - - - - - - - - - 208 - 208 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
citizen
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 672 - 208 - Y - - - - - - - N - -
diff --git a/mappings_old/info_recruits/job_info_recruits.kjb b/mappings_old/info_recruits/job_info_recruits.kjb deleted file mode 100644 index f5872bf..0000000 --- a/mappings_old/info_recruits/job_info_recruits.kjb +++ /dev/null @@ -1,1811 +0,0 @@ - - - job_info_recruits - - - - 0 - / - - - 2024/08/16 15:32:20.489 - - - 2024/08/16 15:32:20.489 - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - - ervu-dashboard - public - job_log
- - - - - ID_JOB - Y - ID_JOB - - - CHANNEL_ID - Y - CHANNEL_ID - - - JOBNAME - Y - JOBNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - START_JOB_ENTRY - N - START_JOB_ENTRY - - - CLIENT - N - CLIENT - -
- - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - JOBNAME - Y - TRANSNAME - - - JOBENTRYNAME - Y - STEPNAME - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - RESULT - Y - RESULT - - - NR_RESULT_ROWS - Y - NR_RESULT_ROWS - - - NR_RESULT_FILES - Y - NR_RESULT_FILES - - - LOG_FIELD - N - LOG_FIELD - - - COPY_NR - N - COPY_NR - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - N - - - - Start - - SPECIAL - - Y - N - N - 0 - 0 - 60 - 12 - 0 - 1 - 1 - N - Y - 0 - 368 - 624 - - - - Success - - SUCCESS - - N - Y - 0 - 1056 - 624 - - - - info_recruits - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/info_recruits.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 256 - - - - SQL.ri - - SQL - - delete from ervu_dashboard.citizen - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 256 - - - - SQL.opekun - - SQL - - delete from ervu_dashboard.citizen_guardianship - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 192 - - - - SQL.spouse - - SQL - - delete from ervu_dashboard.citizen_spouse - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 320 - - - - SQL.child - - SQL - - delete from ervu_dashboard.citizen_child - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 384 - - - - opekun - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/opekun.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 192 - - - - spouse - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/spouse.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 320 - - - - child - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/child.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 384 - - - - SQL.disease - - SQL - - delete from ervu_dashboard.disease - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 448 - - - - disease - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/disease.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 448 - - - - SQL.medical_authorities - - SQL - - delete from ervu_dashboard.medical_authorities - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 512 - - - - medical_authorities - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/medical_authorities.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 512 - - - - SQL.disability - - SQL - - delete from ervu_dashboard.disability - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 576 - - - - disability - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/disability.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 576 - - - - SQL.drivers_licence - - SQL - - delete from ervu_dashboard.drivers_licence - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 640 - - - - drivers_licence - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/drivers_licence.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 640 - - - - SQL.property - - SQL - - delete from ervu_dashboard.property - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 704 - - - - property - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/property.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 704 - - - - SQL.citizen_foreign - - SQL - - delete from ervu_dashboard.citizenship_foreign - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 768 - - - - citizen_foreign - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/citizen_foreign.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 768 - - - - SQL.citizenship - - SQL - - delete from ervu_dashboard.citizenship - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 832 - - - - citizenship - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/citizenship.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 832 - - - - SQL.deputy - - SQL - - delete from ervu_dashboard.deputy - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 896 - - - - deputy - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/deputy.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 896 - - - - SQL.prosecution - - SQL - - delete from ervu_dashboard.prosecution - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 960 - - - - prosecution - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/prosecution.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 960 - - - - SQL.punishment - - SQL - - delete from ervu_dashboard.punishment - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 1024 - - - - punishment - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/punishment.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 1024 - - - - SQL.passport - - SQL - - delete from ervu_dashboard.passport - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 1088 - - - - passport - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/passport.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 1088 - - - - SQL.subpoena - - SQL - - delete from ervu_dashboard.subpoena - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 1152 - - - - subpoena - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/subpoena.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 1152 - - - - SQL.tempmeas - - SQL - - delete from ervu_dashboard.temporary_measures - F - F - - F - ervu-dashboard - N - Y - 0 - 640 - 1216 - - - - temporary_measure - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/temporary_measure.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 784 - 1216 - - - - - - info_recruits - Success - 0 - 0 - Y - Y - N - - - Start - SQL.ri - 0 - 0 - Y - Y - Y - - - SQL.ri - info_recruits - 0 - 0 - Y - Y - N - - - SQL.opekun - opekun - 0 - 0 - Y - Y - N - - - SQL.spouse - spouse - 0 - 0 - Y - Y - N - - - SQL.child - child - 0 - 0 - Y - Y - N - - - child - Success - 0 - 0 - Y - Y - N - - - spouse - Success - 0 - 0 - Y - Y - N - - - opekun - Success - 0 - 0 - Y - Y - N - - - Start - SQL.opekun - 0 - 0 - Y - Y - Y - - - Start - SQL.spouse - 0 - 0 - Y - Y - Y - - - Start - SQL.child - 0 - 0 - Y - Y - Y - - - Start - SQL.disease - 0 - 0 - Y - Y - Y - - - SQL.disease - disease - 0 - 0 - Y - Y - N - - - Start - SQL.medical_authorities - 0 - 0 - Y - Y - Y - - - SQL.medical_authorities - medical_authorities - 0 - 0 - Y - Y - N - - - disease - Success - 0 - 0 - Y - Y - N - - - medical_authorities - Success - 0 - 0 - Y - Y - N - - - Start - SQL.disability - 0 - 0 - Y - Y - Y - - - SQL.disability - disability - 0 - 0 - Y - Y - N - - - disability - Success - 0 - 0 - Y - Y - N - - - Start - SQL.drivers_licence - 0 - 0 - Y - Y - Y - - - SQL.drivers_licence - drivers_licence - 0 - 0 - Y - Y - N - - - drivers_licence - Success - 0 - 0 - Y - Y - N - - - Start - SQL.property - 0 - 0 - Y - Y - Y - - - SQL.property - property - 0 - 0 - Y - Y - N - - - property - Success - 0 - 0 - Y - Y - N - - - Start - SQL.citizen_foreign - 0 - 0 - Y - Y - Y - - - SQL.citizen_foreign - citizen_foreign - 0 - 0 - Y - Y - N - - - citizen_foreign - Success - 0 - 0 - Y - Y - N - - - SQL.citizenship - citizenship - 0 - 0 - Y - Y - N - - - citizenship - Success - 0 - 0 - Y - Y - N - - - Start - SQL.citizenship - 0 - 0 - Y - Y - Y - - - SQL.deputy - deputy - 0 - 0 - Y - Y - N - - - deputy - Success - 0 - 0 - Y - Y - N - - - Start - SQL.deputy - 0 - 0 - Y - Y - Y - - - SQL.prosecution - prosecution - 0 - 0 - Y - Y - N - - - Start - SQL.prosecution - 0 - 0 - Y - Y - Y - - - prosecution - Success - 0 - 0 - Y - Y - N - - - SQL.punishment - punishment - 0 - 0 - Y - Y - N - - - Start - SQL.punishment - 0 - 0 - Y - Y - Y - - - punishment - Success - 0 - 0 - Y - Y - N - - - Start - SQL.passport - 0 - 0 - Y - Y - Y - - - SQL.passport - passport - 0 - 0 - Y - Y - N - - - passport - Success - 0 - 0 - Y - Y - N - - - SQL.subpoena - subpoena - 0 - 0 - Y - Y - N - - - subpoena - Success - 0 - 0 - Y - Y - N - - - Start - SQL.subpoena - 0 - 0 - Y - Y - Y - - - SQL.tempmeas - temporary_measure - 0 - 0 - Y - Y - N - - - Start - SQL.tempmeas - 0 - 0 - Y - Y - Y - - - temporary_measure - Success - 0 - 0 - Y - Y - N - - - - - - - METASTORE.pentaho - - Default Run Configuration - {"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null} - - - - {"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"} - - Pentaho local - {"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"pentaho","value":"N"},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]} - - - - diff --git a/mappings_old/info_recruits/medical_authorities.ktr b/mappings_old/info_recruits/medical_authorities.ktr deleted file mode 100644 index b8044f8..0000000 --- a/mappings_old/info_recruits/medical_authorities.ktr +++ /dev/null @@ -1,736 +0,0 @@ - - - - medical_authorities - - - - Normal - / - - - - - - -
- - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input hiv - Table output - Y - - - Table input 2 - Table output 2 - Y - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - with uchet as -(select jsonb_array_elements(ri.info->'svedPND'->'svedUchetDisp'->'svedUchet') u, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedPND'->'svedUchetDisp'->'svedUchet') = 'array') -select - r.id recruit_id, - u->>'dataPostUchet' start_date, - u->>'dataSnyatUchet' close_date, - u->>'dataPlan' change_date -from public.recruits r -join uchet on r.id = uchet.recruit_id; - 0 - - N - N - N - - - - - - - - - - 208 - 352 - Y - - - - Table input hiv - TableInput - - Y - - 1 - - none - - - ervu_person_registry - with uchet as -(select jsonb_array_elements(ri.info->'svedUchetVICH'->'uchetVICH') u, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedUchetVICH'->'uchetVICH') = 'array') -select - r.id recruit_id, - to_date(u->>'dataPostUchet', 'YYYY-MM-DD') start_date, - to_date(u->>'dataSnyat', 'YYYY-MM-DD') close_date, - true HIV -from public.recruits r -join uchet on r.id = uchet.recruit_id; - 0 - - N - N - N - - - - - - - - - - 208 - 208 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
medical_authorities
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 416 - 208 - Y - - - - Table output 2 - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard - medical_authorities
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 416 - 352 - Y - -
- - - - - N - - diff --git a/mappings_old/info_recruits/opekun.ktr b/mappings_old/info_recruits/opekun.ktr deleted file mode 100644 index d3a7ba7..0000000 --- a/mappings_old/info_recruits/opekun.ktr +++ /dev/null @@ -1,648 +0,0 @@ - - - - opekun - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Table output - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - with person as -(select jsonb_array_elements(ri.info->'svedOpekun'->'svedSoczPod') ch, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedOpekun'->'svedSoczPod') = 'array') -select - r.id 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 public.recruits r -join person on r.id = person.recruit_id - 0 - - N - N - N - - - - - - - - - - 208 - 208 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
citizen_guardianship
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 416 - 208 - Y - - - - - - - N - -
diff --git a/mappings_old/info_recruits/passport.ktr b/mappings_old/info_recruits/passport.ktr deleted file mode 100644 index c8f0a78..0000000 --- a/mappings_old/info_recruits/passport.ktr +++ /dev/null @@ -1,736 +0,0 @@ - - - - passport - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Table output - Y - - - Table input 2 - Table output 2 - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - select r.id recruit_id, -ri.info->'pasportRF'->'aktPasportRF'->>'nomDok' passport_number, -ri.info->'pasportRF'->'aktPasportRF'->>'serDok' passport_series, -ri.info->'pasportRF'->'aktPasportRF'->>'vydDok' organization_name, -ri.info->'pasportRF'->'aktPasportRF'->>'kodVydDok' unit_code, -to_date(ri.info->'pasportRF'->'aktPasportRF'->>'dataDok', 'YYYY-MM-DD') issue_date, -case when ri.info->'pasportRF'->'aktPasportRF'->>'kodStatus'='1' then true -else false -end actual -from public.recruits_info ri -join public.recruits r ON ri.recruit_id = r.id -where ri.info->'pasportRF'->'aktPasportRF'->>'nomDok' is not null; - 0 - - N - N - N - - - - - - - - - - 208 - 208 - Y - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - select r.id recruit_id, -ri.info->'pasportRF'->'predPasportRF'->>'nomDok' passport_number, -ri.info->'pasportRF'->'predPasportRF'->>'serDok' passport_series, -ri.info->'pasportRF'->'predPasportRF'->>'vydDok' organization_name, -ri.info->'pasportRF'->'predPasportRF'->>'kodVydDok' unit_code, -to_date(ri.info->'pasportRF'->'predPasportRF'->>'dataDok', 'YYYY-MM-DD') issue_date, -case when ri.info->'pasportRF'->'predPasportRF'->>'kodStatus'='1' then true -else false -end actual -from public.recruits_info ri -join public.recruits r ON ri.recruit_id = r.id -where ri.info->'pasportRF'->'predPasportRF'->>'nomDok' is not null; - 0 - - N - N - N - - - - - - - - - - 208 - 304 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
passport
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 672 - 208 - Y - - - - Table output 2 - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard - passport
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 672 - 304 - Y - -
- - - - - N - -
diff --git a/mappings_old/info_recruits/property.ktr b/mappings_old/info_recruits/property.ktr deleted file mode 100644 index 938d0ec..0000000 --- a/mappings_old/info_recruits/property.ktr +++ /dev/null @@ -1,931 +0,0 @@ - - - - property - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Table output - Y - - - Table input 2 - Table output 2 - Y - - - Table input 2 2 - Table output 2 2 - Y - - - Table input 2 2 2 - Table output 2 2 2 - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - with prop as -(select jsonb_array_elements(ri.info->'svedON'->'on') u, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedON'->'on') = 'array') -select - r.id recruit_id, - u->>'naimVidPrav' kind_right, - u->'adrObSob'->>'adrObSobTekst' address, - to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, - to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, - 'realty' type_property -from public.recruits r -join prop on r.id = prop.recruit_id; - 0 - - N - N - N - - - - - - - - - - 480 - 208 - Y - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - with prop as -(select jsonb_array_elements(ri.info->'svedNazTS'->'nazTS') u, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedNazTS'->'nazTS') = 'array') -select - r.id recruit_id, - u->>'vidTS' vehicle_type, - u->>'godVyp' issue_year, - u->>'markaTS' brand_model, - u->>'gosRegZn' reg_plate, - u->>'idenNom' vin, - to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, - to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, - 'ground_transportation' type_property -from public.recruits r -join prop on r.id = prop.recruit_id; - 0 - - N - N - N - - - - - - - - - - 480 - 304 - Y - - - - Table input 2 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - with prop as -(select jsonb_array_elements(ri.info->'svedVozTS'->'vozTS') u, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedVozTS'->'vozTS') = 'array') -select - r.id recruit_id, - u->>'naimVid' vehicle_type, - u->>'naznKat' vehicle_category, - to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, - to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, - 'air_vehicles' type_property -from public.recruits r -join prop on r.id = prop.recruit_id; - 0 - - N - N - N - - - - - - - - - - 480 - 384 - Y - - - - Table input 2 2 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - with prop as -(select jsonb_array_elements(ri.info->'svedVozTS'->'vozTS') u, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedVozTS'->'vozTS') = 'array') -select - r.id recruit_id, - u->>'naimVid' vehicle_type, - u->>'naznKat' vehicle_category, - to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, - to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, - 'air_vehicles' type_property -from public.recruits r -join prop on r.id = prop.recruit_id; - 0 - - N - N - N - - - - - - - - - - 480 - 464 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
property
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 688 - 208 - Y - - - - Table output 2 - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard - property
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 688 - 304 - Y - -
- - Table output 2 2 - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard - property
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 688 - 384 - Y - -
- - Table output 2 2 2 - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard - property
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 688 - 464 - Y - -
- - - - - N - -
diff --git a/mappings_old/info_recruits/prosecution.ktr b/mappings_old/info_recruits/prosecution.ktr deleted file mode 100644 index f6df857..0000000 --- a/mappings_old/info_recruits/prosecution.ktr +++ /dev/null @@ -1,647 +0,0 @@ - - - - prosecution - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Table output - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - with ugol as -(select jsonb_array_elements(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') u, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') = 'array') -select - r.id recruit_id, - u->>'vidPreslNaim' kind, - to_date(u->>'dataSved', 'YYYY-MM-DD') create_date, - to_date(u->>'dataPrekrashh', 'YYYY-MM-DD') close_date, - u->>'naimOrgan' authority_name, - u->>'ugolovZakon' law_point, - u->>'osnovPrekrashh' termination_basis -from public.recruits r -join ugol on r.id = ugol.recruit_id; - 0 - - N - N - N - - - - - - - - - - 528 - 304 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
prosecution
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 736 - 304 - Y - - - - - - - N - -
diff --git a/mappings_old/info_recruits/punishment.ktr b/mappings_old/info_recruits/punishment.ktr deleted file mode 100644 index 683edcb..0000000 --- a/mappings_old/info_recruits/punishment.ktr +++ /dev/null @@ -1,652 +0,0 @@ - - - - punishment - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Table output - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - with ugol as -(select jsonb_array_elements(ri.info->'svedSudim'->'sudim'->'osuzhdenie') u, - ri.recruit_id -from public.recruits_info ri -where jsonb_typeof(ri.info->'svedSudim'->'sudim'->'osuzhdenie') = 'array') -select - r.id recruit_id, - u->>'naimSuda' authority_name, - u->>'srokNakaz' sentence, - u->>'adresNakaz' sentence_place, - u->>'kodVidNakaz' punishment_code, - u->>'izmSrokNakaz' sentence_changed, - u->>'naimVidNakaz' punishment_type, - to_date(u->>'dataNachSrok', 'YYYY-MM-DD') start_date, - to_date(u->>'dataOsvobozhd', 'YYYY-MM-DD') release_date, - to_date(u->>'dataOsuzhd', 'YYYY-MM-DD') sentense_date, - u->>'ugolovZakon' law_point, - u->>'osnovOsvobozhd' release_reason -from public.recruits r -join ugol on r.id = ugol.recruit_id; - 0 - - N - N - N - - - - - - - - - - 528 - 304 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
punishment
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 736 - 304 - Y - - - - - - - N - -
diff --git a/mappings_old/info_recruits/spouse.ktr b/mappings_old/info_recruits/spouse.ktr deleted file mode 100644 index 2d27d4a..0000000 --- a/mappings_old/info_recruits/spouse.ktr +++ /dev/null @@ -1,742 +0,0 @@ - - - - spouse - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Select values - Table output - Y - - - Table input - Select values - Y - - - - Select values - SelectValues - - Y - - 1 - - none - - - - N - - marriage_date - marriage_date - Date - -2 - -2 - yyyy-MM-dd - false - - - false - - - - - - - - divorce_date - divorce_date - Date - -2 - -2 - yyyy-MM-dd - false - - - false - - - - - - - - - - - - - - - - - 448 - 208 - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - with suprug as -(select jsonb_array_elements(ri.info->'svedSemPolozh'->'suprugi') supr, - ri.info->'svedSemPolozh'->'svedAZBrak'->>'nomerZapis' marriage_az_number, - ri.info->'svedSemPolozh'->'svedAZBrak'->>'dataBrakKalend' marriage_date, - ri.info->'svedSemPolozh'->'svedAZRazvod'->>'nomerZapis' divorce_az_number, - ri.info->'svedSemPolozh'->'svedAZRazvod'->>'dataRastBrakKalend' divorce_date, - case when (ri.info->'svedSemPolozh'->>'svedSuprIskl' = '1') then true - else false - end information_excluded, - ri.recruit_id -from public.recruits_info ri) -select - r.id recruit_id, - supr->>'rodstvSvyazSuprugNaim' kinship_type, - concat_ws(' ', supr->'svedFLBS'->'fio'->>'familiya', - supr->'svedFLBS'->'fio'->>'imya', - supr->'svedFLBS'->'fio'->>'otchestvo') full_name, - make_date(NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(supr->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, - make_date(NULLIF(supr->'svedSmert'->>'god', '')::int, - NULLIF(supr->'svedSmert'->>'mesyacz','')::int, - NULLIF(supr->'svedSmert'->>'den','')::int) death_date, - supr->'svedSmert'->>'nomerZapis' death_az_number, - marriage_az_number, - marriage_date, - divorce_az_number, - divorce_date, - information_excluded -from public.recruits r -join suprug on r.id = suprug.recruit_id - 0 - - N - N - N - - - - - - - - - - 192 - 208 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
citizen_spouse
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 704 - 208 - Y - - - - - Select values - - N - - - - - - - - - - - - N - -
diff --git a/mappings_old/info_recruits/subpoena.ktr b/mappings_old/info_recruits/subpoena.ktr deleted file mode 100644 index 88dae36..0000000 --- a/mappings_old/info_recruits/subpoena.ktr +++ /dev/null @@ -1,691 +0,0 @@ - - - - subpoena - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.subpoena - subpoena-dbhost - POSTGRESQL - Native - subpoena-dbname - 5555 - subpoena-dbuser - Encrypted 2beebdaaa1ac8978aaa54aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 5555 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Table output - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - postgres.subpoena - SELECT - s.id AS subpoena_id, -- идентификатор повестки - s.recruit_id, -- идентификатор рекрута - s.department_id, -- идентификатор ВК - s.series, -- серия повестки - s.create_date, -- дата создания повестки - s.number, -- номер повестки - s.send_date, -- дата направления повестки - s.sig_info, -- открепленная ЭП - sr.name AS subpoena_reason, -- причина вызова по повестке - s.full_name_responsible_user AS fio_commiss, -- фио комиссара - s.recruitment_name, -- наименование военного комиссариата, направившего повестку - rt.address, -- адрес, по которому нужно явиться по повестке - s.visit_date, -- дата и время явки в ВК - ssi.track_number, -- уникальный номер заказного почтового отправления, которым направлена повестка - ss.name AS subpoena_status, -- статус повестки - ssi.act_number, -- номер акта об отказе во вручении повестки - ssi.delivery_fio, -- фио лица, оповестившего гражданина о последствиях отказа от получения повестки - CASE - WHEN ssi.is_delivered = true THEN ssi.delivery_date - ELSE NULL - END AS delivery_date, -- дата вручения - CASE - WHEN ssi.is_delivered = true THEN 'Вручена' - WHEN ssi.is_delivered = false THEN 'Не вручена' - ELSE 'Нет информации' - END AS delivery_status, -- признак вручения повестки - CASE - WHEN sd.type = 'DIRECTION' THEN sd.name - ELSE NULL - END AS method_sending, -- способ направления повестки - CASE - WHEN sd.type = 'DELIVERY' THEN sd.name - ELSE NULL - END AS method_delivery, -- способ вручения повестки - CASE - WHEN sa.fact_appearance = true THEN 'Явился' - WHEN sa.fact_appearance = false THEN 'Не явился' - ELSE 'Нет информации' - END AS appearance_status, -- признак явки или неявки - CASE - WHEN ss.code = '5.1' THEN 'Неявка по уважительной причине' - WHEN ss.code = '5' THEN 'Гражданин не явился' - ELSE NULL - END AS appearance -- уважительная или нет причина --- нет версии повестки -FROM public.subpoena AS s -LEFT JOIN public.subpoena_reason AS sr - ON sr.id = s.reason_id -LEFT JOIN public.recruitment AS rt - ON rt.id = s.department_id -LEFT JOIN public.subpoena_send_info AS ssi - ON ssi.subpoena_id = s.id -LEFT JOIN public.send_dictionary AS sd - ON sd.code = ssi.send_code -LEFT JOIN public.subpoena_status AS ss - ON ss.id = s.status_id -LEFT JOIN public.subpoena_appearance AS sa - ON sa.subpoena_id = s.id; - 0 - - N - N - N - - - - - - - - - - 208 - 208 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
subpoena
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 416 - 208 - Y - - - - - - - N - -
diff --git a/mappings_old/info_recruits/temporary_measure.ktr b/mappings_old/info_recruits/temporary_measure.ktr deleted file mode 100644 index 566fb76..0000000 --- a/mappings_old/info_recruits/temporary_measure.ktr +++ /dev/null @@ -1,674 +0,0 @@ - - - - temporary_measure - - - - Normal - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.subpoena - subpoena-dbhost - POSTGRESQL - Native - subpoena-dbname - 5555 - subpoena-dbuser - Encrypted 2beebdaaa1ac8978aaa54aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 5555 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Table output - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - postgres.subpoena - SELECT - rd.subpoena_id, - rd.vk_id AS recruitment_id, - s.recruit_id, - rds.name AS status_measure, -- статус временной меры - rd.recruitment_name, -- наименоване ВК - rdi.cancel_date, -- дата, с которой отменена временная мера - rn.name AS restriction_name, -- наименование ограничения (тип временной меры) - CASE - WHEN rd.type='CREATE' THEN 'Применение временной меры' - WHEN rd.type='CANCEL' THEN 'Отмена временной меры' - END AS type, -- тип документа ограничения - CASE - WHEN rd.type='CREATE' THEN rd.decision_number - ELSE NULL - END AS decision_number_create, -- номер решения о применении временной меры - CASE - WHEN rd.type='CANCEL' THEN rd.decision_number - ELSE NULL - END AS decision_number_cancel, -- номер решения об отмене временной меры - CASE - WHEN rd.type='CREATE' THEN rd.decision_date - ELSE NULL - END AS decision_date_create, -- дата решения о применении временной меры - CASE - WHEN rd.type='CANCEL' THEN rd.decision_date - ELSE NULL - END AS decision_date_cancel, -- дата решения об отмене временной меры - CASE - WHEN rdi.applied_fact = 'true' THEN 'Временная мера применена' - WHEN rdi.applied_fact = 'false' THEN 'Временная мера не применена' - ELSE 'Нет информации' - END AS applied_fact -- факт применения временной меры -FROM public.restriction_document AS rd -LEFT JOIN public.restriction_document_item AS rdi - ON rdi.restriction_document_create_id = rd.id -LEFT JOIN public.restriction AS rn - ON rn.id = rdi.restriction_id -LEFT JOIN public.restriction_document_status AS rds - ON rds.code = rd.status -LEFT JOIN public.subpoena AS s - ON s.id = rd.subpoena_id - 0 - - N - N - N - - - - - - - - - - 208 - 208 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
temporary_measures
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 416 - 208 - Y - - - - - - - N - -
diff --git a/mappings_old/job_general.kjb b/mappings_old/job_general.kjb deleted file mode 100644 index 1daf8c2..0000000 --- a/mappings_old/job_general.kjb +++ /dev/null @@ -1,556 +0,0 @@ - - - job_general - - - - 0 - / - - - 2024/08/21 17:23:33.592 - - - 2024/08/21 17:23:33.592 - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - - ervu-dashboard - public - job_log
- - - - - ID_JOB - Y - ID_JOB - - - CHANNEL_ID - Y - CHANNEL_ID - - - JOBNAME - Y - JOBNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - START_JOB_ENTRY - N - START_JOB_ENTRY - - - CLIENT - N - CLIENT - -
- - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - JOBNAME - Y - TRANSNAME - - - JOBENTRYNAME - Y - STEPNAME - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - RESULT - Y - RESULT - - - NR_RESULT_ROWS - Y - NR_RESULT_ROWS - - - NR_RESULT_FILES - Y - NR_RESULT_FILES - - - LOG_FIELD - N - LOG_FIELD - - - COPY_NR - N - COPY_NR - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - N - - - - Start - - SPECIAL - - Y - N - N - 0 - 0 - 60 - 12 - 0 - 1 - 1 - N - Y - 0 - 320 - 240 - - - - Success - - SUCCESS - - N - Y - 0 - 1008 - 240 - - - - job_pack.pub_recruitment - - JOB - - filename - - ${Internal.Entry.Current.Directory}/job_pack.pub_recruitment.kjb - - - N - N - N - N - - - N - N - Nothing - - Y - N - N - N - N - Pentaho local - - Y - - N - N - Y - 0 - 688 - 240 - - - - job_recruitments_all - - JOB - - filename - - ${Internal.Entry.Current.Directory}/job_recruitments_all.kjb - - - N - N - N - N - - - N - N - Nothing - - Y - N - N - N - N - Pentaho local - - Y - - N - N - Y - 0 - 848 - 240 - - - - job_last_recording_date - - JOB - - filename - - ${Internal.Entry.Current.Directory}/\recording_date\job_last_recording_date.kjb - - - N - N - N - N - - - N - N - Nothing - - Y - N - N - N - N - Pentaho local - - Y - - N - N - Y - 0 - 496 - 336 - - - - - - job_pack.pub_recruitment - job_recruitments_all - 0 - 0 - Y - Y - N - - - job_recruitments_all - Success - 0 - 0 - Y - Y - N - - - Start - job_pack.pub_recruitment - 0 - 0 - N - Y - Y - - - Start - job_last_recording_date - 0 - 0 - Y - Y - Y - - - job_last_recording_date - job_pack.pub_recruitment - 0 - 0 - Y - Y - N - - - - - - - METASTORE.pentaho - - Default Run Configuration - {"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null} - - - - {"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"} - - Pentaho local - {"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"pentaho","value":"N"},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]} - - - - diff --git a/mappings_old/job_pack.pub_recruitment.kjb b/mappings_old/job_pack.pub_recruitment.kjb deleted file mode 100644 index 2b8c421..0000000 --- a/mappings_old/job_pack.pub_recruitment.kjb +++ /dev/null @@ -1,483 +0,0 @@ - - - job_pack.pub_recruitment - - - - 0 - / - - - 2024/08/16 15:32:20.489 - - - 2024/08/16 15:32:20.489 - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - - ervu-dashboard - public -
job_log
- - - - - ID_JOB - Y - ID_JOB - - - CHANNEL_ID - Y - CHANNEL_ID - - - JOBNAME - Y - JOBNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - START_JOB_ENTRY - N - START_JOB_ENTRY - - - CLIENT - N - CLIENT - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - JOBNAME - Y - TRANSNAME - - - JOBENTRYNAME - Y - STEPNAME - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - RESULT - Y - RESULT - - - NR_RESULT_ROWS - Y - NR_RESULT_ROWS - - - NR_RESULT_FILES - Y - NR_RESULT_FILES - - - LOG_FIELD - N - LOG_FIELD - - - COPY_NR - N - COPY_NR - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - N - - - - Start - - SPECIAL - - Y - N - N - 0 - 0 - 60 - 12 - 0 - 1 - 1 - N - Y - 0 - 96 - 224 - - - - Success - - SUCCESS - - N - Y - 0 - 560 - 224 - - - - pack.pub_recruitment - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/pack.pub_recruitment.ktr - - N - N - N - Y - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 384 - 224 - - - - SQL - - SQL - - delete from ervu_dashboard.recruitment - F - F - - F - ervu-dashboard - N - Y - 0 - 240 - 224 - - - - - - pack.pub_recruitment - Success - 0 - 0 - Y - Y - N - - - Start - SQL - 0 - 0 - Y - Y - Y - - - SQL - pack.pub_recruitment - 0 - 0 - Y - Y - N - - - - - - - METASTORE.pentaho - - Default Run Configuration - {"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null} - - - - {"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"} - - Pentaho local - {"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"pentaho","value":"N"},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]} - - - - diff --git a/mappings_old/job_recruitments_all.kjb b/mappings_old/job_recruitments_all.kjb deleted file mode 100644 index f30b5c2..0000000 --- a/mappings_old/job_recruitments_all.kjb +++ /dev/null @@ -1,620 +0,0 @@ - - - job_recruitments_all - - - - 0 - / - - - 2024/08/21 15:46:54.029 - - - 2024/08/21 15:46:54.029 - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - - ervu-dashboard - public -
job_log
- - - - - ID_JOB - Y - ID_JOB - - - CHANNEL_ID - Y - CHANNEL_ID - - - JOBNAME - Y - JOBNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - START_JOB_ENTRY - N - START_JOB_ENTRY - - - CLIENT - N - CLIENT - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - JOBNAME - Y - TRANSNAME - - - JOBENTRYNAME - Y - STEPNAME - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - RESULT - Y - RESULT - - - NR_RESULT_ROWS - Y - NR_RESULT_ROWS - - - NR_RESULT_FILES - Y - NR_RESULT_FILES - - - LOG_FIELD - N - LOG_FIELD - - - COPY_NR - N - COPY_NR - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - N - - - - Start - - SPECIAL - - Y - N - N - 0 - 0 - 60 - 12 - 0 - 1 - 1 - N - Y - 0 - 112 - 240 - - - - job_recruitments_region - - JOB - - filename - - ${Internal.Entry.Current.Directory}/\region\job_recruitments_region.kjb - - - N - N - N - N - - - N - N - Nothing - - Y - N - N - N - N - Pentaho local - - Y - - N - N - Y - 0 - 560 - 144 - - - - job_recruitments_country - - JOB - - filename - - ${Internal.Entry.Current.Directory}/\country\job_recruitments_country.kjb - - - N - N - N - N - - - N - N - Nothing - - Y - N - N - N - N - Pentaho local - - Y - - N - N - Y - 0 - 560 - 240 - - - - Success - - SUCCESS - - N - Y - 0 - 768 - 240 - - - - job_recruitments_mil_com - - JOB - - filename - - ${Internal.Entry.Current.Directory}/\mil_com\job_recruitments_mil_com.kjb - - - N - N - N - N - - - N - N - Nothing - - Y - N - N - N - N - Pentaho local - - Y - - N - N - Y - 0 - 560 - 336 - - - - job_recruitment_mil_district - - JOB - - filename - - - - - N - N - N - N - - - N - N - Nothing - - Y - N - N - N - N - Pentaho local - - Y - - N - N - Y - 0 - 560 - 416 - - - - - - job_recruitments_country - Success - 0 - 0 - Y - Y - N - - - job_recruitments_region - Success - 0 - 0 - Y - Y - N - - - Start - job_recruitments_mil_com - 0 - 0 - N - Y - Y - - - job_recruitments_mil_com - Success - 0 - 0 - N - Y - N - - - Start - job_recruitment_mil_district - 0 - 0 - N - Y - Y - - - job_recruitment_mil_district - Success - 0 - 0 - N - Y - N - - - Start - job_recruitments_region - 0 - 0 - Y - Y - Y - - - Start - job_recruitments_country - 0 - 0 - Y - Y - Y - - - - - - - METASTORE.pentaho - - Default Run Configuration - {"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null} - - - - {"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"} - - Pentaho local - {"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"pentaho","value":"N"},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]} - - - - diff --git a/mappings_old/pack.pub_recruitment.ktr b/mappings_old/pack.pub_recruitment.ktr deleted file mode 100644 index 253fb4d..0000000 --- a/mappings_old/pack.pub_recruitment.ktr +++ /dev/null @@ -1,645 +0,0 @@ - - - - pack.pub_recruitment - - - - Normal - / - - - - - - -
- - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.subpoena - subpoena-dbhost - POSTGRESQL - Native - subpoena-dbname - 5555 - subpoena-dbuser - Encrypted 2beebdaaa1ac8978aaa54aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 5555 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Table output - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - postgres.subpoena - select -rt2.id, -rt2.shortname, -rt2.parent_id, -rt2.idm_id, -case -when rt.idm_id='bb7aa36f-446e-4262-a609-28694ca2e398' then '12' -when rt.idm_id='092d6963-287c-454e-8d73-8e09ebee972e' then '62' -when rt.idm_id='84bc45ab-c032-410e-9dc5-07e92719ede4' then '65' -end as code -from recruitment rt -left join recruitment rt2 on rt2.parent_id=rt.idm_id::text -where rt.idm_id in ('bb7aa36f-446e-4262-a609-28694ca2e398','092d6963-287c-454e-8d73-8e09ebee972e','84bc45ab-c032-410e-9dc5-07e92719ede4') - 0 - - N - N - N - - - - - - - - - - 208 - 208 - Y - - - - Table output - TableOutput - - Y - - 1 - - none - - - ervu-dashboard - ervu_dashboard -
recruitment
- 1000 - N - N - Y - N - N - - N - Y - N - - Y - N - - - - - - - - - - - - - 480 - 208 - Y - - - - - - - N - - diff --git a/mappings_old/recording_date/job_last_recording_date.kjb b/mappings_old/recording_date/job_last_recording_date.kjb deleted file mode 100644 index fe257cc..0000000 --- a/mappings_old/recording_date/job_last_recording_date.kjb +++ /dev/null @@ -1,483 +0,0 @@ - - - job_last_recording_date - - - - 0 - / - - - 2024/08/21 15:46:54.029 - - - 2024/08/21 15:46:54.029 - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - - ervu-dashboard - public - job_log
- - - - - ID_JOB - Y - ID_JOB - - - CHANNEL_ID - Y - CHANNEL_ID - - - JOBNAME - Y - JOBNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - START_JOB_ENTRY - N - START_JOB_ENTRY - - - CLIENT - N - CLIENT - -
- - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - JOBNAME - Y - TRANSNAME - - - JOBENTRYNAME - Y - STEPNAME - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - RESULT - Y - RESULT - - - NR_RESULT_ROWS - Y - NR_RESULT_ROWS - - - NR_RESULT_FILES - Y - NR_RESULT_FILES - - - LOG_FIELD - N - LOG_FIELD - - - COPY_NR - N - COPY_NR - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - N - - - - Start - - SPECIAL - - Y - N - N - 0 - 0 - 60 - 12 - 0 - 1 - 1 - N - Y - 0 - 208 - 240 - - - - Success - - SUCCESS - - N - Y - 0 - 656 - 240 - - - - last_recording_date - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/last_recording_date.ktr - - N - N - N - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 512 - 240 - - - - SQL.delete - - SQL - - delete from public.last_recording_date - F - F - - F - ervu-dashboard - N - Y - 0 - 352 - 240 - - - - - - Start - SQL.delete - 0 - 0 - Y - Y - Y - - - SQL.delete - last_recording_date - 0 - 0 - Y - Y - N - - - last_recording_date - Success - 0 - 0 - Y - Y - N - - - - - - - METASTORE.pentaho - - Default Run Configuration - {"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null} - - - - {"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"} - - Pentaho local - {"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"pentaho","value":"N"},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]} - - - - diff --git a/mappings_old/recording_date/last_recording_date.ktr b/mappings_old/recording_date/last_recording_date.ktr deleted file mode 100644 index e70658a..0000000 --- a/mappings_old/recording_date/last_recording_date.ktr +++ /dev/null @@ -1,635 +0,0 @@ - - - - last_recording_date - - - - Normal - / - - - - - - -
- - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/10/07 16:03:14.552 - - - 2024/10/07 16:03:14.552 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - public -
last_recording_date
- - entry - entry - = - - - - entry - entry - Y - - - - - - - - - - - - 863 - 134 - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - SELECT -'1' as entry -FROM public.decision_reason -limit 1 - 0 - - N - N - N - - - - - - - - - - 511 - 134 - Y - - - - - - - N - - diff --git a/mappings_old/region/job_recruitments_region.kjb b/mappings_old/region/job_recruitments_region.kjb deleted file mode 100644 index a2a11dc..0000000 --- a/mappings_old/region/job_recruitments_region.kjb +++ /dev/null @@ -1,2020 +0,0 @@ - - - job_recruitments_region - - - - 0 - / - - - 2024/08/15 16:02:12.821 - - - 2024/08/15 16:02:12.821 - - - REG_ID - - - - - VK_ARRAY - - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - - ervu-dashboard - public - job_log
- - - - - ID_JOB - Y - ID_JOB - - - CHANNEL_ID - Y - CHANNEL_ID - - - JOBNAME - Y - JOBNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - START_JOB_ENTRY - N - START_JOB_ENTRY - - - CLIENT - N - CLIENT - -
- - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - JOBNAME - Y - TRANSNAME - - - JOBENTRYNAME - Y - STEPNAME - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - RESULT - Y - RESULT - - - NR_RESULT_ROWS - Y - NR_RESULT_ROWS - - - NR_RESULT_FILES - Y - NR_RESULT_FILES - - - LOG_FIELD - N - LOG_FIELD - - - COPY_NR - N - COPY_NR - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - N - - - - Start - - SPECIAL - - Y - N - N - 0 - 0 - 60 - 12 - 0 - 1 - 1 - N - Y - 0 - 176 - 304 - - - - main_dashboard.appeals(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/main_dashboard.appeals(reg).ktr - - N - Y - Y - N - N - N - ${Internal.Entry.Current.Directory}/\logs\appeals - txt - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - VK_ARRAY - VK_ARRAY_ID - - - - REG_ID - RECRUITMENT_REG_ID - - - - N - Y - 0 - 976 - 16 - - - - select_recruitments_region(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/select_recruitments_region(reg).ktr - - N - N - N - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - N - Y - 0 - 416 - 304 - - - - Success - - SUCCESS - - N - Y - 0 - 1184 - 16 - - - - main_dashboard.recruitment_campaign(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/main_dashboard.recruitment_campaign(reg).ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - VK_ARRAY - VK_ARRAY_ID - - - - REG_ID - RECRUITMENT_REG_ID - - - - N - Y - 0 - 976 - 80 - - - - Success 2 - - SUCCESS - - N - Y - 0 - 1184 - 80 - - - - main_dashboard.total_registered(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/main_dashboard.total_registered(reg).ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - VK_ARRAY - VK_ARRAY_ID - - - - REG_ID - RECRUITMENT_REG_ID - - - - N - Y - 0 - 976 - 144 - - - - Success 3 - - SUCCESS - - N - Y - 0 - 1184 - 144 - - - - main_dashboard.waiting_registration(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/main_dashboard.waiting_registration(reg).ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 976 - 208 - - - - Success 4 - - SUCCESS - - N - Y - 0 - 1184 - 208 - - - - recruitment_campaign.subpoenas(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/recruitment_campaign.subpoenas(reg).ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - VK_ARRAY - VK_ARRAY_ID - - - - REG_ID - RECRUITMENT_REG_ID - - - - N - Y - 0 - 976 - 272 - - - - Success 6 - - SUCCESS - - N - Y - 0 - 1184 - 272 - - - - total_registered.reg_mil_cat(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.reg_mil_cat(reg).ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - VK_ARRAY - VK_ARRAY_ID - - - - REG_ID - RECRUITMENT_REG_ID - - - - N - Y - 0 - 976 - 336 - - - - Success 7 - - SUCCESS - - N - Y - 0 - 1184 - 336 - - - - total_registered.removed_registry(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.removed_registry(reg).ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - VK_ARRAY - VK_ARRAY_ID - - - - REG_ID - RECRUITMENT_REG_ID - - - - N - Y - 0 - 976 - 400 - - - - Success 8 - - SUCCESS - - N - Y - 0 - 1184 - 400 - - - - total_registered.subpoenas(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.subpoenas(reg).ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - VK_ARRAY - VK_ARRAY_ID - - - - REG_ID - RECRUITMENT_REG_ID - - - - N - Y - 0 - 976 - 464 - - - - Success 9 - - SUCCESS - - N - Y - 0 - 1184 - 464 - - - - SQL.md.appeals - - SQL - - DELETE FROM main_dashboard.appeals where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 752 - 16 - - - - SQL.md.rec_cam - - SQL - - DELETE FROM main_dashboard.recruitment_campaign where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 752 - 80 - - - - SQL.md.tot_reg - - SQL - - DELETE FROM main_dashboard.total_registered where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 752 - 144 - - - - SQL.md.wait_reg - - SQL - - DELETE FROM main_dashboard.waiting_registration where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 752 - 208 - - - - SQL.rcam.subpoenas - - SQL - - DELETE FROM recruitment_campaign.subpoenas where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 752 - 272 - - - - SQL.totreg.mrc - - SQL - - DELETE FROM total_registered.reg_mil_cat where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 752 - 336 - - - - SQL.totreg.remreg - - SQL - - DELETE FROM total_registered.removed_registry where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 752 - 400 - - - - SQL.totreg.sub - - SQL - - DELETE FROM total_registered.subpoenas where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 752 - 464 - - - - total_registered.driver_license(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.driver_license(reg).ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - REG_ID - RECRUITMENT_REG_ID - - - - VK_ARRAY - VK_ARRAY_ID - - - - N - Y - 0 - 976 - 544 - - - - Success 10 - - SUCCESS - - N - Y - 0 - 1184 - 544 - - - - SQL.totreg.drlic - - SQL - - DELETE FROM total_registered.driver_license where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 752 - 544 - - - - total_registered.child_minor(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.child_minor(reg).ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - VK_ARRAY - VK_ARRAY_ID - - - - REG_ID - RECRUITMENT_REG_ID - - - - N - Y - 0 - 976 - 608 - - - - Success 11 - - SUCCESS - - N - Y - 0 - 1184 - 608 - - - - SQL.totreg.chmi - - SQL - - DELETE FROM total_registered.child_minor where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 752 - 608 - - - - total_registered.age(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.age(reg).ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - VK_ARRAY - VK_ARRAY_ID - - - - REG_ID - RECRUITMENT_REG_ID - - - - N - Y - 0 - 976 - 688 - - - - Success 12 - - SUCCESS - - N - Y - 0 - 1184 - 688 - - - - SQL.totreg.age - - SQL - - DELETE FROM total_registered.age where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 752 - 688 - - - - total_registered.marital_status(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.marital_status(reg).ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - VK_ARRAY - VK_ARRAY_ID - - - - REG_ID - RECRUITMENT_REG_ID - - - - N - Y - 0 - 976 - 768 - - - - Success 13 - - SUCCESS - - N - Y - 0 - 1184 - 768 - - - - SQL.totreg.marstat - - SQL - - DELETE FROM total_registered.marital_status where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 752 - 768 - - - - total_registered.education_level(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.education_level(reg).ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - VK_ARRAY - VK_ARRAY_ID - - - - REG_ID - RECRUITMENT_REG_ID - - - - N - Y - 0 - 976 - 848 - - - - Success 14 - - SUCCESS - - N - Y - 0 - 1184 - 848 - - - - SQL.totreg.edulev - - SQL - - DELETE FROM total_registered.education_level where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 752 - 848 - - - - total_registered.busyness(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/total_registered.busyness(reg).ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - VK_ARRAY - VK_ARRAY_ID - - - - REG_ID - RECRUITMENT_REG_ID - - - - N - Y - 0 - 976 - 928 - - - - Success 15 - - SUCCESS - - N - Y - 0 - 1184 - 928 - - - - SQL.totreg.busyn - - SQL - - DELETE FROM total_registered.busyness where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 752 - 928 - - - - recruitment_campaign.appeals(reg) - - TRANS - - filename - - ${Internal.Entry.Current.Directory}/recruitment_campaign.appeals(reg).ktr - - N - Y - Y - N - N - N - - - N - N - Basic - N - - N - Y - N - N - N - Pentaho local - - Y - - VK_ARRAY - VK_ARRAY_ID - - - - REG_ID - RECRUITMENT_REG_ID - - - - N - Y - 0 - 976 - 1008 - - - - Success 16 - - SUCCESS - - N - Y - 0 - 1184 - 1008 - - - - SQL.reccam.appeals(reg) - - SQL - - DELETE FROM recruitment_campaign.appeals where recruitment_id in ('12', '62', '65', '48') and recording_date = current_date - F - F - - F - ervu-dashboard - N - Y - 0 - 752 - 1008 - - - - - - main_dashboard.appeals(reg) - Success - 0 - 0 - Y - Y - N - - - main_dashboard.recruitment_campaign(reg) - Success 2 - 0 - 0 - Y - Y - N - - - main_dashboard.total_registered(reg) - Success 3 - 0 - 0 - Y - Y - N - - - main_dashboard.waiting_registration(reg) - Success 4 - 0 - 0 - Y - Y - N - - - recruitment_campaign.subpoenas(reg) - Success 6 - 0 - 0 - Y - Y - N - - - total_registered.reg_mil_cat(reg) - Success 7 - 0 - 0 - Y - Y - N - - - total_registered.removed_registry(reg) - Success 8 - 0 - 0 - Y - Y - N - - - total_registered.subpoenas(reg) - Success 9 - 0 - 0 - Y - Y - N - - - select_recruitments_region(reg) - SQL.md.appeals - 0 - 0 - Y - Y - N - - - SQL.md.appeals - main_dashboard.appeals(reg) - 0 - 0 - Y - Y - N - - - select_recruitments_region(reg) - SQL.md.rec_cam - 0 - 0 - Y - Y - N - - - SQL.md.rec_cam - main_dashboard.recruitment_campaign(reg) - 0 - 0 - Y - Y - N - - - select_recruitments_region(reg) - SQL.md.tot_reg - 0 - 0 - Y - Y - N - - - SQL.md.tot_reg - main_dashboard.total_registered(reg) - 0 - 0 - Y - Y - N - - - select_recruitments_region(reg) - SQL.md.wait_reg - 0 - 0 - Y - Y - N - - - SQL.md.wait_reg - main_dashboard.waiting_registration(reg) - 0 - 0 - Y - Y - N - - - select_recruitments_region(reg) - SQL.rcam.subpoenas - 0 - 0 - Y - Y - N - - - SQL.rcam.subpoenas - recruitment_campaign.subpoenas(reg) - 0 - 0 - Y - Y - N - - - select_recruitments_region(reg) - SQL.totreg.mrc - 0 - 0 - Y - Y - N - - - SQL.totreg.mrc - total_registered.reg_mil_cat(reg) - 0 - 0 - Y - Y - N - - - select_recruitments_region(reg) - SQL.totreg.remreg - 0 - 0 - Y - Y - N - - - SQL.totreg.remreg - total_registered.removed_registry(reg) - 0 - 0 - Y - Y - N - - - select_recruitments_region(reg) - SQL.totreg.sub - 0 - 0 - Y - Y - N - - - SQL.totreg.sub - total_registered.subpoenas(reg) - 0 - 0 - Y - Y - N - - - Start - select_recruitments_region(reg) - 0 - 0 - Y - Y - Y - - - select_recruitments_region(reg) - SQL.totreg.drlic - 0 - 0 - Y - Y - N - - - SQL.totreg.drlic - total_registered.driver_license(reg) - 0 - 0 - Y - Y - N - - - total_registered.driver_license(reg) - Success 10 - 0 - 0 - Y - Y - N - - - select_recruitments_region(reg) - SQL.totreg.chmi - 0 - 0 - Y - Y - N - - - SQL.totreg.chmi - total_registered.child_minor(reg) - 0 - 0 - Y - Y - N - - - total_registered.child_minor(reg) - Success 11 - 0 - 0 - Y - Y - N - - - select_recruitments_region(reg) - SQL.totreg.age - 0 - 0 - Y - Y - N - - - SQL.totreg.age - total_registered.age(reg) - 0 - 0 - Y - Y - N - - - total_registered.age(reg) - Success 12 - 0 - 0 - Y - Y - N - - - SQL.totreg.marstat - total_registered.marital_status(reg) - 0 - 0 - Y - Y - N - - - total_registered.marital_status(reg) - Success 13 - 0 - 0 - Y - Y - N - - - select_recruitments_region(reg) - SQL.totreg.marstat - 0 - 0 - Y - Y - N - - - SQL.totreg.edulev - total_registered.education_level(reg) - 0 - 0 - Y - Y - N - - - total_registered.education_level(reg) - Success 14 - 0 - 0 - Y - Y - N - - - select_recruitments_region(reg) - SQL.totreg.edulev - 0 - 0 - Y - Y - N - - - SQL.totreg.busyn - total_registered.busyness(reg) - 0 - 0 - Y - Y - N - - - total_registered.busyness(reg) - Success 15 - 0 - 0 - Y - Y - N - - - select_recruitments_region(reg) - SQL.totreg.busyn - 0 - 0 - Y - Y - N - - - recruitment_campaign.appeals(reg) - Success 16 - 0 - 0 - Y - Y - N - - - SQL.reccam.appeals(reg) - recruitment_campaign.appeals(reg) - 0 - 0 - Y - Y - N - - - select_recruitments_region(reg) - SQL.reccam.appeals(reg) - 0 - 0 - Y - Y - N - - - - - - - METASTORE.pentaho - - Default Run Configuration - {"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null} - - - - {"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"} - - Pentaho local - {"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"pentaho","value":"N"},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]} - - - - diff --git a/mappings_old/region/logs/appeals.txt b/mappings_old/region/logs/appeals.txt deleted file mode 100644 index 9aef3cb..0000000 --- a/mappings_old/region/logs/appeals.txt +++ /dev/null @@ -1,24 +0,0 @@ -2024/08/30 15:28:29 - main_dashboard.appeals(reg) - Using run configuration [Pentaho local] -2024/08/30 15:28:29 - main_dashboard.appeals(reg) - Using legacy execution engine -2024/08/30 15:28:29 - main_dashboard.appeals(reg) - Dispatching started for transformation [main_dashboard.appeals(reg)] -2024/08/30 15:28:30 - Table input (appeal_document) .0 - Finished reading query, closing connection. -2024/08/30 15:28:30 - Get variables 3 2.0 - Finished processing (I=0, O=0, R=1, W=1, U=0, E=0) -2024/08/30 15:28:30 - Table input (appeal_document) .0 - Finished processing (I=1, O=0, R=0, W=1, U=0, E=0) -2024/08/30 15:28:30 - Select values 3 2.0 - Finished processing (I=0, O=0, R=1, W=1, U=0, E=0) -2024/08/30 15:28:30 - Insert / update (main_dashboard.appeals) 2.0 - Finished processing (I=1, O=1, R=1, W=1, U=0, E=0) -2024/08/30 15:28:30 - main_dashboard.appeals(reg) - Using run configuration [Pentaho local] -2024/08/30 15:28:30 - main_dashboard.appeals(reg) - Using legacy execution engine -2024/08/30 15:28:30 - main_dashboard.appeals(reg) - Dispatching started for transformation [main_dashboard.appeals(reg)] -2024/08/30 15:28:30 - Table input (appeal_document) .0 - Finished reading query, closing connection. -2024/08/30 15:28:30 - Get variables 3 2.0 - Finished processing (I=0, O=0, R=1, W=1, U=0, E=0) -2024/08/30 15:28:30 - Select values 3 2.0 - Finished processing (I=0, O=0, R=1, W=1, U=0, E=0) -2024/08/30 15:28:30 - Table input (appeal_document) .0 - Finished processing (I=1, O=0, R=0, W=1, U=0, E=0) -2024/08/30 15:28:30 - Insert / update (main_dashboard.appeals) 2.0 - Finished processing (I=1, O=1, R=1, W=1, U=0, E=0) -2024/08/30 15:28:30 - main_dashboard.appeals(reg) - Using run configuration [Pentaho local] -2024/08/30 15:28:30 - main_dashboard.appeals(reg) - Using legacy execution engine -2024/08/30 15:28:30 - main_dashboard.appeals(reg) - Dispatching started for transformation [main_dashboard.appeals(reg)] -2024/08/30 15:28:30 - Table input (appeal_document) .0 - Finished reading query, closing connection. -2024/08/30 15:28:30 - Get variables 3 2.0 - Finished processing (I=0, O=0, R=1, W=1, U=0, E=0) -2024/08/30 15:28:30 - Select values 3 2.0 - Finished processing (I=0, O=0, R=1, W=1, U=0, E=0) -2024/08/30 15:28:30 - Table input (appeal_document) .0 - Finished processing (I=1, O=0, R=0, W=1, U=0, E=0) -2024/08/30 15:28:30 - Insert / update (main_dashboard.appeals) 2.0 - Finished processing (I=1, O=1, R=1, W=1, U=0, E=0) diff --git a/mappings_old/region/main_dashboard.appeals(reg).ktr b/mappings_old/region/main_dashboard.appeals(reg).ktr deleted file mode 100644 index 1e2e531..0000000 --- a/mappings_old/region/main_dashboard.appeals(reg).ktr +++ /dev/null @@ -1,870 +0,0 @@ - - - - main_dashboard.appeals(reg) - - - - Normal - 0 - / - - - - - - -
- - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.appeal-document-service - appeal-dbhost - POSTGRESQL - Native - appeal-dbname - 2222 - appeal-dbuser - Encrypted 2be98afa91ad79785a754aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 2222 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Get variables 3 2 - Select values 3 2 - Y - - - Select values 3 2 - Insert / update (main_dashboard.appeals) 2 - Y - - - Table input (appeal_document) регионы - Get variables 3 2 - Y - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 192 - Y - - - - Insert / update (main_dashboard.appeals) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - main_dashboard -
appeals
- - REG_ID - recruitment_id - = - - - - total_appeals - total_appeals - Y - - - average_consideration - average_consideration - Y - - - resolved - resolved - Y - - - average_rating - average_rating - Y - - - average_to_face - average_to_face - Y - - - "average_EPGU" - average_epgu - Y - - - average_to_face_percent - average_to_face_percent - Y - - - "average_EPGU_percent" - average_epgu_percent - Y - - - recruitment_id - recruitment_id - N - - - - - - - - - - - - 1024 - 192 - Y - - - - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 192 - Y - - - - Table input (appeal_document) регионы - TableInput - - N - - 1 - - none - - - postgres.appeal-document-service - WITH -t1 AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total_appeals - FROM public.appeal_document - WHERE - ( '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' - OR vk_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - )) -), -t2 AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE ROUND( - AVG( - (TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date) - ), - 2 - ) - END AS average_consideration - FROM public.appeal_document ad - WHERE - ( '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' - OR vk_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - )) -), -resolved AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS resolved - FROM public.appeal_document ad - WHERE ad.extra_info->>'result' = '1' - AND ( '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' - OR vk_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - )) -) -SELECT - t1.total_appeals, - t2.average_consideration, - r.resolved, - '${REG_ID}' AS recruitment_id, - 0 AS average_rating, - 0 AS average_to_face, - 0 AS average_epgu, - 0 AS average_to_face_percent, - 0 AS average_epgu_percent -FROM t1, t2, resolved AS r; - 0 - - N - Y - N - - - - - - - - - - 448 - 192 - Y - - - - - - - N - - diff --git a/mappings_old/region/main_dashboard.recruitment_campaign(reg).ktr b/mappings_old/region/main_dashboard.recruitment_campaign(reg).ktr deleted file mode 100644 index 1df080a..0000000 --- a/mappings_old/region/main_dashboard.recruitment_campaign(reg).ktr +++ /dev/null @@ -1,1218 +0,0 @@ - - - - main_dashboard.recruitment_campaign(reg) - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.subpoena - subpoena-dbhost - POSTGRESQL - Native - subpoena-dbname - 5555 - subpoena-dbuser - Encrypted 2beebdaaa1ac8978aaa54aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 5555 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Get variables 4 3 - Select values 4 3 - Y - - - Table input (subpoena) регион/осень - Get variables 4 3 - Y - - - Get variables 4 3 2 - Select values 4 3 2 - Y - - - Table input (subpoena) регион/весна - Get variables 4 3 2 - Y - - - Select values 4 3 - Insert / update (main_dashboard.recruitment_campaign) - Y - - - Select values 4 3 2 - Insert / update (main_dashboard.recruitment_campaign) 2 - Y - - - - Get variables 4 3 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 464 - 432 - Y - - - - Get variables 4 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 448 - 496 - Y - - - - Insert / update (main_dashboard.recruitment_campaign) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - main_dashboard -
recruitment_campaign
- - REG_ID - recruitment_id - = - - - - subpoenas_sent - count_subpoena - Y - - - appeared_on_subpoenas - count_appeared - Y - - - not_appeared_on_subpoenas - count_not_appeared - Y - - - new_recruits - new_recruits - Y - - - postponement_have_right - postponement_have_right - Y - - - postponement_granted - postponement_granted - Y - - - appeared_on_subpoenas_percent - appeared_on_subpoenas_percent - Y - - - not_appeared_on_subpoenas_percent - not_appeared_on_subpoenas_percent - Y - - - postponement_have_right_percent - postponement_have_right_percent - Y - - - postponement_granted_percent - postponement_granted_percent - Y - - - recruitment_id - recruitment_id - N - - - spring_autumn - spring_autumn - N - - - - - - - - - - - - 960 - 432 - Y - - - - Insert / update (main_dashboard.recruitment_campaign) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - main_dashboard - recruitment_campaign
- - REG_ID - recruitment_id - = - - - - subpoenas_sent - count_subpoena - Y - - - appeared_on_subpoenas - count_appeared - Y - - - not_appeared_on_subpoenas - count_not_appeared - Y - - - new_recruits - new_recruits - Y - - - postponement_have_right - postponement_have_right - Y - - - postponement_granted - postponement_granted - Y - - - appeared_on_subpoenas_percent - appeared_on_subpoenas_percent - Y - - - not_appeared_on_subpoenas_percent - not_appeared_on_subpoenas_percent - Y - - - postponement_have_right_percent - postponement_have_right_percent - Y - - - postponement_granted_percent - postponement_granted_percent - Y - - - recruitment_id - recruitment_id - N - - - spring_autumn - spring_autumn - N - -
- - - - - - - - - - 960 - 496 - Y - -
- - Select values 4 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 640 - 432 - Y - - - - Select values 4 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 640 - 496 - Y - - - - Table input (subpoena) регион/весна - TableInput - - Y - - 1 - - none - - - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn -- добавляем строку для получения последнего статуса - FROM public.subpoena s - JOIN public.subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN public.subpoena_status AS ss ON ss.id = s.status_id - JOIN public.subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN public.subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN public.restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN public.restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN public.subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '1' -- от 18 до 30 лет и нет отсрочки (нужны эти условия), разделение весна/осень - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR s.department_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -- выбираем только последнюю запись для каждой повестки -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -) -SELECT - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t1.count_subpoena END AS count_subpoena, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t2.count_appeared END AS count_appeared, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t3.count_not_appeared END AS count_not_appeared, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(t2.count_appeared * 100.0 / NULLIF(t1.count_subpoena, 0), 2) END AS appeared_on_subpoenas_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(t3.count_not_appeared * 100.0 / NULLIF(t1.count_subpoena, 0), 2) END AS not_appeared_on_subpoenas_percent, - 0 AS new_recruits, - 0 AS postponement_have_right, - 0 AS postponement_granted, - 0 AS postponement_have_right_percent, - 0 AS postponement_granted_percent, - 'Весна' AS spring_autumn, - '${REG_ID}' AS recruitment_id, - 1 AS org -FROM t1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1; - 0 - - N - Y - N - - - - - - - - - - 208 - 496 - Y - - - - Table input (subpoena) регион/осень - TableInput - - Y - - 1 - - none - - - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn -- добавляем строку для получения последнего статуса - FROM public.subpoena s - JOIN public.subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN public.subpoena_status AS ss ON ss.id = s.status_id - JOIN public.subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN public.subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN public.restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN public.restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN public.subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '1' -- от 18 до 30 лет и нет отсрочки (нужны эти условия), разделение весна/осень - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR s.department_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -- выбираем только последнюю запись для каждой повестки -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -) -SELECT - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t1.count_subpoena END AS count_subpoena, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t2.count_appeared END AS count_appeared, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t3.count_not_appeared END AS count_not_appeared, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(t2.count_appeared * 100.0 / NULLIF(t1.count_subpoena, 0), 2) END AS appeared_on_subpoenas_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(t3.count_not_appeared * 100.0 / NULLIF(t1.count_subpoena, 0), 2) END AS not_appeared_on_subpoenas_percent, - 0 AS new_recruits, - 0 AS postponement_have_right, - 0 AS postponement_granted, - 0 AS postponement_have_right_percent, - 0 AS postponement_granted_percent, - 'Осень' AS spring_autumn, - '${REG_ID}' AS recruitment_id, - 1 AS org -FROM t1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1; - 0 - - N - Y - N - - - - - - - - - - 208 - 432 - Y - - - - - - - N - -
diff --git a/mappings_old/region/main_dashboard.total_registered(reg).ktr b/mappings_old/region/main_dashboard.total_registered(reg).ktr deleted file mode 100644 index cf35560..0000000 --- a/mappings_old/region/main_dashboard.total_registered(reg).ktr +++ /dev/null @@ -1,906 +0,0 @@ - - - - main_dashboard.total_registered(reg) - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Get variables 2 2 - Select values 2 2 - Y - - - Select values 2 2 - Insert / update (main_dashboard.total_registered) 2 - Y - - - Table input (person_registry) регион - Get variables 2 2 - Y - - - - Get variables 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 560 - 304 - Y - - - - Insert / update (main_dashboard.total_registered) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - main_dashboard -
total_registered
- - REG_ID - recruitment_id - = - - - - total_registered - total_count - Y - - - "total_registered_M" - male_count - Y - - - "total_registered_W" - female_count - Y - - - mobilization_criterion - mobilization_criterion - Y - - - volunteer_criterion - volunteer_criterion - Y - - - contract_criterion - contract_criterion - Y - - - mobilization_criterion_percent - mobilization_criterion_percent - Y - - - volunteer_criterion_percent - volunteer_criterion_percent - Y - - - contract_criterion_percent - contract_criterion_percent - Y - - - recruitment_id - recruitment_id - N - - - - - - - - - - - - 1024 - 304 - Y - - - - Select values 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 768 - 304 - Y - - - - Table input (person_registry) регион - TableInput - - Y - - 1 - - none - - - postgres.person_registry - WITH vse as ( -select *, -r.id as r_id -FROM public.recruits AS r - JOIN public.recruits_info AS ri - ON ri.recruit_id = r.id - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NOT NULL AND '${VK_ARRAY}' != '' - AND r.target_recruitment_id = ANY ( - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN ARRAY[]::uuid[] - ELSE string_to_array(trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',')::uuid[] - END - ) - ) -), -extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - vse ri - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_16 - FROM children_birth_dates - WHERE AGE(make_date(year, month, day)) < interval '16 years' - GROUP BY recruit_id -), -recruit_data AS ( - SELECT - COUNT(*) AS total_count, - 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, - 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, - 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 - FROM vse as ri - LEFT JOIN children_count AS cc - ON ri.r_id = cc.recruit_id - ) -SELECT - '${REG_ID}' AS recruitment_id, - COALESCE(rd.total_count, 0) AS total_count, - COALESCE(rd.male_count, 0) AS male_count, - COALESCE(rd.female_count, 0) AS female_count, - COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, - COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, - COALESCE(rd.contract_criterion, 0) AS contract_criterion, - CASE - WHEN rd.total_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.total_count * 100, 2) - ELSE 0 - END AS mobilization_criterion_percent, - CASE - WHEN rd.total_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.total_count * 100, 2) - ELSE 0 - END AS volunteer_criterion_percent, - CASE - WHEN rd.total_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.total_count * 100, 2) - ELSE 0 - END AS contract_criterion_percent -FROM recruit_data AS rd; - - 0 - - N - Y - N - - - - - - - - - - 352 - 304 - Y - - - - - - - N - -
diff --git a/mappings_old/region/main_dashboard.waiting_registration(reg).ktr b/mappings_old/region/main_dashboard.waiting_registration(reg).ktr deleted file mode 100644 index ff60a59..0000000 --- a/mappings_old/region/main_dashboard.waiting_registration(reg).ktr +++ /dev/null @@ -1,919 +0,0 @@ - - - - main_dashboard.waiting_registration(reg) - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Get variables 5 - Select values 5 - Y - - - Select values 5 - Insert / update (main_dashboard.waiting_registration) 2 - Y - - - Table input 2 (person_registry) регион - Get variables 5 - Y - - - - Get variables 5 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 576 - 240 - Y - - - - Insert / update (main_dashboard.waiting_registration) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - main_dashboard -
waiting_registration
- - REG_ID - recruitment_id - = - - - - waiting_registration - waiting_count - Y - - - "waiting_registration_M" - male_count - Y - - - "waiting_registration_W" - female_count - Y - - - mobilization_criterion - mobilization_criterion - Y - - - volunteer_criterion - volunteer_criterion - Y - - - contract_criterion - contract_criterion - Y - - - mobilization_criterion_percent - mobilization_criterion_percent - Y - - - volunteer_criterion_percent - volunteer_criterion_percent - Y - - - contract_criterion_percent - contract_criterion_percent - Y - - - recruitment_id - recruitment_id - N - - - waiting_registration_percent - waiting_percent - Y - - - - - - - - - - - - 1024 - 240 - Y - - - - Select values 5 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 720 - 240 - Y - - - - Table input 2 (person_registry) регион - TableInput - - Y - - 1 - - none - - - postgres.person_registry - WITH vse as ( -select *, -r.id as r_id -FROM public.recruits AS r - JOIN public.recruits_info AS ri - ON ri.recruit_id = r.id - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'false' - AND r.current_recruitment_id IS NOT NULL - AND r.target_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NOT NULL AND '${VK_ARRAY}' != '' - AND r.target_recruitment_id = ANY ( - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN ARRAY[]::uuid[] - ELSE string_to_array(trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',')::uuid[] - END - ) - ) -), -extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - vse ri - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_16 - FROM children_birth_dates - WHERE AGE(make_date(year, month, day)) < interval '16 years' - GROUP BY recruit_id -), -recruit_data AS ( - SELECT - COUNT(*) AS waiting_count, - 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, - 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, - 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 - FROM vse as ri - LEFT JOIN children_count AS cc - ON ri.r_id = cc.recruit_id -) -SELECT - '${REG_ID}' AS recruitment_id, - COALESCE(rd.waiting_count, 0) AS waiting_count, - COALESCE(rd.male_count, 0) AS male_count, - COALESCE(rd.female_count, 0) AS female_count, - COALESCE(rd.mobilization_criterion, 0) AS mobilization_criterion, - COALESCE(rd.volunteer_criterion, 0) AS volunteer_criterion, - COALESCE(rd.contract_criterion, 0) AS contract_criterion, - CASE - WHEN rd.waiting_count > 0 THEN ROUND(rd.mobilization_criterion::NUMERIC / rd.waiting_count * 100, 2) - ELSE 0 - END AS mobilization_criterion_percent, - CASE - WHEN rd.waiting_count > 0 THEN ROUND(rd.volunteer_criterion::NUMERIC / rd.waiting_count * 100, 2) - ELSE 0 - END AS volunteer_criterion_percent, - CASE - WHEN rd.waiting_count > 0 THEN ROUND(rd.contract_criterion::NUMERIC / rd.waiting_count * 100, 2) - ELSE 0 - END AS contract_criterion_percent, - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE ROUND( - COALESCE( - (rd.waiting_count::DECIMAL / NULLIF( - (SELECT COUNT(*) FROM public.recruits WHERE vu_current_info ->> 'isMilitaryRegistered' = 'false'), 0) * 100 - ), 0 - ), 2 - ) - END AS waiting_percent -FROM recruit_data AS rd; - 0 - - N - Y - N - - - - - - - - - - 336 - 240 - Y - - - - - - - N - -
diff --git a/mappings_old/region/recruitment_campaign.appeals(reg).ktr b/mappings_old/region/recruitment_campaign.appeals(reg).ktr deleted file mode 100644 index c0c6009..0000000 --- a/mappings_old/region/recruitment_campaign.appeals(reg).ktr +++ /dev/null @@ -1,1108 +0,0 @@ - - - - recruitment_campaign.appeals(reg) - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.appeal-document-service - appeal-dbhost - POSTGRESQL - Native - appeal-dbname - 2222 - appeal-dbuser - Encrypted 2be98afa91ad79785a754aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 2222 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Get variables 3 2 - Select values 3 2 - Y - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Table input (appeal_document) регионы - Get variables 3 2 - Y - - - Select values 3 2 - Insert / update (main_dashboard.appeals) - Y - - - Table input (appeal_document) регионы 2 - Get variables 3 2 2 - Y - - - Select values 3 2 2 - Insert / update (main_dashboard.appeals) 2 - Y - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 192 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 352 - Y - - - - Insert / update (main_dashboard.appeals) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - recruitment_campaign -
appeals
- - REG_ID - recruitment_id - = - - - - total_appeals - total_appeals - Y - - - average_consideration - average_consideration - Y - - - resolved - resolved - Y - - - not_resolved - not_resolved - Y - - - not_resolved_percent - not_resolved_percent - Y - - - average_rating - average_rating - Y - - - resolved_percent - resolved_percent - Y - - - recruitment_id - recruitment_id - N - - - spring_autumn - spring_autumn - N - - - - - - - - - - - - 1040 - 192 - Y - - - - Insert / update (main_dashboard.appeals) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - recruitment_campaign - appeals
- - REG_ID - recruitment_id - = - - - - total_appeals - total_appeals - Y - - - average_consideration - average_consideration - Y - - - resolved - resolved - Y - - - not_resolved - not_resolved - Y - - - not_resolved_percent - not_resolved_percent - Y - - - average_rating - average_rating - Y - - - resolved_percent - resolved_percent - Y - - - recruitment_id - recruitment_id - N - - - spring_autumn - spring_autumn - N - -
- - - - - - - - - - 1040 - 352 - Y - -
- - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 192 - Y - - - - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 352 - Y - - - - Table input (appeal_document) регионы - TableInput - - N - - 1 - - none - - - postgres.appeal-document-service - -- ad.extra_info->>'result' = '**' 1 - удовлетворена, 2 - частично удовлетворена, 3 - отказано в удовлетворении -WITH appeals_data AS ( - SELECT - COUNT(*) AS total_appeals, - ROUND(AVG((TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date)), 2) AS average_consideration, - COUNT(CASE WHEN ad.extra_info->>'result' = '1' THEN 1 ELSE 0 END) AS resolved, - COUNT(CASE WHEN ad.extra_info->>'result' = '3' THEN 1 ELSE 0 END) AS not_resolved - FROM public.appeal_document ad - WHERE - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN false - ELSE vk_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - END -) -SELECT - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.total_appeals END AS total_appeals, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.average_consideration END AS average_consideration, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.resolved END AS resolved, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.not_resolved END AS not_resolved, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(ad.resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) END AS resolved_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(ad.not_resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) END AS not_resolved_percent, - '${REG_ID}' AS recruitment_id, - 0 AS average_rating, - 'Осень' AS spring_autumn -FROM appeals_data AS ad; - 0 - - N - Y - N - - - - - - - - - - 448 - 192 - Y - - - - Table input (appeal_document) регионы 2 - TableInput - - N - - 1 - - none - - - postgres.appeal-document-service - -- ad.extra_info->>'result' = '**' 1 - удовлетворена, 2 - частично удовлетворена, 3 - отказано в удовлетворении -WITH appeals_data AS ( - SELECT - COUNT(*) AS total_appeals, - ROUND(AVG((TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date)), 2) AS average_consideration, - COUNT(CASE WHEN ad.extra_info->>'result' = '1' THEN 1 ELSE 0 END) AS resolved, - COUNT(CASE WHEN ad.extra_info->>'result' = '3' THEN 1 ELSE 0 END) AS not_resolved - FROM public.appeal_document ad - WHERE - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN false - ELSE vk_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - END -) -SELECT - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.total_appeals END AS total_appeals, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.average_consideration END AS average_consideration, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.resolved END AS resolved, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ad.not_resolved END AS not_resolved, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(ad.resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) END AS resolved_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(ad.not_resolved * 100.0 / NULLIF(ad.total_appeals, 0), 2) END AS not_resolved_percent, - '${REG_ID}' AS recruitment_id, - 0 AS average_rating, - 'Весна' AS spring_autumn -FROM appeals_data AS ad; - 0 - - N - Y - N - - - - - - - - - - 448 - 352 - Y - - - - - - - N - -
diff --git a/mappings_old/region/recruitment_campaign.subpoenas(reg).ktr b/mappings_old/region/recruitment_campaign.subpoenas(reg).ktr deleted file mode 100644 index 6ae94f9..0000000 --- a/mappings_old/region/recruitment_campaign.subpoenas(reg).ktr +++ /dev/null @@ -1,1469 +0,0 @@ - - - - recruitment_campaign.subpoenas(reg) - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/09 13:13:59.825 - - - 2024/08/09 13:13:59.825 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.subpoena - subpoena-dbhost - POSTGRESQL - Native - subpoena-dbname - 5555 - subpoena-dbuser - Encrypted 2beebdaaa1ac8978aaa54aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 5555 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Get variables 4 3 - Select values 4 3 - Y - - - Table input (subpoena) осень/регионы - Get variables 4 3 - Y - - - Get variables 4 3 2 - Select values 4 3 2 - Y - - - Table input (subpoena) весна/регионы - Get variables 4 3 2 - Y - - - Select values 4 3 - Insert / update (recruitment_campaign.subpoenas) 3 - Y - - - Select values 4 3 2 - Insert / update (recruitment_campaign.subpoenas) 3 2 - Y - - - - Get variables 4 3 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 416 - 400 - Y - - - - Get variables 4 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 416 - 480 - Y - - - - Insert / update (recruitment_campaign.subpoenas) 3 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - recruitment_campaign -
subpoenas
- - REG_ID - recruitment_id - = - - - - subpoena - count_subpoena - Y - - - appeared - count_appeared - Y - - - not_appeared - count_not_appeared - Y - - - not_ap_good_reason - count_not_ap_good_reason - Y - - - introduced_measures - count_introduced_measures - Y - - - ap_not_required - count_ap_not_required - Y - - - restrictions_applied - count_restrictions_applied - Y - - - appeared_percent - appeared_percent - Y - - - not_appeared_percent - not_appeared_percent - Y - - - not_ap_good_reason_percent - not_ap_good_reason_percent - Y - - - ap_not_required_percent - ap_not_required_percent - Y - - - restrictions_applied_percent - restrictions_applied_percent - Y - - - introduced_measures_percent - introduced_measures_percent - Y - - - recruitment_id - recruitment_id - N - - - rest - rest - Y - - - spring_autumn - spring_autumn - N - - - count_not_delivery - count_not_delivery - Y - - - appear_date_is_good - appear_date_is_good - Y - - - not_delivery_percent - not_delivery_percent - Y - - - appear_date_is_good_percent - appear_date_is_good_percent - Y - - - - - - - - - - - - 896 - 400 - Y - - - - Insert / update (recruitment_campaign.subpoenas) 3 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - recruitment_campaign - subpoenas
- - REG_ID - recruitment_id - = - - - - subpoena - count_subpoena - Y - - - appeared - count_appeared - Y - - - not_appeared - count_not_appeared - Y - - - not_ap_good_reason - count_not_ap_good_reason - Y - - - introduced_measures - count_introduced_measures - Y - - - ap_not_required - count_ap_not_required - Y - - - restrictions_applied - count_restrictions_applied - Y - - - appeared_percent - appeared_percent - Y - - - not_appeared_percent - not_appeared_percent - Y - - - not_ap_good_reason_percent - not_ap_good_reason_percent - Y - - - ap_not_required_percent - ap_not_required_percent - Y - - - restrictions_applied_percent - restrictions_applied_percent - Y - - - introduced_measures_percent - introduced_measures_percent - Y - - - recruitment_id - recruitment_id - N - - - rest - rest - Y - - - spring_autumn - spring_autumn - N - - - count_not_delivery - count_not_delivery - Y - - - appear_date_is_good - appear_date_is_good - Y - - - not_delivery_percent - not_delivery_percent - Y - - - appear_date_is_good_percent - appear_date_is_good_percent - Y - -
- - - - - - - - - - 896 - 480 - Y - -
- - Select values 4 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 592 - 400 - Y - - - - Select values 4 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 592 - 480 - Y - - - - Table input (subpoena) весна/регионы - TableInput - - Y - - 1 - - none - - - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '3' - AND ssh.code NOT IN ('3.14','3.7','3.72', '3.71') - AND ( - COALESCE('${VK_ARRAY}', '') = '' - OR s.department_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), - ',' - )::uuid[] - ) - ) -), -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery - FROM last_status - WHERE d_code IS NULL -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') -) -SELECT - COALESCE(t1.count_subpoena, 0) AS count_subpoena, - COALESCE(t2.average_appeared, 0) AS average_appeared, - COALESCE(t3.count_appeared, 0) AS count_appeared, - COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, - COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, - COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, - COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, - COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, - COALESCE(t9.count_paper, 0) AS count_paper, - COALESCE(t10.count_electron, 0) AS count_electron, - COALESCE(t11.count_restrictions, 0) AS count_restrictions, - COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, - COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, - ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appeared_percent, - ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS electron_percent, - ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS paper_percent, - ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_delivery_percent, - ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appear_date_is_good_percent, - '${REG_ID}' AS recruitment_id, - 1 AS org, - 0 AS rest, - 'Весна' AS spring_autumn -FROM t1 -FULL OUTER JOIN t2 ON true -FULL OUTER JOIN t3 ON true -FULL OUTER JOIN t4 ON true -FULL OUTER JOIN t5 ON true -FULL OUTER JOIN t6 ON true -FULL OUTER JOIN t7 ON true -FULL OUTER JOIN t8 ON true -FULL OUTER JOIN t9 ON true -FULL OUTER JOIN t10 ON true -FULL OUTER JOIN t11 ON true -FULL OUTER JOIN t12 ON true -FULL OUTER JOIN t13 ON true -WHERE NOT ( - COALESCE('${VK_ARRAY}', '') = '' - AND ( - COALESCE(t1.count_subpoena, 0) > 0 - OR COALESCE(t2.average_appeared, 0) > 0 - OR COALESCE(t3.count_appeared, 0) > 0 - OR COALESCE(t4.count_not_appeared, 0) > 0 - OR COALESCE(t5.count_not_ap_good_reason, 0) > 0 - OR COALESCE(t6.count_ap_not_required, 0) > 0 - OR COALESCE(t7.count_restrictions_applied, 0) > 0 - OR COALESCE(t8.count_introduced_measures, 0) > 0 - OR COALESCE(t9.count_paper, 0) > 0 - OR COALESCE(t10.count_electron, 0) > 0 - OR COALESCE(t11.count_restrictions, 0) > 0 - OR COALESCE(t12.count_not_delivery, 0) > 0 - OR COALESCE(t13.appear_date_is_good, 0) > 0 - ) -); - 0 - - N - Y - N - - - - - - - - - - 160 - 480 - Y - - - - Table input (subpoena) осень/регионы - TableInput - - Y - - 1 - - none - - - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '3' - AND ssh.code NOT IN ('3.14','3.7','3.72', '3.71') - AND ( - COALESCE('${VK_ARRAY}', '') = '' - OR s.department_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), - ',' - )::uuid[] - ) - ) -), -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery - FROM last_status - WHERE d_code IS NULL -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') -) -SELECT - COALESCE(t1.count_subpoena, 0) AS count_subpoena, - COALESCE(t2.average_appeared, 0) AS average_appeared, - COALESCE(t3.count_appeared, 0) AS count_appeared, - COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, - COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, - COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, - COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, - COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, - COALESCE(t9.count_paper, 0) AS count_paper, - COALESCE(t10.count_electron, 0) AS count_electron, - COALESCE(t11.count_restrictions, 0) AS count_restrictions, - COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, - COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, - ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appeared_percent, - ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS electron_percent, - ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS paper_percent, - ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_delivery_percent, - ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appear_date_is_good_percent, - '${REG_ID}' AS recruitment_id, - 1 AS org, - 0 AS rest, - 'Осень' AS spring_autumn -FROM t1 -FULL OUTER JOIN t2 ON true -FULL OUTER JOIN t3 ON true -FULL OUTER JOIN t4 ON true -FULL OUTER JOIN t5 ON true -FULL OUTER JOIN t6 ON true -FULL OUTER JOIN t7 ON true -FULL OUTER JOIN t8 ON true -FULL OUTER JOIN t9 ON true -FULL OUTER JOIN t10 ON true -FULL OUTER JOIN t11 ON true -FULL OUTER JOIN t12 ON true -FULL OUTER JOIN t13 ON true -WHERE NOT ( - COALESCE('${VK_ARRAY}', '') = '' - AND ( - COALESCE(t1.count_subpoena, 0) > 0 - OR COALESCE(t2.average_appeared, 0) > 0 - OR COALESCE(t3.count_appeared, 0) > 0 - OR COALESCE(t4.count_not_appeared, 0) > 0 - OR COALESCE(t5.count_not_ap_good_reason, 0) > 0 - OR COALESCE(t6.count_ap_not_required, 0) > 0 - OR COALESCE(t7.count_restrictions_applied, 0) > 0 - OR COALESCE(t8.count_introduced_measures, 0) > 0 - OR COALESCE(t9.count_paper, 0) > 0 - OR COALESCE(t10.count_electron, 0) > 0 - OR COALESCE(t11.count_restrictions, 0) > 0 - OR COALESCE(t12.count_not_delivery, 0) > 0 - OR COALESCE(t13.appear_date_is_good, 0) > 0 - ) -); - 0 - - N - Y - N - - - - - - - - - - 160 - 400 - Y - - - - - - - N - -
diff --git a/mappings_old/region/select_recruitments_region(reg).ktr b/mappings_old/region/select_recruitments_region(reg).ktr deleted file mode 100644 index ad0b50e..0000000 --- a/mappings_old/region/select_recruitments_region(reg).ktr +++ /dev/null @@ -1,587 +0,0 @@ - - - - select_recruitments_region(reg) - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - - - - - 2024/08/15 14:58:19.728 - - - 2024/08/15 14:58:19.728 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Table input/регион - Copy rows to result - Y - - - - Copy rows to result - RowsToResult - - Y - - 1 - - none - - - - - - - - - - - - 512 - 208 - Y - - - - Table input/регион - TableInput - - Y - - 1 - - none - - - ervu-dashboard - WITH -t1 AS (SELECT ARRAY_AGG(t.idm_id) AS RECRUITMENT12_ID FROM ervu_dashboard.recruitment AS t WHERE t.code = '12'), -t2 AS (SELECT ARRAY_AGG(t.idm_id) AS RECRUITMENT62_ID FROM ervu_dashboard.recruitment AS t WHERE t.code = '62'), -t3 AS (SELECT ARRAY_AGG(t.idm_id) AS RECRUITMENT65_ID FROM ervu_dashboard.recruitment AS t WHERE t.code = '65'), -t4 AS (SELECT ARRAY_AGG(t.idm_id) AS RECRUITMENT48_ID FROM ervu_dashboard.recruitment AS t WHERE t.code = '48') -SELECT - t1.RECRUITMENT12_ID AS VK_ARRAY_ID, - '12' AS RECRUITMENT_REG_ID -FROM t1 -UNION ALL -SELECT - t2.RECRUITMENT62_ID, - '62' -FROM t2 -UNION ALL -SELECT - t3.RECRUITMENT65_ID, - '65' -FROM t3 -UNION ALL -SELECT - t4.RECRUITMENT48_ID, - '48' -FROM t4; - 10 - - N - N - N - - - - - - - - - - 336 - 208 - Y - - - - - - - N - - diff --git a/mappings_old/region/total_registered.age(reg).ktr b/mappings_old/region/total_registered.age(reg).ktr deleted file mode 100644 index c610fec..0000000 --- a/mappings_old/region/total_registered.age(reg).ktr +++ /dev/null @@ -1,2908 +0,0 @@ - - - - total_registered.age(reg) - - - - Normal - 0 - / - - - - - - -
- - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Get variables 3 2 - Select values 3 2 - Y - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Table input (person_registry) регион/все - Get variables 3 2 - Y - - - Select values 3 2 - Insert / update (total_registered.age) - Y - - - Table input (person_registry) регион/мужчины - Get variables 3 2 2 - Y - - - Select values 3 2 2 - Insert / update (total_registered.age) 2 - Y - - - Table input (person_registry) регион/женщины - Get variables 3 2 2 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.age) 3 - Y - - - Get variables 3 2 3 - Select values 3 2 3 - Y - - - Get variables 3 2 2 3 - Select values 3 2 2 3 - Y - - - Get variables 3 2 2 2 2 - Select values 3 2 2 2 2 - Y - - - Select values 3 2 3 - Insert / update (total_registered.age) 4 - Y - - - Select values 3 2 2 3 - Insert / update (total_registered.age) 2 2 - Y - - - Select values 3 2 2 2 2 - Insert / update (total_registered.age) 3 2 - Y - - - Table input (person_registry) регион/все 2 - Get variables 3 2 3 - Y - - - Table input (person_registry) регион/женщины 2 - Get variables 3 2 2 2 2 - Y - - - Table input (person_registry) регион/мужчины 2 - Get variables 3 2 2 3 - Y - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 192 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 352 - Y - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 512 - Y - - - - Get variables 3 2 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 656 - 1056 - Y - - - - Get variables 3 2 2 3 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 656 - 896 - Y - - - - Get variables 3 2 3 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 656 - 736 - Y - - - - Insert / update (total_registered.age) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered -
age
- - REG_ID - recruitment_id - = - - - - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - - - - - - - - - - 1056 - 192 - Y - - - - Insert / update (total_registered.age) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - age
- - REG_ID - recruitment_id - = - - - - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- - - - - - - - - - 1056 - 352 - Y - -
- - Insert / update (total_registered.age) 2 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - age
- - REG_ID - recruitment_id - = - - - - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- - - - - - - - - - 1040 - 896 - Y - -
- - Insert / update (total_registered.age) 3 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - age
- - REG_ID - recruitment_id - = - - - - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- - - - - - - - - - 1072 - 512 - Y - -
- - Insert / update (total_registered.age) 3 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - age
- - REG_ID - recruitment_id - = - - - - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- - - - - - - - - - 1056 - 1056 - Y - -
- - Insert / update (total_registered.age) 4 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - age
- - REG_ID - recruitment_id - = - - - - "17_years" - 17_year_count - Y - - - "18-26_years" - 18-26_year_count - Y - - - "27-30_years" - 27-30_year_count - Y - - - "31-35_years" - 31-35_year_count - Y - - - "36-40_years" - 36-40_year_count - Y - - - "41-45_years" - 41-45_year_count - Y - - - "51+_years" - 41-45_year_count - Y - - - "all_M_W" - gender - N - - - "46-50_years" - 46-50_year_count - Y - - - "17_years_percent" - 17_year_percent - Y - - - "18-26_years_percent" - 18-26_year_percent - Y - - - "27-30_years_percent" - 27-30_year_percent - Y - - - "31-35_years_percent" - 31-35_year_percent - Y - - - "36-40_years_percent" - 36-40_year_percent - Y - - - "41-45_years_percent" - 41-45_year_percent - Y - - - "46-50_years_percent" - 46-50_year_percent - Y - - - "51+_years_percent" - 51+_year_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - -
- - - - - - - - - - 1040 - 736 - Y - -
- - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 192 - Y - - - - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 352 - Y - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 512 - Y - - - - Select values 3 2 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 800 - 1056 - Y - - - - Select values 3 2 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 800 - 896 - Y - - - - Select values 3 2 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 800 - 736 - Y - - - - Table input (person_registry) регион/все - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -age_counts AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) - END AS "17_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) - END AS "18-26_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) - END AS "27-30_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) - END AS "31-35_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) - END AS "36-40_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) - END AS "41-45_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) - END AS "46-50_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) - END AS "51+_year_count" - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "51+_year_percent", - - '${REG_ID}' AS recruitment_id, - 'ALL' AS gender, - 'true' AS registered -FROM age_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 432 - 192 - Y - - - - Table input (person_registry) регион/все 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -age_counts AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) - END AS "17_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) - END AS "18-26_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) - END AS "27-30_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) - END AS "31-35_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) - END AS "36-40_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) - END AS "41-45_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) - END AS "46-50_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) - END AS "51+_year_count" - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "51+_year_percent", - - '${REG_ID}' AS recruitment_id, - 'ALL' AS gender, - 'false' AS registered -FROM age_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 416 - 736 - Y - - - - Table input (person_registry) регион/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -age_counts AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) - END AS "17_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) - END AS "18-26_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) - END AS "27-30_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) - END AS "31-35_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) - END AS "36-40_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) - END AS "41-45_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) - END AS "46-50_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) - END AS "51+_year_count" - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "51+_year_percent", - - '${REG_ID}' AS recruitment_id, - 'W' AS gender, - 'true' AS registered -FROM age_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 416 - 512 - Y - - - - Table input (person_registry) регион/женщины 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' - AND r.current_recruitment_id IS NOT NULL - AND r.gender = 'FEMALE' - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -age_counts AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) - END AS "17_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) - END AS "18-26_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) - END AS "27-30_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) - END AS "31-35_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) - END AS "36-40_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) - END AS "41-45_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) - END AS "46-50_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) - END AS "51+_year_count" - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' - AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "51+_year_percent", - - '${REG_ID}' AS recruitment_id, - 'W' AS gender, - 'false' AS registered -FROM age_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 400 - 1056 - Y - - - - Table input (person_registry) регион/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND r.gender = 'MALE' - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -age_counts AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) - END AS "17_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) - END AS "18-26_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) - END AS "27-30_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) - END AS "31-35_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) - END AS "36-40_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) - END AS "41-45_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) - END AS "46-50_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) - END AS "51+_year_count" - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "51+_year_percent", - - '${REG_ID}' AS recruitment_id, - 'M' AS gender, - 'true' AS registered -FROM age_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 432 - 352 - Y - - - - Table input (person_registry) регион/мужчины 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' - AND r.current_recruitment_id IS NOT NULL - AND r.gender = 'MALE' - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -age_counts AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) = 17) - END AS "17_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 18 AND 26) - END AS "18-26_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 27 AND 30) - END AS "27-30_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 31 AND 35) - END AS "31-35_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 36 AND 40) - END AS "36-40_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 41 AND 45) - END AS "41-45_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) BETWEEN 46 AND 50) - END AS "46-50_year_count", - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER (WHERE EXTRACT(YEAR FROM AGE(birth_date)) >= 51) - END AS "51+_year_count" - FROM public.recruits r - JOIN public.recruits_info ri ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'false' - AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - age_counts."17_year_count", - ROUND((age_counts."17_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "17_year_percent", - - age_counts."18-26_year_count", - ROUND((age_counts."18-26_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "18-26_year_percent", - - age_counts."27-30_year_count", - ROUND((age_counts."27-30_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "27-30_year_percent", - - age_counts."31-35_year_count", - ROUND((age_counts."31-35_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "31-35_year_percent", - - age_counts."36-40_year_count", - ROUND((age_counts."36-40_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "36-40_year_percent", - - age_counts."41-45_year_count", - ROUND((age_counts."41-45_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "41-45_year_percent", - - age_counts."46-50_year_count", - ROUND((age_counts."46-50_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "46-50_year_percent", - - age_counts."51+_year_count", - ROUND((age_counts."51+_year_count" * 100.0) / NULLIF(total_count.total, 0), 2) AS "51+_year_percent", - - '${REG_ID}' AS recruitment_id, - 'M' AS gender, - 'false' AS registered -FROM age_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 416 - 896 - Y - - - - - - - N - -
diff --git a/mappings_old/region/total_registered.busyness(reg).ktr b/mappings_old/region/total_registered.busyness(reg).ktr deleted file mode 100644 index 6f62ea4..0000000 --- a/mappings_old/region/total_registered.busyness(reg).ktr +++ /dev/null @@ -1,1609 +0,0 @@ - - - - total_registered.busyness(reg) - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Get variables 3 2 - Select values 3 2 - Y - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Table input (person_registry) РФ/все - Get variables 3 2 - Y - - - Select values 3 2 - Insert / update (total_registered.busyness) - Y - - - Select values 3 2 2 - Insert / update (total_registered.busyness) 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.busyness) 3 - Y - - - Table input (person_registry) РФ/женщины - Get variables 3 2 2 2 - Y - - - Table input (person_registry) РФ/мужчины - Get variables 3 2 2 - Y - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 192 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 352 - Y - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 512 - Y - - - - Insert / update (total_registered.busyness) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered -
busyness
- - REG_ID - recruitment_id - = - - - - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - - - - - - - - - - - - 1072 - 192 - Y - - - - Insert / update (total_registered.busyness) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - busyness
- - REG_ID - recruitment_id - = - - - - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - -
- - - - - - - - - - 1072 - 352 - Y - -
- - Insert / update (total_registered.busyness) 3 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - busyness
- - REG_ID - recruitment_id - = - - - - study - study - Y - - - work - work - Y - - - study_percent - study_percent - Y - - - work_percent - work_percent - Y - - - recruitment_id - recruitment_id - N - - - registered - registered - N - - - "all_M_W" - gender - N - - - not_work - not_work - Y - - - not_work_percent - not_work_percent - Y - - - busyness - total_people - Y - -
- - - - - - - - - - 1072 - 512 - Y - -
- - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 192 - Y - - - - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 352 - Y - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 512 - Y - - - - Table input (person_registry) РФ/все - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS no_info, - - -- Общее количество людей - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total_people - FROM status_info -) -SELECT - 'ALL' AS gender, - 'true' AS registered, - '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE study END AS study, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE work END AS work, - 0 AS not_work, - 0 AS not_work_percent, - total_people, - - -- Процент людей, которые учатся - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(study * 100.0 / NULLIF(total_people, 0), 2) END AS study_percent, - - -- Процент людей, которые работают - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(work * 100.0 / NULLIF(total_people, 0), 2) END AS work_percent - - -- Процент людей, для которых отсутствуют сведения - -- CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) END AS no_info_percent -FROM summary; - 0 - - N - Y - N - - - - - - - - - - 432 - 192 - Y - - - - Table input (person_registry) РФ/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'true' - AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS no_info, - - -- Общее количество людей - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total_people - FROM status_info -) -SELECT - 'W' AS gender, - 'true' AS registered, - '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE study END AS study, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE work END AS work, - 0 AS not_work, - 0 AS not_work_percent, - total_people, - - -- Процент людей, которые учатся - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(study * 100.0 / NULLIF(total_people, 0), 2) END AS study_percent, - - -- Процент людей, которые работают - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(work * 100.0 / NULLIF(total_people, 0), 2) END AS work_percent - - -- Процент людей, для которых отсутствуют сведения - -- CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) END AS no_info_percent -FROM summary; - 0 - - N - Y - N - - - - - - - - - - 432 - 512 - Y - - - - Table input (person_registry) РФ/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH status_info AS ( - SELECT - -- Проверка на обучение в вузе (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_vuz, - - -- Проверка на обучение в колледже (есть информация и обучается) - ( - CASE - WHEN jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' = '1' - ) - ELSE false - END - ) AS is_studying_in_college, - - -- Проверка на работу (есть информация и работает) - ( - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' THEN - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) - ELSE false - END - ) AS is_working, - - -- Проверка на отсутствие сведений о вузе - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' AS no_info_vuz, - - -- Проверка на отсутствие сведений о колледже - info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' AS no_info_college, - - -- Проверка на отсутствие сведений о работе - info->'svedTrud'->>'prOtsSvedTrud' = '1' AS no_info_work - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info -> 'isMilitaryRegistered' = 'true' - AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -summary AS ( - SELECT - -- Количество людей, которые учатся (в вузе или колледже) - COUNT(CASE WHEN is_studying_in_vuz OR is_studying_in_college THEN 1 END) AS study, - - -- Количество людей, которые работают - COUNT(CASE WHEN is_working THEN 1 END) AS work, - - -- Количество людей, для которых отсутствуют сведения о вузе, колледже и работе - COUNT(CASE WHEN no_info_vuz AND no_info_college AND no_info_work THEN 1 END) AS no_info, - - -- Общее количество людей - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total_people - FROM status_info -) -SELECT - 'M' AS gender, - 'true' AS registered, - '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE study END AS study, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE work END AS work, - 0 AS not_work, - 0 AS not_work_percent, - total_people, - - -- Процент людей, которые учатся - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(study * 100.0 / NULLIF(total_people, 0), 2) END AS study_percent, - - -- Процент людей, которые работают - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(work * 100.0 / NULLIF(total_people, 0), 2) END AS work_percent - - -- Процент людей, для которых отсутствуют сведения - -- CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(no_info * 100.0 / NULLIF(total_people, 0), 2) END AS no_info_percent -FROM summary; - 0 - - N - Y - N - - - - - - - - - - 432 - 352 - Y - - - - - - - N - -
diff --git a/mappings_old/region/total_registered.child_minor(reg).ktr b/mappings_old/region/total_registered.child_minor(reg).ktr deleted file mode 100644 index 5d2a613..0000000 --- a/mappings_old/region/total_registered.child_minor(reg).ktr +++ /dev/null @@ -1,1624 +0,0 @@ - - - - total_registered.child_minor(reg) - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Get variables 4 2 - Select values 4 2 - Y - - - Table input (person_registry)регион/все - Get variables 4 2 - Y - - - Select values 4 2 - Insert / update (total_registered.child_minor) - Y - - - Get variables 4 2 2 - Select values 4 2 2 - Y - - - Select values 4 2 2 - Insert / update (total_registered.child_minor) 2 - Y - - - Get variables 4 2 2 2 - Select values 4 2 2 2 - Y - - - Select values 4 2 2 2 - Insert / update (total_registered.child_minor) 2 2 - Y - - - Table input (person_registry)РФ/мужчины - Get variables 4 2 2 - Y - - - Table input (person_registry)РФ/женщины - Get variables 4 2 2 2 - Y - - - - Get variables 4 2 - GetVariable - - Y - - 1 - - none - - - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - REG_ID - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 592 - 288 - Y - - - - Get variables 4 2 2 - GetVariable - - Y - - 1 - - none - - - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - REG_ID - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 592 - 384 - Y - - - - Get variables 4 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - REG_ID - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 592 - 480 - Y - - - - Insert / update (total_registered.child_minor) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered -
child_minor
- - REG_ID - recruitment_id - = - - - - no_child - no_children - Y - - - "1_child" - one_child - Y - - - "2_child" - two_children - Y - - - "3_child" - three_children - Y - - - "4_more_child" - four_or_more_children - Y - - - "all_M_W" - gender - N - - - no_child_percent - no_children_percent - Y - - - "1_child_percent" - one_child_percent - Y - - - "2_child_percent" - two_children_percent - Y - - - "3_child_percent" - three_children_percent - Y - - - "4_more_child_percent" - four_or_more_children_percent - Y - - - recruitment_id - recruitment_id - N - - - - - - - - - - - - 1040 - 288 - Y - - - - Insert / update (total_registered.child_minor) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered - child_minor
- - REG_ID - recruitment_id - = - - - - no_child - no_children - Y - - - "1_child" - one_child - Y - - - "2_child" - two_children - Y - - - "3_child" - three_children - Y - - - "4_more_child" - four_or_more_children - Y - - - "all_M_W" - gender - N - - - no_child_percent - no_children_percent - Y - - - "1_child_percent" - one_child_percent - Y - - - "2_child_percent" - two_children_percent - Y - - - "3_child_percent" - three_children_percent - Y - - - "4_more_child_percent" - four_or_more_children_percent - Y - - - recruitment_id - recruitment_id - N - -
- - - - - - - - - - 1040 - 384 - Y - -
- - Insert / update (total_registered.child_minor) 2 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered - child_minor
- - REG_ID - recruitment_id - = - - - - no_child - no_children - Y - - - "1_child" - one_child - Y - - - "2_child" - two_children - Y - - - "3_child" - three_children - Y - - - "4_more_child" - four_or_more_children - Y - - - "all_M_W" - gender - N - - - no_child_percent - no_children_percent - Y - - - "1_child_percent" - one_child_percent - Y - - - "2_child_percent" - two_children_percent - Y - - - "3_child_percent" - three_children_percent - Y - - - "4_more_child_percent" - four_or_more_children_percent - Y - - - recruitment_id - recruitment_id - N - -
- - - - - - - - - - 1040 - 480 - Y - -
- - Select values 4 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 784 - 288 - Y - - - - Select values 4 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 784 - 384 - Y - - - - Select values 4 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 784 - 480 - Y - - - - Table input (person_registry)РФ/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_18 - FROM - children_birth_dates - WHERE - make_date(year, month, day) > CURRENT_DATE - INTERVAL '18 years' - GROUP BY - recruit_id -), -final_counts AS ( - SELECT - COALESCE(children_under_18, 0) AS children_count, - COUNT(*) AS num_people - FROM - public.recruits_info ri - LEFT JOIN - children_count cc ON ri.recruit_id = cc.recruit_id - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) - GROUP BY - COALESCE(children_under_18, 0) -), -total_women AS ( - SELECT - COUNT(*) AS total_women_count - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - 'W' AS gender, - '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) END AS no_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) END AS one_child, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) END AS two_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) END AS three_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) END AS four_or_more_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_women_count FROM total_women), 0), 2) END AS no_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_women_count FROM total_women), 0), 2) END AS one_child_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_women_count FROM total_women), 0), 2) END AS two_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_women_count FROM total_women), 0), 2) END AS three_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_women_count FROM total_women), 0), 2) END AS four_or_more_children_percent -FROM - final_counts; - 0 - - N - Y - N - - - - - - - - - - 352 - 480 - Y - - - - Table input (person_registry)РФ/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_18 - FROM - children_birth_dates - WHERE - make_date(year, month, day) > CURRENT_DATE - INTERVAL '18 years' - GROUP BY - recruit_id -), -final_counts AS ( - SELECT - COALESCE(children_under_18, 0) AS children_count, - COUNT(*) AS num_people - FROM - public.recruits_info ri - LEFT JOIN - children_count cc ON ri.recruit_id = cc.recruit_id - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) - GROUP BY - COALESCE(children_under_18, 0) -), -total_men AS ( - SELECT - COUNT(*) AS total_men_count - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT - 'M' AS gender, - '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) END AS no_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) END AS one_child, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) END AS two_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) END AS three_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) END AS four_or_more_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) END AS no_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) END AS one_child_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) END AS two_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) END AS three_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_men_count FROM total_men), 0), 2) END AS four_or_more_children_percent -FROM - final_counts; - 0 - - N - Y - N - - - - - - - - - - 352 - 384 - Y - - - - Table input (person_registry)регион/все - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_18 - FROM - children_birth_dates - WHERE - AGE(make_date(year, month, day)) < interval '18 years' - GROUP BY - recruit_id -), -final_counts AS ( - SELECT - COALESCE(children_under_18, 0) AS children_count, - COUNT(*) AS num_people - FROM - public.recruits_info ri - LEFT JOIN - children_count cc ON ri.recruit_id = cc.recruit_id - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) - GROUP BY - COALESCE(children_under_18, 0) -), -total_people AS ( - SELECT SUM(num_people) AS total_count - FROM final_counts -) -SELECT - 'ALL' AS gender, - '${REG_ID}' as recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) END AS no_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) END AS one_child, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) END AS two_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) END AS three_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) END AS four_or_more_children, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 0 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) END AS no_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 1 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) END AS one_child_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 2 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) END AS two_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count = 3 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) END AS three_children_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(COALESCE(SUM(CASE WHEN children_count >= 4 THEN num_people ELSE 0 END), 0) * 100.0 / NULLIF((SELECT total_count FROM total_people), 0), 2) END AS four_or_more_children_percent -FROM - final_counts; - 0 - - N - Y - N - - - - - - - - - - 352 - 288 - Y - - - - - - - N - -
diff --git a/mappings_old/region/total_registered.driver_license(reg).ktr b/mappings_old/region/total_registered.driver_license(reg).ktr deleted file mode 100644 index ec128b6..0000000 --- a/mappings_old/region/total_registered.driver_license(reg).ktr +++ /dev/null @@ -1,1498 +0,0 @@ - - - - total_registered.driver_license(reg) - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Get variables 3 2 - Select values 3 2 - Y - - - Select values 3 2 - Insert / update (total_registered.driver_license) 2 - Y - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Table input (driver_license) регионы/все - Get variables 3 2 - Y - - - Select values 3 2 2 - Insert / update (total_registered.driver_license) 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Table input (person_registry) регионы/мужчины - Get variables 3 2 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.driver_license) 2 2 2 - Y - - - Table input (person_registry) регионы/женщины - Get variables 3 2 2 2 - Y - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 192 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 352 - Y - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 512 - Y - - - - Insert / update (total_registered.driver_license) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered -
driver_license
- - REG_ID - recruitment_id - = - - - - "A" - a - Y - - - "B" - b - Y - - - "C" - c - Y - - - "D" - d - Y - - - "E" - e - Y - - - nope - nope - Y - - - "A_repcent" - a_percent - Y - - - "B_repcent" - b_percent - Y - - - "C_repcent" - c_percent - Y - - - "D_repcent" - d_percent - Y - - - "E_repcent" - e_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - - - - - - - - - - - - 1072 - 192 - Y - - - - Insert / update (total_registered.driver_license) 2 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - driver_license
- - REG_ID - recruitment_id - = - - - - "A" - a - Y - - - "B" - b - Y - - - "C" - c - Y - - - "D" - d - Y - - - "E" - e - Y - - - nope - nope - Y - - - "A_repcent" - a_percent - Y - - - "B_repcent" - b_percent - Y - - - "C_repcent" - c_percent - Y - - - "D_repcent" - d_percent - Y - - - "E_repcent" - e_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - -
- - - - - - - - - - 1072 - 352 - Y - -
- - Insert / update (total_registered.driver_license) 2 2 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - driver_license
- - REG_ID - recruitment_id - = - - - - "A" - a - Y - - - "B" - b - Y - - - "C" - c - Y - - - "D" - d - Y - - - "E" - e - Y - - - nope - nope - Y - - - "A_repcent" - a_percent - Y - - - "B_repcent" - b_percent - Y - - - "C_repcent" - c_percent - Y - - - "D_repcent" - d_percent - Y - - - "E_repcent" - e_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - -
- - - - - - - - - - 1072 - 512 - Y - -
- - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 192 - Y - - - - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 352 - Y - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 512 - Y - - - - Table input (driver_license) регионы/все - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH categorized AS ( - SELECT - r.id, - r.gender, - -- Проверяем наличие хотя бы одной категории, используем DISTINCT для уникальных рекрутов - 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 - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) - GROUP BY r.id, r.gender -), -aggregated AS ( - SELECT - 'ALL' AS gender, - '${REG_ID}' AS recruitment_id, - -- Считаем количество уникальных рекрутов с каждой категорией - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) END AS a, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) END AS b, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) END AS c, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) END AS d, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) END AS e, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_A = 0 AND has_B = 0 AND has_C = 0 AND has_D = 0 AND has_E = 0) END AS nope, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) END AS total - FROM categorized r -) -SELECT *, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((a * 100.0) / NULLIF(total, 0), 2) END AS a_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((b * 100.0) / NULLIF(total, 0), 2) END AS b_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((c * 100.0) / NULLIF(total, 0), 2) END AS c_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((d * 100.0) / NULLIF(total, 0), 2) END AS d_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((e * 100.0) / NULLIF(total, 0), 2) END AS e_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((nope * 100.0) / NULLIF(total, 0), 2) END AS nope_percent -FROM aggregated; - 0 - - N - Y - N - - - - - - - - - - 448 - 192 - Y - - - - Table input (person_registry) регионы/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH categorized AS ( - SELECT - r.id, - r.gender, - -- Проверяем наличие хотя бы одной категории, используем DISTINCT для уникальных рекрутов - 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 - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) - AND r.gender = 'FEMALE' - GROUP BY r.id, r.gender -), -aggregated AS ( - SELECT - 'W' AS gender, - '${REG_ID}' as recruitment_id, - -- Считаем количество уникальных рекрутов с каждой категорией - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) END AS a, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) END AS b, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) END AS c, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) END AS d, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) END AS e, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_A = 0 AND has_B = 0 AND has_C = 0 AND has_D = 0 AND has_E = 0) END AS nope, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) END AS total - FROM categorized r -) -SELECT *, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((a * 100.0) / NULLIF(total, 0), 2) END AS a_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((b * 100.0) / NULLIF(total, 0), 2) END AS b_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((c * 100.0) / NULLIF(total, 0), 2) END AS c_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((d * 100.0) / NULLIF(total, 0), 2) END AS d_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((e * 100.0) / NULLIF(total, 0), 2) END AS e_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((nope * 100.0) / NULLIF(total, 0), 2) END AS nope_percent -FROM aggregated; - 0 - - N - Y - N - - - - - - - - - - 432 - 512 - Y - - - - Table input (person_registry) регионы/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH categorized AS ( - SELECT - r.id, - r.gender, - -- Проверяем наличие хотя бы одной категории, используем DISTINCT для уникальных рекрутов - 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 - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - LEFT JOIN jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS cat ON true - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) - AND r.gender = 'MALE' - GROUP BY r.id, r.gender -), -aggregated AS ( - SELECT - 'M' AS gender, - '${REG_ID}' as recruitment_id, - -- Считаем количество уникальных рекрутов с каждой категорией - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_A > 0) END AS a, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_B > 0) END AS b, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_C > 0) END AS c, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_D > 0) END AS d, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_E > 0) END AS e, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) FILTER (WHERE has_A = 0 AND has_B = 0 AND has_C = 0 AND has_D = 0 AND has_E = 0) END AS nope, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COUNT(DISTINCT r.id) END AS total - FROM categorized r -) -SELECT *, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((a * 100.0) / NULLIF(total, 0), 2) END AS a_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((b * 100.0) / NULLIF(total, 0), 2) END AS b_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((c * 100.0) / NULLIF(total, 0), 2) END AS c_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((d * 100.0) / NULLIF(total, 0), 2) END AS d_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((e * 100.0) / NULLIF(total, 0), 2) END AS e_percent, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND((nope * 100.0) / NULLIF(total, 0), 2) END AS nope_percent -FROM aggregated; - 0 - - N - Y - N - - - - - - - - - - 432 - 352 - Y - - - - - - - N - -
diff --git a/mappings_old/region/total_registered.education_level(reg).ktr b/mappings_old/region/total_registered.education_level(reg).ktr deleted file mode 100644 index 3303b75..0000000 --- a/mappings_old/region/total_registered.education_level(reg).ktr +++ /dev/null @@ -1,1694 +0,0 @@ - - - - total_registered.education_level(reg) - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Get variables 3 2 - Select values 3 2 - Y - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Select values 3 2 - Insert / update (total_registered.education_level) - Y - - - Table input (person_registry) РФ/все - Get variables 3 2 - Y - - - Table input (person_registry) РФ/мужчины - Get variables 3 2 2 - Y - - - Table input (person_registry) РФ/женщины - Get variables 3 2 2 2 - Y - - - Select values 3 2 2 - Insert / update (total_registered.education_level) 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.education_level) 3 - Y - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 192 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 352 - Y - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 512 - Y - - - - Insert / update (total_registered.education_level) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered -
education_level
- - REG_ID - recruitment_id - = - - - - higher - higher - Y - - - average - average_prof - Y - - - "all_M_W" - gender - N - - - only_general - only_general - Y - - - no_data - count_nodata - Y - - - higher_percent - higher_percentage - Y - - - average_percent - average_prof_percentage - Y - - - only_general_percent - only_general_percentage - Y - - - no_data_percent - count_nodata_percentage - Y - - - recruitment_id - recruitment_id - N - - - education_level - total - Y - - - - - - - - - - - - 1072 - 192 - Y - - - - Insert / update (total_registered.education_level) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - education_level
- - REG_ID - recruitment_id - = - - - - higher - higher - Y - - - average - average_prof - Y - - - "all_M_W" - gender - N - - - only_general - only_general - Y - - - no_data - count_nodata - Y - - - higher_percent - higher_percentage - Y - - - average_percent - average_prof_percentage - Y - - - only_general_percent - only_general_percentage - Y - - - no_data_percent - count_nodata_percentage - Y - - - recruitment_id - recruitment_id - N - - - education_level - total - Y - -
- - - - - - - - - - 1072 - 352 - Y - -
- - Insert / update (total_registered.education_level) 3 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - education_level
- - REG_ID - recruitment_id - = - - - - higher - higher - Y - - - average - average_prof - Y - - - "all_M_W" - gender - N - - - only_general - only_general - Y - - - no_data - count_nodata - Y - - - higher_percent - higher_percentage - Y - - - average_percent - average_prof_percentage - Y - - - only_general_percent - only_general_percentage - Y - - - no_data_percent - count_nodata_percentage - Y - - - recruitment_id - recruitment_id - N - - - education_level - total - Y - -
- - - - - - - - - - 1072 - 512 - Y - -
- - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 192 - Y - - - - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 352 - Y - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 512 - Y - - - - Table input (person_registry) РФ/все - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -education_status AS ( - SELECT - ri.id, - - -- Высшее образование (российское или иностранное) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - ) - ) AS has_higher, - - -- Среднее профессиональное образование (если нет высшего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' = '10' - ) - ) AS has_average_prof, - - -- Общее образование (если нет высшего и среднего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('7', '9') - ) - ) AS has_only_general, - - -- Нет данных об образовании (российское или иностранное) - ( - NOT ( - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - ) - ) - ) AND ( - ri.info->'svedRObr'->>'prOtsRObr' = '1' - OR ri.info->'svedInObr'->>'prOtsInObr' = '1' - ) - ) AS has_no_data - - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -final_counts AS ( - SELECT - COUNT(DISTINCT CASE WHEN has_higher THEN id END) AS higher, - COUNT(DISTINCT CASE WHEN NOT has_higher AND has_average_prof THEN id END) AS average_prof, - COUNT(DISTINCT CASE WHEN NOT has_higher AND NOT has_average_prof AND has_only_general THEN id END) AS only_general, - COUNT(DISTINCT CASE WHEN has_no_data THEN id END) AS count_nodata - FROM education_status -) -SELECT - 'ALL' AS gender, - '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE higher END AS higher, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE average_prof END AS average_prof, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE only_general END AS only_general, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE count_nodata END AS count_nodata, - total_count.total, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(higher * 100.0 / NULLIF(total_count.total, 0), 2) END AS higher_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(average_prof * 100.0 / NULLIF(total_count.total, 0), 2) END AS average_prof_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(only_general * 100.0 / NULLIF(total_count.total, 0), 2) END AS only_general_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(count_nodata * 100.0 / NULLIF(total_count.total, 0), 2) END AS count_nodata_percentage -FROM final_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 400 - 192 - Y - - - - Table input (person_registry) РФ/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -education_status AS ( - SELECT - ri.id, - - -- Высшее образование (российское или иностранное) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - ) - ) AS has_higher, - - -- Среднее профессиональное образование (если нет высшего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' = '10' - ) - ) AS has_average_prof, - - -- Общее образование (если нет высшего и среднего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('7', '9') - ) - ) AS has_only_general, - - -- Нет данных об образовании (российское или иностранное) - ( - NOT ( - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - ) - ) - ) AND ( - ri.info->'svedRObr'->>'prOtsRObr' = '1' - OR ri.info->'svedInObr'->>'prOtsInObr' = '1' - ) - ) AS has_no_data - - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -final_counts AS ( - SELECT - COUNT(DISTINCT CASE WHEN has_higher THEN id END) AS higher, - COUNT(DISTINCT CASE WHEN NOT has_higher AND has_average_prof THEN id END) AS average_prof, - COUNT(DISTINCT CASE WHEN NOT has_higher AND NOT has_average_prof AND has_only_general THEN id END) AS only_general, - COUNT(DISTINCT CASE WHEN has_no_data THEN id END) AS count_nodata - FROM education_status -) -SELECT - 'W' AS gender, - '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE higher END AS higher, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE average_prof END AS average_prof, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE only_general END AS only_general, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE count_nodata END AS count_nodata, - total_count.total, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(higher * 100.0 / NULLIF(total_count.total, 0), 2) END AS higher_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(average_prof * 100.0 / NULLIF(total_count.total, 0), 2) END AS average_prof_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(only_general * 100.0 / NULLIF(total_count.total, 0), 2) END AS only_general_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(count_nodata * 100.0 / NULLIF(total_count.total, 0), 2) END AS count_nodata_percentage -FROM final_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 432 - 512 - Y - - - - Table input (person_registry) РФ/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - WITH total_count AS ( - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -education_status AS ( - SELECT - ri.id, - - -- Высшее образование (российское или иностранное) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - ) - ) AS has_higher, - - -- Среднее профессиональное образование (если нет высшего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' = '10' - ) - ) AS has_average_prof, - - -- Общее образование (если нет высшего и среднего) - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('7', '9') - ) - ) AS has_only_general, - - -- Нет данных об образовании (российское или иностранное) - ( - NOT ( - ( - EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - ) - ) - ) AND ( - ri.info->'svedRObr'->>'prOtsRObr' = '1' - OR ri.info->'svedInObr'->>'prOtsInObr' = '1' - ) - ) AS has_no_data - - FROM public.recruits_info ri - JOIN public.recruits r ON ri.recruit_id = r.id - WHERE r.vu_current_info->>'isMilitaryRegistered' = 'true' AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -), -final_counts AS ( - SELECT - COUNT(DISTINCT CASE WHEN has_higher THEN id END) AS higher, - COUNT(DISTINCT CASE WHEN NOT has_higher AND has_average_prof THEN id END) AS average_prof, - COUNT(DISTINCT CASE WHEN NOT has_higher AND NOT has_average_prof AND has_only_general THEN id END) AS only_general, - COUNT(DISTINCT CASE WHEN has_no_data THEN id END) AS count_nodata - FROM education_status -) -SELECT - 'M' AS gender, - '${REG_ID}' AS recruitment_id, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE higher END AS higher, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE average_prof END AS average_prof, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE only_general END AS only_general, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE count_nodata END AS count_nodata, - total_count.total, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(higher * 100.0 / NULLIF(total_count.total, 0), 2) END AS higher_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(average_prof * 100.0 / NULLIF(total_count.total, 0), 2) END AS average_prof_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(only_general * 100.0 / NULLIF(total_count.total, 0), 2) END AS only_general_percentage, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE ROUND(count_nodata * 100.0 / NULLIF(total_count.total, 0), 2) END AS count_nodata_percentage -FROM final_counts, total_count; - 0 - - N - Y - N - - - - - - - - - - 416 - 352 - Y - - - - - - - N - -
diff --git a/mappings_old/region/total_registered.marital_status(reg).ktr b/mappings_old/region/total_registered.marital_status(reg).ktr deleted file mode 100644 index e7e9194..0000000 --- a/mappings_old/region/total_registered.marital_status(reg).ktr +++ /dev/null @@ -1,1456 +0,0 @@ - - - - total_registered.marital_status(reg) - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - ervu_person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Get variables 3 2 - Select values 3 2 - Y - - - Get variables 3 2 2 - Select values 3 2 2 - Y - - - Table input (person_registry) регионы/все - Get variables 3 2 - Y - - - Get variables 3 2 2 2 - Select values 3 2 2 2 - Y - - - Table input (person_registry) регионы/мужчины - Get variables 3 2 2 - Y - - - Table input (person_registry) регионы/женщины - Get variables 3 2 2 2 - Y - - - Select values 3 2 - Insert / update (total_registered.marital_status) - Y - - - Select values 3 2 2 - Insert / update (total_registered.marital_status) 2 - Y - - - Select values 3 2 2 2 - Insert / update (total_registered.marital_status) 3 - Y - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 192 - Y - - - - Get variables 3 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 352 - Y - - - - Get variables 3 2 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 672 - 512 - Y - - - - Insert / update (total_registered.marital_status) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered -
marital_status
- - REG_ID - recruitment_id - = - - - - married - married - Y - - - not_married - not_married - Y - - - married_percent - married_percent - Y - - - not_married_percent - not_married_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - - - marital_status - total - Y - - - - - - - - - - - - 1072 - 192 - Y - - - - Insert / update (total_registered.marital_status) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - marital_status
- - REG_ID - recruitment_id - = - - - - married - married - Y - - - not_married - not_married - Y - - - married_percent - married_percent - Y - - - not_married_percent - not_married_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - - - marital_status - total - Y - -
- - - - - - - - - - 1072 - 352 - Y - -
- - Insert / update (total_registered.marital_status) 3 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - Y - - total_registered - marital_status
- - REG_ID - recruitment_id - = - - - - married - married - Y - - - not_married - not_married - Y - - - married_percent - married_percent - Y - - - not_married_percent - not_married_percent - Y - - - "all_M_W" - gender - N - - - recruitment_id - recruitment_id - N - - - marital_status - total - Y - -
- - - - - - - - - - 1072 - 512 - Y - -
- - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 192 - Y - - - - Select values 3 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 352 - Y - - - - Select values 3 2 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 512 - Y - - - - Table input (person_registry) регионы/все - TableInput - - Y - - 1 - - none - - - ervu_person_registry - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) - END AS not_married, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) - END AS married, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) * 100.0 / COUNT(*), 2 - ) - END AS not_married_percent, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) * 100.0 / COUNT(*), 2 - ) - END AS married_percent, - - 'ALL' AS gender, - '${REG_ID}' AS recruitment_id - -FROM - public.recruits r -JOIN - public.recruits_info ri ON ri.recruit_id = r.id -WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ); - - 0 - - N - Y - N - - - - - - - - - - 448 - 192 - Y - - - - Table input (person_registry) регионы/женщины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) - END AS not_married, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) - END AS married, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) * 100.0 / COUNT(*), 2 - ) - END AS not_married_percent, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) * 100.0 / COUNT(*), 2 - ) - END AS married_percent, - - 'W' AS gender, - '${REG_ID}' AS recruitment_id - -FROM - public.recruits r -JOIN - public.recruits_info ri ON ri.recruit_id = r.id -WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'FEMALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ); - - 0 - - N - Y - N - - - - - - - - - - 432 - 512 - Y - - - - Table input (person_registry) регионы/мужчины - TableInput - - Y - - 1 - - none - - - ervu_person_registry - SELECT - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) - END AS not_married, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) - END AS married, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 - ELSE COUNT(*) - END AS total, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('Вдова/Вдовец', 'В разводе') - OR ri.info->'svedSemPolozh'->'semPolozhNaim' IS NULL - ) * 100.0 / COUNT(*), 2 - ) - END AS not_married_percent, - - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' OR COUNT(*) = 0 THEN 0 - ELSE ROUND( - COUNT(*) FILTER ( - WHERE - ri.info->'svedSemPolozh'->>'semPolozhNaim' IN ('В браке') - ) * 100.0 / COUNT(*), 2 - ) - END AS married_percent, - - 'M' AS gender, - '${REG_ID}' AS recruitment_id - -FROM - public.recruits r -JOIN - public.recruits_info ri ON ri.recruit_id = r.id -WHERE - r.vu_current_info->>'isMilitaryRegistered' = 'true' - AND r.gender = 'MALE' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ); - - 0 - - N - Y - N - - - - - - - - - - 432 - 352 - Y - - - - - - - N - -
diff --git a/mappings_old/region/total_registered.reg_mil_cat(reg).ktr b/mappings_old/region/total_registered.reg_mil_cat(reg).ktr deleted file mode 100644 index 8666088..0000000 --- a/mappings_old/region/total_registered.reg_mil_cat(reg).ktr +++ /dev/null @@ -1,1280 +0,0 @@ - - - - total_registered.reg_mil_cat(reg) - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.person_registry - person-dbhost - POSTGRESQL - Native - person-dbname - 4444 - person-dbuser - Encrypted 2be98afb80fd5818ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 4444 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Get variables 3 - Select values 3 - Y - - - Table input (person_registry) военком/рег - Get variables 3 - Y - - - Get variables 3 2 - Select values 3 2 - Y - - - Table input (person_registry) военком 2 - Get variables 3 2 - Y - - - Select values 3 - Insert / update (total_registered.reg_mil_cat) - Y - - - Select values 3 2 - Insert / update (total_registered.reg_mil_cat) 2 - Y - - - - Get variables 3 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 656 - 288 - Y - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 656 - 400 - Y - - - - Insert / update (total_registered.reg_mil_cat) - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered -
reg_mil_cat
- - REG_ID - recruitment_id - = - - - - first_reg_17 - first_reg_17 - Y - - - first_reg_18 - first_reg_18 - Y - - - "mil_spec_W" - mil_spec_w - Y - - - recruitment_id - recruitment_id - N - - - returned_dep_liberty - returned_dep_liberty - Y - - - punished - punished - Y - - - received_citizenship - received_citizenship - Y - - - first_reg_17_percent - first_reg_17_percent - Y - - - first_reg_18_percent - first_reg_18_percent - Y - - - returned_dep_liberty_percent - returned_dep_liberty_percent - Y - - - "mil_spec_W_percent" - mil_spec_w_percent - Y - - - punished_percent - punished_percent - Y - - - received_citizenship_percent - received_citizenship_percent - Y - - - mil_reg - mil_reg - N - - - - - - - - - - - - 1056 - 288 - Y - - - - Insert / update (total_registered.reg_mil_cat) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered - reg_mil_cat
- - REG_ID - recruitment_id - = - - - - first_reg_17 - first_reg_17 - Y - - - first_reg_18 - first_reg_18 - Y - - - "mil_spec_W" - mil_spec_w - Y - - - recruitment_id - recruitment_id - N - - - returned_dep_liberty - returned_dep_liberty - Y - - - punished - punished - Y - - - received_citizenship - received_citizenship - Y - - - first_reg_17_percent - first_reg_17_percent - Y - - - first_reg_18_percent - first_reg_18_percent - Y - - - returned_dep_liberty_percent - returned_dep_liberty_percent - Y - - - "mil_spec_W_percent" - mil_spec_w_percent - Y - - - punished_percent - punished_percent - Y - - - received_citizenship_percent - received_citizenship_percent - Y - - - mil_reg - mil_reg - N - -
- - - - - - - - - - 1056 - 400 - Y - -
- - Select values 3 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 800 - 288 - Y - - - - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 800 - 400 - Y - - - - Table input (person_registry) военком 2 - TableInput - - Y - - 1 - - none - - - postgres.person_registry - WITH base_data AS ( - -- Основной набор данных - SELECT - r.registration_reasons, - r.gender, - r.vu_current_info ->> 'isMilitaryRegistered' AS is_military_registered - FROM public.recruits r - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN ARRAY[]::uuid[] - ELSE string_to_array(trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',')::uuid[] - END - ) - ) -), -total AS ( - -- Общее количество записей - SELECT COUNT(*) AS total_count - FROM base_data -), -t1 AS ( - -- Первоначальная постановка 17 лет - SELECT COUNT(*) AS first_reg_17 - FROM base_data - WHERE registration_reasons @> '"5"' -), -t2 AS ( - -- Первоначальная постановка 18 лет - SELECT COUNT(*) AS first_reg_18 - FROM base_data - WHERE registration_reasons @> '"6"' - OR registration_reasons @> '"3"' - OR registration_reasons @> '"1"' - OR registration_reasons @> '"4"' - OR registration_reasons @> '"2"' -), -t3 AS ( - -- Женщины, получившие ВУС - SELECT COUNT(*) AS mil_spec_w - FROM base_data - WHERE registration_reasons @> '"3"' AND gender = 'FEMALE' -), -t4 AS ( - -- Возвратившиеся из мест лишения свободы - SELECT COUNT(*) AS returned_dep_liberty - FROM base_data - WHERE registration_reasons @> '"1"' -), -t5 AS ( - -- Отбывающие наказание в местах лишения свободы - SELECT COUNT(*) AS punished - FROM base_data - WHERE registration_reasons @> '"4"' -), -t6 AS ( - -- Получившие гражданство - SELECT COUNT(*) AS received_citizenship - FROM base_data - WHERE registration_reasons @> '"2"' -) -SELECT - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total.total_count, 0) END AS total_count, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t1.first_reg_17, 0) END AS first_reg_17, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t2.first_reg_18, 0) END AS first_reg_18, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t3.mil_spec_w, 0) END AS mil_spec_w, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t4.returned_dep_liberty, 0) END AS returned_dep_liberty, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t5.punished, 0) END AS punished, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t6.received_citizenship, 0) END AS received_citizenship, - -- Вычисление процентов - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t1.first_reg_17 * 100.0 / NULLIF(total.total_count, 0) END, 2) AS first_reg_17_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t2.first_reg_18 * 100.0 / NULLIF(total.total_count, 0) END, 2) AS first_reg_18_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t4.returned_dep_liberty * 100.0 / NULLIF(total.total_count, 0) END, 2) AS returned_dep_liberty_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t3.mil_spec_w * 100.0 / NULLIF(total.total_count, 0) END, 2) AS mil_spec_w_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t5.punished * 100.0 / NULLIF(total.total_count, 0) END, 2) AS punished_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t6.received_citizenship * 100.0 / NULLIF(total.total_count, 0) END, 2) AS received_citizenship_percent, - '${REG_ID}' AS recruitment_id, - 0 AS mil_reg, - 1 AS org -FROM total -FULL OUTER JOIN t1 ON 1 = 1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1; - 0 - - N - Y - N - - - - - - - - - - 400 - 400 - Y - - - - Table input (person_registry) военком/рег - TableInput - - Y - - 1 - - none - - - postgres.person_registry - WITH base_data AS ( - -- Основной набор данных - SELECT - r.registration_reasons, - r.gender, - r.vu_current_info ->> 'isMilitaryRegistered' AS is_military_registered - FROM public.recruits r - WHERE r.vu_current_info ->> 'isMilitaryRegistered' = 'true' - AND r.current_recruitment_id IS NOT NULL - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment_id = ANY ( - CASE - WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN ARRAY[]::uuid[] - ELSE string_to_array(trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',')::uuid[] - END - ) - ) -), -total AS ( - -- Общее количество записей - SELECT COUNT(*) AS total_count - FROM base_data -), -t1 AS ( - -- Первоначальная постановка 17 лет - SELECT COUNT(*) AS first_reg_17 - FROM base_data - WHERE registration_reasons @> '"5"' -), -t2 AS ( - -- Первоначальная постановка 18 лет - SELECT COUNT(*) AS first_reg_18 - FROM base_data - WHERE registration_reasons @> '"6"' - OR registration_reasons @> '"3"' - OR registration_reasons @> '"1"' - OR registration_reasons @> '"4"' - OR registration_reasons @> '"2"' -), -t3 AS ( - -- Женщины, получившие ВУС - SELECT COUNT(*) AS mil_spec_w - FROM base_data - WHERE registration_reasons @> '"3"' AND gender = 'FEMALE' -), -t4 AS ( - -- Возвратившиеся из мест лишения свободы - SELECT COUNT(*) AS returned_dep_liberty - FROM base_data - WHERE registration_reasons @> '"1"' -), -t5 AS ( - -- Отбывающие наказание в местах лишения свободы - SELECT COUNT(*) AS punished - FROM base_data - WHERE registration_reasons @> '"4"' -), -t6 AS ( - -- Получившие гражданство - SELECT COUNT(*) AS received_citizenship - FROM base_data - WHERE registration_reasons @> '"2"' -) -SELECT - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total.total_count, 0) END AS total_count, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t1.first_reg_17, 0) END AS first_reg_17, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t2.first_reg_18, 0) END AS first_reg_18, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t3.mil_spec_w, 0) END AS mil_spec_w, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t4.returned_dep_liberty, 0) END AS returned_dep_liberty, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t5.punished, 0) END AS punished, - CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(t6.received_citizenship, 0) END AS received_citizenship, - -- Вычисление процентов - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t1.first_reg_17 * 100.0 / NULLIF(total.total_count, 0) END, 2) AS first_reg_17_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t2.first_reg_18 * 100.0 / NULLIF(total.total_count, 0) END, 2) AS first_reg_18_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t4.returned_dep_liberty * 100.0 / NULLIF(total.total_count, 0) END, 2) AS returned_dep_liberty_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t3.mil_spec_w * 100.0 / NULLIF(total.total_count, 0) END, 2) AS mil_spec_w_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t5.punished * 100.0 / NULLIF(total.total_count, 0) END, 2) AS punished_percent, - ROUND(CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE t6.received_citizenship * 100.0 / NULLIF(total.total_count, 0) END, 2) AS received_citizenship_percent, - '${REG_ID}' AS recruitment_id, - 1 AS mil_reg, - 1 AS org -FROM total -FULL OUTER JOIN t1 ON 1 = 1 -FULL OUTER JOIN t2 ON 1 = 1 -FULL OUTER JOIN t3 ON 1 = 1 -FULL OUTER JOIN t4 ON 1 = 1 -FULL OUTER JOIN t5 ON 1 = 1 -FULL OUTER JOIN t6 ON 1 = 1; - 0 - - N - Y - N - - - - - - - - - - 400 - 288 - Y - - - - - - - N - -
diff --git a/mappings_old/region/total_registered.removed_registry(reg).ktr b/mappings_old/region/total_registered.removed_registry(reg).ktr deleted file mode 100644 index 18b8dcf..0000000 --- a/mappings_old/region/total_registered.removed_registry(reg).ktr +++ /dev/null @@ -1,877 +0,0 @@ - - - - total_registered.removed_registry(reg) - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.decision-document-service - decision-dbhost - POSTGRESQL - Native - decision-dbname - 3333 - decision-dbuser - Encrypted 2befccaab03d49b8ba554aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 3333 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Get variables 2 2 - Select values 2 2 - Y - - - Select values 2 2 - Insert / update (total_registered.removed_registry) 2 - Y - - - Table input (decision-document-service) регион 2 - Get variables 2 2 - Y - - - - Get variables 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 688 - 320 - Y - - - - Insert / update (total_registered.removed_registry) 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered -
removed_registry
- - REG_ID - recruitment_id - = - - - - age_limit - age_limit - Y - - - death - death - Y - - - removed_registry - removed_registry - Y - - - deprivation_citizenship - deprivation_citizenship - Y - - - travel_abroad - travel_abroad - Y - - - living_abroad - travel_abroad - Y - - - other - other - Y - - - deprivation_citizen_percents - deprivation_citizen_percents - Y - - - age_limit_percent - age_limit_percent - Y - - - death_percent - death_percent - Y - - - travel_abroad_percent - travel_abroad_percent - Y - - - living_abroad_percent - living_abroad_percent - Y - - - other_percent - other_percent - Y - - - recruitment_id - recruitment_id - N - - - - - - - - - - - - 1056 - 320 - Y - - - - Select values 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 816 - 320 - Y - - - - Table input (decision-document-service) регион 2 - TableInput - - Y - - 1 - - none - - - postgres.decision-document-service - WITH -total_info AS ( -SELECT -COUNT(*) AS removed_registry, -COUNT(CASE WHEN d.extra_info ->> 'cause' = 'ageLimit' THEN 1 END) AS age_limit, -- Количество по причине предельный возраст -COUNT(CASE WHEN d.extra_info ->> 'cause' = 'notAlive' THEN 1 END) AS death, -- Количество по причине смерть -COUNT(CASE WHEN (d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive')) THEN 1 END) AS other, -ROUND(COUNT(CASE WHEN d.extra_info ->> 'cause' = 'ageLimit' THEN 1 END) * 100.0 / NULLIF(COUNT(*), 0), 2) AS age_limit_percent, -ROUND(COUNT(CASE WHEN d.extra_info ->> 'cause' = 'notAlive' THEN 1 END) * 100.0 / NULLIF(COUNT(*), 0), 2) AS death_percent, -ROUND(COUNT(CASE WHEN (d.extra_info ->> 'cause' IS NULL OR d.extra_info ->> 'cause' NOT IN ('ageLimit', 'notAlive')) THEN 1 END) * 100.0 / NULLIF(COUNT(*), 0), 2) AS other_percent -FROM public.recruit AS r -JOIN public.decision AS d - ON d.recruit_id = r.id -JOIN public.decision_type AS dt - ON dt.id = d.type_id -WHERE r.system_pgs_status = '1.3' - AND r.current_recruitment IS NOT NULL - AND dt.code in ('9','10') - AND ( - '${VK_ARRAY}' IS NULL - OR '${VK_ARRAY}' = '' - OR r.target_recruitment = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), ',' - )::uuid[] - ) - ) -) -SELECT -'${REG_ID}' AS recruitment_id, -CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total_info.removed_registry, 0) END AS removed_registry, -CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total_info.age_limit, 0) END AS age_limit, -CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total_info.death, 0) END AS death, -CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total_info.other, 0) END AS other, -CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total_info.age_limit_percent, 0) END AS age_limit_percent, -CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total_info.death_percent, 0) END AS death_percent, -CASE WHEN '${VK_ARRAY}' IS NULL OR '${VK_ARRAY}' = '' THEN 0 ELSE COALESCE(total_info.other_percent, 0) END AS other_percent, -'0' AS deprivation_citizenship, -'0' AS travel_abroad, -'0' AS living_abroad, -'0' AS deprivation_citizen_percents, -'0' AS travel_abroad_percent, -'0' AS living_abroad_percent -FROM total_info - 0 - - N - Y - N - - - - - - - - - - 400 - 320 - Y - - - - - - - N - -
diff --git a/mappings_old/region/total_registered.subpoenas(reg).ktr b/mappings_old/region/total_registered.subpoenas(reg).ktr deleted file mode 100644 index eeaacd2..0000000 --- a/mappings_old/region/total_registered.subpoenas(reg).ktr +++ /dev/null @@ -1,1520 +0,0 @@ - - - - total_registered.subpoenas(reg) - - - - Normal - 0 - / - - - - - - - - - - - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - TRANSNAME - Y - TRANSNAME - - - STATUS - Y - STATUS - - - LINES_READ - Y - LINES_READ - - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - - LINES_UPDATED - Y - LINES_UPDATED - - - - LINES_INPUT - Y - LINES_INPUT - - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - - LINES_REJECTED - Y - LINES_REJECTED - - - - ERRORS - Y - ERRORS - - - STARTDATE - Y - STARTDATE - - - ENDDATE - Y - ENDDATE - - - LOGDATE - Y - LOGDATE - - - DEPDATE - Y - DEPDATE - - - REPLAYDATE - Y - REPLAYDATE - - - LOG_FIELD - Y - LOG_FIELD - - - EXECUTING_SERVER - N - EXECUTING_SERVER - - - EXECUTING_USER - N - EXECUTING_USER - - - CLIENT - N - CLIENT - - - - - -
- - - - ID_BATCH - Y - ID_BATCH - - - SEQ_NR - Y - SEQ_NR - - - LOGDATE - Y - LOGDATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - INPUT_BUFFER_ROWS - Y - INPUT_BUFFER_ROWS - - - OUTPUT_BUFFER_ROWS - Y - OUTPUT_BUFFER_ROWS - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - LOGGING_OBJECT_TYPE - Y - LOGGING_OBJECT_TYPE - - - OBJECT_NAME - Y - OBJECT_NAME - - - OBJECT_COPY - Y - OBJECT_COPY - - - REPOSITORY_DIRECTORY - Y - REPOSITORY_DIRECTORY - - - FILENAME - Y - FILENAME - - - OBJECT_ID - Y - OBJECT_ID - - - OBJECT_REVISION - Y - OBJECT_REVISION - - - PARENT_CHANNEL_ID - Y - PARENT_CHANNEL_ID - - - ROOT_CHANNEL_ID - Y - ROOT_CHANNEL_ID - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - TRANSNAME - Y - TRANSNAME - - - STEPNAME - Y - STEPNAME - - - STEP_COPY - Y - STEP_COPY - - - LINES_READ - Y - LINES_READ - - - LINES_WRITTEN - Y - LINES_WRITTEN - - - LINES_UPDATED - Y - LINES_UPDATED - - - LINES_INPUT - Y - LINES_INPUT - - - LINES_OUTPUT - Y - LINES_OUTPUT - - - LINES_REJECTED - Y - LINES_REJECTED - - - ERRORS - Y - ERRORS - - - LOG_FIELD - N - LOG_FIELD - - - - - -
- - - ID_BATCH - Y - ID_BATCH - - - CHANNEL_ID - Y - CHANNEL_ID - - - LOG_DATE - Y - LOG_DATE - - - METRICS_DATE - Y - METRICS_DATE - - - METRICS_CODE - Y - METRICS_CODE - - - METRICS_DESCRIPTION - Y - METRICS_DESCRIPTION - - - METRICS_SUBJECT - Y - METRICS_SUBJECT - - - METRICS_TYPE - Y - METRICS_TYPE - - - METRICS_VALUE - Y - METRICS_VALUE - - - - - -
- - 0.0 - 0.0 - - 10000 - 50 - 50 - N - Y - 50000 - Y - - N - 1000 - 100 - - - - - - - local - localhost - 8888 - - cluster - Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8 - - - - Y - N - - - - - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - H4sIAAAAAAAAAAMAAAAAAAAAAAA= - N - - - - - ervu-dashboard - dashboard-dbhost - POSTGRESQL - Native - dashboard-dbname - 1111 - dashboard-dbuser - Encrypted 2daf9dca008c89396af54aa72ce93bcc9 - - - - - - EXTRA_OPTION_POSTGRESQL.stringtype - unspecified - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 1111 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - postgres.subpoena - subpoena-dbhost - POSTGRESQL - Native - subpoena-dbname - 5555 - subpoena-dbuser - Encrypted 2beebdaaa1ac8978aaa54aa72ce93bcc9 - - - - - - FORCE_IDENTIFIERS_TO_LOWERCASE - N - - - FORCE_IDENTIFIERS_TO_UPPERCASE - N - - - IS_CLUSTERED - N - - - PORT_NUMBER - 5555 - - - PRESERVE_RESERVED_WORD_CASE - Y - - - QUOTE_ALL_FIELDS - N - - - SUPPORTS_BOOLEAN_DATA_TYPE - N - - - SUPPORTS_TIMESTAMP_DATA_TYPE - N - - - USE_POOLING - N - - - - - - Get variables 4 2 - Select values 4 2 - Y - - - Table input (subpoena) регион/рег - Get variables 4 2 - Y - - - Get variables 4 2 2 - Select values 4 2 2 - Y - - - Table input (subpoena) регион/не рег - Get variables 4 2 2 - Y - - - Select values 4 2 - Insert / update (total_registered.subpoenas) 3 - Y - - - Select values 4 2 2 - Insert / update (total_registered.subpoenas) 3 2 - Y - - - - Get variables 4 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 464 - 400 - Y - - - - Get variables 4 2 2 - GetVariable - - Y - - 1 - - none - - - - - REG_ID - - String - - - - - -1 - -1 - none - - - VK_ARRAY - - String - - - - - -1 - -1 - none - - - - - - - - - - - - 464 - 528 - Y - - - - Select values 4 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 640 - 400 - Y - - - - Select values 4 2 2 - SelectValues - - Y - - 1 - - none - - - - N - - REG_ID - REG_ID - String - -2 - -2 - - false - - - false - - - - - - - - VK_ARRAY - VK_ARRAY - String - -2 - -2 - - false - - - false - - - - - - - - - - - - - - - - - 640 - 528 - Y - - - - Table input (subpoena) регион/не рег - TableInput - - Y - - 1 - - none - - - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type = '1' - AND ssh.code NOT IN ('3.14','3.7','3.72', '3.71') - AND ( - COALESCE('${VK_ARRAY}', '') = '' - OR s.department_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), - ',' - )::uuid[] - ) - ) -), -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery - FROM last_status - WHERE d_code IS NULL -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') -) -SELECT - COALESCE(t1.count_subpoena, 0) AS count_subpoena, - COALESCE(t2.average_appeared, 0) AS average_appeared, - COALESCE(t3.count_appeared, 0) AS count_appeared, - COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, - COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, - COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, - COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, - COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, - COALESCE(t9.count_paper, 0) AS count_paper, - COALESCE(t10.count_electron, 0) AS count_electron, - COALESCE(t11.count_restrictions, 0) AS count_restrictions, - COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, - COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, - ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appeared_percent, - ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS electron_percent, - ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS paper_percent, - ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_delivery_percent, - ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appear_date_is_good_percent, - '${REG_ID}' AS recruitment_id, - 1 AS org, - 0 AS mil_reg -FROM t1 -FULL OUTER JOIN t2 ON true -FULL OUTER JOIN t3 ON true -FULL OUTER JOIN t4 ON true -FULL OUTER JOIN t5 ON true -FULL OUTER JOIN t6 ON true -FULL OUTER JOIN t7 ON true -FULL OUTER JOIN t8 ON true -FULL OUTER JOIN t9 ON true -FULL OUTER JOIN t10 ON true -FULL OUTER JOIN t11 ON true -FULL OUTER JOIN t12 ON true -FULL OUTER JOIN t13 ON true -WHERE NOT ( - COALESCE('${VK_ARRAY}', '') = '' - AND ( - COALESCE(t1.count_subpoena, 0) > 0 - OR COALESCE(t2.average_appeared, 0) > 0 - OR COALESCE(t3.count_appeared, 0) > 0 - OR COALESCE(t4.count_not_appeared, 0) > 0 - OR COALESCE(t5.count_not_ap_good_reason, 0) > 0 - OR COALESCE(t6.count_ap_not_required, 0) > 0 - OR COALESCE(t7.count_restrictions_applied, 0) > 0 - OR COALESCE(t8.count_introduced_measures, 0) > 0 - OR COALESCE(t9.count_paper, 0) > 0 - OR COALESCE(t10.count_electron, 0) > 0 - OR COALESCE(t11.count_restrictions, 0) > 0 - OR COALESCE(t12.count_not_delivery, 0) > 0 - OR COALESCE(t13.appear_date_is_good, 0) > 0 - ) -); - 0 - - N - Y - N - - - - - - - - - - 256 - 528 - Y - - - - Table input (subpoena) регион/рег - TableInput - - Y - - 1 - - none - - - postgres.subpoena - WITH subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.status_id, - sr.type, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ROW_NUMBER() OVER (PARTITION BY s.id ORDER BY sh.date_time DESC) AS rn - FROM subpoena s - JOIN subpoena_history AS sh ON sh.subpoena_id = s.id - JOIN subpoena_status AS ss ON ss.id = s.status_id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN restriction_document AS rd ON rd.subpoena_id = s.id - LEFT JOIN restriction_document_item AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN subpoena_send_info AS ssi ON ssi.subpoena_id = s.id - WHERE sr.type != '1' - AND ssh.code NOT IN ('3.14','3.7','3.72', '3.71') - AND ( - COALESCE('${VK_ARRAY}', '') = '' - OR s.department_id = ANY ( - string_to_array( - trim(both '{}' FROM replace('${VK_ARRAY}', ' ', '')), - ',' - )::uuid[] - ) - ) -), -last_status AS ( - SELECT * - FROM subpoena_data - WHERE rn = 1 -), -t1 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_subpoena - FROM last_status - WHERE sub_stat_hist IS NOT NULL -), -t2 AS ( - SELECT ROUND(AVG(EXTRACT(DAY FROM (history_date::timestamp - send_date::timestamp))), 1) AS average_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t3 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_appeared - FROM last_status - WHERE sub_stat_hist IN ('4.1', '4.2', '4') -), -t4 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_appeared - FROM last_status - WHERE sub_stat_hist = '5' -), -t5 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_ap_good_reason - FROM last_status - WHERE sub_stat_hist = '5.1' -), -t6 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_ap_not_required - FROM last_status - WHERE sub_stat_hist IN ('3.8', '5.2') -), -t7 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_restrictions_applied - FROM last_status - WHERE restr_dc IS NULL -), -t8 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_introduced_measures - FROM last_status - WHERE restr_dc IS NULL AND ap_date IS NOT NULL -), -t9 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_paper - FROM last_status - WHERE d_code != '7' -), -t10 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_electron - FROM last_status - WHERE d_code = '7' -), -t11 AS ( - SELECT COUNT (DISTINCT rdi_id) AS count_restrictions - FROM last_status -), -t12 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS count_not_delivery - FROM last_status - WHERE d_code IS NULL -), -t13 AS ( - SELECT COUNT(DISTINCT subpoena_id) AS appear_date_is_good - FROM last_status - WHERE sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') -) -SELECT - COALESCE(t1.count_subpoena, 0) AS count_subpoena, - COALESCE(t2.average_appeared, 0) AS average_appeared, - COALESCE(t3.count_appeared, 0) AS count_appeared, - COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, - COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, - COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, - COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, - COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, - COALESCE(t9.count_paper, 0) AS count_paper, - COALESCE(t10.count_electron, 0) AS count_electron, - COALESCE(t11.count_restrictions, 0) AS count_restrictions, - COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, - COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, - ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appeared_percent, - ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS electron_percent, - ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS paper_percent, - ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_delivery_percent, - ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appear_date_is_good_percent, - '${REG_ID}' AS recruitment_id, - 1 AS org, - 1 AS mil_reg -FROM t1 -FULL OUTER JOIN t2 ON true -FULL OUTER JOIN t3 ON true -FULL OUTER JOIN t4 ON true -FULL OUTER JOIN t5 ON true -FULL OUTER JOIN t6 ON true -FULL OUTER JOIN t7 ON true -FULL OUTER JOIN t8 ON true -FULL OUTER JOIN t9 ON true -FULL OUTER JOIN t10 ON true -FULL OUTER JOIN t11 ON true -FULL OUTER JOIN t12 ON true -FULL OUTER JOIN t13 ON true -WHERE NOT ( - COALESCE('${VK_ARRAY}', '') = '' - AND ( - COALESCE(t1.count_subpoena, 0) > 0 - OR COALESCE(t2.average_appeared, 0) > 0 - OR COALESCE(t3.count_appeared, 0) > 0 - OR COALESCE(t4.count_not_appeared, 0) > 0 - OR COALESCE(t5.count_not_ap_good_reason, 0) > 0 - OR COALESCE(t6.count_ap_not_required, 0) > 0 - OR COALESCE(t7.count_restrictions_applied, 0) > 0 - OR COALESCE(t8.count_introduced_measures, 0) > 0 - OR COALESCE(t9.count_paper, 0) > 0 - OR COALESCE(t10.count_electron, 0) > 0 - OR COALESCE(t11.count_restrictions, 0) > 0 - OR COALESCE(t12.count_not_delivery, 0) > 0 - OR COALESCE(t13.appear_date_is_good, 0) > 0 - ) -); - 0 - - N - Y - N - - - - - - - - - - 256 - 400 - Y - - - - Insert / update (total_registered.subpoenas) 3 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered -
subpoenas
- - REG_ID - recruitment_id - = - - - - subpoena - count_subpoena - Y - - - appeared - count_appeared - Y - - - average_appeared - average_appeared - Y - - - not_appeared - count_not_appeared - Y - - - not_ap_good_reason - count_not_ap_good_reason - Y - - - introduced_measures - count_introduced_measures - Y - - - ap_not_required - count_ap_not_required - Y - - - electron - count_electron - Y - - - paper - count_paper - Y - - - restrictions_applied - count_restrictions_applied - Y - - - recruitment_id - recruitment_id - N - - - mil_reg - mil_reg - N - - - appeared_percent - appeared_percent - Y - - - not_appeared_percent - not_appeared_percent - Y - - - not_ap_good_reason_percent - not_ap_good_reason_percent - Y - - - ap_not_required_percent - ap_not_required_percent - Y - - - electron_percent - electron_percent - Y - - - paper_percent - paper_percent - Y - - - restrictions_applied_percent - restrictions_applied_percent - Y - - - introduced_measures_percent - introduced_measures_percent - Y - - - count_not_delivery - count_not_delivery - Y - - - appear_date_is_good - appear_date_is_good - Y - - - not_delivery_percent - not_delivery_percent - Y - - - appear_date_is_good_percent - appear_date_is_good_percent - Y - - - - - - - - - - - - 912 - 400 - Y - - - - Insert / update (total_registered.subpoenas) 3 2 - InsertUpdate - - Y - - 1 - - none - - - ervu-dashboard - 100 - N - - total_registered - subpoenas
- - REG_ID - recruitment_id - = - - - - subpoena - count_subpoena - Y - - - appeared - count_appeared - Y - - - average_appeared - average_appeared - Y - - - not_appeared - count_not_appeared - Y - - - not_ap_good_reason - count_not_ap_good_reason - Y - - - introduced_measures - count_introduced_measures - Y - - - ap_not_required - count_ap_not_required - Y - - - electron - count_electron - Y - - - paper - count_paper - Y - - - restrictions_applied - count_restrictions_applied - Y - - - recruitment_id - recruitment_id - N - - - mil_reg - mil_reg - N - - - appeared_percent - appeared_percent - Y - - - not_appeared_percent - not_appeared_percent - Y - - - not_ap_good_reason_percent - not_ap_good_reason_percent - Y - - - ap_not_required_percent - ap_not_required_percent - Y - - - electron_percent - electron_percent - Y - - - paper_percent - paper_percent - Y - - - restrictions_applied_percent - restrictions_applied_percent - Y - - - introduced_measures_percent - introduced_measures_percent - Y - - - count_not_delivery - count_not_delivery - Y - - - appear_date_is_good - appear_date_is_good - Y - - - not_delivery_percent - not_delivery_percent - Y - - - appear_date_is_good_percent - appear_date_is_good_percent - Y - -
- - - - - - - - - - 912 - 528 - Y - -
- - - - - N - -
From 011a0fd77a8692735ca2eb9ce03c29921f955a56 Mon Sep 17 00:00:00 2001 From: "r.gaztdinov" Date: Mon, 9 Jun 2025 15:26:41 +0300 Subject: [PATCH 4/5] fix --- mappings/connections/db_mln118_to_local.json | 103 + mappings/connections/db_uat_to_local_mln.json | 103 + .../clearing_recruits_from_citizen_table.hpl | 193 ++ ...b_clearing_recruits_from_citizen_table.hwf | 61 + .../checkpoinnt_raw_info_recruits_err.hpl} | 84 +- .../checkpoint_raw_info_recruits_success.hpl | 131 + .../job_if_err_raw_inf_recr.hwf | 242 ++ .../job_raw_info_recruits.hwf | 266 ++ .../raw_info_recruits/raw_info_recruits.hpl} | 67 +- .../branching_job_general_info_recruits.hpl | 139 + .../checkpoint_job_recruits_info_citizen.hpl | 739 +++++ .../state_job_general_info_recruits.json | 4 + .../citizen_appealing_violations_fz53.hpl | 27 - .../info_recruits/citizen_complex_filters.hpl | 27 - .../citizen_criminal_liability_fz53.hpl | 27 - .../info_recruits/citizen_criminal_record.hpl | 27 - .../citizen_education_diplomas_received.hpl | 205 -- mappings/info_recruits/citizen_foreign.hpl | 302 --- .../citizen_individual_decisions.hpl | 27 - .../citizen_information_search.hpl | 27 - .../citizen_tables/child/branching_child.hpl | 173 ++ .../checkpoints/checkpoint_child_error.hpl | 273 ++ .../checkpoints/checkpoint_job_child.hpl | 733 +++++ .../child/checkpoints/state_child_delta.json | 6 + .../child/checkpoints/state_child_flow1.json | 4 + .../child/checkpoints/state_child_flow2.json | 4 + .../child/checkpoints/state_child_flow3.json | 4 + .../child/checkpoints/state_child_flow4.json | 4 + .../child/checkpoints/state_child_flow5.json | 4 + .../child/checkpoints/state_job_child.json | 4 + .../citizen_tables/child/delta_child.hpl} | 73 +- .../citizen_tables/child/job_child.hwf | 1672 ++++++++++++ .../child/job_recruit_last_update_date.hwf | 124 + .../child/parallel/child_flow1.hpl | 229 ++ .../child/parallel/child_flow2.hpl} | 149 +- .../child/parallel/child_flow3.hpl | 142 + .../child/parallel/child_flow4.hpl} | 164 +- .../child/parallel/child_flow5.hpl} | 177 +- .../recruit_update_date_ervu_dashboard.hpl} | 63 +- .../recruitment_rows_five_flow_if_error.hpl | 261 ++ .../child/row_last_recruit_update_date.hpl} | 70 +- .../citizen/branching_citizen.hpl | 173 ++ .../checkpoints/checkpoint_citizen_error.hpl | 272 ++ .../checkpoints/checkpoint_job_citizen.hpl | 733 +++++ .../checkpoints/job_create_files_citizen.hwf | 235 ++ .../checkpoints/state_citizen_delta.json | 6 + .../checkpoints/state_citizen_flow1.json | 4 + .../checkpoints/state_citizen_flow2.json | 4 + .../checkpoints/state_citizen_flow3.json | 4 + .../checkpoints/state_citizen_flow4.json | 4 + .../checkpoints/state_citizen_flow5.json | 4 + .../citizen_tables/citizen/delta_citizen.hpl | 239 ++ .../citizen_tables/citizen/job_citizen.hwf | 1754 ++++++++++++ .../citizen/job_recruit_last_update_date.hwf | 124 + .../citizen/parallel/citizen_flow1.hpl | 333 +++ .../citizen/parallel/citizen_flow2.hpl | 241 ++ .../citizen/parallel/citizen_flow3.hpl | 241 ++ .../citizen/parallel/citizen_flow4.hpl | 239 ++ .../citizen/parallel/citizen_flow5.hpl | 239 ++ .../recruit_update_date_ervu_dashboard.hpl} | 65 +- .../recruitment_rows_five_flow_if_error.hpl | 259 ++ .../citizen/row_last_recruit_update_date.hpl | 109 + .../info_recruits/citizen_work_activity.hpl | 248 -- mappings/info_recruits/citizenship.hpl | 181 -- mappings/info_recruits/deferments.hpl | 235 -- mappings/info_recruits/deputy.hpl | 290 -- mappings/info_recruits/disability.hpl | 323 --- mappings/info_recruits/drivers_licence.hpl | 344 --- mappings/info_recruits/incident.hpl | 27 - mappings/info_recruits/info_recruits.hpl | 785 ------ .../job_general_info_recruits.hwf | 1200 +++++++++ mappings/info_recruits/job_info_recruits.hwf | 2047 -------------- .../job_parallel_recruits_info_citizen.hwf | 143 + .../info_recruits/medical_authorities.hpl | 295 -- mappings/info_recruits/passport.hpl | 341 --- mappings/info_recruits/property.hpl | 666 ----- mappings/info_recruits/prosecution.hpl | 182 -- mappings/info_recruits/punishment.hpl | 204 -- .../info_recruits/branching_recruits_info.hpl | 173 ++ .../checkpoint_job_recruits_info.hpl | 863 ++++++ .../checkpoint_recruit_info_error.hpl | 284 ++ .../job_check_files_recruits_info.hwf | 330 +++ .../job_checkpoints_recruits_info.hwf} | 45 +- .../job_create_files_recruits_info.hwf | 235 ++ .../state_recruits_info_delta.json | 6 + .../state_recruits_info_flow1.json | 4 + .../state_recruits_info_flow2.json | 4 + .../state_recruits_info_flow3.json | 4 + .../state_recruits_info_flow4.json | 4 + .../state_recruits_info_flow5.json | 4 + .../info_recruits/delta_recruits_info.hpl | 151 ++ .../job_recruit_last_update_date.hwf | 124 + .../info_recruits/job_recruits_info.hwf | 2001 ++++++++++++++ .../parallel/recruits_info_flow1.hpl | 231 ++ .../parallel/recruits_info_flow2.hpl} | 83 +- .../parallel/recruits_info_flow3.hpl} | 189 +- .../parallel/recruits_info_flow4.hpl | 140 + .../parallel/recruits_info_flow5.hpl | 140 + .../recruit_update_date_ervu_dashboard.hpl} | 100 +- .../recruitment_rows_five_flow_if_error.hpl | 259 ++ .../recruits_info_param_create_date.hpl} | 57 +- .../row_last_recruit_update_date.hpl | 109 + .../recruitment/job_recruitment.hwf | 144 + .../recruitment.hpl} | 122 +- .../recruitment_param_create_date.hpl} | 52 +- mappings/info_recruits/spouse.hpl | 295 -- mappings/info_recruits/subpoena.hpl | 309 --- .../supportive_jobs/job_create_files.hwf | 145 + .../job_create_files_for_test.hwf | 113 + .../job_recruit_create_date.hwf} | 95 +- .../recruit_create_date_person_registry.hpl} | 34 +- .../supportive_jobs/recruitment_rows.hpl | 8 +- .../recruitment_rows_five_flow.hpl | 121 + .../recruitment_rows_five_flow_child.hpl | 121 + .../recruitment_rows_five_flow_citizen.hpl | 121 + .../row_last_recruit_create_date.hpl} | 119 +- mappings/info_recruits/temporary_measure.hpl | 230 -- mappings/jobs_once_a_day/children_flags.hpl | 106 - ...citizen_appealing_violations_fz53_once.hpl | 179 -- .../citizen_complex_filters_once.hpl | 27 - .../citizen_criminal_liability_fz53_once.hpl | 178 -- .../jobs_once_a_day/citizen_diploma_once.hpl | 187 -- ...tizen_education_diplomas_received_once.hpl | 130 - mappings/jobs_once_a_day/citizen_flags.hpl | 619 ----- mappings/jobs_once_a_day/citizen_flags.hwf | 386 --- .../citizen_foreign_diploma_once.hpl | 200 -- .../jobs_once_a_day/citizen_foreign_once.hpl | 179 -- .../citizen_individual_decisions_once.hpl | 27 - .../citizen_information_search_once.hpl | 27 - .../jobs_once_a_day/citizen_kolledzh_once.hpl | 276 -- .../citizen_liability_fz53_once.hpl | 209 -- .../jobs_once_a_day/citizen_school_once.hpl | 193 -- .../citizen_sports_categories_once.hpl | 172 -- .../citizen_vuz_education_once.hpl | 295 -- .../citizen_work_activity_once.hpl | 289 -- .../jobs_once_a_day/citizenship_flags.hpl | 104 - .../copy_punishment_and_deferment_once.hwf | 1310 --------- .../jobs_once_a_day/criminal_record_flags.hpl | 103 - .../jobs_once_a_day/deferment_reason_once.hpl | 104 - mappings/jobs_once_a_day/deferments_once.hpl | 341 --- mappings/jobs_once_a_day/deputy_flags.hpl | 98 - mappings/jobs_once_a_day/deputy_once.hpl | 221 -- mappings/jobs_once_a_day/disability_once.hpl | 312 --- mappings/jobs_once_a_day/disease_once.hpl | 168 -- .../jobs_once_a_day/driver_licenses_flags.hpl | 98 - .../jobs_once_a_day/drivers_licence_once.hpl | 183 -- .../education_constants_once.hpl | 1029 ------- mappings/jobs_once_a_day/id_ern_once.hpl | 91 - mappings/jobs_once_a_day/incident_once.hpl | 27 - mappings/jobs_once_a_day/info_recruits.hpl | 759 ------ .../jobs_once_a_day/info_recruits_once.hpl | 808 ------ .../job_info_recruits_once.hwf | 2390 ----------------- .../medical_authorities_once.hpl | 300 --- mappings/jobs_once_a_day/opekun_flags.hpl | 92 - mappings/jobs_once_a_day/passport_once.hpl | 181 -- mappings/jobs_once_a_day/property_flags.hpl | 104 - mappings/jobs_once_a_day/property_once.hpl | 342 --- mappings/jobs_once_a_day/prosecution_once.hpl | 169 -- mappings/jobs_once_a_day/punishment_once.hpl | 108 - mappings/jobs_once_a_day/spouse_once.hpl | 296 -- mappings/jobs_once_a_day/subpoena_flags.hpl | 110 - mappings/jobs_once_a_day/subpoena_once.hpl | 150 -- .../temporary_measure_once.hpl | 132 - mappings/mil_com/job_recruitments_milcom.hwf | 155 +- .../mil_com/main_dashboard.appeals(m_c).hpl | 314 --- ...in_dashboard.recruitment_campaign(m_c).hwf | 0 mappings/mil_com/parameters/add_schema.hpl | 1111 +------- .../mil_com/parameters/array_recruitments.hpl | 25 +- .../ft_main_dashboard.appeals(m_c).hpl | 310 --- .../recruitment_campaign.appeals(m_c).hpl | 284 -- .../recruitment_campaign.subpoenas(m_c).hpl | 685 ----- mappings/pack.pub_recruitment.hpl | 3 +- 172 files changed, 18935 insertions(+), 25257 deletions(-) create mode 100644 mappings/connections/db_mln118_to_local.json create mode 100644 mappings/connections/db_uat_to_local_mln.json create mode 100644 mappings/dummy/clearing_recruits/clearing_recruits_from_citizen_table.hpl create mode 100644 mappings/dummy/clearing_recruits/job_clearing_recruits_from_citizen_table.hwf rename mappings/{jobs_once_a_day/citizenship_once.hpl => dummy/raw_info_recruits/checkpoinnt_raw_info_recruits_err.hpl} (50%) create mode 100644 mappings/dummy/raw_info_recruits/checkpoint_raw_info_recruits_success.hpl create mode 100644 mappings/dummy/raw_info_recruits/job_if_err_raw_inf_recr.hwf create mode 100644 mappings/dummy/raw_info_recruits/job_raw_info_recruits.hwf rename mappings/{info_recruits/supportive_count_citizen.hpl => dummy/raw_info_recruits/raw_info_recruits.hpl} (69%) create mode 100644 mappings/info_recruits/branching_job_general_info_recruits.hpl create mode 100644 mappings/info_recruits/checkpoints/checkpoint_job_recruits_info_citizen.hpl create mode 100644 mappings/info_recruits/checkpoints/state_job_general_info_recruits.json delete mode 100644 mappings/info_recruits/citizen_appealing_violations_fz53.hpl delete mode 100644 mappings/info_recruits/citizen_complex_filters.hpl delete mode 100644 mappings/info_recruits/citizen_criminal_liability_fz53.hpl delete mode 100644 mappings/info_recruits/citizen_criminal_record.hpl delete mode 100644 mappings/info_recruits/citizen_education_diplomas_received.hpl delete mode 100644 mappings/info_recruits/citizen_foreign.hpl delete mode 100644 mappings/info_recruits/citizen_individual_decisions.hpl delete mode 100644 mappings/info_recruits/citizen_information_search.hpl create mode 100644 mappings/info_recruits/citizen_tables/child/branching_child.hpl create mode 100644 mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_child_error.hpl create mode 100644 mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child.hpl create mode 100644 mappings/info_recruits/citizen_tables/child/checkpoints/state_child_delta.json create mode 100644 mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json create mode 100644 mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json create mode 100644 mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json create mode 100644 mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json create mode 100644 mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json create mode 100644 mappings/info_recruits/citizen_tables/child/checkpoints/state_job_child.json rename mappings/{jobs_once_a_day/child_once.hpl => info_recruits/citizen_tables/child/delta_child.hpl} (70%) create mode 100644 mappings/info_recruits/citizen_tables/child/job_child.hwf create mode 100644 mappings/info_recruits/citizen_tables/child/job_recruit_last_update_date.hwf create mode 100644 mappings/info_recruits/citizen_tables/child/parallel/child_flow1.hpl rename mappings/info_recruits/{child.hpl => citizen_tables/child/parallel/child_flow2.hpl} (68%) create mode 100644 mappings/info_recruits/citizen_tables/child/parallel/child_flow3.hpl rename mappings/{jobs_once_a_day/opekun_once.hpl => info_recruits/citizen_tables/child/parallel/child_flow4.hpl} (50%) rename mappings/info_recruits/{opekun.hpl => citizen_tables/child/parallel/child_flow5.hpl} (51%) rename mappings/{jobs_once_a_day/temporary_measure_flag.hpl => info_recruits/citizen_tables/child/recruit_update_date_ervu_dashboard.hpl} (58%) create mode 100644 mappings/info_recruits/citizen_tables/child/recruitment_rows_five_flow_if_error.hpl rename mappings/{mil_com/select_recruitments_milcom(m_c).hpl => info_recruits/citizen_tables/child/row_last_recruit_update_date.hpl} (53%) create mode 100644 mappings/info_recruits/citizen_tables/citizen/branching_citizen.hpl create mode 100644 mappings/info_recruits/citizen_tables/citizen/checkpoints/checkpoint_citizen_error.hpl create mode 100644 mappings/info_recruits/citizen_tables/citizen/checkpoints/checkpoint_job_citizen.hpl create mode 100644 mappings/info_recruits/citizen_tables/citizen/checkpoints/job_create_files_citizen.hwf create mode 100644 mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_delta.json create mode 100644 mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow1.json create mode 100644 mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow2.json create mode 100644 mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow3.json create mode 100644 mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow4.json create mode 100644 mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow5.json create mode 100644 mappings/info_recruits/citizen_tables/citizen/delta_citizen.hpl create mode 100644 mappings/info_recruits/citizen_tables/citizen/job_citizen.hwf create mode 100644 mappings/info_recruits/citizen_tables/citizen/job_recruit_last_update_date.hwf create mode 100644 mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow1.hpl create mode 100644 mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow2.hpl create mode 100644 mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow3.hpl create mode 100644 mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow4.hpl create mode 100644 mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow5.hpl rename mappings/{jobs_once_a_day/recruitment_code_once.hpl => info_recruits/citizen_tables/citizen/recruit_update_date_ervu_dashboard.hpl} (56%) create mode 100644 mappings/info_recruits/citizen_tables/citizen/recruitment_rows_five_flow_if_error.hpl create mode 100644 mappings/info_recruits/citizen_tables/citizen/row_last_recruit_update_date.hpl delete mode 100644 mappings/info_recruits/citizen_work_activity.hpl delete mode 100644 mappings/info_recruits/citizenship.hpl delete mode 100644 mappings/info_recruits/deferments.hpl delete mode 100644 mappings/info_recruits/deputy.hpl delete mode 100644 mappings/info_recruits/disability.hpl delete mode 100644 mappings/info_recruits/drivers_licence.hpl delete mode 100644 mappings/info_recruits/incident.hpl delete mode 100644 mappings/info_recruits/info_recruits.hpl create mode 100644 mappings/info_recruits/job_general_info_recruits.hwf delete mode 100644 mappings/info_recruits/job_info_recruits.hwf create mode 100644 mappings/info_recruits/job_parallel_recruits_info_citizen.hwf delete mode 100644 mappings/info_recruits/medical_authorities.hpl delete mode 100644 mappings/info_recruits/passport.hpl delete mode 100644 mappings/info_recruits/property.hpl delete mode 100644 mappings/info_recruits/prosecution.hpl delete mode 100644 mappings/info_recruits/punishment.hpl create mode 100644 mappings/info_recruits/raw_data/info_recruits/branching_recruits_info.hpl create mode 100644 mappings/info_recruits/raw_data/info_recruits/checkpoints/checkpoint_job_recruits_info.hpl create mode 100644 mappings/info_recruits/raw_data/info_recruits/checkpoints/checkpoint_recruit_info_error.hpl create mode 100644 mappings/info_recruits/raw_data/info_recruits/checkpoints/job_check_files_recruits_info.hwf rename mappings/info_recruits/{job_last_update_date.hwf => raw_data/info_recruits/checkpoints/job_checkpoints_recruits_info.hwf} (61%) create mode 100644 mappings/info_recruits/raw_data/info_recruits/checkpoints/job_create_files_recruits_info.hwf create mode 100644 mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_delta.json create mode 100644 mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow1.json create mode 100644 mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow2.json create mode 100644 mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow3.json create mode 100644 mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow4.json create mode 100644 mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow5.json create mode 100644 mappings/info_recruits/raw_data/info_recruits/delta_recruits_info.hpl create mode 100644 mappings/info_recruits/raw_data/info_recruits/job_recruit_last_update_date.hwf create mode 100644 mappings/info_recruits/raw_data/info_recruits/job_recruits_info.hwf create mode 100644 mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl rename mappings/info_recruits/{citizen_sports_categories.hpl => raw_data/info_recruits/parallel/recruits_info_flow2.hpl} (56%) rename mappings/{jobs_once_a_day/recruit_ervu_status_once.hpl => info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl} (50%) create mode 100644 mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl create mode 100644 mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl rename mappings/{jobs_once_a_day/criminal_prosecution_flags.hpl => info_recruits/raw_data/info_recruits/recruit_update_date_ervu_dashboard.hpl} (56%) create mode 100644 mappings/info_recruits/raw_data/info_recruits/recruitment_rows_five_flow_if_error.hpl rename mappings/info_recruits/{select_delta_time_subpoena.hpl => raw_data/info_recruits/recruits_info_param_create_date.hpl} (65%) create mode 100644 mappings/info_recruits/raw_data/info_recruits/row_last_recruit_update_date.hpl create mode 100644 mappings/info_recruits/recruitment/job_recruitment.hwf rename mappings/info_recruits/{disease.hpl => recruitment/recruitment.hpl} (61%) rename mappings/{mil_com/parameters/row_idm_schema.hpl => info_recruits/recruitment/recruitment_param_create_date.hpl} (81%) delete mode 100644 mappings/info_recruits/spouse.hpl delete mode 100644 mappings/info_recruits/subpoena.hpl create mode 100644 mappings/info_recruits/supportive_jobs/job_create_files.hwf create mode 100644 mappings/info_recruits/supportive_jobs/job_create_files_for_test.hwf rename mappings/info_recruits/{job_general_citizen.hwf => supportive_jobs/job_recruit_create_date.hwf} (65%) rename mappings/{jobs_once_a_day/citizen_criminal_record_once.hpl => info_recruits/supportive_jobs/recruit_create_date_person_registry.hpl} (76%) rename mappings/{jobs_once_a_day => info_recruits}/supportive_jobs/recruitment_rows.hpl (93%) create mode 100644 mappings/info_recruits/supportive_jobs/recruitment_rows_five_flow.hpl create mode 100644 mappings/info_recruits/supportive_jobs/recruitment_rows_five_flow_child.hpl create mode 100644 mappings/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen.hpl rename mappings/info_recruits/{select_delta_time.hpl => supportive_jobs/row_last_recruit_create_date.hpl} (66%) delete mode 100644 mappings/info_recruits/temporary_measure.hpl delete mode 100644 mappings/jobs_once_a_day/children_flags.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_appealing_violations_fz53_once.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_complex_filters_once.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_criminal_liability_fz53_once.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_diploma_once.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_education_diplomas_received_once.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_flags.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_flags.hwf delete mode 100644 mappings/jobs_once_a_day/citizen_foreign_diploma_once.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_foreign_once.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_individual_decisions_once.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_information_search_once.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_kolledzh_once.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_liability_fz53_once.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_school_once.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_sports_categories_once.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_vuz_education_once.hpl delete mode 100644 mappings/jobs_once_a_day/citizen_work_activity_once.hpl delete mode 100644 mappings/jobs_once_a_day/citizenship_flags.hpl delete mode 100644 mappings/jobs_once_a_day/copy_punishment_and_deferment_once.hwf delete mode 100644 mappings/jobs_once_a_day/criminal_record_flags.hpl delete mode 100644 mappings/jobs_once_a_day/deferment_reason_once.hpl delete mode 100644 mappings/jobs_once_a_day/deferments_once.hpl delete mode 100644 mappings/jobs_once_a_day/deputy_flags.hpl delete mode 100644 mappings/jobs_once_a_day/deputy_once.hpl delete mode 100644 mappings/jobs_once_a_day/disability_once.hpl delete mode 100644 mappings/jobs_once_a_day/disease_once.hpl delete mode 100644 mappings/jobs_once_a_day/driver_licenses_flags.hpl delete mode 100644 mappings/jobs_once_a_day/drivers_licence_once.hpl delete mode 100644 mappings/jobs_once_a_day/education_constants_once.hpl delete mode 100644 mappings/jobs_once_a_day/id_ern_once.hpl delete mode 100644 mappings/jobs_once_a_day/incident_once.hpl delete mode 100644 mappings/jobs_once_a_day/info_recruits.hpl delete mode 100644 mappings/jobs_once_a_day/info_recruits_once.hpl delete mode 100644 mappings/jobs_once_a_day/job_info_recruits_once.hwf delete mode 100644 mappings/jobs_once_a_day/medical_authorities_once.hpl delete mode 100644 mappings/jobs_once_a_day/opekun_flags.hpl delete mode 100644 mappings/jobs_once_a_day/passport_once.hpl delete mode 100644 mappings/jobs_once_a_day/property_flags.hpl delete mode 100644 mappings/jobs_once_a_day/property_once.hpl delete mode 100644 mappings/jobs_once_a_day/prosecution_once.hpl delete mode 100644 mappings/jobs_once_a_day/punishment_once.hpl delete mode 100644 mappings/jobs_once_a_day/spouse_once.hpl delete mode 100644 mappings/jobs_once_a_day/subpoena_flags.hpl delete mode 100644 mappings/jobs_once_a_day/subpoena_once.hpl delete mode 100644 mappings/jobs_once_a_day/temporary_measure_once.hpl delete mode 100644 mappings/mil_com/main_dashboard.appeals(m_c).hpl rename mappings/mil_com/{ => main_dashboard.recruitment_campaign(m_c)}/main_dashboard.recruitment_campaign(m_c).hwf (100%) delete mode 100644 mappings/mil_com/parameters/ft_main_dashboard.appeals(m_c).hpl delete mode 100644 mappings/mil_com/recruitment_campaign.appeals(m_c).hpl delete mode 100644 mappings/mil_com/recruitment_campaign.subpoenas(m_c).hpl diff --git a/mappings/connections/db_mln118_to_local.json b/mappings/connections/db_mln118_to_local.json new file mode 100644 index 0000000..3c877af --- /dev/null +++ b/mappings/connections/db_mln118_to_local.json @@ -0,0 +1,103 @@ +{ + "variables" : [ { + "name" : "DB_PERSON_HOST", + "value" : "10.10.30.118", + "description" : "" + }, { + "name" : "DB_PERSON_PORT", + "value" : "5432", + "description" : "" + }, { + "name" : "DB_PERSON_NAME", + "value" : "ervu_person_registry", + "description" : "" + }, { + "name" : "DB_PERSON_USERNAME", + "value" : "ervu_person_registry", + "description" : "" + }, { + "name" : "DB_PERSON_PASSWORD", + "value" : "ervu_person_registry", + "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-test", + "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" : "" + } ] +} \ No newline at end of file diff --git a/mappings/connections/db_uat_to_local_mln.json b/mappings/connections/db_uat_to_local_mln.json new file mode 100644 index 0000000..72c88ec --- /dev/null +++ b/mappings/connections/db_uat_to_local_mln.json @@ -0,0 +1,103 @@ +{ + "variables" : [ { + "name" : "DB_PERSON_HOST", + "value" : "10.65.244.3", + "description" : "" + }, { + "name" : "DB_PERSON_PORT", + "value" : "5432", + "description" : "" + }, { + "name" : "DB_PERSON_NAME", + "value" : "ervu_person_registry", + "description" : "" + }, { + "name" : "DB_PERSON_USERNAME", + "value" : "ervu_person_registry", + "description" : "" + }, { + "name" : "DB_PERSON_PASSWORD", + "value" : "ervu_person_registry", + "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-test", + "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" : "" + } ] +} \ No newline at end of file diff --git a/mappings/dummy/clearing_recruits/clearing_recruits_from_citizen_table.hpl b/mappings/dummy/clearing_recruits/clearing_recruits_from_citizen_table.hpl new file mode 100644 index 0000000..5cb30a4 --- /dev/null +++ b/mappings/dummy/clearing_recruits/clearing_recruits_from_citizen_table.hpl @@ -0,0 +1,193 @@ + + + + clearing_recruits_from_citizen_table + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/20 11:08:52.517 + - + 2025/05/20 11:08:52.517 + + + + + + Dummy (do nothing) + Copy rows to result + Y + + + Dummy (do nothing) 2 + Table input + Y + + + Dummy (do nothing) 3 + Execute SQL script delete citizen + Y + + + + Execute SQL script delete citizen + ExecSql + + Y + + 1 + + none + + + + + ervu-dashboard + N + N + N + N + N + delete from ervu_dashboard.citizen where recruit_id = '${}' + + + 1648 + 400 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + WITH +/* +ids AS ( + SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id +), +*/ +citizen AS ( + SELECT + '${RCRT_C}'::uuid AS recruitment_id, + unnest(string_to_array(trim(both '{}' + from '${CITIZ_ARR}' + ), ','))::uuid AS recruit_id +), +recruits AS ( + SELECT + '${RCRT_C}'::uuid AS recruitment_id, + unnest(string_to_array(trim(both '{}' + from '${RECR_ARR}' + ), ','))::uuid AS recruit_id +), +except_result AS ( + SELECT + recruit_id, + recruitment_id + FROM citizen + EXCEPT + SELECT + recruit_id, + recruitment_id + FROM recruits +) +SELECT + recruitment_id AS RECRUITMENT_ID, + array_agg(recruit_id) AS RECRUITS_ARRAY +FROM except_result +group by recruitment_id + Y + + + 960 + 400 + + + + Dummy (do nothing) + Dummy + + Y + + 1 + + none + + + + + 384 + 240 + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 576 + 240 + + + + Dummy (do nothing) 2 + Dummy + + Y + + 1 + + none + + + + + 720 + 400 + + + + Dummy (do nothing) 3 + Dummy + + Y + + 1 + + none + + + + + 1328 + 416 + + + + + + diff --git a/mappings/dummy/clearing_recruits/job_clearing_recruits_from_citizen_table.hwf b/mappings/dummy/clearing_recruits/job_clearing_recruits_from_citizen_table.hwf new file mode 100644 index 0000000..fd44ffb --- /dev/null +++ b/mappings/dummy/clearing_recruits/job_clearing_recruits_from_citizen_table.hwf @@ -0,0 +1,61 @@ + + + job_clearing_recruits_from_citizen_table + Y + + + + - + 2025/05/20 11:23:47.379 + - + 2025/05/20 11:23:47.379 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 672 + 352 + + + + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 58 + 736 + 208 + селектим id военкоматов и создаем массив рекрутов внутри этого военкомата из бд ervu_person_registry (таблица recruits) и +селектим id военкоматов и создаем массив рекрутов внутри этого военкомата из бд ervu_dashboard (таблица citizen) +-> затем с помощью except зачищаем лишние данные + 700 + + + + diff --git a/mappings/jobs_once_a_day/citizenship_once.hpl b/mappings/dummy/raw_info_recruits/checkpoinnt_raw_info_recruits_err.hpl similarity index 50% rename from mappings/jobs_once_a_day/citizenship_once.hpl rename to mappings/dummy/raw_info_recruits/checkpoinnt_raw_info_recruits_err.hpl index 8ac82ca..9f5eafc 100644 --- a/mappings/jobs_once_a_day/citizenship_once.hpl +++ b/mappings/dummy/raw_info_recruits/checkpoinnt_raw_info_recruits_err.hpl @@ -1,7 +1,7 @@ - citizenship_once + checkpoinnt_raw_info_recruits_err Y @@ -13,11 +13,31 @@ 1000 100 - - 2024/08/15 14:02:51.713 + 2025/05/21 10:26:03.910 - - 2024/08/15 14:02:51.713 + 2025/05/21 10:26:03.910 + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 496 + 256 + определение рекрута и военкомата на котором остановилась загрузка данных + 445 + @@ -37,27 +57,38 @@ none - ervu_person_registry + ervu-dashboard N 0 - select r.id recruit_id, -ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'osnPriob' acquiring_basis, -ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshPriob' acquiring_number, -to_date(ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'dataReshPriob', 'YYYY-MM-DD') acquiring_date, -ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'organReshPriob' acquiring_authority, -ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'osnVyh' renunciation_basis, -ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshVyh' renunciation_number, -to_date(ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'dataReshVyh', 'YYYY-MM-DD') renunciation_date, -ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'organReshVyh' renunciation_authority -from public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') -where ri.info->'svedFL'->'svedGrazhdanRF'->>'prOtsGrazhdanRF' is null and -(ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshPriob' is not null or ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'osnVyh' is not null) - Y + WITH +rows AS ( + SELECT + recruit_id, + --ROW_NUMBER() OVER (ORDER BY recruit_id) AS + rn_recruit, + COALESCE(recruitment_id,target_recruitment_id) AS recruitment_id, + --ROW_NUMBER() OVER (ORDER BY COALESCE(recruitment_id,target_recruitment_id)) AS + rn_recruitment + FROM ervu_dashboard.citizen + WHERE (recruitment_id is not null or target_recruitment_id is not null) AND recruit_id IS NOT NULL +) +SELECT + 'job_if_err_raw_inf_recr' AS job_name, + CURRENT_TIMESTAMP AS last_update, + recruit_id AS last_recruit_id, + rn_recruit, + recruitment_id AS last_recruitment_id, + rn_recruitment, + 'ERROR' AS status +FROM rows +WHERE rn_recruitment = (SELECT MAX(rn_recruitment) FROM rows) +ORDER BY rn_recruit DESC +LIMIT 1; + N - 432 - 224 + 512 + 352 @@ -71,7 +102,7 @@ where ri.info->'svedFL'->'svedGrazhdanRF'->>'prOtsGrazhdanRF' is null and none - 20000 + 1000 ervu-dashboard @@ -79,22 +110,19 @@ where ri.info->'svedFL'->'svedGrazhdanRF'->>'prOtsGrazhdanRF' is null and N N N - Y - N - ervu_dashboard + public N - citizenship
- + etl_checkpoints
N Y N Y - 672 - 224 + 928 + 352
diff --git a/mappings/dummy/raw_info_recruits/checkpoint_raw_info_recruits_success.hpl b/mappings/dummy/raw_info_recruits/checkpoint_raw_info_recruits_success.hpl new file mode 100644 index 0000000..d2ec458 --- /dev/null +++ b/mappings/dummy/raw_info_recruits/checkpoint_raw_info_recruits_success.hpl @@ -0,0 +1,131 @@ + + + + checkpoint_raw_info_recruits_success + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/21 10:25:24.598 + - + 2025/05/21 10:25:24.598 + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 528 + 288 + определение рекрута и военкомата на котором остановилась загрузка данных + 445 + + + + + Table input + Table output + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + WITH +rows AS ( + SELECT + recruit_id, + --ROW_NUMBER() OVER (ORDER BY recruit_id) AS + rn_recruit, + COALESCE(recruitment_id,target_recruitment_id) AS recruitment_id, + --ROW_NUMBER() OVER (ORDER BY COALESCE(recruitment_id,target_recruitment_id)) AS + rn_recruitment + FROM ervu_dashboard.citizen + WHERE (recruitment_id is not null or target_recruitment_id is not null) AND recruit_id IS NOT NULL +) +SELECT + 'job_if_err_raw_inf_recr' AS job_name, + CURRENT_TIMESTAMP AS last_update, + recruit_id AS last_recruit_id, + rn_recruit, + recruitment_id AS last_recruitment_id, + rn_recruitment, + 'SUCCESS' AS status +FROM rows +WHERE rn_recruitment = (SELECT MAX(rn_recruitment) FROM rows) +ORDER BY rn_recruit DESC +LIMIT 1; + N + + + 544 + 384 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + N + N + N + N + Y + N + public + N + etl_checkpoints
+ N + Y + N + Y + + + 960 + 384 + +
+ + + +
diff --git a/mappings/dummy/raw_info_recruits/job_if_err_raw_inf_recr.hwf b/mappings/dummy/raw_info_recruits/job_if_err_raw_inf_recr.hwf new file mode 100644 index 0000000..e1bf4c6 --- /dev/null +++ b/mappings/dummy/raw_info_recruits/job_if_err_raw_inf_recr.hwf @@ -0,0 +1,242 @@ + + + job_if_err_raw_inf_recr + Y + + + + - + 2025/05/21 10:31:44.924 + - + 2025/05/21 10:31:44.924 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 496 + 368 + + + + checkpoint_recruitment_recruit.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once/supportive_jobs/checkpoint_recruitment_recruit.hpl + Basic + + Y + + N + local + N + N + Y + N + 656 + 256 + + + + info_recruits_once.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/jobs_once/info_recruits_once.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1152 + 368 + + + + Success JOB IF ERROR + + SUCCESS + + N + 1728 + 368 + + + + recruitment_rows_if_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once/supportive_jobs/recruitment_rows_if_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 912 + 368 + + + + ERROR JOB IF ERROR + + SUCCESS + + N + 1728 + 480 + + + + checkpoint_recruitment_recruit_success.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once/supportive_jobs/checkpoint_recruitment_recruit_success.hpl + Basic + + Y + + N + local + N + N + Y + N + 1408 + 368 + + + + checkpoint_recruitment_recruit_err.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once/supportive_jobs/checkpoint_recruitment_recruit_err.hpl + Basic + + Y + + N + local + N + N + Y + N + 1408 + 480 + + + + + + checkpoint_recruitment_recruit.hpl + recruitment_rows_if_error.hpl + N + Y + N + + + info_recruits_once.hpl + checkpoint_recruitment_recruit_success.hpl + Y + Y + N + + + info_recruits_once.hpl + checkpoint_recruitment_recruit_err.hpl + Y + N + N + + + recruitment_rows_if_error.hpl + info_recruits_once.hpl + Y + Y + N + + + checkpoint_recruitment_recruit_success.hpl + Success JOB IF ERROR + Y + Y + Y + + + checkpoint_recruitment_recruit_err.hpl + ERROR JOB IF ERROR + Y + Y + Y + + + Start + recruitment_rows_if_error.hpl + Y + Y + Y + + + + + + diff --git a/mappings/dummy/raw_info_recruits/job_raw_info_recruits.hwf b/mappings/dummy/raw_info_recruits/job_raw_info_recruits.hwf new file mode 100644 index 0000000..c54d0c0 --- /dev/null +++ b/mappings/dummy/raw_info_recruits/job_raw_info_recruits.hwf @@ -0,0 +1,266 @@ + + + job_raw_info_recruits + Y + + + + - + 2025/05/21 10:06:15.097 + - + 2025/05/21 10:06:15.097 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 336 + 320 + + + + SQL delete ervu_person_registry_raw.recruits_info + + SQL + + ervu-dashboard + N + delete from ervu_person_registry_raw.recruits_info + N + N + N + 528 + 208 + + + + raw_info_recruits.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/dummy/raw_info_recruits/raw_info_recruits.hpl + Basic + + + RCRT_C + RECRUITMENT_CITIZEN + + Y + + Y + local + N + N + Y + N + 1232 + 320 + + + + Success + + SUCCESS + + N + 1936 + 320 + + + + Success 2 + + SUCCESS + + N + 1936 + 448 + + + + checkpoint_raw_info_recruits_success.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/dummy/raw_info_recruits/checkpoint_raw_info_recruits_success.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 1584 + 320 + + + + checkpoinnt_raw_info_recruits_err.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/dummy/raw_info_recruits/checkpoinnt_raw_info_recruits_err.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 1584 + 448 + + + + job_row_recruit_id.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/jobs_once/supportive_jobs/job_row_recruit_id.hwf + Nothing + + Y + + N + local + N + N + Y + N + 800 + 208 + + + + recruitment_rows.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/jobs_once/supportive_jobs/recruitment_rows.hpl + Basic + + Y + + N + local + N + N + Y + N + 960 + 320 + + + + + + checkpoint_raw_info_recruits_success.hpl + Success + Y + Y + N + + + checkpoinnt_raw_info_recruits_err.hpl + Success 2 + Y + Y + N + + + raw_info_recruits.hpl + checkpoint_raw_info_recruits_success.hpl + Y + Y + N + + + raw_info_recruits.hpl + checkpoinnt_raw_info_recruits_err.hpl + Y + N + N + + + Start + SQL delete ervu_person_registry_raw.recruits_info + Y + Y + Y + + + job_row_recruit_id.hwf + recruitment_rows.hpl + Y + N + Y + + + SQL delete ervu_person_registry_raw.recruits_info + job_row_recruit_id.hwf + Y + Y + N + + + recruitment_rows.hpl + raw_info_recruits.hpl + Y + Y + N + + + + + + diff --git a/mappings/info_recruits/supportive_count_citizen.hpl b/mappings/dummy/raw_info_recruits/raw_info_recruits.hpl similarity index 69% rename from mappings/info_recruits/supportive_count_citizen.hpl rename to mappings/dummy/raw_info_recruits/raw_info_recruits.hpl index 1911aef..a526fdb 100644 --- a/mappings/info_recruits/supportive_count_citizen.hpl +++ b/mappings/dummy/raw_info_recruits/raw_info_recruits.hpl @@ -1,7 +1,7 @@ - supportive_count_citizen + raw_info_recruits Y @@ -13,9 +13,9 @@ 1000 100 - - 2025/04/14 16:34:33.840 + 2025/05/21 10:09:54.850 - - 2025/04/14 16:34:33.840 + 2025/05/21 10:09:54.850 @@ -26,6 +26,27 @@ Y
+ + Table input + TableInput + + Y + + 1 + + none + + + N + 0 + SELECT <values> FROM <table name> WHERE <conditions> + N + + + 384 + 240 + + Insert / update InsertUpdate @@ -38,49 +59,15 @@ 100 - ervu-dashboard - - = - count_citizen - citizen_count - - - public - count_citizen
- - count_citizen - citizen_count - N - + + lookup table
N 768 - 288 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT count(*) AS citizen_count FROM ervu_dashboard.citizen - N - - - 464 - 288 + 240 diff --git a/mappings/info_recruits/branching_job_general_info_recruits.hpl b/mappings/info_recruits/branching_job_general_info_recruits.hpl new file mode 100644 index 0000000..dab405e --- /dev/null +++ b/mappings/info_recruits/branching_job_general_info_recruits.hpl @@ -0,0 +1,139 @@ + + + + branching_job_general_info_recruits + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/29 15:34:58.403 + - + 2025/05/29 15:34:58.403 + + + + + + JSON input state_job_general_info_recruits.json + Set variables + Y + + + + JSON input state_job_general_info_recruits.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/checkpoints/state_job_general_info_recruits.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 560 + 304 + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + + pipeline + PIPE + PARENT_WORKFLOW + + + + status + STATUS + PARENT_WORKFLOW + + + Y + + + 800 + 304 + + + + + + diff --git a/mappings/info_recruits/checkpoints/checkpoint_job_recruits_info_citizen.hpl b/mappings/info_recruits/checkpoints/checkpoint_job_recruits_info_citizen.hpl new file mode 100644 index 0000000..65d1c5c --- /dev/null +++ b/mappings/info_recruits/checkpoints/checkpoint_job_recruits_info_citizen.hpl @@ -0,0 +1,739 @@ + + + + checkpoint_job_recruits_info_citizen + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/30 10:34:00.239 + - + 2025/05/30 10:34:00.239 + + + + + + JSON input state_job_citizen.json + Filter rows + Y + + + JSON input state_job_recruits_info.json + Filter rows + Y + + + JSON input state_citizen_delta.json + Filter rows + Y + + + JSON input state_recruits_info_delta.json + Filter rows + Y + + + Set variables + Write to log 3 + Y + + + Set variables 2 + Write to log 3 2 + Y + + + Dummy (do nothing) + Set variables 2 + N + + + Dummy (do nothing) + Set variables + N + + + Filter rows + Abort + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1072 + 784 + + + + Dummy (do nothing) + Dummy + + Y + + 1 + + none + + + + + 1136 + 608 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + + + + + = + pipeline + N + - + + N + -1 + + constant + -1 + job_recruits_info + 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 + job_citizen + 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 + delta_recruits_info + 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 + delta_citizen + 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 + + + 752 + 784 + + + + JSON input state_recruits_info_delta.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_delta.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 448 + 656 + + + + JSON input state_citizen_delta.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_delta.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 448 + 736 + + + + JSON input state_job_citizen.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_job_citizen.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 448 + 816 + + + + JSON input state_job_recruits_info.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_job_recruits_info.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 448 + 896 + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + status + STATUS + PARENT_WORKFLOW + + + Y + + + 1328 + 560 + + + + Set variables 2 + SetVariable + + Y + + 1 + + none + + + + + status + STATUS + PARENT_WORKFLOW + + + Y + + + 1328 + 640 + + + + Write to log 3 + WriteToLog + + Y + + 1 + + none + + + Y + + + N + 0 + Basic + ${STATUS} + + + 1520 + 560 + + + + Write to log 3 2 + WriteToLog + + Y + + 1 + + none + + + Y + + + N + 0 + Basic + ${STATUS} + + + 1520 + 640 + + + + + + diff --git a/mappings/info_recruits/checkpoints/state_job_general_info_recruits.json b/mappings/info_recruits/checkpoints/state_job_general_info_recruits.json new file mode 100644 index 0000000..ee84647 --- /dev/null +++ b/mappings/info_recruits/checkpoints/state_job_general_info_recruits.json @@ -0,0 +1,4 @@ +{ + "status": "SUCCESS", + "pipeline": "job_general_info_recruits" +} \ No newline at end of file diff --git a/mappings/info_recruits/citizen_appealing_violations_fz53.hpl b/mappings/info_recruits/citizen_appealing_violations_fz53.hpl deleted file mode 100644 index 8c19980..0000000 --- a/mappings/info_recruits/citizen_appealing_violations_fz53.hpl +++ /dev/null @@ -1,27 +0,0 @@ - - - - citizen_appealing_violations_fz53 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 13:08:11.179 - - - 2025/02/14 13:08:11.179 - - - - - - - - - diff --git a/mappings/info_recruits/citizen_complex_filters.hpl b/mappings/info_recruits/citizen_complex_filters.hpl deleted file mode 100644 index 28e102b..0000000 --- a/mappings/info_recruits/citizen_complex_filters.hpl +++ /dev/null @@ -1,27 +0,0 @@ - - - - citizen_complex_filters - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 13:08:41.773 - - - 2025/02/14 13:08:41.773 - - - - - - - - - diff --git a/mappings/info_recruits/citizen_criminal_liability_fz53.hpl b/mappings/info_recruits/citizen_criminal_liability_fz53.hpl deleted file mode 100644 index 9358a7a..0000000 --- a/mappings/info_recruits/citizen_criminal_liability_fz53.hpl +++ /dev/null @@ -1,27 +0,0 @@ - - - - citizen_criminal_liability_fz53 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 13:07:43.829 - - - 2025/02/14 13:07:43.829 - - - - - - - - - diff --git a/mappings/info_recruits/citizen_criminal_record.hpl b/mappings/info_recruits/citizen_criminal_record.hpl deleted file mode 100644 index a48ef10..0000000 --- a/mappings/info_recruits/citizen_criminal_record.hpl +++ /dev/null @@ -1,27 +0,0 @@ - - - - citizen_criminal_record - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 13:05:50.389 - - - 2025/02/14 13:05:50.389 - - - - - - - - - diff --git a/mappings/info_recruits/citizen_education_diplomas_received.hpl b/mappings/info_recruits/citizen_education_diplomas_received.hpl deleted file mode 100644 index 5a5002f..0000000 --- a/mappings/info_recruits/citizen_education_diplomas_received.hpl +++ /dev/null @@ -1,205 +0,0 @@ - - - - citizen_education_diplomas_received - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 13:03:35.892 - - - 2025/02/14 13:03:35.892 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - ervu_dashboard - citizen_education_diplomas_received
- - recruit_id - recruit_id - N - - - type_organization - type_organization - Y - - - name_edu_organization - name_edu_organization - Y - - - inn - inn - Y - - - kpp - kpp - Y - - - ogrn - ogrn - Y - - - address_edu_organization - address_edu_organization - Y - - - student_status - student_status - Y - - - education_level_org - education_level_org - Y - - - course_training - course_training - Y - - - receipt_date - receipt_date - Y - - - order_number - order_number - Y - - - order_date - order_date - Y - - - restore_date - restore_date - Y - - - order_number_restore - order_number_restore - Y - - - order_date_restore - order_date_restore - Y - -
- N - - - 928 - 320 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with vuz as -(select jsonb_array_elements(ri.info->'svedFL'->'svedVUZ'->'vuz') as vuz, - ri.recruit_id recruit_id -from public.recruits_info ri -JOIN public.recruits r ON ri.recruit_id = r.id AND r.system_update_date >= '${UP_D}' -where jsonb_typeof(ri.info->'svedFL'->'svedVUZ'->'vuz') = 'array' ---AND r.system_update_date >= '${UP_D}' ---limit 2 -) -select - r.id recruit_id, - --vuz->'svedOrg'->>'kodTipOrg', - vuz->'svedOrg'->>'naimTipOrg' as type_organization, - vuz->'svedOrg'->>'naimOrg' as name_edu_organization, - vuz->'svedOrg'->>'inn' as inn, - vuz->'svedOrg'->>'kpp' as kpp, - coalesce (vuz->'svedOrg'->>'ogrn', vuz->'svedOrg'->>'ogrnip') as ogrn, - vuz->'svedOrg'->>'adresOrg' as address_edu_organization, - - vuz->>'naimStatus' as student_status, - vuz->>'naimUrovObr' as education_level_org, - vuz->>'nomerKursa' as course_training, - to_date(vuz->>'dataZachisl', 'YYYY-MM-DD') as receipt_date, - --vuz->>'prPervObuch' , - vuz->>'nomPrikazZachisl' as order_number, - to_date(vuz->>'dataPrikazZachisl', 'YYYY-MM-DD') as order_date, - --vuz->'svedObrProg'->>'prVUSpecz', - --vuz->'svedObrProg'->>'dataNachObuch', - --vuz->'svedObrProg'->>'kodFormaObuch', - --vuz->'svedObrProg'->>'naimFormaObuch', - --vuz->'svedObrProg'->>'planDataOkonch', - --vuz->'svedObrProg'->'svedSpeczMinobr'->>'kodSpecz', - --vuz->'svedObrProg'->'svedSpeczMinobr'->>'naimSpecz', - --vuz->'svedObrProg'->'svedSpeczMinprosv'->>'kodSpecz', - --vuz->'svedObrProg'->'svedSpeczMinprosv'->>'naimSpecz', - - to_date(vuz->'svedVosst'->>'dataVosst', 'YYYY-MM-DD') as restore_date, - vuz->'svedVosst'->>'nomPrikazVosst' as order_number_restore, - to_date(vuz->'svedVosst'->>'dataPrikazVosst', 'YYYY-MM-DD') as order_date_restore -from public.recruits r -join vuz on r.id = vuz.recruit_id - - Y - - - 464 - 320 - - - - - -
diff --git a/mappings/info_recruits/citizen_foreign.hpl b/mappings/info_recruits/citizen_foreign.hpl deleted file mode 100644 index 113ccaf..0000000 --- a/mappings/info_recruits/citizen_foreign.hpl +++ /dev/null @@ -1,302 +0,0 @@ - - - - citizen_foreign - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - N - - - Table input 2 - Table output 2 - N - - - Table input - Insert / update - Y - - - Table input 2 - Insert / update 2 - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - citizenship_date - citizenship_date - - - ervu_dashboard - citizenship_foreign
- - recruit_id - recruit_id - N - - - citizenship_date - citizenship_date - N - - - country_name - country_name - Y - - - citizenship_basis - citizenship_basis - Y - -
- N - - - 672 - 208 - -
- - Insert / update 2 - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - residense_right_date - residense_right_date - - - ervu_dashboard - citizenship_foreign
- - recruit_id - recruit_id - N - - - residense_right_date - residense_right_date - N - - - country_name - country_name - Y - - - residense_right_basis - residense_right_basis - Y - -
- N - - - 672 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with citizen as -(select jsonb_array_elements(ri.info->'svedFL'->'svedIGPP'->'svedIG') cit, - ri.recruit_id -from public.recruits_info ri - join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' -where jsonb_typeof(ri.info->'svedFL'->'svedIGPP'->'svedIG') = 'array' ---AND r.system_update_date >= '${UP_D}' -) -select - r.id recruit_id, - cit->'oksm'->>'naimOKSM' country_name, - cit->>'osnovPriobrIG' citizenship_basis, - to_date(cit->>'dataPriobrIG', 'YYYY-MM-DD') citizenship_date -from public.recruits r -join citizen on r.id = citizen.recruit_id - - - Y - - - 208 - 208 - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with citizen as -(select jsonb_array_elements(ri.info->'svedFL'->'svedIGPP'->'svedPP') cit, - ri.recruit_id -from public.recruits_info ri - join public.recruits r ON r.id = ri.recruit_id -where jsonb_typeof(ri.info->'svedFL'->'svedIGPP'->'svedPP') = 'array' -AND r.system_update_date >= '${UP_D}' -) -select - r.id recruit_id, - cit->'oksm'->>'naimOKSM' country_name, - cit->>'osnovPriobrPP' residense_right_basis, - to_date(cit->>'dataPriobrPP', 'YYYY-MM-DD') residense_right_date -from public.recruits r -join citizen on r.id = citizen.recruit_id - - Y - - - 208 - 304 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - citizenship_foreign
- N - Y - N - Y - - - 672 - 48 - -
- - Table output 2 - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - citizenship_foreign
- N - Y - N - Y - - - 672 - 512 - -
- - - -
diff --git a/mappings/info_recruits/citizen_individual_decisions.hpl b/mappings/info_recruits/citizen_individual_decisions.hpl deleted file mode 100644 index 3c7d6e4..0000000 --- a/mappings/info_recruits/citizen_individual_decisions.hpl +++ /dev/null @@ -1,27 +0,0 @@ - - - - citizen_individual_decisions - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 13:09:08.476 - - - 2025/02/14 13:09:08.476 - - - - - - - - - diff --git a/mappings/info_recruits/citizen_information_search.hpl b/mappings/info_recruits/citizen_information_search.hpl deleted file mode 100644 index 19e78a4..0000000 --- a/mappings/info_recruits/citizen_information_search.hpl +++ /dev/null @@ -1,27 +0,0 @@ - - - - citizen_information_search - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 13:06:54.013 - - - 2025/02/14 13:06:54.013 - - - - - - - - - diff --git a/mappings/info_recruits/citizen_tables/child/branching_child.hpl b/mappings/info_recruits/citizen_tables/child/branching_child.hpl new file mode 100644 index 0000000..d26e2f1 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/branching_child.hpl @@ -0,0 +1,173 @@ + + + + branching_child + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/06/09 09:54:43.724 + - + 2025/06/09 09:54:43.724 + + + + + + JSON input state_job_child.json + Set variables + Y + + + Set variables + Write to log + N + + + + JSON input state_job_child.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_job_child.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 816 + 448 + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + pipeline + PIPE + PARENT_WORKFLOW + + + status + STATUS + PARENT_WORKFLOW + + + Y + + + 1072 + 448 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Y + + + pipeline + + + status + + + N + 0 + Basic + ${PIPE} +${STATUS} + + + 1296 + 448 + + + + + + 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 new file mode 100644 index 0000000..0f593da --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_child_error.hpl @@ -0,0 +1,273 @@ + + + + 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 new file mode 100644 index 0000000..f3eee9c --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/checkpoint_job_child.hpl @@ -0,0 +1,733 @@ + + + + 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 + Y + + + JSON input state_child_flow1.json + Filter rows + Y + + + JSON input state_child_flow2.json + Filter rows + Y + + + JSON input state_child_flow3.json + Filter rows + Y + + + JSON input state_child_flow4.json + Filter rows + Y + + + JSON input state_child_flow5.json + Filter rows + 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 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_delta.json b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_delta.json new file mode 100644 index 0000000..902550c --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_delta.json @@ -0,0 +1,6 @@ +{ + "status": "SUCCESS", + "pipeline": "delta_child", + "max_create_date": "2025/04/08 20:21:38.528691000", + "max_update_date": "2025/04/09 00:25:46.935442000" +} \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json new file mode 100644 index 0000000..3caff54 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json @@ -0,0 +1,4 @@ +{ + "status": "ERROR", + "pipeline": "child_flow1" +} \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json new file mode 100644 index 0000000..d7a317e --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json @@ -0,0 +1,4 @@ +{ + "status": "ERROR", + "pipeline": "child_flow2" +} \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json new file mode 100644 index 0000000..270d04a --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json @@ -0,0 +1,4 @@ +{ + "status": "ERROR", + "pipeline": "child_flow3" +} \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json new file mode 100644 index 0000000..8b38e87 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json @@ -0,0 +1,4 @@ +{ + "status": "ERROR", + "pipeline": "child_flow4" +} \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json new file mode 100644 index 0000000..52d92f3 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json @@ -0,0 +1,4 @@ +{ + "status": "ERROR", + "pipeline": "child_flow5" +} \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/state_job_child.json b/mappings/info_recruits/citizen_tables/child/checkpoints/state_job_child.json new file mode 100644 index 0000000..c8d947c --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/state_job_child.json @@ -0,0 +1,4 @@ +{ + "status": "SUCCESS", + "pipeline": "job_child" +} \ No newline at end of file diff --git a/mappings/jobs_once_a_day/child_once.hpl b/mappings/info_recruits/citizen_tables/child/delta_child.hpl similarity index 70% rename from mappings/jobs_once_a_day/child_once.hpl rename to mappings/info_recruits/citizen_tables/child/delta_child.hpl index d1adb47..e758f3c 100644 --- a/mappings/jobs_once_a_day/child_once.hpl +++ b/mappings/info_recruits/citizen_tables/child/delta_child.hpl @@ -1,7 +1,7 @@ - child_once + delta_child Y @@ -13,22 +13,17 @@ 1000 100 - - 2024/08/15 14:02:51.713 + 2025/06/03 16:10:48.509 - - 2024/08/15 14:02:51.713 + 2025/06/03 16:10:48.509 - - Table input - Table output - Y - Table input Insert / update - N + Y @@ -91,8 +86,8 @@ N - 624 - 256 + 1168 + 352 @@ -106,18 +101,21 @@ none - ervu_person_registry + ervu-dashboard N 0 with child as (select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, ri.recruit_id -from public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') +from ervu_person_registry_raw.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 >= r.system_create_date + AND r.system_update_date >= '${M_R_UP_DATE}'::timestamp where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' ) select - r.id::uuid recruit_id, + r.recruit_id::uuid recruit_id, ch->>'naimRodstvSvyazReb' kinship_type, concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', ch->'svedFLBS'->'fio'->>'imya', @@ -130,50 +128,13 @@ select NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, ch->'svedSmert'->>'nomerZapis' death_az_number, ch->'svedAZRozhd'->>'nomerZapis' birth_az_number -from public.recruits r -join child on r.id = child.recruit_id +from ervu_dashboard.citizen r +join child on r.recruit_id = child.recruit_id Y - 400 - 256 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - citizen_child
- - N - Y - N - Y - - - 608 - 400 + 624 + 352
diff --git a/mappings/info_recruits/citizen_tables/child/job_child.hwf b/mappings/info_recruits/citizen_tables/child/job_child.hwf new file mode 100644 index 0000000..99c7624 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/job_child.hwf @@ -0,0 +1,1672 @@ + + + job_child + Y + + + + - + 2025/06/05 14:27:15.055 + - + 2025/06/05 14:27:15.055 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 624 + 400 + + + + Checks if files exist state_job_child.json + + FILES_EXIST + + + + + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_job_child.json + + + N + 848 + 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 + 1488 + 400 + + + + child_flow1.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow1.hpl + Basic + + Y + + N + local + N + N + Y + N + 1808 + 80 + + + + child_flow2.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow2.hpl + Basic + + Y + + N + local + N + N + Y + N + 1808 + 240 + + + + child_flow3.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow3.hpl + Basic + + Y + + N + local + N + N + Y + N + 1808 + 400 + + + + child_flow4.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow4.hpl + Basic + + Y + + N + local + N + N + Y + N + 1808 + 560 + + + + child_flow5.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow5.hpl + Basic + + Y + + N + local + N + N + Y + N + 1808 + 720 + + + + Write state_child_flow1 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "child_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json + N + 2096 + 80 + + + + Write state_child_flow1 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "child_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json + N + 2096 + 160 + + + + Write state_child_flow2 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "child_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json + N + 2096 + 240 + + + + Write state_child_flow2 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "child_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json + N + 2096 + 320 + + + + Write state_child_flow3 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "child_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json + N + 2096 + 400 + + + + Write state_child_flow3 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "child_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json + N + 2096 + 480 + + + + Write state_child_flow4 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "child_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json + N + 2096 + 560 + + + + Write state_child_flow4 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "child_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json + N + 2096 + 640 + + + + Write state_child_flow5 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "child_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json + N + 2096 + 720 + + + + Write state_child_flow5 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "child_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json + N + 2096 + 800 + + + + Abort workflow + + ABORT + + N + N + 1472 + 208 + + + + 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 + 2496 + 384 + + + + Success new citizen + + SUCCESS + + N + 3024 + 384 + + + + state_job_child_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_child" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_job_child.json + N + 2784 + 384 + + + + state_job_child_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_child" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_job_child.json + N + 2784 + 480 + + + + state_job_child_success 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_child" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_job_child.json + N + 1360 + 1280 + + + + state_job_child_error 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_child" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_job_child.json + N + 1360 + 1376 + + + + branching_child.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/branching_child.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 + 2240 + 1792 + + + + Simple child WHERE ERROR + + SIMPLE_EVAL + + ERROR + string + true + equal + equal + N + variable + STATUS + N + 1840 + 1280 + + + + checkpoint_child_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/checkpoint_child_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 2064 + 1280 + + + + recruitment_rows_five_flow_if_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/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 + + + + child_flow1.hpl 2 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow1.hpl + Basic + + Y + + N + local + N + N + Y + N + 2672 + 960 + + + + child_flow2.hpl 2 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow2.hpl + Basic + + Y + + N + local + N + N + Y + N + 2672 + 1120 + + + + child_flow3.hpl 2 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow3.hpl + Basic + + Y + + N + local + N + N + Y + N + 2672 + 1280 + + + + child_flow4.hpl 2 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow4.hpl + Basic + + Y + + N + local + N + N + Y + N + 2672 + 1440 + + + + child_flow5.hpl 2 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/parallel/child_flow5.hpl + Basic + + Y + + N + local + N + N + Y + N + 2672 + 1600 + + + + Write state_child_flow1 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "child_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json + N + 2960 + 960 + + + + Write state_child_flow1 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "child_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json + N + 2960 + 1040 + + + + Write state_child_flow2 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "child_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json + N + 2960 + 1120 + + + + Write state_child_flow2 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "child_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json + N + 2960 + 1200 + + + + Write state_child_flow3 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "child_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json + N + 2960 + 1280 + + + + Write state_child_flow3 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "child_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json + N + 2960 + 1360 + + + + Write state_child_flow4 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "child_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json + N + 2960 + 1440 + + + + Write state_child_flow4 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "child_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json + N + 2960 + 1520 + + + + Write state_child_flow5 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "child_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json + N + 2960 + 1600 + + + + Write state_child_flow5 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "child_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json + N + 2960 + 1680 + + + + Success after_error_child_flow1 + + SUCCESS + + N + 3216 + 960 + + + + error after_error_child_flow1 + + SUCCESS + + N + 3216 + 1040 + + + + Success after_error_child_flow2 + + SUCCESS + + N + 3216 + 1120 + + + + error after_error_child_flow2 + + SUCCESS + + N + 3216 + 1200 + + + + Success after_error_child_flow3 + + SUCCESS + + N + 3216 + 1280 + + + + error after_error_child_flow3 + + SUCCESS + + N + 3216 + 1360 + + + + Success after_error_child_flow4 + + SUCCESS + + N + 3216 + 1440 + + + + error after_error_child_flow4 + + SUCCESS + + N + 3216 + 1520 + + + + Success after_error_child_flow5 + + SUCCESS + + N + 3216 + 1600 + + + + error after_error_child_flow5 + + SUCCESS + + N + 3216 + 1680 + + + + job_recruit_last_update_date.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/job_recruit_last_update_date.hwf + Nothing + + Y + + N + local + N + N + Y + N + 2544 + 1792 + + + + delta_child.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/delta_child.hpl + Basic + + Y + + N + local + N + N + Y + N + 2768 + 1792 + + + + Success delta_citizen + + SUCCESS + + N + 3216 + 1792 + + + + state_delta_child_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "delta_child", + "max_create_date": "${M_R_CR_DATE}", + "max_update_date": "${M_R_UP_DATE}" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_delta.json + N + 2960 + 1792 + + + + state_delta_child_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "delta_child", + "max_create_date": "${M_R_CR_DATE}", + "max_update_date": "${M_R_UP_DATE}" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_delta.json + N + 2960 + 1872 + + + + error delta_citizen + + SUCCESS + + N + 3216 + 1872 + + + + + + Start + Checks if files exist state_job_child.json + Y + Y + Y + + + Checks if files exist state_job_child.json + checkpoint_job_child.hpl (2) + Y + Y + N + + + Checks if files exist state_job_child.json + recruitment_rows_five_flow_child.hpl + Y + N + N + + + 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 + + + child_flow1.hpl + Write state_child_flow1 SUCCESS + Y + Y + N + + + child_flow1.hpl + Write state_child_flow1 ERROR + Y + N + N + + + child_flow2.hpl + Write state_child_flow2 SUCCESS + Y + Y + N + + + child_flow2.hpl + Write state_child_flow2 ERROR + Y + N + N + + + child_flow3.hpl + Write state_child_flow3 SUCCESS + Y + Y + N + + + child_flow3.hpl + Write state_child_flow3 ERROR + Y + N + N + + + child_flow4.hpl + Write state_child_flow4 SUCCESS + Y + Y + N + + + child_flow4.hpl + Write state_child_flow4 ERROR + Y + N + N + + + child_flow5.hpl + Write state_child_flow5 SUCCESS + Y + Y + N + + + child_flow5.hpl + Write state_child_flow5 ERROR + Y + N + N + + + recruitment_rows_five_flow_child.hpl + Abort workflow + Y + N + N + + + Write state_child_flow1 SUCCESS + checkpoint_job_child.hpl + Y + N + Y + + + Write state_child_flow1 ERROR + checkpoint_job_child.hpl + Y + N + Y + + + Write state_child_flow2 SUCCESS + checkpoint_job_child.hpl + Y + N + Y + + + Write state_child_flow2 ERROR + checkpoint_job_child.hpl + Y + N + Y + + + Write state_child_flow3 SUCCESS + checkpoint_job_child.hpl + Y + N + Y + + + Write state_child_flow3 ERROR + checkpoint_job_child.hpl + Y + N + Y + + + Write state_child_flow4 SUCCESS + checkpoint_job_child.hpl + Y + N + Y + + + Write state_child_flow4 ERROR + checkpoint_job_child.hpl + Y + N + Y + + + Write state_child_flow5 SUCCESS + checkpoint_job_child.hpl + Y + N + Y + + + Write state_child_flow5 ERROR + checkpoint_job_child.hpl + Y + N + Y + + + state_job_child_success + Success new citizen + Y + Y + N + + + state_job_child_error + Success new citizen + Y + Y + N + + + checkpoint_job_child.hpl + state_job_child_success + Y + Y + N + + + checkpoint_job_child.hpl + state_job_child_error + Y + N + N + + + checkpoint_job_child.hpl (2) + state_job_child_success 2 + Y + Y + N + + + checkpoint_job_child.hpl (2) + state_job_child_error 2 + Y + N + N + + + state_job_child_success 2 + branching_child.hpl + Y + Y + N + + + state_job_child_error 2 + branching_child.hpl + Y + Y + N + + + Simple child WHERE ERROR + checkpoint_child_error.hpl + Y + N + Y + + + branching_child.hpl + Simple child WHERE ERROR + Y + N + Y + + + branching_child.hpl + Simple child WHERE SUCCESS + Y + N + Y + + + checkpoint_child_error.hpl + recruitment_rows_five_flow_if_error.hpl + Y + Y + N + + + recruitment_rows_five_flow_if_error.hpl + Abort workflow 2 + Y + N + N + + + child_flow1.hpl 2 + Write state_child_flow1 SUCCESS 2 + Y + Y + N + + + child_flow1.hpl 2 + Write state_child_flow1 ERROR 2 + Y + N + N + + + child_flow2.hpl 2 + Write state_child_flow2 SUCCESS 2 + Y + Y + N + + + child_flow2.hpl 2 + Write state_child_flow2 ERROR 2 + Y + N + N + + + child_flow3.hpl 2 + Write state_child_flow3 SUCCESS 2 + Y + Y + N + + + child_flow3.hpl 2 + Write state_child_flow3 ERROR 2 + Y + N + N + + + child_flow4.hpl 2 + Write state_child_flow4 SUCCESS 2 + Y + Y + N + + + child_flow4.hpl 2 + Write state_child_flow4 ERROR 2 + Y + N + N + + + child_flow5.hpl 2 + Write state_child_flow5 SUCCESS 2 + Y + Y + N + + + child_flow5.hpl 2 + Write state_child_flow5 ERROR 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 + + + Write state_child_flow1 SUCCESS 2 + Success after_error_child_flow1 + Y + Y + N + + + Write state_child_flow1 ERROR 2 + error after_error_child_flow1 + Y + Y + N + + + Write state_child_flow2 SUCCESS 2 + Success after_error_child_flow2 + Y + Y + N + + + Write state_child_flow2 ERROR 2 + error after_error_child_flow2 + Y + Y + N + + + Write state_child_flow3 SUCCESS 2 + Success after_error_child_flow3 + Y + Y + N + + + Write state_child_flow3 ERROR 2 + error after_error_child_flow3 + Y + Y + N + + + Write state_child_flow4 SUCCESS 2 + Success after_error_child_flow4 + Y + Y + N + + + Write state_child_flow4 ERROR 2 + error after_error_child_flow4 + Y + Y + N + + + Write state_child_flow5 SUCCESS 2 + Success after_error_child_flow5 + Y + Y + N + + + Write state_child_flow5 ERROR 2 + error after_error_child_flow5 + Y + Y + N + + + Simple child WHERE SUCCESS + job_recruit_last_update_date.hwf + Y + Y + N + + + job_recruit_last_update_date.hwf + delta_child.hpl + Y + Y + N + + + state_delta_child_success + Success delta_citizen + Y + Y + N + + + state_delta_child_error + error delta_citizen + Y + Y + N + + + delta_child.hpl + state_delta_child_success + Y + Y + N + + + delta_child.hpl + state_delta_child_error + Y + N + N + + + + + + diff --git a/mappings/info_recruits/citizen_tables/child/job_recruit_last_update_date.hwf b/mappings/info_recruits/citizen_tables/child/job_recruit_last_update_date.hwf new file mode 100644 index 0000000..fe4c912 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/job_recruit_last_update_date.hwf @@ -0,0 +1,124 @@ + + + job_recruit_last_update_date + Y + + + + - + 2025/06/02 14:48:05.666 + - + 2025/06/02 14:48:05.666 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 592 + 352 + + + + recruit_update_date_ervu_dashboard.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/recruit_update_date_ervu_dashboard.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 784 + 352 + + + + row_last_recruit_update_date.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/row_last_recruit_update_date.hpl + Basic + + Y + + N + local + N + N + Y + N + 1056 + 352 + + + + Success + + SUCCESS + + N + 1232 + 352 + + + + + + Start + recruit_update_date_ervu_dashboard.hpl + Y + Y + Y + + + recruit_update_date_ervu_dashboard.hpl + row_last_recruit_update_date.hpl + Y + Y + N + + + row_last_recruit_update_date.hpl + Success + Y + Y + N + + + + + + diff --git a/mappings/info_recruits/citizen_tables/child/parallel/child_flow1.hpl b/mappings/info_recruits/citizen_tables/child/parallel/child_flow1.hpl new file mode 100644 index 0000000..255ea10 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/parallel/child_flow1.hpl @@ -0,0 +1,229 @@ + + + + child_flow1 + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Select values 4 2 + N + + + Select values 4 2 + Get variables + N + + + Table input + Insert / update + Y + + + + Get variables + GetVariable + + Y + + 1 + + none + + + + + -1 + recruitment_id + -1 + none + String + ID_F1 + + + + + 976 + 400 + + + + Select values 4 2 + SelectValues + + Y + + 1 + + none + + + + N + + ID_F1 + ID_F1 + String + -2 + -2 + + false + + + false + + + + + + + + + + 720 + 400 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with child as +(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, + ri.recruit_id +from ervu_person_registry_raw.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 >= r.system_create_date +where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +) +select + r.recruit_id::uuid recruit_id, + ch->>'naimRodstvSvyazReb' kinship_type, + concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', + ch->'svedFLBS'->'fio'->>'imya', + ch->'svedFLBS'->'fio'->>'otchestvo') full_name, + make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, + make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, + ch->'svedSmert'->>'nomerZapis' death_az_number, + ch->'svedAZRozhd'->>'nomerZapis' birth_az_number +from ervu_dashboard.citizen r +join child on r.recruit_id = child.recruit_id + Y + + + 448 + 288 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen_child
+ + recruit_id + recruit_id + N + + + birth_az_number + birth_az_number + Y + + + birth_date + birth_date + Y + + + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + full_name + full_name + Y + + + kinship_type + kinship_type + Y + +
+ N + + + 944 + 288 + +
+ + + Select values 4 2 + Get variables + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/child.hpl b/mappings/info_recruits/citizen_tables/child/parallel/child_flow2.hpl similarity index 68% rename from mappings/info_recruits/child.hpl rename to mappings/info_recruits/citizen_tables/child/parallel/child_flow2.hpl index e568e23..25a1f51 100644 --- a/mappings/info_recruits/child.hpl +++ b/mappings/info_recruits/citizen_tables/child/parallel/child_flow2.hpl @@ -1,7 +1,7 @@ - child + child_flow2 Y @@ -13,24 +13,65 @@ 1000 100 - - 2024/08/15 14:02:51.713 + 2025/05/21 14:05:02.260 - - 2024/08/15 14:02:51.713 + 2025/05/21 14:05:02.260 - - Table input - Table output - N - Table input Insert / update Y + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with child as +(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, + ri.recruit_id +from ervu_person_registry_raw.recruits_info ri +join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F2}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F2}' + AND '${M_R_CR_DATE}'::timestamp >= r.system_create_date +where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +) +select + r.recruit_id::uuid recruit_id, + ch->>'naimRodstvSvyazReb' kinship_type, + concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', + ch->'svedFLBS'->'fio'->>'imya', + ch->'svedFLBS'->'fio'->>'otchestvo') full_name, + make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, + make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, + ch->'svedSmert'->>'nomerZapis' death_az_number, + ch->'svedAZRozhd'->>'nomerZapis' birth_az_number +from ervu_dashboard.citizen r +join child on r.recruit_id = child.recruit_id + Y + + + 560 + 288 + + Insert / update InsertUpdate @@ -42,7 +83,7 @@ none - 10000 + 100 ervu-dashboard @@ -50,11 +91,6 @@ recruit_id recruit_id - - = - full_name - full_name - ervu_dashboard citizen_child
@@ -85,7 +121,7 @@ full_name full_name - N + Y kinship_type @@ -96,87 +132,8 @@ N - 624 - 256 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with child as -(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, - ri.recruit_id -from public.recruits_info ri - join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' -where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array') -select - r.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 public.recruits r -join child on r.id = child.recruit_id - - - Y - - - 400 - 256 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - citizen_child
- N - Y - N - Y - - - 608 - 400 + 1088 + 288
diff --git a/mappings/info_recruits/citizen_tables/child/parallel/child_flow3.hpl b/mappings/info_recruits/citizen_tables/child/parallel/child_flow3.hpl new file mode 100644 index 0000000..b54983c --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/parallel/child_flow3.hpl @@ -0,0 +1,142 @@ + + + + child_flow3 + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Insert / update + Y + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with child as +(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, + ri.recruit_id +from ervu_person_registry_raw.recruits_info ri +join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F3}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F3}' + AND '${M_R_CR_DATE}'::timestamp >= r.system_create_date +where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +) +select + r.recruit_id::uuid recruit_id, + ch->>'naimRodstvSvyazReb' kinship_type, + concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', + ch->'svedFLBS'->'fio'->>'imya', + ch->'svedFLBS'->'fio'->>'otchestvo') full_name, + make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, + make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, + ch->'svedSmert'->>'nomerZapis' death_az_number, + ch->'svedAZRozhd'->>'nomerZapis' birth_az_number +from ervu_dashboard.citizen r +join child on r.recruit_id = child.recruit_id + Y + + + 672 + 352 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen_child
+ + recruit_id + recruit_id + N + + + birth_az_number + birth_az_number + Y + + + birth_date + birth_date + Y + + + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + full_name + full_name + Y + + + kinship_type + kinship_type + Y + +
+ N + + + 1216 + 352 + +
+ + + +
diff --git a/mappings/jobs_once_a_day/opekun_once.hpl b/mappings/info_recruits/citizen_tables/child/parallel/child_flow4.hpl similarity index 50% rename from mappings/jobs_once_a_day/opekun_once.hpl rename to mappings/info_recruits/citizen_tables/child/parallel/child_flow4.hpl index d86da54..ae5598f 100644 --- a/mappings/jobs_once_a_day/opekun_once.hpl +++ b/mappings/info_recruits/citizen_tables/child/parallel/child_flow4.hpl @@ -1,7 +1,7 @@ - opekun_once + child_flow4 Y @@ -13,24 +13,65 @@ 1000 100 - - 2024/08/15 14:02:51.713 + 2025/05/21 14:05:02.260 - - 2024/08/15 14:02:51.713 + 2025/05/21 14:05:02.260 Table input - Table output + Insert / update Y - - Table input - Insert / update - N - + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + with child as +(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, + ri.recruit_id +from ervu_person_registry_raw.recruits_info ri +join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F4}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F4}' + AND '${M_R_CR_DATE}'::timestamp >= r.system_create_date +where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +) +select + r.recruit_id::uuid recruit_id, + ch->>'naimRodstvSvyazReb' kinship_type, + concat_ws(' ', ch->'svedFLBS'->'fio'->>'familiya', + ch->'svedFLBS'->'fio'->>'imya', + ch->'svedFLBS'->'fio'->>'otchestvo') full_name, + make_date(NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, + NULLIF(ch->'svedFLBS'->'dataRozhdDok'->>'den','')::int) birth_date, + make_date(NULLIF(ch->'svedSmert'->'dataSmert'->>'god', '')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'mesyacz','')::int, + NULLIF(ch->'svedSmert'->'dataSmert'->>'den','')::int) death_date, + ch->'svedSmert'->>'nomerZapis' death_az_number, + ch->'svedAZRozhd'->>'nomerZapis' birth_az_number +from ervu_dashboard.citizen r +join child on r.recruit_id = child.recruit_id + Y + + + 528 + 320 + + Insert / update InsertUpdate @@ -51,15 +92,15 @@ recruit_id ervu_dashboard - citizen_guardianship
+ citizen_child
recruit_id recruit_id N - full_name - full_name + birth_az_number + birth_az_number Y @@ -68,92 +109,31 @@ Y - snils - snils + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + full_name + full_name + Y + + + kinship_type + kinship_type Y N - 560 - 240 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with person as -(select jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') ch, - ri.recruit_id -from public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') -where jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array') -select - r.id 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 public.recruits r -join person on r.id = person.recruit_id - - Y - - - 288 - 240 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - citizen_guardianship
- - N - Y - N - Y - - - 480 - 112 + 1072 + 320
diff --git a/mappings/info_recruits/opekun.hpl b/mappings/info_recruits/citizen_tables/child/parallel/child_flow5.hpl similarity index 51% rename from mappings/info_recruits/opekun.hpl rename to mappings/info_recruits/citizen_tables/child/parallel/child_flow5.hpl index 0dc4a86..36bf1e2 100644 --- a/mappings/info_recruits/opekun.hpl +++ b/mappings/info_recruits/citizen_tables/child/parallel/child_flow5.hpl @@ -1,7 +1,7 @@ - opekun + child_flow5 Y @@ -13,74 +13,19 @@ 1000 100 - - 2024/08/15 14:02:51.713 + 2025/05/21 14:05:02.260 - - 2024/08/15 14:02:51.713 + 2025/05/21 14:05:02.260 - - Table input - Table output - N - Table input Insert / update Y - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - ervu_dashboard - citizen_guardianship
- - recruit_id - recruit_id - N - - - full_name - full_name - Y - - - birth_date - birth_date - Y - - - snils - snils - Y - -
- N - - - 560 - 240 - -
Table input TableInput @@ -92,36 +37,44 @@ none - ervu_person_registry + ervu-dashboard N 0 - with person as -(select jsonb_array_elements(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') ch, - ri.recruit_id -from public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' -where jsonb_typeof(ri.info->'svedFL'->'svedOpekun'->'svedSoczPod') = 'array') + with child as +(select jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') ch, + ri.recruit_id +from ervu_person_registry_raw.recruits_info ri +join ervu_dashboard.citizen r ON r.recruit_id = ri.recruit_id AND '${ID_F5}' != '' -- Проверка на пустую строку + AND COALESCE(ri.current_recruitment_id, ri.target_recruitment_id) = '${ID_F5}' + AND '${M_R_CR_DATE}'::timestamp >= r.system_create_date +where jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' +) select - r.id 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 public.recruits r -join person on r.id = person.recruit_id + 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 - 288 - 240 + 560 + 368 - Table output - TableOutput + Insert / update + InsertUpdate Y @@ -130,27 +83,57 @@ join person on r.id = person.recruit_id none - 1000 + 100 ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - citizen_guardianship
- N - Y - N - Y + + + = + recruit_id + recruit_id + + ervu_dashboard + citizen_child
+ + recruit_id + recruit_id + N + + + birth_az_number + birth_az_number + Y + + + birth_date + birth_date + Y + + + death_az_number + death_az_number + Y + + + death_date + death_date + Y + + + full_name + full_name + Y + + + kinship_type + kinship_type + Y + +
+ N - 496 - 112 + 1040 + 368
diff --git a/mappings/jobs_once_a_day/temporary_measure_flag.hpl b/mappings/info_recruits/citizen_tables/child/recruit_update_date_ervu_dashboard.hpl similarity index 58% rename from mappings/jobs_once_a_day/temporary_measure_flag.hpl rename to mappings/info_recruits/citizen_tables/child/recruit_update_date_ervu_dashboard.hpl index 84a5d37..5aa7685 100644 --- a/mappings/jobs_once_a_day/temporary_measure_flag.hpl +++ b/mappings/info_recruits/citizen_tables/child/recruit_update_date_ervu_dashboard.hpl @@ -1,7 +1,7 @@ - temporary_measure_flag + recruit_update_date_ervu_dashboard Y @@ -13,16 +13,16 @@ 1000 100 - - 2025/04/25 16:48:10.260 + 2025/06/02 14:50:31.833 - - 2025/04/25 16:48:10.260 + 2025/06/02 14:50:31.833 Table input - Update + Table output Y @@ -40,20 +40,24 @@ ervu-dashboard N 0 - select - recruit_id, - status_measure != 'Временные меры отменены' as has_active_temporary_measure - from temporary_measures; + 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_person_registry_raw.recruits_info +WHERE updated_at = (SELECT MAX(updated_at) FROM ervu_person_registry_raw.recruits_info) +limit 1 N - 256 - 240 + 896 + 304 - Update - Update + Table output + TableOutput Y @@ -64,28 +68,25 @@ 1000 ervu-dashboard - Y - - - - = - recruit_id - recruit_id - - - ervu_dashboard - citizen
- - has_active_temporary_measure - has_active_temporary_measure - -
- N + + + N + N + N + N + Y + N + public + N + recruit_create
+ N + Y + N Y - 416 - 240 + 1216 + 304
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 new file mode 100644 index 0000000..e5f247b --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/recruitment_rows_five_flow_if_error.hpl @@ -0,0 +1,261 @@ + + + + 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/mil_com/select_recruitments_milcom(m_c).hpl b/mappings/info_recruits/citizen_tables/child/row_last_recruit_update_date.hpl similarity index 53% rename from mappings/mil_com/select_recruitments_milcom(m_c).hpl rename to mappings/info_recruits/citizen_tables/child/row_last_recruit_update_date.hpl index 85a6d98..5597125 100644 --- a/mappings/mil_com/select_recruitments_milcom(m_c).hpl +++ b/mappings/info_recruits/citizen_tables/child/row_last_recruit_update_date.hpl @@ -1,28 +1,32 @@ - select_recruitments_milcom(m_c) + row_last_recruit_update_date Y Normal - 0 N 1000 100 - - 2024/08/15 14:58:19.728 + 2025/06/02 14:51:59.611 - - 2024/08/15 14:58:19.728 + 2025/06/02 14:51:59.611 - Table input/регион + Copy rows to result + Set variables + Y + + + Table input Copy rows to result Y @@ -40,12 +44,38 @@ - 512 - 208 + 992 + 320 - Table input/регион + Set variables + SetVariable + + Y + + 1 + + none + + + + + + MAX_RECRUIT_UPDATE_DATE + M_R_UP_DATE + GP_WORKFLOW + + + Y + + + 1232 + 320 + + + + Table input TableInput Y @@ -57,24 +87,20 @@ ervu-dashboard N - + 0 SELECT - idm_id AS RECRUITMENT_ID, - parent_id AS PARENT_ID, - CASE - WHEN schema = 'Department' THEN 'Department' - WHEN schema = 'Organization' THEN 'REG_LVL' - WHEN schema = 'Region' THEN 'MD_LVL' - ELSE schema -- на случай, если появится неизвестное значение - END AS SCHEMA -FROM - ervu_dashboard.recruitment -WHERE schema = 'Department' OR schema = 'Organization' OR schema = 'Region' + system_update_date AS MAX_RECRUIT_UPDATE_DATE--, +--record_created +FROM public.recruit_create +WHERE system_update_date = (select max(system_update_date) from public.recruit_create) +and workflow = 'job_recruits_info' +order by record_created desc +limit 1 N - 336 - 208 + 688 + 320 diff --git a/mappings/info_recruits/citizen_tables/citizen/branching_citizen.hpl b/mappings/info_recruits/citizen_tables/citizen/branching_citizen.hpl new file mode 100644 index 0000000..28c5983 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/branching_citizen.hpl @@ -0,0 +1,173 @@ + + + + branching_citizen + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/06/03 14:40:44.856 + - + 2025/06/03 14:40:44.856 + + + + + + JSON input state_job_citizen.json + Set variables + Y + + + Set variables + Write to log + N + + + + JSON input state_job_citizen.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_job_citizen.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 848 + 368 + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + pipeline + PIPE + PARENT_WORKFLOW + + + status + STATUS + PARENT_WORKFLOW + + + Y + + + 1104 + 368 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Y + + + pipeline + + + status + + + N + 0 + Basic + ${PIPE} +${STATUS} + + + 1328 + 368 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen/checkpoints/checkpoint_citizen_error.hpl b/mappings/info_recruits/citizen_tables/citizen/checkpoints/checkpoint_citizen_error.hpl new file mode 100644 index 0000000..25ecf94 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/checkpoints/checkpoint_citizen_error.hpl @@ -0,0 +1,272 @@ + + + + checkpoint_citizen_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/06/03 15:39:31.759 + - + 2025/06/03 15:39:31.759 + + + + + + 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 + + + + + + + + + + 1024 + 560 + + + + 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(recruitment_id, target_recruitment_id) AS idm_id + FROM ervu_dashboard.citizen +), +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, + '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, + '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, + '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, + '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, + 'ERROR' as status, + current_timestamp as record_created + from result_max +) +select * from for_checkpoints + N + + + 752 + 400 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + N + N + N + N + Y + N + public + N + etl_checkpoints
+ N + Y + N + Y + + + 1264 + 400 + +
+ + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen/checkpoints/checkpoint_job_citizen.hpl b/mappings/info_recruits/citizen_tables/citizen/checkpoints/checkpoint_job_citizen.hpl new file mode 100644 index 0000000..a9eb86d --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/checkpoints/checkpoint_job_citizen.hpl @@ -0,0 +1,733 @@ + + + + checkpoint_job_citizen + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/06/03 14:19:02.590 + - + 2025/06/03 14:19:02.590 + + + + + + Filter rows + Abort + Y + + + JSON input state_citizen_flow1.json + Filter rows + Y + + + JSON input state_recruits_info_flow2.json + Filter rows + Y + + + JSON input state_recruits_info_flow3.json + Filter rows + Y + + + JSON input state_recruits_info_flow4.json + Filter rows + Y + + + JSON input state_recruits_info_flow5.json + Filter rows + 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 + citizen_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 + citizen_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 + citizen_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 + citizen_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 + citizen_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_citizen_flow1.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_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_recruits_info_flow2.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_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_recruits_info_flow3.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_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_recruits_info_flow4.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_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_recruits_info_flow5.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow5.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 640 + 752 + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen/checkpoints/job_create_files_citizen.hwf b/mappings/info_recruits/citizen_tables/citizen/checkpoints/job_create_files_citizen.hwf new file mode 100644 index 0000000..f7010aa --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/checkpoints/job_create_files_citizen.hwf @@ -0,0 +1,235 @@ + + + job_create_files_citizen + Y + + + + - + 2025/06/03 13:13:43.498 + - + 2025/06/03 13:13:43.498 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 736 + 448 + + + + state_citizen_flow2_new + + WRITE_TO_FILE + + N + { + "status": "NEW", + "pipeline": "citizen_flow2" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow2.json + N + 1024 + 384 + + + + state_citizen_flow1_new + + WRITE_TO_FILE + + N + { + "status": "NEW", + "pipeline": "citizen_flow1" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow1.json + N + 1024 + 304 + + + + state_citizen_flow3_new + + WRITE_TO_FILE + + N + { + "status": "NEW", + "pipeline": "citizen_flow3" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow3.json + N + 1024 + 464 + + + + state_citizen_flow4_new + + WRITE_TO_FILE + + N + { + "status": "NEW", + "pipeline": "citizen_flow4" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow4.json + N + 1024 + 544 + + + + state_citizen_flow5_new + + WRITE_TO_FILE + + N + { + "status": "NEW", + "pipeline": "citizen_flow5" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow5.json + N + 1024 + 624 + + + + Success + + SUCCESS + + N + 1296 + 464 + + + + Delete file state_job_recruits_info + + DELETE_FILE + + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_job_citizen.json + N + 1024 + 224 + + + + + + state_citizen_flow2_new + Success + Y + Y + N + + + state_citizen_flow1_new + Success + Y + Y + N + + + state_citizen_flow3_new + Success + Y + Y + N + + + state_citizen_flow4_new + Success + Y + Y + N + + + state_citizen_flow5_new + Success + Y + Y + N + + + Delete file state_job_recruits_info + Success + Y + Y + N + + + Start + Delete file state_job_recruits_info + Y + Y + Y + + + Start + state_citizen_flow1_new + Y + Y + Y + + + Start + state_citizen_flow2_new + Y + Y + Y + + + Start + state_citizen_flow3_new + Y + Y + Y + + + Start + state_citizen_flow4_new + Y + Y + Y + + + Start + state_citizen_flow5_new + Y + Y + Y + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_delta.json b/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_delta.json new file mode 100644 index 0000000..ee09736 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_delta.json @@ -0,0 +1,6 @@ +{ + "status": "SUCCESS", + "pipeline": "delta_citizen", + "max_create_date": "2025/04/08 20:21:38.528691000", + "max_update_date": "2025/04/09 00:25:46.935442000" +} \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow1.json b/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow1.json new file mode 100644 index 0000000..dad1ea2 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow1.json @@ -0,0 +1,4 @@ +{ + "status": "NEW", + "pipeline": "citizen_flow1" +} \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow2.json b/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow2.json new file mode 100644 index 0000000..5ab4a01 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow2.json @@ -0,0 +1,4 @@ +{ + "status": "NEW", + "pipeline": "citizen_flow2" +} \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow3.json b/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow3.json new file mode 100644 index 0000000..57222df --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow3.json @@ -0,0 +1,4 @@ +{ + "status": "NEW", + "pipeline": "citizen_flow3" +} \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow4.json b/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow4.json new file mode 100644 index 0000000..a4ec2bd --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow4.json @@ -0,0 +1,4 @@ +{ + "status": "NEW", + "pipeline": "citizen_flow4" +} \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow5.json b/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow5.json new file mode 100644 index 0000000..9cc7b6f --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow5.json @@ -0,0 +1,4 @@ +{ + "status": "NEW", + "pipeline": "citizen_flow5" +} \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/citizen/delta_citizen.hpl b/mappings/info_recruits/citizen_tables/citizen/delta_citizen.hpl new file mode 100644 index 0000000..ae812d2 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/delta_citizen.hpl @@ -0,0 +1,239 @@ + + + + delta_citizen + 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
+ + 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 + + + date_registration + date_registration + Y + + + date_deregistration + date_deregistration + Y + + + recruit_create_date + recruit_create_date + Y + + + update_date + update_date + Y + + + convicts + convicts + Y + + + recruitment_id + recruitment_id + Y + + + target_recruitment_id + target_recruitment_id + Y + + + deferment_liberation + deferment_liberation + Y + + + reason_registration + reason_registration + Y + +
+ N + + + 1168 + 352 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + SELECT + r.system_pgs_status, + r.full_name, + r.last_name, + r.first_name, + r.middle_name, + r.gender, + --ri.info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils' AS snils, + --ri.info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn' AS inn, + r.birth_date, + EXTRACT(YEAR FROM AGE(r.birth_date)) AS age, + r.birth_place, + r.phone, + r.email, + 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, + --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, + r.system_create_date AS recruit_create_date, + r.system_update_date AS update_date, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + r.current_recruitment_id AS recruitment_id, + r.target_recruitment_id, + CASE + WHEN ddd.hidden IS false then ddd.hidden + ELSE true + END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет + mrr.value AS reason_registration + +FROM public.recruits AS r +JOIN public.recruits_info AS ri ON ri.recruit_id = r.id --AND '${ID_F1}' != '' -- Проверка на пустую строку + --AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F1}' + AND '${M_R_CR_DATE}'::timestamp >= r.system_create_date + AND r.system_update_date >= '${M_R_UP_DATE}'::timestamp +LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY recruit_id ORDER BY created_at DESC) as rn, + recruit_id, + hidden + FROM public.decision_deferment_dto + ) ddd ON ddd.recruit_id = r.id and ddd.rn = 1 and ddd.hidden is false +JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) +--JOIN public.recruits_history rh on rh.recruit_id=r.id +--WHERE r.system_update_date >= '${UP_D}' + Y + + + 624 + 352 + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen/job_citizen.hwf b/mappings/info_recruits/citizen_tables/citizen/job_citizen.hwf new file mode 100644 index 0000000..5da2c53 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/job_citizen.hwf @@ -0,0 +1,1754 @@ + + + job_citizen + Y + + + + 0 + - + 2025/06/03 13:34:16.353 + - + 2025/06/03 13:34:16.353 + + + 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 + 704 + 464 + + + + Checks if files exist state_job_citizen.json + + FILES_EXIST + + + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_job_citizen.json + + + N + 1008 + 464 + + + + recruitment_rows_five_flow_citizen.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen.hpl + Basic + + + CR_DATE + CREATE_DATE + + Y + + N + local + N + N + Y + Y + 2304 + 464 + + + + citizen_flow1.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/parallel/citizen_flow1.hpl + Basic + + + ID_F1 + IDM_FLOW1 + + Y + + Y + local + N + N + Y + N + 2624 + 144 + + + + citizen_flow2.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/parallel/citizen_flow2.hpl + Basic + + + ID_F2 + IDM_FLOW2 + + Y + + Y + local + N + N + Y + N + 2624 + 304 + + + + citizen_flow3.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/parallel/citizen_flow3.hpl + Basic + + + ID_F3 + IDM_FLOW3 + + Y + + Y + local + N + N + Y + N + 2624 + 464 + + + + citizen_flow4.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/parallel/citizen_flow4.hpl + Basic + + + ID_F4 + IDM_FLOW4 + + Y + + Y + local + N + N + Y + N + 2624 + 624 + + + + citizen_flow5.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/parallel/citizen_flow5.hpl + Basic + + + ID_F5 + IDM_FLOW5 + + Y + + Y + local + N + N + Y + N + 2624 + 784 + + + + Write state_citizen_flow1 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow1.json + N + 2928 + 144 + + + + Write state_citizen_flow1 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow1.json + N + 2928 + 224 + + + + checkpoint_job_citizen.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/checkpoint_job_citizen.hpl + Basic + + Y + + N + local + N + N + Y + N + 3328 + 464 + + + + Success new citizen + + SUCCESS + + N + 3824 + 464 + + + + Write state_citizen_flow2 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow2.json + N + 2928 + 304 + + + + Write state_citizen_flow2 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow2.json + N + 2928 + 384 + + + + Write state_citizen_flow3 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow3.json + N + 2928 + 464 + + + + Write state_citizen_flow3 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow3.json + N + 2928 + 544 + + + + Write state_citizen_flow4 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow4.json + N + 2928 + 624 + + + + Write state_citizen_flow4 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow4.json + N + 2928 + 704 + + + + Write state_citizen_flow5 SUCCESS + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow5.json + N + 2928 + 784 + + + + Write state_citizen_flow5 ERROR + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow5.json + N + 2928 + 864 + + + + checkpoint_job_citizen.hpl 2 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/checkpoint_job_citizen.hpl + Basic + + Y + + N + local + N + N + Y + N + 1232 + 1264 + + + + state_job_citizen_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_citizen" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_job_citizen.json + N + 1440 + 1264 + + + + state_job_citizen_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_citizen" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_job_citizen.json + N + 1440 + 1360 + + + + branching_citizen.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/branching_citizen.hpl + Basic + + Y + + N + local + N + N + Y + N + 1664 + 1264 + + + + Simple recruits_info WHERE SUCCESS + + SIMPLE_EVAL + + SUCCESS + string + true + equal + equal + N + variable + STATUS + N + 2272 + 1776 + + + + Simple recruits_info WHERE ERROR + + SIMPLE_EVAL + + ERROR + string + true + equal + equal + N + variable + STATUS + N + 1872 + 1264 + + + + checkpoint_citizen_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/checkpoint_citizen_error.hpl + Basic + + Y + + N + local + N + N + Y + N + 2096 + 1264 + + + + recruitment_rows_five_flow_if_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/recruitment_rows_five_flow_if_error.hpl + Basic + + Y + + N + local + N + N + Y + Y + 2336 + 1264 + + + + citizen_flow1.hpl 2 + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/parallel/citizen_flow1.hpl + Basic + + + ID_F1 + IDM_FLOW1 + + Y + + Y + local + N + N + Y + N + 2624 + 944 + + + + citizen_flow2.hpl 2 + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/parallel/citizen_flow2.hpl + Basic + + + ID_F2 + IDM_FLOW2 + + Y + + Y + local + N + N + Y + N + 2624 + 1104 + + + + citizen_flow3.hpl 2 + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/parallel/citizen_flow3.hpl + Basic + + + ID_F3 + IDM_FLOW3 + + Y + + Y + local + N + N + Y + N + 2624 + 1264 + + + + citizen_flow4.hpl 2 + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/parallel/citizen_flow4.hpl + Basic + + + ID_F4 + IDM_FLOW4 + + Y + + Y + local + N + N + Y + N + 2624 + 1424 + + + + citizen_flow5.hpl 2 + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/parallel/citizen_flow5.hpl + Basic + + + ID_F5 + IDM_FLOW5 + + Y + + Y + local + N + N + Y + N + 2624 + 1584 + + + + Write state_citizen_flow1 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow1.json + N + 2928 + 944 + + + + Write state_citizen_flow1 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_flow1" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow1.json + N + 2928 + 1024 + + + + Write state_citizen_flow2 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow2.json + N + 2928 + 1104 + + + + Write state_citizen_flow2 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_flow2" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow2.json + N + 2928 + 1184 + + + + Write state_citizen_flow3 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow3.json + N + 2928 + 1264 + + + + Write state_citizen_flow3 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_flow3" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow3.json + N + 2928 + 1344 + + + + Write state_citizen_flow4 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow4.json + N + 2928 + 1424 + + + + Write state_citizen_flow4 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_flow4" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow4.json + N + 2928 + 1504 + + + + Write state_citizen_flow5 SUCCESS 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "citizen_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow5.json + N + 2928 + 1584 + + + + Write state_citizen_flow5 ERROR 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "citizen_flow5" +} + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_flow5.json + N + 2928 + 1664 + + + + Success after_error_citizen_flow1 + + SUCCESS + + N + 3328 + 944 + + + + error after_error_citizen_flow1 + + SUCCESS + + N + 3328 + 1024 + + + + Success after_error_citizen_flow2 + + SUCCESS + + N + 3328 + 1104 + + + + error after_error_citizen_flow2 + + SUCCESS + + N + 3328 + 1184 + + + + Success after_error_citizen_flow3 + + SUCCESS + + N + 3328 + 1264 + + + + error after_error_citizen_flow3 + + SUCCESS + + N + 3328 + 1344 + + + + Success after_error_citizen_flow4 + + SUCCESS + + N + 3328 + 1424 + + + + error after_error_citizen_flow4 + + SUCCESS + + N + 3328 + 1504 + + + + Success after_error_citizen_flow5 + + SUCCESS + + N + 3328 + 1584 + + + + error after_error_citizen_flow5 + + SUCCESS + + N + 3328 + 1664 + + + + job_recruit_last_update_date.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/job_recruit_last_update_date.hwf + Nothing + + Y + + N + local + N + N + Y + N + 2608 + 1776 + + + + delta_citizen.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/delta_citizen.hpl + Basic + + + M_R_UP_DATE + ${M_R_UP_DATE} + + Y + + N + local + N + N + Y + N + 2848 + 1776 + + + + Success delta_citizen + + SUCCESS + + N + 3328 + 1776 + + + + state_recruits_citizen_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "delta_citizen", + "max_create_date": "${M_R_CR_DATE}", + "max_update_date": "${M_R_UP_DATE}" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_citizen_delta.json + N + 3072 + 1776 + + + + state_citizen_delta_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "delta_citizen", + "max_create_date": "${M_R_CR_DATE}", + "max_update_date": "${M_R_UP_DATE}" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_citizen_delta.json + N + 3072 + 1856 + + + + error delta_citizen + + SUCCESS + + N + 3328 + 1856 + + + + state_job_citizen_success (2) + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_citizen" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_job_citizen.json + N + 3584 + 464 + + + + state_job_citizen_error (2) + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_citizen" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_job_citizen.json + N + 3584 + 560 + + + + Abort workflow + + ABORT + + N + N + 2272 + 256 + + + + Abort workflow 2 + + ABORT + + N + N + 2368 + 1072 + + + + + + Start + Checks if files exist state_job_citizen.json + Y + Y + Y + + + Checks if files exist state_job_citizen.json + recruitment_rows_five_flow_citizen.hpl + Y + N + N + + + recruitment_rows_five_flow_citizen.hpl + citizen_flow1.hpl + Y + Y + N + + + recruitment_rows_five_flow_citizen.hpl + citizen_flow2.hpl + Y + Y + N + + + recruitment_rows_five_flow_citizen.hpl + citizen_flow3.hpl + Y + Y + N + + + recruitment_rows_five_flow_citizen.hpl + citizen_flow4.hpl + Y + Y + N + + + recruitment_rows_five_flow_citizen.hpl + citizen_flow5.hpl + Y + Y + N + + + citizen_flow1.hpl + Write state_citizen_flow1 SUCCESS + Y + Y + N + + + citizen_flow1.hpl + Write state_citizen_flow1 ERROR + Y + N + N + + + Write state_citizen_flow1 SUCCESS + checkpoint_job_citizen.hpl + Y + N + Y + + + Write state_citizen_flow1 ERROR + checkpoint_job_citizen.hpl + Y + N + Y + + + citizen_flow2.hpl + Write state_citizen_flow2 SUCCESS + Y + Y + N + + + citizen_flow2.hpl + Write state_citizen_flow2 ERROR + Y + N + N + + + Write state_citizen_flow2 SUCCESS + checkpoint_job_citizen.hpl + Y + N + Y + + + Write state_citizen_flow2 ERROR + checkpoint_job_citizen.hpl + Y + N + Y + + + citizen_flow3.hpl + Write state_citizen_flow3 SUCCESS + Y + Y + N + + + citizen_flow3.hpl + Write state_citizen_flow3 ERROR + Y + N + N + + + Write state_citizen_flow3 SUCCESS + checkpoint_job_citizen.hpl + Y + N + Y + + + Write state_citizen_flow3 ERROR + checkpoint_job_citizen.hpl + Y + N + Y + + + citizen_flow4.hpl + Write state_citizen_flow4 SUCCESS + Y + Y + N + + + citizen_flow4.hpl + Write state_citizen_flow4 ERROR + Y + N + N + + + citizen_flow5.hpl + Write state_citizen_flow5 SUCCESS + Y + Y + N + + + citizen_flow5.hpl + Write state_citizen_flow5 ERROR + Y + N + N + + + Write state_citizen_flow4 SUCCESS + checkpoint_job_citizen.hpl + Y + N + Y + + + Write state_citizen_flow4 ERROR + checkpoint_job_citizen.hpl + Y + N + Y + + + Write state_citizen_flow5 SUCCESS + checkpoint_job_citizen.hpl + Y + N + Y + + + Write state_citizen_flow5 ERROR + checkpoint_job_citizen.hpl + Y + N + Y + + + Checks if files exist state_job_citizen.json + checkpoint_job_citizen.hpl 2 + Y + Y + N + + + checkpoint_job_citizen.hpl 2 + state_job_citizen_success + Y + Y + N + + + checkpoint_job_citizen.hpl 2 + state_job_citizen_error + Y + N + N + + + state_job_citizen_success + branching_citizen.hpl + Y + Y + N + + + state_job_citizen_error + branching_citizen.hpl + Y + Y + N + + + branching_citizen.hpl + Simple recruits_info WHERE ERROR + Y + N + Y + + + branching_citizen.hpl + Simple recruits_info WHERE SUCCESS + Y + N + Y + + + Simple recruits_info WHERE ERROR + checkpoint_citizen_error.hpl + Y + Y + N + + + checkpoint_citizen_error.hpl + recruitment_rows_five_flow_if_error.hpl + Y + Y + N + + + citizen_flow1.hpl 2 + Write state_citizen_flow1 SUCCESS 2 + Y + Y + N + + + citizen_flow1.hpl 2 + Write state_citizen_flow1 ERROR 2 + Y + N + N + + + citizen_flow2.hpl 2 + Write state_citizen_flow2 SUCCESS 2 + Y + Y + N + + + citizen_flow2.hpl 2 + Write state_citizen_flow2 ERROR 2 + Y + N + N + + + citizen_flow3.hpl 2 + Write state_citizen_flow3 SUCCESS 2 + Y + Y + N + + + citizen_flow3.hpl 2 + Write state_citizen_flow3 ERROR 2 + Y + N + N + + + citizen_flow4.hpl 2 + Write state_citizen_flow4 SUCCESS 2 + Y + Y + N + + + citizen_flow4.hpl 2 + Write state_citizen_flow4 ERROR 2 + Y + N + N + + + citizen_flow5.hpl 2 + Write state_citizen_flow5 SUCCESS 2 + Y + Y + N + + + citizen_flow5.hpl 2 + Write state_citizen_flow5 ERROR 2 + Y + N + N + + + recruitment_rows_five_flow_if_error.hpl + citizen_flow3.hpl 2 + Y + Y + N + + + recruitment_rows_five_flow_if_error.hpl + citizen_flow2.hpl 2 + Y + Y + N + + + recruitment_rows_five_flow_if_error.hpl + citizen_flow1.hpl 2 + Y + Y + N + + + recruitment_rows_five_flow_if_error.hpl + citizen_flow4.hpl 2 + Y + Y + N + + + recruitment_rows_five_flow_if_error.hpl + citizen_flow5.hpl 2 + Y + Y + N + + + Write state_citizen_flow1 SUCCESS 2 + Success after_error_citizen_flow1 + Y + Y + N + + + Write state_citizen_flow1 ERROR 2 + error after_error_citizen_flow1 + Y + Y + N + + + Write state_citizen_flow2 SUCCESS 2 + Success after_error_citizen_flow2 + Y + Y + N + + + Write state_citizen_flow2 ERROR 2 + error after_error_citizen_flow2 + Y + Y + N + + + Write state_citizen_flow3 SUCCESS 2 + Success after_error_citizen_flow3 + Y + Y + N + + + Write state_citizen_flow3 ERROR 2 + error after_error_citizen_flow3 + Y + Y + N + + + Write state_citizen_flow4 SUCCESS 2 + Success after_error_citizen_flow4 + Y + Y + N + + + Write state_citizen_flow4 ERROR 2 + error after_error_citizen_flow4 + Y + Y + N + + + Write state_citizen_flow5 SUCCESS 2 + Success after_error_citizen_flow5 + Y + Y + N + + + Write state_citizen_flow5 ERROR 2 + error after_error_citizen_flow5 + Y + Y + N + + + Simple recruits_info WHERE SUCCESS + job_recruit_last_update_date.hwf + Y + Y + N + + + job_recruit_last_update_date.hwf + delta_citizen.hpl + Y + Y + N + + + state_recruits_citizen_success + Success delta_citizen + Y + Y + N + + + state_citizen_delta_error + error delta_citizen + Y + Y + N + + + delta_citizen.hpl + state_recruits_citizen_success + Y + Y + N + + + delta_citizen.hpl + state_citizen_delta_error + Y + N + N + + + checkpoint_job_citizen.hpl + state_job_citizen_success (2) + Y + Y + N + + + checkpoint_job_citizen.hpl + state_job_citizen_error (2) + Y + N + N + + + state_job_citizen_success (2) + Success new citizen + Y + Y + N + + + state_job_citizen_error (2) + Success new citizen + Y + Y + N + + + recruitment_rows_five_flow_citizen.hpl + Abort workflow + Y + N + N + + + recruitment_rows_five_flow_if_error.hpl + Abort workflow 2 + Y + N + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 72 + 1681 + 288 + 0001-01-01 00:00:00 + +3001-01-01 00:00:00 + + 114 + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen/job_recruit_last_update_date.hwf b/mappings/info_recruits/citizen_tables/citizen/job_recruit_last_update_date.hwf new file mode 100644 index 0000000..fe4c912 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/job_recruit_last_update_date.hwf @@ -0,0 +1,124 @@ + + + job_recruit_last_update_date + Y + + + + - + 2025/06/02 14:48:05.666 + - + 2025/06/02 14:48:05.666 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 592 + 352 + + + + recruit_update_date_ervu_dashboard.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/recruit_update_date_ervu_dashboard.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 784 + 352 + + + + row_last_recruit_update_date.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/row_last_recruit_update_date.hpl + Basic + + Y + + N + local + N + N + Y + N + 1056 + 352 + + + + Success + + SUCCESS + + N + 1232 + 352 + + + + + + Start + recruit_update_date_ervu_dashboard.hpl + Y + Y + Y + + + recruit_update_date_ervu_dashboard.hpl + row_last_recruit_update_date.hpl + Y + Y + N + + + row_last_recruit_update_date.hpl + Success + Y + Y + N + + + + + + diff --git a/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow1.hpl b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow1.hpl new file mode 100644 index 0000000..bd4629d --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow1.hpl @@ -0,0 +1,333 @@ + + + + citizen_flow1 + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Select values 4 2 + N + + + Select values 4 2 + Insert / update + N + + + Table input + Insert / update + Y + + + Select values 4 2 + Get variables + N + + + + Get variables + GetVariable + + Y + + 1 + + none + + + + + -1 + recruitment_id + -1 + none + String + ID_F1 + + + + + 976 + 400 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + + ervu_dashboard + citizen
+ + 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 + + + date_registration + date_registration + Y + + + date_deregistration + date_deregistration + Y + + + recruit_create_date + recruit_create_date + Y + + + update_date + update_date + Y + + + vu_current_info + vu_current_info + Y + + + recruitment_id + recruitment_id + Y + + + target_recruitment_id + target_recruitment_id + Y + + + deferment_liberation + deferment_liberation + Y + + + reason_registration + reason_registration + Y + +
+ N + + + 992 + 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_person_registry + N + 0 + SELECT + r.system_pgs_status, + r.full_name, + r.last_name, + r.first_name, + r.middle_name, + r.gender, + --ri.info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils' AS snils, + --ri.info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn' AS inn, + r.birth_date, + EXTRACT(YEAR FROM AGE(r.birth_date)) AS age, + r.birth_place, + r.phone, + r.email, + 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, + --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, + r.system_create_date AS recruit_create_date, + r.system_update_date AS update_date, +/* + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, +*/ + r.current_recruitment_id AS recruitment_id, + r.target_recruitment_id, + CASE + WHEN ddd.hidden IS false then ddd.hidden + ELSE true + END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет + mrr.value AS reason_registration + +FROM public.recruits AS r +JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${ID_F1}' != '' -- Проверка на пустую строку + AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F1}' + AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp +LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY recruit_id ORDER BY created_at DESC) as rn, + recruit_id, + hidden + FROM public.decision_deferment_dto + ) ddd ON ddd.recruit_id = r.id and ddd.rn = 1 and ddd.hidden is false +JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) +--JOIN public.recruits_history rh on rh.recruit_id=r.id +--WHERE r.system_update_date >= '${UP_D}' + Y + + + 448 + 288 + + + + + Select values 4 2 + Get variables + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow2.hpl b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow2.hpl new file mode 100644 index 0000000..7da9f7e --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow2.hpl @@ -0,0 +1,241 @@ + + + + citizen_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
+ + 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 + + + date_registration + date_registration + Y + + + date_deregistration + date_deregistration + Y + + + recruit_create_date + recruit_create_date + Y + + + update_date + update_date + Y + + + vu_current_info + vu_current_info + Y + + + recruitment_id + recruitment_id + Y + + + target_recruitment_id + target_recruitment_id + Y + + + deferment_liberation + deferment_liberation + Y + + + reason_registration + reason_registration + Y + +
+ N + + + 1104 + 288 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + SELECT + r.system_pgs_status, + r.full_name, + r.last_name, + r.first_name, + r.middle_name, + r.gender, + --ri.info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils' AS snils, + --ri.info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn' AS inn, + r.birth_date, + EXTRACT(YEAR FROM AGE(r.birth_date)) AS age, + r.birth_place, + r.phone, + r.email, + 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, + --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, + r.system_create_date AS recruit_create_date, + r.system_update_date AS update_date, +/* + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, +*/ + r.current_recruitment_id AS recruitment_id, + r.target_recruitment_id, + CASE + WHEN ddd.hidden IS false then ddd.hidden + ELSE true + END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет + mrr.value AS reason_registration + +FROM public.recruits AS r +JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${ID_F2}' != '' -- Проверка на пустую строку + AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F2}' + AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp +LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY recruit_id ORDER BY created_at DESC) as rn, + recruit_id, + hidden + FROM public.decision_deferment_dto + ) ddd ON ddd.recruit_id = r.id and ddd.rn = 1 and ddd.hidden is false +JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) +--JOIN public.recruits_history rh on rh.recruit_id=r.id +--WHERE r.system_update_date >= '${UP_D}' + Y + + + 560 + 288 + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow3.hpl b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow3.hpl new file mode 100644 index 0000000..cebde2f --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow3.hpl @@ -0,0 +1,241 @@ + + + + citizen_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
+ + 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 + + + date_registration + date_registration + Y + + + date_deregistration + date_deregistration + Y + + + recruit_create_date + recruit_create_date + Y + + + update_date + update_date + Y + + + vu_current_info + vu_current_info + Y + + + recruitment_id + recruitment_id + Y + + + target_recruitment_id + target_recruitment_id + Y + + + deferment_liberation + deferment_liberation + Y + + + reason_registration + reason_registration + Y + +
+ N + + + 1216 + 352 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + SELECT + r.system_pgs_status, + r.full_name, + r.last_name, + r.first_name, + r.middle_name, + r.gender, + --ri.info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils' AS snils, + --ri.info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn' AS inn, + r.birth_date, + EXTRACT(YEAR FROM AGE(r.birth_date)) AS age, + r.birth_place, + r.phone, + r.email, + 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, + --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, + r.system_create_date AS recruit_create_date, + r.system_update_date AS update_date, +/* + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, +*/ + r.current_recruitment_id AS recruitment_id, + r.target_recruitment_id, + CASE + WHEN ddd.hidden IS false then ddd.hidden + ELSE true + END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет + mrr.value AS reason_registration + +FROM public.recruits AS r +JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${ID_F3}' != '' -- Проверка на пустую строку + AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F3}' + AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp +LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY recruit_id ORDER BY created_at DESC) as rn, + recruit_id, + hidden + FROM public.decision_deferment_dto + ) ddd ON ddd.recruit_id = r.id and ddd.rn = 1 and ddd.hidden is false +JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) +--JOIN public.recruits_history rh on rh.recruit_id=r.id +--WHERE r.system_update_date >= '${UP_D}' + Y + + + 672 + 352 + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow4.hpl b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow4.hpl new file mode 100644 index 0000000..91bb987 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow4.hpl @@ -0,0 +1,239 @@ + + + + citizen_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
+ + 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 + + + date_registration + date_registration + Y + + + date_deregistration + date_deregistration + Y + + + recruit_create_date + recruit_create_date + Y + + + update_date + update_date + Y + + + vu_current_info + vu_current_info + Y + + + recruitment_id + recruitment_id + Y + + + target_recruitment_id + target_recruitment_id + Y + + + deferment_liberation + deferment_liberation + Y + + + reason_registration + reason_registration + Y + +
+ N + + + 1072 + 320 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + SELECT + r.system_pgs_status, + r.full_name, + r.last_name, + r.first_name, + r.middle_name, + r.gender, + --ri.info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils' AS snils, + --ri.info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn' AS inn, + r.birth_date, + EXTRACT(YEAR FROM AGE(r.birth_date)) AS age, + r.birth_place, + r.phone, + r.email, + 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, + --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, + r.system_create_date AS recruit_create_date, + r.system_update_date AS update_date, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + r.current_recruitment_id AS recruitment_id, + r.target_recruitment_id, + CASE + WHEN ddd.hidden IS false then ddd.hidden + ELSE true + END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет + mrr.value AS reason_registration + +FROM public.recruits AS r +JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${ID_F4}' != '' -- Проверка на пустую строку + AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F4}' + AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp +LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY recruit_id ORDER BY created_at DESC) as rn, + recruit_id, + hidden + FROM public.decision_deferment_dto + ) ddd ON ddd.recruit_id = r.id and ddd.rn = 1 and ddd.hidden is false +JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) +--JOIN public.recruits_history rh on rh.recruit_id=r.id +--WHERE r.system_update_date >= '${UP_D}' + Y + + + 528 + 320 + + + + + +
diff --git a/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow5.hpl b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow5.hpl new file mode 100644 index 0000000..ba4aad2 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/parallel/citizen_flow5.hpl @@ -0,0 +1,239 @@ + + + + citizen_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
+ + 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 + + + date_registration + date_registration + Y + + + date_deregistration + date_deregistration + Y + + + recruit_create_date + recruit_create_date + Y + + + update_date + update_date + Y + + + vu_current_info + vu_current_info + Y + + + recruitment_id + recruitment_id + Y + + + target_recruitment_id + target_recruitment_id + Y + + + deferment_liberation + deferment_liberation + Y + + + reason_registration + reason_registration + Y + +
+ N + + + 1104 + 368 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + SELECT + r.system_pgs_status, + r.full_name, + r.last_name, + r.first_name, + r.middle_name, + r.gender, + --ri.info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils' AS snils, + --ri.info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn' AS inn, + r.birth_date, + EXTRACT(YEAR FROM AGE(r.birth_date)) AS age, + r.birth_place, + r.phone, + r.email, + 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, + --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, + r.system_create_date AS recruit_create_date, + r.system_update_date AS update_date, + CASE + WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' + ELSE 'NOTCONVICT' + END AS convicts, + r.current_recruitment_id AS recruitment_id, + r.target_recruitment_id, + CASE + WHEN ddd.hidden IS false then ddd.hidden + ELSE true + END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет + mrr.value AS reason_registration + +FROM public.recruits AS r +JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND '${ID_F5}' != '' -- Проверка на пустую строку + AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F5}' + AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp +LEFT JOIN ( + SELECT + ROW_NUMBER() OVER (PARTITION BY recruit_id ORDER BY created_at DESC) as rn, + recruit_id, + hidden + FROM public.decision_deferment_dto + ) ddd ON ddd.recruit_id = r.id and ddd.rn = 1 and ddd.hidden is false +JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) +--JOIN public.recruits_history rh on rh.recruit_id=r.id +--WHERE r.system_update_date >= '${UP_D}' + Y + + + 560 + 368 + + + + + +
diff --git a/mappings/jobs_once_a_day/recruitment_code_once.hpl b/mappings/info_recruits/citizen_tables/citizen/recruit_update_date_ervu_dashboard.hpl similarity index 56% rename from mappings/jobs_once_a_day/recruitment_code_once.hpl rename to mappings/info_recruits/citizen_tables/citizen/recruit_update_date_ervu_dashboard.hpl index 6e7cacb..5aa7685 100644 --- a/mappings/jobs_once_a_day/recruitment_code_once.hpl +++ b/mappings/info_recruits/citizen_tables/citizen/recruit_update_date_ervu_dashboard.hpl @@ -1,7 +1,7 @@ - recruitment_code_once + recruit_update_date_ervu_dashboard Y @@ -13,16 +13,16 @@ 1000 100 - - 2025/04/26 16:42:00.557 + 2025/06/02 14:50:31.833 - - 2025/04/26 16:42:00.557 + 2025/06/02 14:50:31.833 Table input - Update + Table output Y @@ -37,23 +37,27 @@ none - ervu_person_registry + ervu-dashboard N 0 - select - id, - code - from recruitment; + 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_person_registry_raw.recruits_info +WHERE updated_at = (SELECT MAX(updated_at) FROM ervu_person_registry_raw.recruits_info) +limit 1 N - 336 - 256 + 896 + 304 - Update - Update + Table output + TableOutput Y @@ -64,28 +68,25 @@ 1000 ervu-dashboard - Y - - - - = - idm_id - id - - - ervu_dashboard - recruitment
- - code - code - -
- N + + + N + N + N + N + Y + N + public + N + recruit_create
+ N + Y + N Y - 464 - 256 + 1216 + 304
diff --git a/mappings/info_recruits/citizen_tables/citizen/recruitment_rows_five_flow_if_error.hpl b/mappings/info_recruits/citizen_tables/citizen/recruitment_rows_five_flow_if_error.hpl new file mode 100644 index 0000000..6fbdf56 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/recruitment_rows_five_flow_if_error.hpl @@ -0,0 +1,259 @@ + + + + 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(recruitment_id, target_recruitment_id) AS idm_id + FROM ervu_dashboard.citizen +), +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/row_last_recruit_update_date.hpl b/mappings/info_recruits/citizen_tables/citizen/row_last_recruit_update_date.hpl new file mode 100644 index 0000000..5597125 --- /dev/null +++ b/mappings/info_recruits/citizen_tables/citizen/row_last_recruit_update_date.hpl @@ -0,0 +1,109 @@ + + + + row_last_recruit_update_date + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/06/02 14:51:59.611 + - + 2025/06/02 14:51:59.611 + + + + + + Copy rows to result + Set variables + Y + + + Table input + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 992 + 320 + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + + MAX_RECRUIT_UPDATE_DATE + M_R_UP_DATE + GP_WORKFLOW + + + Y + + + 1232 + 320 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + system_update_date AS MAX_RECRUIT_UPDATE_DATE--, +--record_created +FROM public.recruit_create +WHERE system_update_date = (select max(system_update_date) from public.recruit_create) +and workflow = 'job_recruits_info' +order by record_created desc +limit 1 + N + + + 688 + 320 + + + + + + diff --git a/mappings/info_recruits/citizen_work_activity.hpl b/mappings/info_recruits/citizen_work_activity.hpl deleted file mode 100644 index 2fa5c38..0000000 --- a/mappings/info_recruits/citizen_work_activity.hpl +++ /dev/null @@ -1,248 +0,0 @@ - - - - citizen_work_activity1 - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 13:02:15.430 - - - 2025/02/14 13:02:15.430 - - - - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - ervu_dashboard - citizen_work_activity
- - recruit_id - recruit_id - N - - - date_hr_event - personnel_event_date - Y - - - type_hr_event - personnel_event_type - Y - - - job_title - position - Y - - - organization_name - employer_name - Y - - - kpp - employer_kpp - Y - - - employer_category - employer_category - Y - - - inn - employer_inn - Y - - - organization_address - employer_address - Y - - - ogrn - employer_ogrnip - Y - - - type_separate_division - employer_unit_type - Y - - - address_separate_division - employer_unit_address - Y - - - start_date_parental_leave - parental_leave_start_date - Y - - - end_date_parental_leave - parental_leave_end_date - Y - - - date_reg_ip - reg_ip_date - Y - - - date_dereg_ip - dereg_ip_date - Y - - - ogrn_ip - ogrnip_ip - Y - - - date_reg_self - reg_self_employment_date - Y - - - date_dereg_self - dereg_self_employment_date - Y - -
- N - - - 720 - 256 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH trud_info AS ( - SELECT - ri.info, - ri.recruit_id::uuid, - case when ri.info->'svedFL'->'svedTrud'->'trudDeyat' IS NULL THEN NULL - WHEN jsonb_typeof(ri.info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN - (ri.info->'svedFL'->'svedTrud'->'trudDeyat'->0) end as trud_deyat, - case when ri.info->'svedFL'->'svedTrud'->'trudDeyat' IS NULL THEN NULL - WHEN jsonb_typeof(ri.info->'svedFL'->'svedTrud'->'trudDeyat'->0->'svedUhodReb') = 'array' - then ri.info->'svedFL'->'svedTrud'->'trudDeyat'->0->'svedUhodReb'->0 end AS parental_leave_info, - coalesce( - ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat', - ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'predRabotodat' - ) AS employer, - (CASE - WHEN info->'svedFL'->'svedRegIP'->'regIP' IS NULL THEN NULL - WHEN jsonb_typeof(info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN - (info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP'->0) - ELSE - info->'svedFL'->'svedRegIP'->'regIP'->'predRegIP' - END) AS reg_ip, - COALESCE( - ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD', - ri.info->'svedFL'->'svedNPD'->'npd'->'predNPD' - ) AS self_employment - FROM public.recruits_info ri - join public.recruits r - ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' -) -SELECT - ti.recruit_id::uuid, - (ti.trud_deyat->>'dataMeropr')::date AS personnel_event_date, - ti.trud_deyat->>'naimTipKadrMeropr' AS personnel_event_type, - case when ti.trud_deyat->>'prAktMestRab' = '1' then true else false end AS current_workplace, - ti.trud_deyat->>'trudFunkcziya' AS position, - ti.trud_deyat->'svedOrg'->>'naimOrg' AS employer_name, - ti.employer->'svedYUL'->>'kpp' AS employer_kpp, - CASE - WHEN ti.employer->>'svedYUL' != 'null' THEN 'Юридическое лицо' - WHEN ti.employer->>'svedIP' != 'null' THEN 'Индивидуальный предприниматель' - END AS employer_category, - COALESCE( - ti.employer->'svedYUL'->>'innyul', - ti.employer->'svedIP'->>'innyfl' - ) AS employer_inn, - ti.employer->'svedYUL'->'svedOPK'->>'region' AS employer_address, - COALESCE( - ti.employer->'svedIP'->>'ogrnip', - ti.employer->'svedYUL'->'extend'->>'ogrn' - ) AS employer_ogrnip, - ti.employer->'extend'->>'tipPodrazdRabotodat' as employer_unit_type, - ti.employer->'extend'->>'adresPodrazdRabotodat' as employer_unit_address, - (ti.parental_leave_info->>'dataNachUhodReb')::date as parental_leave_start_date, - (ti.parental_leave_info->>'dataKonUhodReb')::date as parental_leave_end_date, - case when (ti.parental_leave_info->>'dataNachUhodReb')::date <= current_date - and ((ti.parental_leave_info->>'dataKonUhodReb')::date is null - or (ti.parental_leave_info->>'dataKonUhodReb')::date > current_date) - then true - else false end as parental_leave_active, - (ti.reg_ip->>'dataRegIP')::date as reg_ip_date, - (ti.reg_ip->>'dataINNNed')::date as dereg_ip_date, - ti.reg_ip->>'ogrnip' as ogrnip_ip, - case when ti.reg_ip != 'null' - then true else false end as active_ip, - ti.self_employment->>'dataUchNPD' as reg_self_employment_date, - ti.self_employment->>'dataSnUchNPD' as dereg_self_employment_date, - case when ti.self_employment != 'null' - then true else false end as active_self_employment -FROM trud_info ti - - Y - - - 528 - 256 - - - - - -
diff --git a/mappings/info_recruits/citizenship.hpl b/mappings/info_recruits/citizenship.hpl deleted file mode 100644 index 3a98ec3..0000000 --- a/mappings/info_recruits/citizenship.hpl +++ /dev/null @@ -1,181 +0,0 @@ - - - - citizenship - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - N - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - ervu_dashboard - citizenship
- - recruit_id - recruit_id - N - - - acquiring_authority - acquiring_authority - Y - - - acquiring_basis - acquiring_basis - Y - - - acquiring_date - acquiring_date - Y - - - acquiring_number - acquiring_number - Y - - - renunciation_authority - renunciation_authority - Y - - - renunciation_basis - renunciation_basis - Y - - - renunciation_date - renunciation_date - Y - - - renunciation_number - renunciation_number - Y - -
- N - - - 688 - 224 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select r.id recruit_id, -ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'osnPriob' acquiring_basis, -ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshPriob' acquiring_number, -to_date(ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'dataReshPriob', 'YYYY-MM-DD') acquiring_date, -ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'organReshPriob' acquiring_authority, -ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'osnVyh' renunciation_basis, -ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshVyh' renunciation_number, -to_date(ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'dataReshVyh', 'YYYY-MM-DD') renunciation_date, -ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'organReshVyh' renunciation_authority -from public.recruits_info ri -join public.recruits r ON ri.recruit_id = r.id AND r.system_update_date >= '${UP_D}' -where ri.info->'svedFL'->'svedGrazhdanRF'->>'prOtsGrazhdanRF' is null and -(ri.info->'svedFL'->'svedGrazhdanRF'->'grazhdanRF'->>'nomReshPriob' is not null or ri.info->'svedGrazhdanRF'->'grazhdanRF'->>'osnVyh' is not null) - --AND r.system_update_date >= '${UP_D}' - Y - - - 432 - 224 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - citizenship
- N - Y - N - Y - - - 672 - 352 - -
- - - -
diff --git a/mappings/info_recruits/deferments.hpl b/mappings/info_recruits/deferments.hpl deleted file mode 100644 index 2dba4ce..0000000 --- a/mappings/info_recruits/deferments.hpl +++ /dev/null @@ -1,235 +0,0 @@ - - - - deferments - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/20 11:21:19.116 - - - 2025/04/20 11:21:19.116 - - - - - - deferment_right_input - Insert / update - Y - - - deferment_input - Insert / update 2 - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_deferment_right
- - recruit_id - recruit_id - N - - - start_date - start_date - Y - - - end_date - end_date - Y - - - code - code - Y - - - has_deferment_right - has_deferment_right - Y - -
- N - - - 544 - 208 - -
- - Insert / update 2 - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen_deferment
- - recruit_id - recruit_id - N - - - decision_number - decision_number - Y - - - deferment_type - deferment_type - Y - - - start_date - start_date - Y - - - end_date - end_date - Y - - - reason_code - reason_code - Y - - - has_active_deferment - has_active_deferment - Y - - - has_exemption - has_exemption - Y - - - active - active - Y - -
- N - - - 544 - 336 - -
- - deferment_input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select - ddd.recruit_id, - ddd.decision_number, - ddd.type->>'value' as deferment_type, - ddd.decision_date as start_date, - ddd.postponement_date as end_date, - ddd.base_deferment as reason_code, - ddd.type->>'code' = '1' as has_active_deferment, - ddd.type->>'code' = '2' as has_exemption, - not ddd.hidden as active -from decision_deferment_dto ddd - join public.recruits r - ON r.id = ddd.recruit_id - AND r.system_update_date >= '${UP_D}' -where hidden is false; - Y - - - 272 - 336 - - - - deferment_right_input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select - rd.recruit_id, - rd.date_of_information as start_date, - rd.postponement_date as end_date, - erfd.code, - true as has_deferment_right -from recruits_deferment rd - join ervu_reason_for_deferment erfd - on erfd.id = rd.ervu_reason_for_deferment_id - join public.recruits r - ON r.id = rd.recruit_id - AND r.system_update_date >= '${UP_D}' -where rd.hidden is false; - Y - - - 272 - 208 - - - - - -
diff --git a/mappings/info_recruits/deputy.hpl b/mappings/info_recruits/deputy.hpl deleted file mode 100644 index efe24e6..0000000 --- a/mappings/info_recruits/deputy.hpl +++ /dev/null @@ -1,290 +0,0 @@ - - - - deputy - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input 2 - Table output 2 - N - - - Table input - Insert / update - Y - - - Table input - Table output - N - - - Table input 2 - Insert / update 2 - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - deputy - deputy - - - ervu_dashboard - deputy
- - recruit_id - recruit_id - N - - - end_date - end_date - Y - - - information - information - Y - - - period_office - period_office - Y - - - deputy - deputy - Y - -
- N - - - 688 - 224 - -
- - Insert / update 2 - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - deputy - deputy - - - ervu_dashboard - deputy
- - recruit_id - recruit_id - N - - - end_date - end_date - Y - - - information - information - Y - - - deputy - deputy - Y - -
- N - - - 688 - 320 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select r.id recruit_id, -ri.info->'svedFL'->'svedDeputat'->'deputat'->>'srokiPolnomochii' period_office, -to_date(ri.info->'svedFL'->'svedDeputat'->'deputat'->>'dataDosrochPrekr', 'YYYY-MM-DD') end_date, -ri.info->'svedFL'->'svedDeputat'->'deputat'->>'svedIzbrDeputatom' information -from public.recruits_info ri -join public.recruits r ON ri.recruit_id = r.id AND r.system_update_date >= '${UP_D}' -where ri.info->'svedFL'->'svedDeputat'->'deputat'->>'svedIzbrDeputatom' is not null - --AND r.system_update_date >= '${UP_D}' - Y - - - 432 - 224 - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select r.id recruit_id, -to_date(ri.info->'svedFL'->'svedKandidat'->'kandidat'->>'dataSnyatKandidat', 'YYYY-MM-DD') end_date, -ri.info->'svedFL'->'svedKandidat'->'kandidat'->>'svedRegKandidata' information, -false deputy -from public.recruits_info ri -join public.recruits r ON ri.recruit_id = r.id AND r.system_update_date >= '${UP_D}' -where ri.info->'svedFL'->'svedKandidat'->>'kandidat' is not null - --AND r.system_update_date >= '${UP_D}' - Y - - - 432 - 320 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - deputy
- N - Y - N - Y - - - 688 - 64 - -
- - Table output 2 - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - deputy
- N - Y - N - Y - - - 688 - 448 - -
- - - -
diff --git a/mappings/info_recruits/disability.hpl b/mappings/info_recruits/disability.hpl deleted file mode 100644 index fa0f75e..0000000 --- a/mappings/info_recruits/disability.hpl +++ /dev/null @@ -1,323 +0,0 @@ - - - - disability - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - N - - - Table input 2 - Table output 2 - N - - - Table input - Insert / update - Y - - - Table input 2 - Insert / update 2 - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - start_date - start_date - - - ervu_dashboard - disability
- - recruit_id - recruit_id - N - - - close_date - close_date - Y - - - confirmation_date - confirmation_date - Y - - - disability - disability - Y - - - disability_group - disability_group - Y - - - organization_name - organization_name - Y - - - start_date - start_date - Y - -
- N - - - 432 - 208 - -
- - Insert / update 2 - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - start_date - start_date - - - ervu_dashboard - disability
- - recruit_id - recruit_id - N - - - close_date - close_date - Y - - - organization_name - organization_name - Y - - - start_date - start_date - Y - - - disability - disability - Y - - - is_incompetent - is_incompetent - Y - -
- N - - - 432 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select - recruit_id, - case when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='1' then 'I группа' - when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='2' then 'II группа' - when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='3' then 'III группа' - when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='4' then 'ребенок-инвалид' - end disability_group, - ri.info->'svedFL'->'svedInvalid'->'invalid'->>'ustanOrg' organization_name, - to_date(ri.info->'svedFL'->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataUstan', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedFL'->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataSnyat', 'YYYY-MM-DD') close_date, - to_date(ri.info->'svedFL'->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataPodtverzhdPlan', 'YYYY-MM-DD') confirmation_date, - true disability -from public.recruits_info ri - join public.recruits r - ON r.id = ri.recruit_id - AND r.system_update_date >= '${UP_D}' -where ri.info->'svedFL'->'svedInvalid'->>'invalid' != 'null'; - Y - - - 208 - 208 - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select - recruit_id, - ri.info->'svedNedeesp'->'nedeesposob'->>'naimOrg' organization_name, - to_date(ri.info->'svedNedeesp'->'nedeesposob'->>'dataPrisv', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedNedeesp'->'nedeesposob'->>'dataOtmeny', 'YYYY-MM-DD') close_date, - false disability, - true is_incompetent -from public.recruits_info ri - join public.recruits r - ON r.id = ri.recruit_id - AND r.system_update_date >= '${UP_D}' -where ri.info->'svedNedeesp'->>'nedeesposob' != 'null'; - Y - - - 208 - 304 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - disability
- N - Y - N - Y - - - 416 - 80 - -
- - Table output 2 - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - disability
- N - Y - N - Y - - - 416 - 496 - -
- - - -
diff --git a/mappings/info_recruits/drivers_licence.hpl b/mappings/info_recruits/drivers_licence.hpl deleted file mode 100644 index 290cabd..0000000 --- a/mappings/info_recruits/drivers_licence.hpl +++ /dev/null @@ -1,344 +0,0 @@ - - - - drivers_licence - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - N - - - Table input 2 - Table output 2 - N - - - Table input 2 - Insert / update 2 - Y - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - start_date - start_date - - - ervu_dashboard - drivers_licence
- - recruit_id - recruit_id - N - - - categories - categories - Y - - - close_date - close_date - Y - - - licence_series - licence_series - Y - - - start_date - start_date - N - -
- N - - - 416 - 208 - -
- - Insert / update 2 - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - start_date - start_date - - - - = - tractor_driver - tractor_driver - - - ervu_dashboard - drivers_licence
- - recruit_id - recruit_id - N - - - categories - categories - Y - - - close_date - close_date - Y - - - licence_number - licence_number - Y - - - licence_series - licence_series - Y - - - replacement_date - replacement_date - Y - - - return_date - return_date - Y - - - seizure_date - seizure_date - Y - - - start_date - start_date - N - - - tractor_driver - tractor_driver - N - -
- N - - - 416 - 416 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select - ri.recruit_id recruit_id, - ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'serNomDok' licence_series, - --ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'nomVodUd' licence_number, - to_date(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'dataVydDok', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'srokDeistvDok', 'YYYY-MM-DD') close_date, - array_to_string(array( - select kat->>'naimKatTS' - from jsonb_array_elements(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') as kat - where jsonb_typeof(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array'), ',') categories -from public.recruits r -join public.recruits_info ri on r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' -where jsonb_typeof(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array' - --AND r.system_update_date >= '${UP_D}' - - Y - - - 208 - 208 - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select - r.id recruit_id, - ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'serUTM' licence_series, - ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'nomUTM' licence_number, - to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataVydUTM', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataOkonchUTM', 'YYYY-MM-DD') close_date, - to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataIztUTM', 'YYYY-MM-DD') seizure_date, -- - to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataZameny', 'YYYY-MM-DD') replacement_date,-- - to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataVozvr', 'YYYY-MM-DD') return_date,-- - array_to_string(array( - select kat->>'naimKatTS' - from jsonb_array_elements(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') as kat - where jsonb_typeof(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array'), ',') categories, - true tractor_driver -from public.recruits r -join public.recruits_info ri on r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' -where ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM' is not null - --AND r.system_update_date >= '${UP_D}' - - Y - - - 208 - 416 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - drivers_licence
- N - Y - N - Y - - - 416 - 64 - -
- - Table output 2 - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - drivers_licence
- N - Y - N - Y - - - 416 - 544 - -
- - - -
diff --git a/mappings/info_recruits/incident.hpl b/mappings/info_recruits/incident.hpl deleted file mode 100644 index 830b011..0000000 --- a/mappings/info_recruits/incident.hpl +++ /dev/null @@ -1,27 +0,0 @@ - - - - incident - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 13:11:10.022 - - - 2025/02/14 13:11:10.022 - - - - - - - - - diff --git a/mappings/info_recruits/info_recruits.hpl b/mappings/info_recruits/info_recruits.hpl deleted file mode 100644 index 17a2351..0000000 --- a/mappings/info_recruits/info_recruits.hpl +++ /dev/null @@ -1,785 +0,0 @@ - - - - info_recruits - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 394 - 960 - 16 - acquired_citizenship -address_actual -address_place_stay -city_birth -date_info_actual -date_loss_info_actual -died_date -dispensary_registration_code -email -end_date_place_stay -end_date_residence -inn -is_in_prison -medic -medical_requirements -region_birth -residence -right_deferment -snils -source_info_actual -start_date_place_stay -start_date_residence -took_break -type_place_stay - 163 - - - - - Select values 4 - Table output - N - - - Table input(info_recruits) - Select values 4 - Y - - - Select values 4 - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - ervu_dashboard - citizen
- - recruit_id - recruit_id - N - - - age - age - Y - - - birth_date - birth_date - Y - - - birth_place - birth_place - Y - - - contract_service - contract_service - Y - - - deferment_liberation - deferment_liberation - Y - - - disability_group - disability_group - Y - - - driver_license - driver_license - Y - - - education - education - Y - - - employment - employment - Y - - - first_name - first_name - Y - - - full_name - full_name - Y - - - gender - gender - Y - - - is_registered - is_registered - Y - - - is_wanted - is_wanted - Y - - - issue_date - issue_date - Y - - - last_name - last_name - Y - - - marital_status - marital_status - Y - - - middle_name - middle_name - Y - - - mobilization - mobilization - Y - - - number_children - number_children - Y - - - number_children_18_old - number_children_18_old - Y - - - passport_number - passport_number - Y - - - passport_series - passport_series - Y - - - phone - phone - Y - - - reason_registration - reason_registration - Y - - - recruitment_id - recruitment_id - Y - - - sports_category - sports_category - Y - - - tractor_license - tractor_license - Y - - - update_date - update_date - Y - - - urgent_service - urgent_service - Y - -
- N - - - 688 - 208 - -
- - Select values 4 - SelectValues - - Y - - 1 - - none - - - - N - - issue_date - issue_date - Date - -2 - -2 - yyyy-MM-dd - false - - - false - - - - - - - - - - 448 - 208 - - - - Table input(info_recruits) - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH -base_recruit_data AS ( - SELECT - distinct - r.system_pgs_status, - r.full_name, - r.last_name, - r.first_name, - r.middle_name, - r.gender, - ri.info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils' AS snils, - ri.info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn' AS inn, - r.birth_date, - EXTRACT(YEAR FROM AGE(r.birth_date)) AS age, - r.birth_place, - r.phone, - r.email, - 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, - 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, - r.system_update_date AS update_date, - CASE - WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' - ELSE 'NOTCONVICT' - END AS convicts, - COALESCE(r.current_recruitment_id, r.target_recruitment_id) AS recruitment_id, - 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, - CASE - WHEN ddd.hidden IS false then ddd.hidden - ELSE true END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет - CASE - WHEN - -- Условия для "true" (спортивная категория) - ri.info->'svedFL'->'svedSport' ? 'sport' -- Проверяем, что ключ 'sport' существует - AND jsonb_typeof(ri.info->'svedFL'->'svedSport'->'sport') = 'array' -- Проверяем, что 'sport' это массив - AND jsonb_array_length(ri.info->'svedFL'->'svedSport'->'sport') > 0 -- И массив не пустой - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedFL'->'svedSport'->'sport') AS sport_elem - WHERE - ( - -- Проверяем, что 'sportRazr' существует и срок действия актуален - jsonb_typeof(sport_elem->'sportRazr') = 'object' - AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL - AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') > CURRENT_DATE - ) - OR ( - -- Проверяем, что 'sportZvan' существует и не пусто - sport_elem->>'sportZvan' IS NOT NULL - AND sport_elem->>'sportZvan' <> '' - ) - OR ( - -- Проверяем, что 'sportRazr' существует и срок действия истек - jsonb_typeof(sport_elem->'sportRazr') = 'object' - AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL - AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') <= CURRENT_DATE - ) - ) - AND ri.info->'svedFL'->'svedSport'->>'prOtsSvedSport' IS NULL - THEN true - - WHEN - -- Условия для "false" (не является спортивной категорией) - ( - ri.info->'svedFL'->'svedSport'->'sport' IS NULL -- Если 'sport' = NULL - OR ( - ri.info->'svedSport' ? 'sport' -- Проверяем, что ключ 'sport' существует - AND jsonb_typeof(ri.info->'svedFL'->'svedSport'->'sport') = 'array' -- Поле 'sport' должно быть массивом - AND jsonb_array_length(ri.info->'svedFL'->'svedSport'->'sport') > 0 -- И массив не пустой - ) - ) - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedFL'->'svedSport'->'sport') AS sport_elem - WHERE - ( - -- Проверяем 'sportZvan' и если оно не существует или пусто - sport_elem->>'sportZvan' IS NULL OR sport_elem->>'sportZvan' = '' - ) - OR ( - -- Проверяем 'sportRazr' и срок действия истек - jsonb_typeof(sport_elem->'sportRazr') = 'object' - AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL - AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') > CURRENT_DATE - -- И 'sportZvan' также не должно существовать или быть пустым - AND (sport_elem->>'sportZvan' IS NULL OR sport_elem->>'sportZvan' = '') - ) - ) - AND ri.info->'svedFL'->'svedSport'->>'prOtsSvedSport' IS NULL - THEN false - - WHEN - -- Условия для "null" (нет информации) - ri.info->'svedSport'->>'prOtsSvedSport' = '1' - OR ri.info->'svedSport' IS NULL -- Проверяем, что 'svedSport' отсутствует - THEN null - - ELSE null -- Неопределенное значение для всех других случаев - END AS sports_category, - - mrr.value AS reason_registration, - - CASE - WHEN ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa' IS NOT NULL - AND ri.info->'svedFL'->'svedInvalid'->>'prOtsSvedInvalid' IS NULL - AND (ri.info->'svedFL'->'sportRazr'->>'dataSnyat' IS NULL - OR TO_DATE(ri.info->'svedFL'->'sportRazr'->>'dataSnyat', 'YYYY-MM-DD') <= CURRENT_DATE) - THEN ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa' - WHEN ri.info->'svedFL'->'svedInvalid'->>'prOtsSvedInvalid' = '1' THEN 'Нет информации об инвалидности' - ELSE 'Нет информации об инвалидности' - END AS disability_group, - - CASE - WHEN ri.info->'svedFL'->'svedUdostTraktMash'->>'udostTraktMash' IS NOT NULL - AND TO_DATE(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataOkonchUTM', 'YYYY-MM-DD') > CURRENT_DATE - THEN true - WHEN ri.info->'svedFL'->'svedUdostTraktMash'->>'udostTraktMash' IS NOT NULL - AND TO_DATE(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataOkonchUTM', 'YYYY-MM-DD') <= CURRENT_DATE - THEN false - WHEN ri.info->'svedFL'->'svedUdostTraktMash'->>'prOtsSvedUTM' = '1' THEN null - ELSE null - END AS tractor_license, - - CASE - WHEN - jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -- проверяем, что 'faktyUgolovPresl' это массив - AND jsonb_array_length(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') > 0 -- массив не пустой - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS criminal_prosecution - WHERE - criminal_prosecution->>'dataPrekrashh' IS NULL -- дата прекращения отсутствует - ) - AND ri.info->'svedFL'->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' IS NULL - THEN true - - WHEN - jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -- проверяем, что 'faktyUgolovPresl' это массив - AND jsonb_array_length(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') > 0 -- массив не пустой - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS criminal_prosecution - WHERE - criminal_prosecution->>'dataPrekrashh' IS NOT NULL -- дата прекращения не отсутствует - ) - AND ri.info->'svedFL'->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' IS NULL - THEN false - - WHEN - ri.info->'svedFL'->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' = '1' - THEN NULL - - ELSE NULL - END AS criminal_prosecution, - - COALESCE( - CASE - WHEN ( - jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' IN ('1', '2', '4') - ) - ) OR ( - jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' IN ('1', '2', '4') - ) - ) THEN 'Обучается' - ELSE NULL - END || - CASE - WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) THEN - CASE - WHEN ( - jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' IN ('1', '2', '4') - ) - ) OR ( - jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' IN ('1', '2', '4') - ) - ) THEN ', Работает' - ELSE 'Работает' - END - ELSE NULL - END, - CASE - WHEN - info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' -- Отсутствие сведений о вузе - AND info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' -- Отсутствие сведений о колледже - AND info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' -- Отсутствие сведений о работе - THEN 'Нет информации' - ELSE 'Нет информации' - END - ) AS employment_status, - - CASE - WHEN (EXISTS ( - SELECT 1 - 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->'svedFL'->'svedInObr'->'inObr') AS education - WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - )) THEN 'Высшее' - WHEN (EXISTS ( - SELECT 1 - 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->'svedFL'->'svedInObr'->'inObr') AS education - WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' - AND education->>'kodUrObr' = '10' - )) THEN 'Среднее профессиональное' - WHEN (EXISTS ( - SELECT 1 - 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->'svedFL'->'svedInObr'->'inObr') AS education - WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' - AND education->>'kodUrObr' IN ('7', '9') - )) THEN 'Общее' - WHEN ((ri.info->'svedFL'->'svedRObr'->>'prOtsRObr' = '1' OR ri.info->'svedFL'->'svedInObr'->>'prOtsInObr' = '1')) THEN 'Нет данных' - ELSE 'Не указано' -- Добавлено условие по умолчанию - END AS education, - ( - SELECT COUNT(*) - FROM jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') AS childs - WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' - AND age(make_date(NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'den','')::int)) < make_interval(years => 18) - ) AS number_children - FROM public.recruits AS r - JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND r.system_update_date >= '${UP_D}' - LEFT JOIN public.decision_deferment_dto ddd ON ddd.recruit_id = r.id and ddd.hidden is false - JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) - --JOIN public.recruits_history rh on rh.recruit_id=r.id ---WHERE r.system_update_date >= '${UP_D}' -), -adresses as ( -SELECT - r.id as recruit_id, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS actualAddress, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateStart' END) AS actualAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateEnd' END) AS actualAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS residenceAddress, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateStart' END) AS residenceAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateEnd' END) AS residenceAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) AS residenceAddress_kodTipReg -FROM - public.recruits AS r -LEFT JOIN - LATERAL jsonb_array_elements(r.addresses) AS addr ON true AND r.system_update_date >= '${UP_D}' ---WHERE r.system_update_date >= '${UP_D}' -GROUP BY - r.id -), -extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child - FROM base_recruit_data ri - WHERE - jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_16 - FROM - children_birth_dates - WHERE - AGE(make_date(year, month, day)) < interval '16 years' - GROUP BY - recruit_id -), - -driver_license AS ( - SELECT - ri.recruit_id, - COALESCE( - string_agg(sved_vodit->>'naimKatTS', ', '), - 'Нет информации' - ) AS driver_license - FROM base_recruit_data ri - LEFT JOIN LATERAL - jsonb_array_elements(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS sved_vodit - ON true - GROUP BY ri.recruit_id -) -SELECT - r.full_name, - r.last_name, - r.first_name, - r.middle_name, - r.gender, - r.snils, - r.inn, - r.birth_date, - r.age, - r.birth_place, - r.phone, - r.email, - r.deferment_liberation, - CASE - WHEN (EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 30 AND 50 AND r.gender = 'MALE') -- мужчины от 30 до 50 лет - OR (EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 30 AND 45 AND r.gender = 'FEMALE') -- женщины от 30 до 45 лет - AND COALESCE(cc.children_under_16, 0) < 5 - THEN true - ELSE false - END AS mobilization, - - CASE - WHEN EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 18 AND 30 - AND r.gender = 'MALE' - AND r.deferment_liberation IS true -- нет отсрочки и нет освобождения от службы - THEN true - ELSE false - END AS urgent_service, - - CASE - WHEN EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 18 AND 50 - AND r.gender = 'MALE' - AND (r.info->'svedFL'->'svedPND'->>'prOtsSvedPND' = '1' - OR uchet_pnd IS false) - AND r.info->'svedFL'->'svedUchetVICH'->>'prOtsSvedUchetVICH' = '1' -- признак отсутствия сведений о заболевании ВИЧ - THEN true - ELSE false - END AS contract_service, - - CASE - WHEN r.vu_current_info ->> 'isMilitaryRegistered' = 'true' THEN 'Состоит на воинском учете' - WHEN r.vu_current_info ->> 'isMilitaryRegistered' = 'false' THEN 'Не состоит на воинском учете' - ELSE 'Нет информации' - END AS is_registered, - - r.education, - r.marital_status, - r.number_children, - - (SELECT COUNT(*) - FROM jsonb_array_elements(r.info->'svedFL'->'svedDeti'->'rebenok') AS childs - WHERE jsonb_typeof(r.info->'svedFL'->'svedDeti'->'rebenok') = 'array' - AND age(make_date(NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'den','')::int)) >= make_interval(years => 18) - ) AS number_children_18_old, - r.passport_number, - r.passport_series, - r.issue_date, - r.recruit_id, -- ID рекрута - r.recruitment_id, - r.reason_registration, -- причина постановки на учет char - r.date_registration, -- дата постановки на учет date - r.date_deregistration, -- дата снятия с учета date - r.sports_category, -- наличие спортивной категории bool - dl.driver_license, -- категории водительских удостоверений char - r.disability_group, -- группа инвалидности char - r.tractor_license, -- наличие удостоверения тракториста bool - r.criminal_prosecution AS is_wanted, -- наличие уголовного преследования bool - r.employment_status AS employment, -- занятость char - r.update_date, - adr.actualAddress as residence, - adr.actualAddress_regDateStart as start_date_residence, - adr.actualAddress_regDateEnd as end_date_residence, - adr.residenceAddress as address_place_stay, - adr.residenceAddress_regDateStart as start_date_place_stay, - adr.residenceAddress_regDateEnd as end_date_place_stay, - case when adr.residenceAddress_kodTipReg='1' then 'В жилом помещении, не являющимся местом жительства физического лица' - when adr.residenceAddress_kodTipReg='2' then 'В учреждении уголовно-исполнительной системы' - else null end as type_place_stay, - r.system_pgs_status -FROM base_recruit_data r -LEFT JOIN children_count cc ON r.recruit_id = cc.recruit_id -- Присоединение для получения количества детей -JOIN driver_license dl ON dl.recruit_id = r.recruit_id -join adresses adr ON r.recruit_id=adr.recruit_id - Y - - - 208 - 208 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - citizen
- N - Y - N - Y - - - 656 - 64 - -
- - - -
diff --git a/mappings/info_recruits/job_general_info_recruits.hwf b/mappings/info_recruits/job_general_info_recruits.hwf new file mode 100644 index 0000000..89ff1f1 --- /dev/null +++ b/mappings/info_recruits/job_general_info_recruits.hwf @@ -0,0 +1,1200 @@ + + + job_general_info_recruits + Y + + + + 0 + - + 2025/05/21 13:22:33.264 + - + 2025/05/21 13:22:33.264 + + + M_R_CR_DATE + + + + + M_R_UP_DATE + + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 720 + 672 + + + + job_recruitment.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/recruitment/job_recruitment.hwf + Nothing + + Y + + N + local + N + N + Y + N + 1552 + 672 + + + + job_recruits_info.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/job_recruits_info.hwf + Nothing + + + M_R_CR_DATE + ${M_R_CR_DATE} + + Y + + N + local + N + N + Y + N + 2112 + 352 + + + + Success + + SUCCESS + + N + 3696 + 672 + + + + Dummy + + DUMMY + + N + 3216 + 672 + + + + job_citizen.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/job_citizen.hwf + Nothing + + + M_R_CR_DATE + ${M_R_CR_DATE} + + Y + + N + local + N + N + Y + N + 2080 + 464 + + + + flags + + WORKFLOW + + N + N + N + N + cddf + Nothing + + Y + + N + local + N + N + Y + N + 2704 + 1120 + + + + flags 2 + + WORKFLOW + + N + N + N + N + cddf + Nothing + + Y + + N + local + N + N + Y + N + 2704 + 1248 + + + + Success 2 + + SUCCESS + + N + 2928 + 1120 + + + + Success 2 2 + + SUCCESS + + N + 2944 + 1248 + + + + job_recruit_create_date.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/supportive_jobs/job_recruit_create_date.hwf + Nothing + + Y + + N + local + N + N + Y + N + 1792 + 672 + + + + state_job_general_info_recruits_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_general_info_recruits" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/checkpoints/state_job_general_info_recruits.json + N + 3440 + 672 + + + + state_job_general_info_recruits_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_general_info_recruits" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/checkpoints/state_job_general_info_recruits.json + N + 3440 + 752 + + + + Success 3 + + SUCCESS + + N + 3696 + 752 + + + + branching_job_general_info_recruits.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/branching_job_general_info_recruits.hpl + Basic + + Y + + N + local + N + N + Y + N + 944 + 672 + + + + IF job_general_info_recruits SUCCESS + + SIMPLE_EVAL + + SUCCESS + string + true + equal + equal + N + variable + STATUS + N + 1280 + 672 + + + + IF job_general_info_recruits ERROR + + SIMPLE_EVAL + + ERROR + string + true + equal + equal + N + variable + STATUS + N + 1248 + 1552 + + + + job_recruitment.hwf 2 + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/recruitment/job_recruitment.hwf + Nothing + + Y + + N + local + N + N + Y + N + 1616 + 1552 + + + + job_recruits_info.hwf 2 + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/job_recruits_info.hwf + Nothing + + + M_R_CR_DATE + ${M_R_CR_DATE} + + Y + + N + local + N + N + Y + N + 2128 + 1264 + + + + Success 4 + + SUCCESS + + N + 3232 + 1552 + + + + flags 5 + + WORKFLOW + + N + N + N + N + cddf + Nothing + + Y + + N + local + N + N + Y + N + 2272 + 1776 + + + + flags 2 2 + + WORKFLOW + + N + N + N + N + cddf + Nothing + + Y + + N + local + N + N + Y + N + 2272 + 1904 + + + + Success 2 5 + + SUCCESS + + N + 2496 + 1776 + + + + Success 2 2 2 + + SUCCESS + + N + 2512 + 1904 + + + + state_job_general_info_recruits_success 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_general_info_recruits" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/checkpoints/state_job_general_info_recruits.json + N + 2976 + 1552 + + + + state_job_general_info_recruits_error 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_general_info_recruits" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/checkpoints/state_job_general_info_recruits.json + N + 2976 + 1632 + + + + Success 3 2 + + SUCCESS + + N + 3232 + 1632 + + + + row_last_recruit_create_date.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/supportive_jobs/row_last_recruit_create_date.hpl + Basic + + Y + + N + local + N + N + Y + N + 1840 + 1552 + + + + Write to log + + WRITE_TO_LOG + + Basic + ${M_R_CR_DATE} + + N + 1904 + 1392 + + + + job_citizen.hwf 2 + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/job_citizen.hwf + Nothing + + + M_R_CR_DATE + ${M_R_CR_DATE} + + Y + + N + local + N + N + Y + N + 2128 + 1408 + + + + job_parallel_recruits_info_citizen.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/job_parallel_recruits_info_citizen.hwf + Nothing + + + M_R_CR_DATE + ${M_R_CR_DATE} + + Y + + N + local + N + N + Y + N + 2048 + 672 + + + + checkpoint_job_recruits_info_citizen.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/checkpoints/checkpoint_job_recruits_info_citizen.hpl + Basic + + Y + + N + local + N + N + Y + Y + 2336 + 672 + + + + state_job_general_info_recruits_error 3 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_general_info_recruits" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/checkpoints/state_job_general_info_recruits.json + N + 2784 + 416 + + + + Success 3 3 + + SUCCESS + + N + 2992 + 416 + + + + Dummy 3 + + DUMMY + + N + 2720 + 1552 + + + + job_parallel_recruits_info_citizen.hwf 2 + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/job_parallel_recruits_info_citizen.hwf + Nothing + + + M_R_CR_DATE + ${M_R_CR_DATE} + + Y + + N + local + N + N + Y + N + 2128 + 1552 + + + + checkpoint_job_recruits_info_citizen.hpl 2 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/checkpoints/checkpoint_job_recruits_info_citizen.hpl + Basic + + Y + + N + local + N + N + Y + N + 2432 + 1552 + + + + state_job_general_info_recruits_error 3 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_general_info_recruits" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/checkpoints/state_job_general_info_recruits.json + N + 2960 + 1408 + + + + Success 3 3 2 + + SUCCESS + + N + 3168 + 1408 + + + + job_child.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/job_child.hwf + Nothing + + Y + + N + local + N + N + Y + N + 2704 + 672 + + + + ???job_pasport + + WORKFLOW + + N + N + N + N + df + Nothing + + Y + + N + local + N + N + Y + N + 2704 + 752 + + + + checkpoint_job_recruits_info_child + + PIPELINE + + N + N + N + N + N + N + 1 + Basic + + Y + + N + local + N + N + Y + N + 2976 + 672 + + + + + + flags + Success 2 + Y + Y + N + + + flags 2 + Success 2 2 + Y + Y + N + + + job_recruitment.hwf + job_recruit_create_date.hwf + Y + Y + N + + + job_recruit_create_date.hwf + job_recruits_info.hwf + N + Y + Y + + + state_job_general_info_recruits_success + Success + Y + Y + N + + + state_job_general_info_recruits_error + Success 3 + Y + Y + N + + + Start + branching_job_general_info_recruits.hpl + Y + Y + Y + + + branching_job_general_info_recruits.hpl + IF job_general_info_recruits SUCCESS + Y + Y + N + + + IF job_general_info_recruits SUCCESS + job_recruitment.hwf + Y + Y + N + + + branching_job_general_info_recruits.hpl + IF job_general_info_recruits ERROR + Y + Y + N + + + flags 5 + Success 2 5 + Y + Y + N + + + flags 2 2 + Success 2 2 2 + Y + Y + N + + + state_job_general_info_recruits_success 2 + Success 4 + Y + Y + N + + + state_job_general_info_recruits_error 2 + Success 3 2 + Y + Y + N + + + IF job_general_info_recruits ERROR + job_recruitment.hwf 2 + Y + Y + N + + + job_recruitment.hwf 2 + row_last_recruit_create_date.hpl + Y + Y + N + + + row_last_recruit_create_date.hpl + job_recruits_info.hwf 2 + N + N + Y + + + row_last_recruit_create_date.hpl + Write to log + N + Y + N + + + job_recruit_create_date.hwf + job_citizen.hwf + N + N + Y + + + row_last_recruit_create_date.hpl + job_citizen.hwf 2 + N + N + Y + + + job_recruit_create_date.hwf + job_parallel_recruits_info_citizen.hwf + Y + Y + N + + + job_recruits_info.hwf + checkpoint_job_recruits_info_citizen.hpl + N + Y + N + + + job_parallel_recruits_info_citizen.hwf + checkpoint_job_recruits_info_citizen.hpl + Y + N + Y + + + Dummy + state_job_general_info_recruits_success + Y + Y + Y + + + Dummy + state_job_general_info_recruits_error + N + Y + Y + + + state_job_general_info_recruits_error 3 + Success 3 3 + Y + Y + N + + + Dummy 3 + state_job_general_info_recruits_success 2 + Y + Y + Y + + + Dummy 3 + state_job_general_info_recruits_error 2 + Y + Y + Y + + + row_last_recruit_create_date.hpl + job_parallel_recruits_info_citizen.hwf 2 + Y + Y + N + + + job_parallel_recruits_info_citizen.hwf 2 + flags 5 + N + Y + N + + + job_parallel_recruits_info_citizen.hwf 2 + flags 2 2 + N + Y + N + + + job_parallel_recruits_info_citizen.hwf 2 + checkpoint_job_recruits_info_citizen.hpl 2 + Y + N + Y + + + checkpoint_job_recruits_info_citizen.hpl 2 + Dummy 3 + Y + Y + N + + + state_job_general_info_recruits_error 3 2 + Success 3 3 2 + Y + Y + N + + + checkpoint_job_recruits_info_citizen.hpl + state_job_general_info_recruits_error 3 + Y + N + N + + + checkpoint_job_recruits_info_citizen.hpl 2 + state_job_general_info_recruits_error 3 2 + Y + N + N + + + checkpoint_job_recruits_info_citizen.hpl + job_child.hwf + Y + Y + N + + + checkpoint_job_recruits_info_citizen.hpl + ???job_pasport + N + Y + N + + + job_child.hwf + checkpoint_job_recruits_info_child + Y + Y + N + + + checkpoint_job_recruits_info_child + Dummy + Y + Y + N + + + checkpoint_job_recruits_info_citizen.hpl + flags + N + Y + N + + + checkpoint_job_recruits_info_citizen.hpl + flags 2 + N + Y + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 42 + 1584 + 608 + зачистка таблицы военкоматов +и загрузка ervu_dashboard.recruitment + 219 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 74 + 1280 + 432 + ОБЯЗАТЕЛЬНО ЗАФИКСИРОВАТЬ ПОСЛЕДНИЮЮ ДАТУ СОЗДАНИЯ РЕКРУТА(из бд ervu_person_registry) В БД ervu_dashboard, +ЗАТЕМ ИДТИ ЗА ЭТОЙ ДАТОЙ ПЕРЕД СЕЛЕКТОМ. +СЕЛЕКТЫ РЕКРУТОВ ПРОИЗВОДИТЬ НЕ БОЛЬШЕ ЭТОЙ ДАТЫ. +Для чего? - чтобы не терять рекрутов. + 714 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 42 + 1648 + 1488 + зачистка таблицы военкоматов +и загрузка ervu_dashboard.recruitment + 219 + + + + diff --git a/mappings/info_recruits/job_info_recruits.hwf b/mappings/info_recruits/job_info_recruits.hwf deleted file mode 100644 index 422887c..0000000 --- a/mappings/info_recruits/job_info_recruits.hwf +++ /dev/null @@ -1,2047 +0,0 @@ - - - job_info_recruits - Y - - - - 0 - - - 2024/08/16 15:32:20.489 - - - 2024/08/16 15:32:20.489 - - - ST_CH_D - - - - - UP_D - - - - - - - Start - - SPECIAL - - 1 - 12 - 60 - 0 - 0 - N - 0 - 1 - Y - 1328 - 2112 - - - - info_recruits - - PIPELINE - - N - N - N - N - N - Y - ${Internal.Entry.Current.Folder}/info_recruits.hpl - txt - ${PROJECT_HOME}/log_jobs/log_job_info_recruits - Rowlevel - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 1664 - - - - SQL.child - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_child - N - N - N - 1216 - 2400 - - - - opekun - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/opekun.hpl - Basic - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 1728 - - - - spouse - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/spouse.hpl - Basic - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 1792 - - - - child - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/child.hpl - Basic - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 1856 - - - - SQL.disease - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.disease - N - N - N - 1216 - 2464 - - - - disease - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/disease.hpl - Basic - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 1920 - - - - SQL.medical_authorities - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.medical_authorities - N - N - N - 1216 - 2528 - - - - medical_authorities - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/medical_authorities.hpl - Basic - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 1984 - - - - SQL.disability - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.disability - N - N - N - 1216 - 2592 - - - - disability - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/disability.hpl - Basic - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 2048 - - - - SQL.drivers_licence - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.drivers_licence - N - N - N - 1216 - 2656 - - - - drivers_licence - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/drivers_licence.hpl - Basic - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 2112 - - - - SQL.property - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.property - N - N - N - 1216 - 2720 - - - - property - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/property.hpl - Basic - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 2176 - - - - SQL.citizen_foreign - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizenship_foreign - N - N - N - 1216 - 2784 - - - - citizen_foreign - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/citizen_foreign.hpl - Basic - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 2240 - - - - SQL.citizenship - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizenship - N - N - N - 1216 - 2848 - - - - citizenship - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/citizenship.hpl - Basic - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 2304 - - - - SQL.deputy - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.deputy - N - N - N - 1216 - 2912 - - - - deputy - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/deputy.hpl - Basic - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 2368 - - - - SQL.prosecution - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.prosecution - N - N - N - 1216 - 2976 - - - - prosecution - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/prosecution.hpl - Basic - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 2432 - - - - SQL.punishment - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.punishment - N - N - N - 1216 - 3040 - - - - punishment - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/punishment.hpl - Basic - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 2496 - - - - SQL.passport - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.passport - N - N - N - 1216 - 3104 - - - - passport - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/passport.hpl - Basic - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 2560 - - - - SQL.subpoena - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.subpoena - N - N - N - 1216 - 3168 - - - - subpoena - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/subpoena.hpl - Basic - - - ST_CH_D - STATUS_CHANGE_DATE - - Y - - Y - local - N - N - Y - N - 800 - 2112 - - - - SQL.tempmeas - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.temporary_measures - N - N - N - 1216 - 3232 - - - - temporary_measure - - PIPELINE - - N - N - N - Y - N - Y - ${Internal.Entry.Current.Folder}/temporary_measure.hpl - Basic - - - ST_CH_D - STATUS_CHANGE_DATE - - Y - - Y - local - N - N - Y - N - 800 - 2176 - - - - select_delta_time.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/select_delta_time.hpl - Basic - - Y - - N - local - N - N - Y - Y - 1488 - 2112 - - - - Success 2 - - SUCCESS - - N - 1072 - 2784 - - - - select_delta_time_subpoena.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/select_delta_time_subpoena.hpl - Basic - - Y - - N - local - N - N - Y - Y - 1120 - 2112 - - - - Success opekun - - SUCCESS - - N - 2016 - 1728 - - - - Success info_recruits - - SUCCESS - - N - 2016 - 1664 - - - - Success spouse - - SUCCESS - - N - 2016 - 1792 - - - - Success child - - SUCCESS - - N - 2016 - 1856 - - - - Success desease - - SUCCESS - - N - 2016 - 1920 - - - - Success medical_autorities - - SUCCESS - - N - 2048 - 1984 - - - - Success disability - - SUCCESS - - N - 2016 - 2048 - - - - Success driver_license - - SUCCESS - - N - 2016 - 2112 - - - - Success property - - SUCCESS - - N - 2016 - 2176 - - - - Success citizen_foreign - - SUCCESS - - N - 2016 - 2240 - - - - Success citizenship - - SUCCESS - - N - 2016 - 2304 - - - - Success deputy - - SUCCESS - - N - 2016 - 2368 - - - - Success prosecution - - SUCCESS - - N - 2016 - 2432 - - - - Success punishment - - SUCCESS - - N - 2016 - 2496 - - - - Success passport - - SUCCESS - - N - 2016 - 2560 - - - - Success subpoena - - SUCCESS - - N - 496 - 2112 - - - - Success temporary_measure - - SUCCESS - - N - 496 - 2176 - - - - incident.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/incident.hpl - Basic - - Y - - N - local - N - N - Y - N - 1856 - 3264 - - - - citizen_individual_decisions.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_individual_decisions.hpl - Basic - - Y - - N - local - N - N - Y - N - 1856 - 3200 - - - - citizen_complex_filters.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_complex_filters.hpl - Basic - - Y - - N - local - N - N - Y - N - 1856 - 3136 - - - - citizen_appealing_violations_fz53.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_appealing_violations_fz53.hpl - Basic - - Y - - N - local - N - N - Y - N - 1856 - 3072 - - - - citizen_criminal_liability_fz53.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_criminal_liability_fz53.hpl - Basic - - Y - - N - local - N - N - Y - N - 1856 - 3008 - - - - citizen_information_search.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_information_search.hpl - Basic - - Y - - N - local - N - N - Y - N - 1856 - 2944 - - - - citizen_criminal_record.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_criminal_record.hpl - Basic - - Y - - N - local - N - N - Y - N - 1856 - 2880 - - - - citizen_sports_categories.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_sports_categories.hpl - Basic - - Y - - N - local - N - N - Y - N - 1856 - 2816 - - - - citizen_education_diplomas_received.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/info_recruits/citizen_education_diplomas_received.hpl - Basic - - - UP_D - UPDATE_DATE - - Y - - Y - local - N - N - Y - N - 1856 - 2752 - - - - citizen_work_activity.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_work_activity.hpl - Basic - - Y - - N - local - N - N - Y - N - 1856 - 2688 - - - - Success citizen_work_activity - - SUCCESS - - N - 2256 - 2688 - - - - Success citizen_education_diplomas_received - - SUCCESS - - N - 2256 - 2752 - - - - Success citizen_sports_categories - - SUCCESS - - N - 2256 - 2816 - - - - Success citizen_criminal_record - - SUCCESS - - N - 2256 - 2880 - - - - Success citizen_information_search - - SUCCESS - - N - 2256 - 2944 - - - - Success citizen_criminal_liability_fz53 - - SUCCESS - - N - 2256 - 3008 - - - - Success citizen_appealing_violations_fz53 - - SUCCESS - - N - 2256 - 3072 - - - - Success citizen_complex_filters - - SUCCESS - - N - 2256 - 3136 - - - - Success citizen_individual_decisions - - SUCCESS - - N - 2256 - 3200 - - - - Success incident - - SUCCESS - - N - 2256 - 3264 - - - - Success deferment - - SUCCESS - - N - 2256 - 3344 - - - - deferments - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/info_recruits/deferments.hpl - Basic - - Y - - N - local - N - N - Y - N - 1856 - 3344 - - - - - - Start - SQL.child - N - Y - Y - - - Start - SQL.disease - N - Y - Y - - - Start - SQL.medical_authorities - N - Y - Y - - - Start - SQL.disability - N - Y - Y - - - Start - SQL.drivers_licence - N - Y - Y - - - Start - SQL.property - N - Y - Y - - - Start - SQL.citizen_foreign - N - Y - Y - - - Start - SQL.citizenship - N - Y - Y - - - Start - SQL.deputy - N - Y - Y - - - Start - SQL.prosecution - N - Y - Y - - - Start - SQL.punishment - N - Y - Y - - - Start - SQL.passport - N - Y - Y - - - Start - SQL.subpoena - N - Y - Y - - - Start - SQL.tempmeas - N - Y - Y - - - Start - select_delta_time.hpl - Y - Y - Y - - - select_delta_time.hpl - spouse - Y - Y - N - - - select_delta_time.hpl - opekun - Y - Y - N - - - select_delta_time.hpl - info_recruits - Y - Y - N - - - select_delta_time.hpl - child - Y - Y - N - - - SQL.child - Success 2 - N - Y - N - - - SQL.disease - Success 2 - N - Y - N - - - SQL.disability - Success 2 - N - Y - N - - - SQL.property - Success 2 - N - Y - N - - - SQL.citizen_foreign - Success 2 - N - Y - N - - - SQL.citizenship - Success 2 - N - Y - N - - - SQL.deputy - Success 2 - N - Y - N - - - SQL.prosecution - Success 2 - N - Y - N - - - SQL.punishment - Success 2 - N - Y - N - - - SQL.passport - Success 2 - N - Y - N - - - SQL.subpoena - Success 2 - N - Y - N - - - SQL.tempmeas - Success 2 - N - Y - N - - - select_delta_time.hpl - disease - Y - Y - N - - - select_delta_time.hpl - drivers_licence - Y - Y - N - - - select_delta_time.hpl - medical_authorities - Y - Y - N - - - select_delta_time.hpl - disability - Y - Y - N - - - select_delta_time.hpl - property - Y - Y - N - - - select_delta_time.hpl - citizen_foreign - Y - Y - N - - - select_delta_time.hpl - citizenship - Y - Y - N - - - select_delta_time.hpl - deputy - Y - Y - N - - - select_delta_time.hpl - prosecution - Y - Y - N - - - select_delta_time.hpl - punishment - Y - Y - N - - - select_delta_time.hpl - passport - Y - Y - N - - - Start - select_delta_time_subpoena.hpl - Y - Y - Y - - - select_delta_time_subpoena.hpl - subpoena - Y - Y - N - - - select_delta_time_subpoena.hpl - temporary_measure - Y - Y - N - - - info_recruits - Success info_recruits - Y - N - Y - - - opekun - Success opekun - Y - N - Y - - - spouse - Success spouse - Y - N - Y - - - child - Success child - Y - N - Y - - - disease - Success desease - Y - N - Y - - - medical_authorities - Success medical_autorities - Y - N - Y - - - disability - Success disability - Y - N - Y - - - drivers_licence - Success driver_license - Y - N - Y - - - property - Success property - Y - N - Y - - - citizen_foreign - Success citizen_foreign - Y - N - Y - - - citizenship - Success citizenship - Y - N - Y - - - deputy - Success deputy - Y - N - Y - - - prosecution - Success prosecution - Y - N - Y - - - punishment - Success punishment - Y - N - Y - - - passport - Success passport - Y - N - Y - - - subpoena - Success subpoena - Y - N - Y - - - temporary_measure - Success temporary_measure - Y - N - Y - - - incident.hpl - Success incident - Y - N - Y - - - citizen_individual_decisions.hpl - Success citizen_individual_decisions - Y - N - Y - - - citizen_complex_filters.hpl - Success citizen_complex_filters - Y - N - Y - - - citizen_appealing_violations_fz53.hpl - Success citizen_appealing_violations_fz53 - Y - N - Y - - - citizen_criminal_liability_fz53.hpl - Success citizen_criminal_liability_fz53 - Y - N - Y - - - citizen_information_search.hpl - Success citizen_information_search - Y - N - Y - - - citizen_criminal_record.hpl - Success citizen_criminal_record - Y - N - Y - - - citizen_sports_categories.hpl - Success citizen_sports_categories - Y - N - Y - - - citizen_education_diplomas_received.hpl - Success citizen_education_diplomas_received - Y - N - Y - - - citizen_work_activity.hpl - Success citizen_work_activity - Y - N - Y - - - select_delta_time.hpl - citizen_work_activity.hpl - Y - Y - N - - - select_delta_time.hpl - citizen_education_diplomas_received.hpl - Y - Y - N - - - select_delta_time.hpl - citizen_sports_categories.hpl - Y - Y - N - - - select_delta_time.hpl - citizen_criminal_record.hpl - N - Y - N - - - select_delta_time.hpl - citizen_information_search.hpl - N - Y - N - - - select_delta_time.hpl - citizen_criminal_liability_fz53.hpl - N - Y - N - - - select_delta_time.hpl - citizen_appealing_violations_fz53.hpl - N - Y - N - - - select_delta_time.hpl - citizen_complex_filters.hpl - N - Y - N - - - select_delta_time.hpl - citizen_individual_decisions.hpl - N - Y - N - - - select_delta_time.hpl - incident.hpl - N - Y - N - - - deferments - Success deferment - Y - N - Y - - - select_delta_time.hpl - deferments - Y - Y - N - - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 26 - 2352 - 1616 - доработать дельту, сделать дельту для остальных таблиц - 325 - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 26 - 2336 - 1568 - status_change_date добавить колонку в ervu_dashboard.subpoena - 367 - - - - - METASTORE.pentaho - - Default Run Configuration - {"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null} - - - - {"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"} - - Pentaho local - {"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"pentaho","value":"N"},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]} - - - - diff --git a/mappings/info_recruits/job_parallel_recruits_info_citizen.hwf b/mappings/info_recruits/job_parallel_recruits_info_citizen.hwf new file mode 100644 index 0000000..473535f --- /dev/null +++ b/mappings/info_recruits/job_parallel_recruits_info_citizen.hwf @@ -0,0 +1,143 @@ + + + job_parallel_recruits_info_citizen + Y + + + + - + 2025/06/04 13:12:14.544 + - + 2025/06/04 13:12:14.544 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + Y + 432 + 384 + + + + job_citizen.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/job_citizen.hwf + Nothing + + + M_R_CR_DATE + ${M_R_CR_DATE} + + Y + + N + local + N + N + Y + N + 688 + 304 + + + + job_recruits_info.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/job_recruits_info.hwf + Nothing + + + M_R_CR_DATE + ${M_R_CR_DATE} + + Y + + N + local + N + N + Y + N + 688 + 480 + + + + Success job_citizen + + SUCCESS + + N + 944 + 304 + + + + Success job_recruits_info + + SUCCESS + + N + 944 + 480 + + + + + + Start + job_citizen.hwf + Y + Y + Y + + + Start + job_recruits_info.hwf + Y + Y + Y + + + job_citizen.hwf + Success job_citizen + Y + Y + N + + + job_recruits_info.hwf + Success job_recruits_info + Y + Y + N + + + + + + diff --git a/mappings/info_recruits/medical_authorities.hpl b/mappings/info_recruits/medical_authorities.hpl deleted file mode 100644 index 75fb3ff..0000000 --- a/mappings/info_recruits/medical_authorities.hpl +++ /dev/null @@ -1,295 +0,0 @@ - - - - medical_authorities - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input hiv - Table output - N - - - Table input 2 - Table output 2 - N - - - Table input hiv - Insert / update - Y - - - Table input 2 - Insert / update 2 - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - ervu_dashboard - medical_authorities
- - recruit_id - recruit_id - N - - - close_date - close_date - Y - - - hiv - hiv - Y - - - start_date - start_date - Y - -
- N - - - 672 - 208 - -
- - Insert / update 2 - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - medical_authorities
- - recruit_id - recruit_id - N - - - change_date - change_date - Y - - - close_date - close_date - Y - - - start_date - start_date - Y - - - registered_in_pnd - registered_in_pnd - Y - -
- N - - - 672 - 352 - -
- - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with uchet as - (select ri.recruit_id, - jsonb_array_elements(ri.info -> 'svedFL' -> 'svedPND' -> 'svedUchetDisp' -> - 'svedUchet') u, - ri.info -> 'svedFL' -> 'svedPND' -> 'svedUchetDisp' -> 'svedUchet' ->> - 'priznakNalichSved' = '1' as registered_in_pnd - from public.recruits_info ri - join public.recruits r - ON r.id = ri.recruit_id - AND r.system_update_date >= '${UP_D}' - where jsonb_typeof(ri.info -> 'svedFL' -> 'svedPND' -> 'svedUchetDisp' -> 'svedUchet') = - 'array') -select recruit_id, - u ->> 'dataPostUchet' start_date, - u ->> 'dataSnyatUchet' close_date, - u ->> 'dataPlan' change_date, - registered_in_pnd -from uchet; - - Y - - - 208 - 352 - - - - Table input hiv - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with uchet as - (select ri.recruit_id, - jsonb_array_elements(ri.info->'svedFL'->'svedUchetVICH'->'uchetVICH') u, - ri.info->'svedFL'->'svedUchetVICH'->>'priznakNalichSved' = '1' has_vich - from public.recruits_info ri - join public.recruits r - ON r.id = ri.recruit_id - AND r.system_update_date >= '${UP_D}' - where jsonb_typeof(ri.info->'svedFL'->'svedUchetVICH'->'uchetVICH') = 'array') -select - recruit_id, - to_date(u->>'dataPostUchet', 'YYYY-MM-DD') start_date, - to_date(u->>'dataSnyat', 'YYYY-MM-DD') close_date, - true HIV -from uchet; - Y - - - 208 - 208 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - medical_authorities
- N - Y - N - Y - - - 416 - 80 - -
- - Table output 2 - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - medical_authorities
- N - Y - N - Y - - - 432 - 480 - -
- - - -
diff --git a/mappings/info_recruits/passport.hpl b/mappings/info_recruits/passport.hpl deleted file mode 100644 index cc9b43b..0000000 --- a/mappings/info_recruits/passport.hpl +++ /dev/null @@ -1,341 +0,0 @@ - - - - passport - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - N - - - Table input 2 - Table output 2 - N - - - Table input - Insert / update - Y - - - Table input 2 - Insert / update 2 - N - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - passport_number - passport_number - - - - = - passport_series - passport_series - - - ervu_dashboard - passport
- - recruit_id - recruit_id - N - - - actual - actual - Y - - - issue_date - issue_date - Y - - - organization_name - organization_name - Y - - - passport_number - passport_number - Y - - - passport_series - passport_series - Y - - - unit_code - unit_code - Y - -
- N - - - 752 - 384 - -
- - Insert / update 2 - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - passport_number - passport_number - - - - = - passport_series - passport_series - - - ervu_dashboard - passport
- - recruit_id - recruit_id - N - - - actual - actual - Y - - - issue_date - issue_date - Y - - - organization_name - organization_name - Y - - - passport_number - passport_number - Y - - - passport_series - passport_series - Y - - - unit_code - unit_code - Y - -
- N - - - 752 - 480 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - SELECT - r.id AS recruit_id, - ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, - ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, - ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'vydDok' AS organization_name, - ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'kodVydDok' AS unit_code, - TO_DATE(ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'dataDok', 'YYYY-MM-DD') AS issue_date, - CASE - WHEN ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'kodStatus' = '1' - THEN TRUE ELSE FALSE - END AS actual -FROM public.recruits_info ri -JOIN public.recruits r ON ri.recruit_id = r.id AND r.system_update_date >= '${UP_D}' -WHERE ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'nomDok' IS NOT NULL -AND LENGTH(ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'serDok') = 4 -AND LENGTH(ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'nomDok') = 6 - --AND r.system_update_date >= '${UP_D}' - - Y - - - 416 - 384 - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select r.id recruit_id, -ri.info->'pasportRF'->'predPasportRF'->>'nomDok' passport_number, -ri.info->'pasportRF'->'predPasportRF'->>'serDok' passport_series, -ri.info->'pasportRF'->'predPasportRF'->>'vydDok' organization_name, -ri.info->'pasportRF'->'predPasportRF'->>'kodVydDok' unit_code, -to_date(ri.info->'pasportRF'->'predPasportRF'->>'dataDok', 'YYYY-MM-DD') issue_date, -case when ri.info->'pasportRF'->'predPasportRF'->>'kodStatus'='1' then true -else false -end actual -from public.recruits_info ri -join public.recruits r ON ri.recruit_id = r.id -where ri.info->'pasportRF'->'predPasportRF'->>'nomDok' is not null; - N - - - 416 - 480 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - passport
- N - Y - N - Y - - - 736 - 144 - -
- - Table output 2 - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - passport
- N - Y - N - Y - - - 736 - 704 - -
- - - -
diff --git a/mappings/info_recruits/property.hpl b/mappings/info_recruits/property.hpl deleted file mode 100644 index 654be0b..0000000 --- a/mappings/info_recruits/property.hpl +++ /dev/null @@ -1,666 +0,0 @@ - - - - property - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input realty - Table output - N - - - Table input ground_transportation - Table output 2 - N - - - Table input water_vehicles - Table output 2 2 - N - - - Table input air_vehicles - Table output 2 2 2 - N - - - Table input realty - Insert / update - Y - - - Table input air_vehicles - Insert / update 2 - Y - - - Table input ground_transportation - Insert / update 4 - Y - - - Table input water_vehicles - Insert / update 3 - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - start_date - start_date - - - - = - type_property - type_property - - - ervu_dashboard - property
- - recruit_id - recruit_id - N - - - address - address - Y - - - close_date - close_date - Y - - - kind_right - kind_right - Y - - - start_date - start_date - N - - - type_property - type_property - N - -
- N - - - 720 - 208 - -
- - Insert / update 2 - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - start_date - start_date - - - - = - type_property - type_property - - - ervu_dashboard - property
- - recruit_id - recruit_id - N - - - type_property - type_property - N - - - close_date - close_date - Y - - - start_date - start_date - N - - - vehicle_category - vehicle_category - Y - - - vehicle_type - vehicle_type - Y - -
- N - - - 720 - 432 - -
- - Insert / update 3 - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - start_date - start_date - - - - = - type_property - type_property - - - ervu_dashboard - property
- - recruit_id - recruit_id - N - - - close_date - close_date - Y - - - start_date - start_date - N - - - type_property - type_property - N - - - vehicle_category - vehicle_category - Y - - - vehicle_type - vehicle_type - Y - -
- N - - - 1200 - 432 - -
- - Insert / update 4 - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - - = - type_property - type_property - - - - = - start_date - start_date - - - ervu_dashboard - property
- - recruit_id - recruit_id - N - - - type_property - type_property - N - - - brand_model - brand_model - Y - - - close_date - close_date - Y - - - issue_year - issue_year - Y - - - reg_plate - reg_plate - Y - - - start_date - start_date - N - - - vehicle_type - vehicle_type - Y - - - vin - vin - Y - -
- N - - - 1200 - 208 - -
- - Table input air_vehicles - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with prop as -(select jsonb_array_elements(ri.info->'svedFL'->'svedVozTS'->'vozTS') u, - ri.recruit_id -from public.recruits_info ri - join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' -where jsonb_typeof(ri.info->'svedFL'->'svedVozTS'->'vozTS') = 'array' ---AND r.system_update_date >= '${UP_D}' -) -select - r.id recruit_id, - u->>'naimVid' vehicle_type, - u->>'naznKat' vehicle_category, - to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, - to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, - 'air_vehicles' type_property -from public.recruits r -join prop on r.id = prop.recruit_id - - Y - - - 464 - 432 - - - - Table input ground_transportation - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with prop as -(select jsonb_array_elements(ri.info->'svedFL'->'svedNazTS'->'nazTS') u, - ri.recruit_id -from public.recruits_info ri - join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' -where jsonb_typeof(ri.info->'svedFL'->'svedNazTS'->'nazTS') = 'array' ---AND r.system_update_date >= '${UP_D}' -) -select - r.id recruit_id, - u->>'vidTS' vehicle_type, - u->>'godVyp' issue_year, - u->>'markaTS' brand_model, - u->>'gosRegZn' reg_plate, - u->>'idenNom' vin, - to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, - to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, - 'ground_transportation' type_property -from public.recruits r -join prop on r.id = prop.recruit_id - - Y - - - 928 - 208 - - - - Table input realty - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with prop as -(select jsonb_array_elements(ri.info->'svedFL'->'svedON'->'on') u, - ri.recruit_id -from public.recruits_info ri - join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' -where jsonb_typeof(ri.info->'svedFL'->'svedON'->'on') = 'array' ---AND r.system_update_date >= '${UP_D}' -) -select - r.id recruit_id, - u->>'naimVidPrav' kind_right, - u->'adrObSob'->>'adrObSobTekst' address, - to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, - to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, - 'realty' type_property -from public.recruits r -join prop on r.id = prop.recruit_id - - Y - - - 480 - 208 - - - - Table input water_vehicles - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with prop as -(select jsonb_array_elements(ri.info->'svedFL'->'svedVodTS'->'vodTS') u, - ri.recruit_id -from public.recruits_info ri - join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' -where jsonb_typeof(ri.info->'svedFL'->'svedVodTS'->'vodTS') = 'array' ---AND r.system_update_date >= '${UP_D}' -) -select - r.id recruit_id, - u->>'naimVid' vehicle_type, - u->>'naznKat' vehicle_category, - to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, - to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, - 'water_vehicles' type_property -from public.recruits r -join prop on r.id = prop.recruit_id - - - Y - - - 928 - 432 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - property
- N - Y - N - Y - - - 688 - 80 - -
- - Table output 2 - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - property
- N - Y - N - Y - - - 1136 - 96 - -
- - Table output 2 2 - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - property
- N - Y - N - Y - - - 1152 - 576 - -
- - Table output 2 2 2 - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - property
- N - Y - N - Y - - - 672 - 576 - -
- - - -
diff --git a/mappings/info_recruits/prosecution.hpl b/mappings/info_recruits/prosecution.hpl deleted file mode 100644 index 1f8acb4..0000000 --- a/mappings/info_recruits/prosecution.hpl +++ /dev/null @@ -1,182 +0,0 @@ - - - - prosecution - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - N - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - create_date - create_date - - ervu_dashboard - prosecution
- - recruit_id - recruit_id - N - - - authority_name - authority_name - Y - - - close_date - close_date - Y - - - create_date - create_date - Y - - - kind - kind - Y - - - law_point - law_point - Y - - - termination_basis - termination_basis - Y - -
- N - - - 784 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH ugol AS ( - SELECT - jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS u, - ri.recruit_id - FROM public.recruits_info ri - join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' - WHERE jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' - --AND r.system_update_date >= '${UP_D}' -) -SELECT - r.id AS recruit_id, - u->'sledSud'->>'naimSud' AS kind, - TO_DATE(u->'sledSud'->>'dataVozbUD', 'YYYY-MM-DD') AS create_date, - TO_DATE(u->'sledSud'->'svedSnyat'->>'dataSnyatSud', 'YYYY-MM-DD') AS close_date, - u->'sledSud'->>'naimOrgan' AS authority_name, - STRING_AGG(TRIM(BOTH ' "' FROM law.f), ', ') AS law_point, - u->'sledSud'->'svedSnyat'->>'osnSnyatSud' AS termination_basis -FROM public.recruits r -JOIN ugol ON r.id = ugol.recruit_id -LEFT JOIN LATERAL jsonb_array_elements_text(u->'sledSud'->'statiUK') AS law(f) ON true -GROUP BY r.id, kind, create_date, close_date, authority_name, termination_basis - Y - - - 528 - 304 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - prosecution
- N - Y - N - Y - - - 752 - 144 - -
- - - -
diff --git a/mappings/info_recruits/punishment.hpl b/mappings/info_recruits/punishment.hpl deleted file mode 100644 index cd5eab1..0000000 --- a/mappings/info_recruits/punishment.hpl +++ /dev/null @@ -1,204 +0,0 @@ - - - - punishment - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - N - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - punishment
- - authority_name - authority_name - Y - - - law_point - law_point - Y - - - punishment_code - punishment_code - Y - - - punishment_type - punishment_type - Y - - - recruit_id - recruit_id - N - - - release_date - release_date - Y - - - release_reason - release_reason - Y - - - sentence - sentence - Y - - - sentence_changed - sentence_changed - Y - - - sentence_place - sentence_place - Y - - - sentense_date - sentense_date - Y - - - start_date - start_date - Y - -
- N - - - 784 - 304 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with ugol as -(select jsonb_array_elements(ri.info->'svedFL'->'svedSudim'->'sudim'->'osuzhdenie') u, - ri.recruit_id -from public.recruits_info ri - join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' -where jsonb_typeof(ri.info->'svedFL'->'svedSudim'->'sudim'->'osuzhdenie') = 'array' ---AND r.system_update_date >= '${UP_D}' -) -select - r.id recruit_id, - u->>'naimSuda' authority_name, - u->>'srokNakaz' sentence, - u->>'adresNakaz' sentence_place, - u->>'kodVidNakaz' punishment_code, - u->>'izmSrokNakaz' sentence_changed, - u->>'naimVidNakaz' punishment_type, - to_date(u->>'dataNachSrok', 'YYYY-MM-DD') start_date, - to_date(u->>'dataOsvobozhd', 'YYYY-MM-DD') release_date, - to_date(u->>'dataOsuzhd', 'YYYY-MM-DD') sentense_date, - u->>'ugolovZakon' law_point, - u->>'osnovOsvobozhd' release_reason -from public.recruits r -join ugol on r.id = ugol.recruit_id - Y - - - 528 - 304 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - punishment
- N - Y - N - Y - - - 752 - 176 - -
- - - -
diff --git a/mappings/info_recruits/raw_data/info_recruits/branching_recruits_info.hpl b/mappings/info_recruits/raw_data/info_recruits/branching_recruits_info.hpl new file mode 100644 index 0000000..24bdc96 --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/branching_recruits_info.hpl @@ -0,0 +1,173 @@ + + + + branching_recruits_info + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/29 10:09:35.340 + - + 2025/05/29 10:09:35.340 + + + + + + JSON input state_job_recruits_info.json + Set variables + Y + + + Set variables + Write to log + N + + + + JSON input state_job_recruits_info.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_job_recruits_info.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 464 + 336 + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + pipeline + PIPE + PARENT_WORKFLOW + + + status + STATUS + PARENT_WORKFLOW + + + Y + + + 720 + 336 + + + + Write to log + WriteToLog + + Y + + 1 + + none + + + Y + + + pipeline + + + status + + + N + 0 + Basic + ${PIPE} +${STATUS} + + + 944 + 336 + + + + + + diff --git a/mappings/info_recruits/raw_data/info_recruits/checkpoints/checkpoint_job_recruits_info.hpl b/mappings/info_recruits/raw_data/info_recruits/checkpoints/checkpoint_job_recruits_info.hpl new file mode 100644 index 0000000..d33b8ba --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/checkpoints/checkpoint_job_recruits_info.hpl @@ -0,0 +1,863 @@ + + + + checkpoint_job_recruits_info + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/30 10:34:00.239 + - + 2025/05/30 10:34:00.239 + + + + + + JSON input state_recruits_info_flow3.json + Filter rows + Y + + + JSON input state_recruits_info_flow4.json + Filter rows + Y + + + JSON input state_recruits_info_flow5.json + Filter rows + Y + + + JSON input state_recruits_info_flow2.json + Filter rows + Y + + + JSON input state_recruits_info_flow1.json + Filter rows + Y + + + Set variables + Write to log 3 + Y + + + Set variables 2 + Write to log 3 2 + Y + + + Dummy (do nothing) + Set variables 2 + N + + + Dummy (do nothing) + Set variables + N + + + Filter rows + Abort + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1072 + 784 + + + + Dummy (do nothing) + Dummy + + Y + + 1 + + none + + + + + 1136 + 608 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + + + + + = + pipeline + N + - + + N + -1 + constant + -1 + recruits_info_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 + recruits_info_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 + recruits_info_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 + recruits_info_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 + recruits_info_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 + + + 752 + 784 + + + + JSON input state_recruits_info_flow1.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow1.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 448 + 624 + + + + JSON input state_recruits_info_flow2.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow2.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 448 + 704 + + + + JSON input state_recruits_info_flow3.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow3.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 448 + 784 + + + + JSON input state_recruits_info_flow4.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow4.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 448 + 864 + + + + JSON input state_recruits_info_flow5.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow5.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 448 + 944 + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + status + STATUS + PARENT_WORKFLOW + + + Y + + + 1328 + 560 + + + + Set variables 2 + SetVariable + + Y + + 1 + + none + + + + + status + STATUS + PARENT_WORKFLOW + + + Y + + + 1328 + 640 + + + + Write to log 3 + WriteToLog + + Y + + 1 + + none + + + Y + + + N + 0 + Basic + ${STATUS} + + + 1520 + 560 + + + + Write to log 3 2 + WriteToLog + + Y + + 1 + + none + + + Y + + + N + 0 + Basic + ${STATUS} + + + 1520 + 640 + + + + + + diff --git a/mappings/info_recruits/raw_data/info_recruits/checkpoints/checkpoint_recruit_info_error.hpl b/mappings/info_recruits/raw_data/info_recruits/checkpoints/checkpoint_recruit_info_error.hpl new file mode 100644 index 0000000..3349308 --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/checkpoints/checkpoint_recruit_info_error.hpl @@ -0,0 +1,284 @@ + + + + checkpoint_recruit_info_error + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/22 16:34:44.176 + - + 2025/05/22 16:34:44.176 + + + + + + Table input + Select values + N + + + Select values + Table output + N + + + Table input + Table output + Y + + + + Select values + SelectValues + + Y + + 1 + + none + + + + N + + idm_id + idm_id + String + -2 + -2 + + false + + + false + + + + + + + + + + 624 + 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(current_recruitment_id, target_recruitment_id) AS idm_id + FROM ervu_person_registry_raw.recruits_info +), +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_recruits_info_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_recruits_info_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_recruits_info_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_recruits_info_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_recruits_info_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 + + + 352 + 240 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + N + N + N + N + Y + N + public + N + etl_checkpoints
+ N + Y + N + Y + + + 864 + 240 + +
+ + + Select values + + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/raw_data/info_recruits/checkpoints/job_check_files_recruits_info.hwf b/mappings/info_recruits/raw_data/info_recruits/checkpoints/job_check_files_recruits_info.hwf new file mode 100644 index 0000000..517b401 --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/checkpoints/job_check_files_recruits_info.hwf @@ -0,0 +1,330 @@ + + + job_check_files_recruits_info + Y + + + + - + 2025/05/26 14:37:00.175 + - + 2025/05/26 14:37:00.175 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 400 + 512 + + + + state_recruits_info_flow1.json + + FILES_EXIST + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow1.json + + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow1.json + + + N + 688 + 224 + + + + state_recruits_info_flow2.json + + FILES_EXIST + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow2.json + + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow2.json + + + N + 688 + 368 + + + + state_recruits_info_flow3.json + + FILES_EXIST + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow3.json + + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow3.json + + + N + 688 + 512 + + + + state_recruits_info_flow4.json + + FILES_EXIST + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow4.json + + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow4.json + + + N + 688 + 656 + + + + state_recruits_info_flow5.json + + FILES_EXIST + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow5.json + + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow5.json + + + N + 688 + 800 + + + + Success + + SUCCESS + + N + 880 + 224 + + + + Abort workflow + + ABORT + + N + N + 880 + 288 + + + + Success 2 + + SUCCESS + + N + 880 + 368 + + + + Abort workflow 2 + + ABORT + + N + N + 880 + 432 + + + + Success 3 + + SUCCESS + + N + 880 + 512 + + + + Abort workflow 3 + + ABORT + + N + N + 880 + 576 + + + + Success 4 + + SUCCESS + + N + 880 + 656 + + + + Abort workflow 4 + + ABORT + + N + N + 880 + 720 + + + + Success 5 + + SUCCESS + + N + 880 + 800 + + + + Abort workflow 5 + + ABORT + + N + + N + 880 + 864 + + + + + + Start + state_recruits_info_flow1.json + Y + Y + Y + + + Start + state_recruits_info_flow2.json + Y + Y + Y + + + Start + state_recruits_info_flow3.json + Y + Y + Y + + + Start + state_recruits_info_flow4.json + Y + Y + Y + + + Start + state_recruits_info_flow5.json + Y + Y + Y + + + state_recruits_info_flow1.json + Success + Y + Y + N + + + state_recruits_info_flow1.json + Abort workflow + Y + N + N + + + state_recruits_info_flow2.json + Success 2 + Y + Y + N + + + state_recruits_info_flow2.json + Abort workflow 2 + Y + N + N + + + state_recruits_info_flow3.json + Success 3 + Y + Y + N + + + state_recruits_info_flow3.json + Abort workflow 3 + Y + N + N + + + state_recruits_info_flow4.json + Success 4 + Y + Y + N + + + state_recruits_info_flow4.json + Abort workflow 4 + Y + N + N + + + state_recruits_info_flow5.json + Success 5 + Y + Y + N + + + state_recruits_info_flow5.json + Abort workflow 5 + Y + N + N + + + + + + diff --git a/mappings/info_recruits/job_last_update_date.hwf b/mappings/info_recruits/raw_data/info_recruits/checkpoints/job_checkpoints_recruits_info.hwf similarity index 61% rename from mappings/info_recruits/job_last_update_date.hwf rename to mappings/info_recruits/raw_data/info_recruits/checkpoints/job_checkpoints_recruits_info.hwf index 487e2fb..56e4aac 100644 --- a/mappings/info_recruits/job_last_update_date.hwf +++ b/mappings/info_recruits/raw_data/info_recruits/checkpoints/job_checkpoints_recruits_info.hwf @@ -1,14 +1,14 @@ - job_last_update_date + job_checkpoints_recruits_info Y - - 2025/01/10 15:06:41.340 + 2025/05/26 15:38:10.437 - - 2025/01/10 15:06:41.340 + 2025/05/26 15:38:10.437 @@ -26,12 +26,12 @@ 0 1 N - 480 - 224 + 368 + 416 - Pipeline + checkpoint_recruit_info_error.hpl PIPELINE @@ -41,34 +41,49 @@ N N N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/checkpoint_recruit_info_error.hpl + + Basic Y N + local N N Y N - 848 - 224 + 592 + 416 - SQL + Success - SQL + SUCCESS - N - N - N N - 656 - 224 + 784 + 416 + + Start + checkpoint_recruit_info_error.hpl + Y + Y + Y + + + checkpoint_recruit_info_error.hpl + Success + Y + Y + N + diff --git a/mappings/info_recruits/raw_data/info_recruits/checkpoints/job_create_files_recruits_info.hwf b/mappings/info_recruits/raw_data/info_recruits/checkpoints/job_create_files_recruits_info.hwf new file mode 100644 index 0000000..9d9eea2 --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/checkpoints/job_create_files_recruits_info.hwf @@ -0,0 +1,235 @@ + + + job_create_files_recruits_info + 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_recruits_info_flow2_new + + WRITE_TO_FILE + + N + { + "status": "NEW", + "pipeline": "recruits_info_flow2" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow2.json + N + 848 + 416 + + + + state_recruits_info_flow1_new + + WRITE_TO_FILE + + N + { + "status": "NEW", + "pipeline": "recruits_info_flow1" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow1.json + N + 848 + 336 + + + + state_recruits_info_flow3_new + + WRITE_TO_FILE + + N + { + "status": "NEW", + "pipeline": "recruits_info_flow3" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow3.json + N + 848 + 496 + + + + state_recruits_info_flow4_new + + WRITE_TO_FILE + + N + { + "status": "NEW", + "pipeline": "recruits_info_flow4" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow4.json + N + 848 + 576 + + + + state_recruits_info_flow5_new + + WRITE_TO_FILE + + N + { + "status": "NEW", + "pipeline": "recruits_info_flow5" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow5.json + N + 848 + 656 + + + + Success + + SUCCESS + + N + 1120 + 496 + + + + Delete file state_job_recruits_info + + DELETE_FILE + + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_job_recruits_info.json + N + 848 + 256 + + + + + + Start + state_recruits_info_flow3_new + Y + Y + Y + + + Start + state_recruits_info_flow2_new + Y + Y + Y + + + Start + state_recruits_info_flow1_new + Y + Y + Y + + + Start + state_recruits_info_flow4_new + Y + Y + Y + + + Start + state_recruits_info_flow5_new + Y + Y + Y + + + state_recruits_info_flow5_new + Success + Y + Y + N + + + state_recruits_info_flow4_new + Success + Y + Y + N + + + state_recruits_info_flow3_new + Success + Y + Y + N + + + state_recruits_info_flow2_new + Success + Y + Y + N + + + state_recruits_info_flow1_new + Success + Y + Y + N + + + Start + Delete file state_job_recruits_info + Y + Y + Y + + + Delete file state_job_recruits_info + Success + Y + Y + N + + + + + + diff --git a/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_delta.json b/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_delta.json new file mode 100644 index 0000000..f451726 --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_delta.json @@ -0,0 +1,6 @@ +{ + "status": "SUCCESS", + "pipeline": "delta_recruits_info", + "max_create_date": "2025/04/08 20:21:38.528691000", + "max_update_date": "2025/04/09 00:25:46.935442000" +} \ No newline at end of file diff --git a/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow1.json b/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow1.json new file mode 100644 index 0000000..d15c42a --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow1.json @@ -0,0 +1,4 @@ +{ + "status": "NEW", + "pipeline": "recruits_info_flow1" +} \ No newline at end of file diff --git a/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow2.json b/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow2.json new file mode 100644 index 0000000..5151c79 --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow2.json @@ -0,0 +1,4 @@ +{ + "status": "NEW", + "pipeline": "recruits_info_flow2" +} \ No newline at end of file diff --git a/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow3.json b/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow3.json new file mode 100644 index 0000000..bd9c7ce --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow3.json @@ -0,0 +1,4 @@ +{ + "status": "NEW", + "pipeline": "recruits_info_flow3" +} \ No newline at end of file diff --git a/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow4.json b/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow4.json new file mode 100644 index 0000000..b003e96 --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow4.json @@ -0,0 +1,4 @@ +{ + "status": "NEW", + "pipeline": "recruits_info_flow4" +} \ No newline at end of file diff --git a/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow5.json b/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow5.json new file mode 100644 index 0000000..2f1643e --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow5.json @@ -0,0 +1,4 @@ +{ + "status": "NEW", + "pipeline": "recruits_info_flow5" +} \ No newline at end of file diff --git a/mappings/info_recruits/raw_data/info_recruits/delta_recruits_info.hpl b/mappings/info_recruits/raw_data/info_recruits/delta_recruits_info.hpl new file mode 100644 index 0000000..45ba18d --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/delta_recruits_info.hpl @@ -0,0 +1,151 @@ + + + + delta_recruits_info + Y + + + + Normal + 0 + + + M_R_CR_DATE + + + + + M_R_UP_DATE + + + + + N + 1000 + 100 + - + 2025/05/29 17:05:14.836 + - + 2025/05/29 17:05:14.836 + + + + + + Table input + Insert / update + Y + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_person_registry_raw + recruits_info
+ + recruit_id + recruit_id + N + + + created_at + created_at + Y + + + updated_at + updated_at + Y + + + current_recruitment_id + current_recruitment_id + Y + + + target_recruitment_id + target_recruitment_id + Y + + + full_name + full_name + Y + + + gir_import_data_version_id + gir_import_data_version_id + Y + + + info + info + Y + +
+ N + + + 848 + 368 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + 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 +FROM recruits_info ri +JOIN recruits r ON r.id = ri.recruit_id +WHERE + r.system_update_date >= '${M_R_UP_DATE}'::timestamp + --'${ID_F1}' != '' -- Проверка на пустую строку + --AND COALESCE(current_recruitment_id::text, target_recruitment_id::text) = '${ID_F1}' + AND '${M_R_CR_DATE}'::timestamp >= r.system_create_date + --AND '${CR_DATE}' < ri.created_at +--ORDER BY ri.created_at ASC; + Y + + + 432 + 368 + + + + + +
diff --git a/mappings/info_recruits/raw_data/info_recruits/job_recruit_last_update_date.hwf b/mappings/info_recruits/raw_data/info_recruits/job_recruit_last_update_date.hwf new file mode 100644 index 0000000..fe4c912 --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/job_recruit_last_update_date.hwf @@ -0,0 +1,124 @@ + + + job_recruit_last_update_date + Y + + + + - + 2025/06/02 14:48:05.666 + - + 2025/06/02 14:48:05.666 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 592 + 352 + + + + recruit_update_date_ervu_dashboard.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/recruit_update_date_ervu_dashboard.hpl + + + Basic + + Y + + N + local + N + N + Y + N + 784 + 352 + + + + row_last_recruit_update_date.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/row_last_recruit_update_date.hpl + Basic + + Y + + N + local + N + N + Y + N + 1056 + 352 + + + + Success + + SUCCESS + + N + 1232 + 352 + + + + + + Start + recruit_update_date_ervu_dashboard.hpl + Y + Y + Y + + + recruit_update_date_ervu_dashboard.hpl + row_last_recruit_update_date.hpl + Y + Y + N + + + row_last_recruit_update_date.hpl + Success + Y + Y + N + + + + + + diff --git a/mappings/info_recruits/raw_data/info_recruits/job_recruits_info.hwf b/mappings/info_recruits/raw_data/info_recruits/job_recruits_info.hwf new file mode 100644 index 0000000..1ece7a9 --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/job_recruits_info.hwf @@ -0,0 +1,2001 @@ + + + job_recruits_info + Y + + + + 0 + - + 2025/05/21 13:39:54.614 + - + 2025/05/21 13:39:54.614 + + + CR_DATE + + + + + M_R_CR_DATE + + + + + M_R_UP_DATE + + + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 208 + 1232 + + + + recruitment_rows_five_flow.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/supportive_jobs/recruitment_rows_five_flow.hpl + Basic + + + CR_DATE + CREATE_DATE + + Y + + N + local + N + N + Y + Y + 2128 + 1216 + + + + recruits_info_flow1.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl + Basic + + + ID_F1 + IDM_FLOW1 + + Y + + Y + local + N + N + Y + N + 2592 + 880 + + + + recruits_info_flow2.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl + Basic + + + ID_F2 + IDM_FLOW2 + + Y + + Y + local + N + N + Y + N + 2592 + 1040 + + + + recruits_info_flow3.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl + Basic + + + ID_F3 + IDM_FLOW3 + + Y + + Y + local + N + N + Y + N + 2592 + 1216 + + + + recruits_info_flow4.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl + Basic + + + ID_F4 + IDM_FLOW4 + + Y + + Y + local + N + N + Y + N + 2592 + 1392 + + + + recruits_info_flow5.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl + Basic + + + ID_F5 + IDM_FLOW5 + + Y + + Y + local + N + N + Y + N + 2592 + 1568 + + + + recruits_info_param_create_date.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/recruits_info_param_create_date.hpl + Basic + + Y + + N + local + N + N + Y + N + 1888 + 1296 + + + + state_recruits_info_flow1_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "recruits_info_flow1" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow1.json + N + 3056 + 880 + + + + state_recruits_info_flow2_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "recruits_info_flow2" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow2.json + N + 3056 + 1040 + + + + state_recruits_info_flow3_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "recruits_info_flow3" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow3.json + N + 3056 + 1216 + + + + state_recruits_info_flow4_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "recruits_info_flow4" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow4.json + N + 3056 + 1392 + + + + state_recruits_info_flow5_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "recruits_info_flow5" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow5.json + N + 3056 + 1568 + + + + recruits_info_param_create_date.hpl (2) + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/recruits_info_param_create_date.hpl + Basic + + Y + + N + local + N + N + Y + N + 2128 + 1616 + + + + recruitment_rows_five_flow_if_error.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/recruitment_rows_five_flow_if_error.hpl + Basic + + Y + + N + local + N + N + Y + Y + 2144 + 2064 + + + + after_error_recruits_info_flow1.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl + Basic + + + ID_F1 + IDM_FLOW1 + + Y + + Y + local + N + N + Y + N + 2592 + 1728 + + + + Success after_error_recruits_info_flow1 + + SUCCESS + + N + 3424 + 1728 + + + + job_check_files_recruits_info.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/job_check_files_recruits_info.hwf + Nothing + + Y + + N + local + N + N + Y + N + 1584 + 1520 + + + + after_error_recruits_info_flow2.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl + Basic + + + ID_F2 + IDM_FLOW2 + + Y + + Y + local + N + N + Y + N + 2592 + 1920 + + + + after_error_recruits_info_flow3.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl + Basic + + + ID_F3 + IDM_FLOW3 + + Y + + Y + local + N + N + Y + N + 2592 + 2096 + + + + after_error_recruits_info_flow4.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl + Basic + + + ID_F4 + IDM_FLOW4 + + Y + + Y + local + N + N + Y + N + 2592 + 2272 + + + + after_error_recruits_info_flow5.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl + Basic + + + ID_F5 + IDM_FLOW5 + + Y + + Y + local + N + N + Y + N + 2592 + 2448 + + + + Success after_error_recruits_info_flow2 + + SUCCESS + + N + 3424 + 1920 + + + + Success after_error_recruits_info_flow3 + + SUCCESS + + N + 3424 + 2096 + + + + Success after_error_recruits_info_flow4 + + SUCCESS + + N + 3424 + 2272 + + + + Success after_error_recruits_info_flow5 + + SUCCESS + + N + 3424 + 2448 + + + + state_recruits_info_flow1_success (2) + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "recruits_info_flow1" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow1.json + N + 3056 + 1728 + + + + state_recruits_info_flow2_success 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "recruits_info_flow2" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow2.json + N + 3056 + 1920 + + + + state_recruits_info_flow3_success 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "recruits_info_flow3" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow3.json + N + 3056 + 2096 + + + + state_recruits_info_flow4_success 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "recruits_info_flow4" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow4.json + N + 3056 + 2272 + + + + state_recruits_info_flow5_success 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "recruits_info_flow5" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow5.json + N + 3056 + 2448 + + + + error after_error_recruits_info_flow1 + + SUCCESS + + N + 3424 + 1824 + + + + error after_error_recruits_info_flow2 + + SUCCESS + + N + 3424 + 2016 + + + + error after_error_recruits_info_flow3 + + SUCCESS + + N + 3424 + 2192 + + + + error after_error_recruits_info_flow4 + + SUCCESS + + N + 3424 + 2368 + + + + error after_error_recruits_info_flow5 + + SUCCESS + + N + 3424 + 2544 + + + + job_checkpoints_recruits_info.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/job_checkpoints_recruits_info.hwf + Nothing + + Y + + N + local + N + N + Y + N + 1840 + 1728 + + + + Simple recruits_info WHERE SUCCESS + + SIMPLE_EVAL + + SUCCESS + string + true + equal + equal + N + variable + STATUS + N + 1952 + 2640 + + + + branching_recruits_info.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/branching_recruits_info.hpl + Basic + + Y + + N + local + N + N + Y + N + 1312 + 1728 + + + + Simple recruits_info WHERE ERROR + + SIMPLE_EVAL + + ERROR + string + true + equal + equal + N + variable + STATUS + N + 1552 + 1728 + + + + Simple recruits_info WHERE DELTA + + SIMPLE_EVAL + + DELTA + string + true + equal + equal + N + variable + STATUS + N + 1536 + 2832 + + + + state_recruits_info_flow1_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "recruits_info_flow1" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow1.json + N + 3056 + 1824 + + + + state_recruits_info_flow2_error 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "recruits_info_flow2" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow2.json + N + 3056 + 2016 + + + + state_recruits_info_flow3_error 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "recruits_info_flow3" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow3.json + N + 3056 + 2192 + + + + state_recruits_info_flow4_error 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "recruits_info_flow4" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow4.json + N + 3056 + 2368 + + + + state_recruits_info_flow5_error 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "recruits_info_flow5" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow5.json + N + 3056 + 2544 + + + + state_recruits_info_flow1_error (2) + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "recruits_info_flow1" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow1.json + N + 3056 + 960 + + + + state_recruits_info_flow2_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "recruits_info_flow2" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow2.json + N + 3056 + 1120 + + + + state_recruits_info_flow3_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "recruits_info_flow3" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow3.json + N + 3056 + 1296 + + + + state_recruits_info_flow4_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "recruits_info_flow4" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow4.json + N + 3056 + 1472 + + + + state_recruits_info_flow5_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "recruits_info_flow5" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_flow5.json + N + 3056 + 1648 + + + + delta_recruits_info.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/delta_recruits_info.hpl + Basic + + + M_R_UP_DATE + ${M_R_UP_DATE} + + Y + + N + local + N + N + Y + N + 2592 + 2640 + + + + Success delta_recruits_info + + SUCCESS + + N + 3424 + 2640 + + + + state_recruits_info_delta_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "delta_recruits_info", + "max_create_date": "${M_R_CR_DATE}", + "max_update_date": "${M_R_UP_DATE}" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_delta.json + N + 3056 + 2640 + + + + state_recruits_info_delta_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "delta_recruits_info", + "max_create_date": "${M_R_CR_DATE}", + "max_update_date": "${M_R_UP_DATE}" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_recruits_info_delta.json + N + 3056 + 2720 + + + + error delta_recruits_info + + SUCCESS + + N + 3424 + 2720 + + + + Checks if files exist state_job_recruits_info.json + + FILES_EXIST + + + + + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_job_recruits_info.json + + + N + 528 + 1232 + + + + checkpoint_job_recruits_info.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/checkpoint_job_recruits_info.hpl + Basic + + Y + + N + local + N + N + Y + N + 816 + 1728 + + + + state_job_recruits_info_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_recruits_info" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_job_recruits_info.json + N + 1088 + 1728 + + + + state_job_recruits_info_error + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_recruits_info" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_job_recruits_info.json + N + 1088 + 1824 + + + + job_recruit_last_update_date.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/job_recruit_last_update_date.hwf + Nothing + + Y + + N + local + N + N + Y + N + 2320 + 2640 + + + + checkpoint_job_recruits_info.hpl 2 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/checkpoint_job_recruits_info.hpl + Basic + + Y + + N + local + N + N + Y + N + 3440 + 1248 + + + + state_job_recruits_info_success 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_recruits_info" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_job_recruits_info.json + N + 3680 + 1152 + + + + state_job_recruits_info_error 2 + + WRITE_TO_FILE + + N + { + "status": "ERROR", + "pipeline": "job_recruits_info" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_job_recruits_info.json + N + 3680 + 1248 + + + + Success new recruits_info + + SUCCESS + + N + 3904 + 1152 + + + + Abort workflow + + ABORT + + N + N + 2144 + 1008 + + + + Abort workflow 2 + + ABORT + + N + N + 1984 + 2176 + + + + + + recruits_info_param_create_date.hpl + recruitment_rows_five_flow.hpl + N + Y + Y + + + recruitment_rows_five_flow.hpl + recruits_info_flow1.hpl + Y + Y + N + + + recruitment_rows_five_flow.hpl + recruits_info_flow2.hpl + Y + Y + N + + + recruitment_rows_five_flow.hpl + recruits_info_flow3.hpl + Y + Y + N + + + recruitment_rows_five_flow.hpl + recruits_info_flow4.hpl + Y + Y + N + + + recruitment_rows_five_flow.hpl + recruits_info_flow5.hpl + Y + Y + N + + + recruits_info_flow1.hpl + state_recruits_info_flow1_success + Y + Y + N + + + recruits_info_flow2.hpl + state_recruits_info_flow2_success + Y + Y + N + + + recruits_info_flow3.hpl + state_recruits_info_flow3_success + Y + Y + N + + + recruits_info_flow4.hpl + state_recruits_info_flow4_success + Y + Y + N + + + recruits_info_flow5.hpl + state_recruits_info_flow5_success + Y + Y + N + + + recruits_info_param_create_date.hpl (2) + recruitment_rows_five_flow_if_error.hpl + N + Y + N + + + recruitment_rows_five_flow_if_error.hpl + after_error_recruits_info_flow1.hpl + Y + Y + N + + + job_check_files_recruits_info.hwf + recruits_info_param_create_date.hpl + N + Y + N + + + recruitment_rows_five_flow_if_error.hpl + after_error_recruits_info_flow2.hpl + Y + Y + N + + + recruitment_rows_five_flow_if_error.hpl + after_error_recruits_info_flow3.hpl + Y + Y + N + + + recruitment_rows_five_flow_if_error.hpl + after_error_recruits_info_flow4.hpl + Y + Y + N + + + recruitment_rows_five_flow_if_error.hpl + after_error_recruits_info_flow5.hpl + Y + Y + N + + + after_error_recruits_info_flow1.hpl + state_recruits_info_flow1_success (2) + Y + Y + N + + + state_recruits_info_flow1_success (2) + Success after_error_recruits_info_flow1 + Y + Y + N + + + after_error_recruits_info_flow2.hpl + state_recruits_info_flow2_success 2 + Y + Y + N + + + state_recruits_info_flow2_success 2 + Success after_error_recruits_info_flow2 + Y + Y + N + + + after_error_recruits_info_flow3.hpl + state_recruits_info_flow3_success 2 + Y + Y + N + + + state_recruits_info_flow3_success 2 + Success after_error_recruits_info_flow3 + Y + Y + N + + + after_error_recruits_info_flow4.hpl + state_recruits_info_flow4_success 2 + Y + Y + N + + + state_recruits_info_flow4_success 2 + Success after_error_recruits_info_flow4 + Y + Y + N + + + after_error_recruits_info_flow5.hpl + state_recruits_info_flow5_success 2 + Y + Y + N + + + state_recruits_info_flow5_success 2 + Success after_error_recruits_info_flow5 + Y + Y + N + + + job_check_files_recruits_info.hwf + job_checkpoints_recruits_info.hwf + N + N + N + + + job_checkpoints_recruits_info.hwf + recruits_info_param_create_date.hpl (2) + N + Y + Y + + + job_checkpoints_recruits_info.hwf + recruitment_rows_five_flow_if_error.hpl + Y + Y + N + + + job_check_files_recruits_info.hwf + recruitment_rows_five_flow.hpl + N + Y + N + + + branching_recruits_info.hpl + Simple recruits_info WHERE SUCCESS + Y + Y + Y + + + branching_recruits_info.hpl + Simple recruits_info WHERE ERROR + Y + N + Y + + + Simple recruits_info WHERE ERROR + job_checkpoints_recruits_info.hwf + Y + Y + N + + + after_error_recruits_info_flow1.hpl + state_recruits_info_flow1_error + Y + N + N + + + state_recruits_info_flow1_error + error after_error_recruits_info_flow1 + Y + Y + N + + + after_error_recruits_info_flow2.hpl + state_recruits_info_flow2_error 2 + Y + N + N + + + state_recruits_info_flow2_error 2 + error after_error_recruits_info_flow2 + Y + Y + N + + + after_error_recruits_info_flow3.hpl + state_recruits_info_flow3_error 2 + Y + N + N + + + state_recruits_info_flow3_error 2 + error after_error_recruits_info_flow3 + Y + Y + N + + + after_error_recruits_info_flow4.hpl + state_recruits_info_flow4_error 2 + Y + N + N + + + state_recruits_info_flow4_error 2 + error after_error_recruits_info_flow4 + Y + Y + N + + + after_error_recruits_info_flow5.hpl + state_recruits_info_flow5_error 2 + Y + N + N + + + state_recruits_info_flow5_error 2 + error after_error_recruits_info_flow5 + Y + Y + N + + + recruits_info_flow1.hpl + state_recruits_info_flow1_error (2) + Y + N + N + + + recruits_info_flow2.hpl + state_recruits_info_flow2_error + Y + N + N + + + recruits_info_flow3.hpl + state_recruits_info_flow3_error + Y + N + N + + + recruits_info_flow4.hpl + state_recruits_info_flow4_error + Y + N + N + + + recruits_info_flow5.hpl + state_recruits_info_flow5_error + Y + N + N + + + delta_recruits_info.hpl + state_recruits_info_delta_error + Y + N + N + + + state_recruits_info_delta_success + Success delta_recruits_info + Y + Y + N + + + state_recruits_info_delta_error + error delta_recruits_info + Y + Y + N + + + Start + Checks if files exist state_job_recruits_info.json + Y + Y + Y + + + Checks if files exist state_job_recruits_info.json + recruitment_rows_five_flow.hpl + Y + N + N + + + Checks if files exist state_job_recruits_info.json + checkpoint_job_recruits_info.hpl + Y + Y + N + + + Start + job_check_files_recruits_info.hwf + N + Y + Y + + + checkpoint_job_recruits_info.hpl + state_job_recruits_info_success + Y + Y + N + + + checkpoint_job_recruits_info.hpl + state_job_recruits_info_error + Y + N + N + + + state_job_recruits_info_error + branching_recruits_info.hpl + Y + Y + N + + + state_job_recruits_info_success + branching_recruits_info.hpl + Y + Y + N + + + delta_recruits_info.hpl + state_recruits_info_delta_success + Y + Y + N + + + Simple recruits_info WHERE SUCCESS + job_recruit_last_update_date.hwf + Y + Y + N + + + job_recruit_last_update_date.hwf + delta_recruits_info.hpl + Y + Y + N + + + checkpoint_job_recruits_info.hpl 2 + state_job_recruits_info_success 2 + Y + Y + N + + + checkpoint_job_recruits_info.hpl 2 + state_job_recruits_info_error 2 + Y + N + N + + + state_job_recruits_info_error 2 + Success new recruits_info + Y + Y + N + + + state_job_recruits_info_success 2 + Success new recruits_info + Y + Y + N + + + state_recruits_info_flow1_success + checkpoint_job_recruits_info.hpl 2 + Y + N + Y + + + state_recruits_info_flow1_error (2) + checkpoint_job_recruits_info.hpl 2 + Y + N + Y + + + state_recruits_info_flow2_success + checkpoint_job_recruits_info.hpl 2 + Y + N + Y + + + state_recruits_info_flow2_error + checkpoint_job_recruits_info.hpl 2 + Y + N + Y + + + state_recruits_info_flow3_success + checkpoint_job_recruits_info.hpl 2 + Y + N + Y + + + state_recruits_info_flow3_error + checkpoint_job_recruits_info.hpl 2 + Y + N + Y + + + state_recruits_info_flow4_success + checkpoint_job_recruits_info.hpl 2 + Y + N + Y + + + state_recruits_info_flow4_error + checkpoint_job_recruits_info.hpl 2 + Y + N + Y + + + state_recruits_info_flow5_success + checkpoint_job_recruits_info.hpl 2 + Y + N + Y + + + state_recruits_info_flow5_error + checkpoint_job_recruits_info.hpl 2 + Y + N + Y + + + recruitment_rows_five_flow.hpl + Abort workflow + Y + N + N + + + recruitment_rows_five_flow_if_error.hpl + Abort workflow 2 + Y + N + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 74 + 1744 + 1792 + тут ищем последний idm_id военкомата упавший +в любом из потоков и записываем в таблицу +public.etl_checkpoints в формате: +наименование пайплайна, id военкомата, текущая дата/время, статус, дата создания военкомата + 546 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 2016 + 1152 + лимиты + 54 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 2128 + 2128 + лимиты + 54 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 2160 + 384 + тут в json файы записываем DELTA + 200 + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 42 + 384 + 1168 + если нет этого файла, значит данные еще не загружались +state_job_recruits_info.json + 331 + + + + diff --git a/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl new file mode 100644 index 0000000..18828b4 --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl @@ -0,0 +1,231 @@ + + + + recruits_info_flow1 + Y + + + + Normal + 0 + + + N + 1000 + 100 + - + 2025/05/21 14:05:02.260 + - + 2025/05/21 14:05:02.260 + + + + + + Table input + Select values 4 2 + N + + + Select values 4 2 + Insert / update + N + + + Table input + Insert / update + Y + + + Select values 4 2 + Get variables + N + + + + Get variables + GetVariable + + Y + + 1 + + none + + + + + -1 + recruitment_id + -1 + none + String + ID_F1 + + + + + 976 + 400 + + + + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_person_registry_raw + 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 + +
+ N + + + 992 + 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_person_registry + N + 0 + 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 +FROM recruits_info ri +JOIN recruits r ON r.id = ri.recruit_id +WHERE + '${ID_F1}' != '' -- Проверка на пустую строку + AND COALESCE(current_recruitment_id::text, target_recruitment_id::text) = '${ID_F1}' + AND '${M_R_CR_DATE}' >= r.system_create_date + --AND '${CR_DATE}' < ri.created_at +--ORDER BY ri.created_at ASC; + Y + + + 448 + 288 + + + + + Select values 4 2 + Get variables + Y + + + + + + + + + + +
diff --git a/mappings/info_recruits/citizen_sports_categories.hpl b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl similarity index 56% rename from mappings/info_recruits/citizen_sports_categories.hpl rename to mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl index 8592dcf..4cd6655 100644 --- a/mappings/info_recruits/citizen_sports_categories.hpl +++ b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl @@ -1,7 +1,7 @@ - citizen_sports_categories + recruits_info_flow2 Y @@ -13,9 +13,9 @@ 1000 100 - - 2025/02/14 13:05:06.026 + 2025/05/21 14:05:02.260 - - 2025/02/14 13:05:06.026 + 2025/05/21 14:05:02.260 @@ -37,63 +37,62 @@ none - 10000 + 100 ervu-dashboard = recruit_id recruit_id - - ervu-dashboard - citizen_sports_categories
+ ervu_person_registry_raw + recruits_info
recruit_id recruit_id N - start_date_category - start_date_category + created_at + created_at Y - end_date_category - end_date_category + updated_at + updated_at Y - sports_category_name - sports_category_name + info + info Y - type_sport - type_sport + gir_import_data_version_id + gir_import_data_version_id Y - sport_title - sport_title + current_recruitment_id + current_recruitment_id Y - having_sport_category - having_sport_category + target_recruitment_id + target_recruitment_id Y - having_sport_title - having_sport_title + full_name + full_name Y
N - 672 - 256 + 896 + 288 @@ -109,26 +108,30 @@ ervu_person_registry N - SELECT recruit_id, - (sport_info->'sportRazr'->>'dataPrisv')::date start_date_category, - (sport_info->'sportRazr'->>'dataDeistv')::date as end_date_category, - sport_info->'sportRazr'->>'razryadNaim' as sports_category_name, - sport_info->'sportRazr'->>'sportNaim' as type_sport, - sport_info->>'sportZvan' as sport_title, - case when sport_info->>'sportRazr' != 'null' - then true else false end as having_sport_category, - (case when sport_info->>'sportZvan' != 'null' - then true else false end) as having_sport_title -FROM public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}', - jsonb_array_elements(ri.info->'svedFL'->'svedSport'->'sport') AS sport_info -WHERE info->'svedFL'->'svedSport'->>'sport' != 'null' - and info->'svedFL'->'svedSport'->>'sport' != '[]'; + 0 + 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--, + --'${RN_RMNT}' AS rn_recruitment -- порядковый номер военкомата +FROM recruits_info ri +JOIN recruits r ON r.id = ri.recruit_id +WHERE + '${ID_F2}' != '' -- Проверка на пустую строку + AND COALESCE(current_recruitment_id,target_recruitment_id) = '${ID_F2}' + AND '${M_R_CR_DATE}' >= r.system_create_date +--AND '${CR_DATE}' < ri.created_at +--order by ri.created_at asc Y - 384 - 256 + 352 + 288 diff --git a/mappings/jobs_once_a_day/recruit_ervu_status_once.hpl b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl similarity index 50% rename from mappings/jobs_once_a_day/recruit_ervu_status_once.hpl rename to mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl index 31af46d..5786789 100644 --- a/mappings/jobs_once_a_day/recruit_ervu_status_once.hpl +++ b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl @@ -1,7 +1,7 @@ - recruit_ervu_status_once + recruits_info_flow3 Y @@ -13,9 +13,9 @@ 1000 100 - - 2025/04/26 14:56:32.115 + 2025/05/21 14:05:02.260 - - 2025/04/26 14:56:32.115 + 2025/05/21 14:05:02.260 @@ -25,12 +25,76 @@ Insert / update Y - - Insert / update - Dummy (do nothing) - Y -
+ + Insert / update + InsertUpdate + + Y + + 1 + + none + + + 100 + ervu-dashboard + + + = + recruit_id + recruit_id + + ervu_person_registry_raw + 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 + +
+ N + + + 896 + 288 + +
Table input TableInput @@ -45,99 +109,32 @@ ervu_person_registry N 0 - select - code, - value, - description, - not hidden as actual - from recruit_ervu_status; - 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--, + --'${RN_RMNT}' AS rn_recruitment -- порядковый номер военкомата +FROM recruits_info ri +JOIN recruits r ON r.id = ri.recruit_id +WHERE + '${ID_F3}' != '' -- Проверка на пустую строку + AND COALESCE(current_recruitment_id,target_recruitment_id) = '${ID_F3}' + AND '${M_R_CR_DATE}' >= r.system_create_date +--AND '${CR_DATE}' < ri.created_at +--order by ri.created_at asc + Y - 304 - 256 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - = - code - code - - - ervu_dashboard - recruit_ervu_status
- - code - code - N - - - value - value - Y - - - description - description - Y - - - actual - actual - Y - -
- N - - - 512 - 256 - -
- - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 736 - 256 + 352 + 288 - - Insert / update - Dummy (do nothing) - Y - - - - - - - -
diff --git a/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl new file mode 100644 index 0000000..086352d --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl @@ -0,0 +1,140 @@ + + + + recruits_info_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_person_registry_raw + 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 + +
+ N + + + 896 + 288 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + 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--, + --'${RN_RMNT}' AS rn_recruitment -- порядковый номер военкомата +FROM recruits_info ri +JOIN recruits r ON r.id = ri.recruit_id +WHERE + '${ID_F4}' != '' -- Проверка на пустую строку + AND COALESCE(current_recruitment_id,target_recruitment_id) = '${ID_F4}' + AND '${M_R_CR_DATE}' >= r.system_create_date +--AND '${CR_DATE}' < ri.created_at +--order by ri.created_at asc + Y + + + 352 + 288 + + + + + +
diff --git a/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl new file mode 100644 index 0000000..fa4ceb2 --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl @@ -0,0 +1,140 @@ + + + + recruits_info_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_person_registry_raw + 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 + +
+ N + + + 896 + 288 + +
+ + Table input + TableInput + + Y + + 1 + + none + + + ervu_person_registry + N + 0 + 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--, + --'${RN_RMNT}' AS rn_recruitment -- порядковый номер военкомата +FROM recruits_info ri +JOIN recruits r ON r.id = ri.recruit_id +WHERE + '${ID_F5}' != '' -- Проверка на пустую строку + AND COALESCE(current_recruitment_id,target_recruitment_id) = '${ID_F5}' + AND '${M_R_CR_DATE}' >= r.system_create_date +--AND '${CR_DATE}' < ri.created_at +--order by ri.created_at asc + Y + + + 352 + 288 + + + + + +
diff --git a/mappings/jobs_once_a_day/criminal_prosecution_flags.hpl b/mappings/info_recruits/raw_data/info_recruits/recruit_update_date_ervu_dashboard.hpl similarity index 56% rename from mappings/jobs_once_a_day/criminal_prosecution_flags.hpl rename to mappings/info_recruits/raw_data/info_recruits/recruit_update_date_ervu_dashboard.hpl index f2363a1..5aa7685 100644 --- a/mappings/jobs_once_a_day/criminal_prosecution_flags.hpl +++ b/mappings/info_recruits/raw_data/info_recruits/recruit_update_date_ervu_dashboard.hpl @@ -1,7 +1,7 @@ - criminal_prosecution_flags + recruit_update_date_ervu_dashboard Y @@ -13,56 +13,21 @@ 1000 100 - - 2025/04/25 13:19:11.456 + 2025/06/02 14:50:31.833 - - 2025/04/25 13:19:11.456 + 2025/06/02 14:50:31.833 - has_criminal_prosecution - Update_has_criminal_prosecution + Table input + Table output Y - Update_has_criminal_prosecution - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - has_criminal_prosecution - has_criminal_prosecution - -
- N - Y - - - 592 - 208 - -
- - has_criminal_prosecution + Table input TableInput Y @@ -75,18 +40,53 @@ ervu-dashboard N 0 - -SELECT -distinct -recruit_id, -true as has_criminal_prosecution -FROM prosecution -where close_date is null; + 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_person_registry_raw.recruits_info +WHERE updated_at = (SELECT MAX(updated_at) FROM ervu_person_registry_raw.recruits_info) +limit 1 N - 368 - 208 + 896 + 304 + + + + Table output + TableOutput + + Y + + 1 + + none + + + 1000 + ervu-dashboard + + + N + N + N + N + Y + N + public + N + recruit_create
+ N + Y + N + Y + + + 1216 + 304
diff --git a/mappings/info_recruits/raw_data/info_recruits/recruitment_rows_five_flow_if_error.hpl b/mappings/info_recruits/raw_data/info_recruits/recruitment_rows_five_flow_if_error.hpl new file mode 100644 index 0000000..307af00 --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/recruitment_rows_five_flow_if_error.hpl @@ -0,0 +1,259 @@ + + + + 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(current_recruitment_id, target_recruitment_id) AS idm_id + FROM ervu_person_registry_raw.recruits_info +), +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/select_delta_time_subpoena.hpl b/mappings/info_recruits/raw_data/info_recruits/recruits_info_param_create_date.hpl similarity index 65% rename from mappings/info_recruits/select_delta_time_subpoena.hpl rename to mappings/info_recruits/raw_data/info_recruits/recruits_info_param_create_date.hpl index 581126d..ec0d770 100644 --- a/mappings/info_recruits/select_delta_time_subpoena.hpl +++ b/mappings/info_recruits/raw_data/info_recruits/recruits_info_param_create_date.hpl @@ -1,33 +1,34 @@ - select_delta_time_subpoena + recruits_info_param_create_date Y Normal + 0 N 1000 100 - - 2025/01/10 14:32:39.906 + 2025/05/22 14:04:44.129 - - 2025/01/10 14:32:39.906 + 2025/05/22 14:04:44.129 Table input - Insert / update - N + Copy rows to result + Y - Table input - Copy rows to result + Copy rows to result + Set variables Y @@ -44,13 +45,13 @@ - 768 - 240 + 848 + 288 - Insert / update - InsertUpdate + Set variables + SetVariable Y @@ -59,16 +60,19 @@ none - 100 - - - lookup table
-
- N + + + + create_date + CR_DATE + PARENT_WORKFLOW + + + Y - 768 - 384 + 1088 + 288
@@ -85,13 +89,20 @@ ervu-dashboard N 0 - select max(status_change_date) AS STATUS_CHANGE_DATE -from ervu_dashboard.subpoena + SELECT +/* + CASE + WHEN count(*)>0 THEN max(created_at)::timestamp + ELSE '0001-01-01 00:00:00'::timestamp + END AS CREATE_DATE +*/ +'0001-01-01 00:00:00'::timestamp AS CREATE_DATE +FROM ervu_person_registry_raw.recruits_info N - 464 - 240 + 576 + 288 diff --git a/mappings/info_recruits/raw_data/info_recruits/row_last_recruit_update_date.hpl b/mappings/info_recruits/raw_data/info_recruits/row_last_recruit_update_date.hpl new file mode 100644 index 0000000..5597125 --- /dev/null +++ b/mappings/info_recruits/raw_data/info_recruits/row_last_recruit_update_date.hpl @@ -0,0 +1,109 @@ + + + + row_last_recruit_update_date + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/06/02 14:51:59.611 + - + 2025/06/02 14:51:59.611 + + + + + + Copy rows to result + Set variables + Y + + + Table input + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 992 + 320 + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + + MAX_RECRUIT_UPDATE_DATE + M_R_UP_DATE + GP_WORKFLOW + + + Y + + + 1232 + 320 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + system_update_date AS MAX_RECRUIT_UPDATE_DATE--, +--record_created +FROM public.recruit_create +WHERE system_update_date = (select max(system_update_date) from public.recruit_create) +and workflow = 'job_recruits_info' +order by record_created desc +limit 1 + N + + + 688 + 320 + + + + + + diff --git a/mappings/info_recruits/recruitment/job_recruitment.hwf b/mappings/info_recruits/recruitment/job_recruitment.hwf new file mode 100644 index 0000000..2c7cb84 --- /dev/null +++ b/mappings/info_recruits/recruitment/job_recruitment.hwf @@ -0,0 +1,144 @@ + + + job_recruitment + Y + + + + - + 2024/08/16 15:32:20.489 + - + 2024/08/16 15:32:20.489 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 96 + 224 + + + + Success + + SUCCESS + + N + 768 + 224 + + + + recruitment.hpl + + PIPELINE + + N + N + N + N + N + Y + ${PROJECT_HOME}/info_recruits/recruitment/recruitment.hpl + + + Basic + + + CR_DATE + CREATE_DATE + + + Y + + Y + local + N + N + Y + N + 592 + 224 + + + + recruitment_param_create_date.hpl + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/recruitment/recruitment_param_create_date.hpl + Basic + + Y + + N + local + N + N + Y + N + 336 + 224 + + + + + + recruitment.hpl + Success + Y + Y + N + + + Start + recruitment_param_create_date.hpl + Y + Y + Y + + + recruitment_param_create_date.hpl + recruitment.hpl + Y + Y + N + + + + + + + METASTORE.pentaho + + Default Run Configuration + {"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null} + + + + {"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"} + + Pentaho local + {"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"pentaho","value":"N"},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]} + + + + diff --git a/mappings/info_recruits/disease.hpl b/mappings/info_recruits/recruitment/recruitment.hpl similarity index 61% rename from mappings/info_recruits/disease.hpl rename to mappings/info_recruits/recruitment/recruitment.hpl index 6ab0984..9a82266 100644 --- a/mappings/info_recruits/disease.hpl +++ b/mappings/info_recruits/recruitment/recruitment.hpl @@ -1,7 +1,7 @@ - disease + recruitment Y @@ -42,26 +42,44 @@ none - 10000 + 100 ervu-dashboard = - recruit_id - recruit_id - - - - = - reg_date - reg_date - + idm_id + idm_id ervu_dashboard - disease
+ recruitment
- recruit_id - recruit_id + id + id + Y + + + parent_id + parent_id + Y + + + schema + schema + Y + + + shortname + shortname + Y + + + updated_at + updated_at + Y + + + idm_id + idm_id N @@ -70,25 +88,30 @@ Y - name - name + created_at + created_at Y - reg_date - reg_date + hidden + hidden Y - has_disease - has_disease + enabled + enabled + Y + + + reports_enabled + reports_enabled Y
N - 448 + 512 208 @@ -103,30 +126,37 @@ none - ervu_person_registry + postgres.subpoena N 0 - with zdorov as (select ri.recruit_id, - jsonb_array_elements( - ri.info -> 'svedFL' -> 'svedSostZdorov' -> 'svedZdorov' -> - 'sostZdorov') z, - case - when ri.info -> 'svedFL' -> 'svedSostZdorov' -> 'svedZdorov' ->> - 'priznakNalichSved' = '1' - then true - else false end as has_disease - from public.recruits_info ri - join public.recruits r - ON r.id = ri.recruit_id - AND r.system_update_date >= '${UP_D}' - where jsonb_typeof(ri.info -> 'svedFL' -> 'svedSostZdorov' -> 'svedZdorov' -> - 'sostZdorov') = 'array') -select recruit_id, - z ->> 'kodZabol' code, - z ->> 'naimZabol' name, - has_disease, - to_date(z ->> 'dataDiagn', 'YYYY-MM-DD') reg_date -from zdorov; + SELECT + rt.id, + rt.fullname as shortname, + rt.parent_id, + rt.idm_id, + rt.schema, + rt.military_code AS code, + rt.created_at, + rt.updated_at, + rt.hidden, + rt.enabled, + rt.reports_enabled--, + --ROW_NUMBER() OVER (ORDER BY rt.idm_id) AS rn_recruitment +FROM + public.recruitment rt +WHERE + rt.idm_id ~ '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$' + AND '${CR_DATE}' < rt.created_at + AND (rt.schema = 'Ministry' OR (rt.schema IS NOT NULL AND rt.parent_id IS NOT NULL)) + AND rt.hidden IS NOT TRUE + AND ( + rt.fullname ILIKE '%военный%' + OR + rt.fullname ILIKE '%округ%' + OR + rt.fullname ILIKE '%министерство%' +) + AND rt.fullname NOT ILIKE '%тест%' Y @@ -157,15 +187,15 @@ from zdorov; N ervu_dashboard N - disease
+ recruitment
N Y N Y - 464 - 64 + 480 + 320 diff --git a/mappings/mil_com/parameters/row_idm_schema.hpl b/mappings/info_recruits/recruitment/recruitment_param_create_date.hpl similarity index 81% rename from mappings/mil_com/parameters/row_idm_schema.hpl rename to mappings/info_recruits/recruitment/recruitment_param_create_date.hpl index 558ea9b..45843bc 100644 --- a/mappings/mil_com/parameters/row_idm_schema.hpl +++ b/mappings/info_recruits/recruitment/recruitment_param_create_date.hpl @@ -1,7 +1,7 @@ - row_idm_schema + recruitment_param_create_date Y @@ -13,9 +13,9 @@ 1000 100 - - 2025/01/17 12:15:03.930 + 2025/05/21 17:32:05.740 - - 2025/01/17 12:15:03.930 + 2025/05/21 17:32:05.740 @@ -26,6 +26,23 @@ Y + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 768 + 336 + + Table input TableInput @@ -40,31 +57,16 @@ ervu-dashboard N 0 - SELECT idm_id AS ROW_ID_MIL_COM, -schema AS ROW_SCHEMA -FROM ervu_dashboard.recruitment - + SELECT + CASE + WHEN count(*)>0 THEN max(created_at)::timestamp + ELSE '0001-01-01 00:00:00'::timestamp + END AS CREATE_DATE +FROM ervu_dashboard.recruitment N - 512 - 336 - - - - Copy rows to result - RowsToResult - - Y - - 1 - - none - - - - - 800 + 496 336 diff --git a/mappings/info_recruits/spouse.hpl b/mappings/info_recruits/spouse.hpl deleted file mode 100644 index 8c14d39..0000000 --- a/mappings/info_recruits/spouse.hpl +++ /dev/null @@ -1,295 +0,0 @@ - - - - spouse - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Select values - Table output - N - - - Table input - Select values - Y - - - Select values - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - full_name - full_name - - ervu_dashboard - citizen_spouse
- - recruit_id - recruit_id - N - - - birth_date - birth_date - Y - - - death_az_number - death_az_number - Y - - - death_date - death_date - Y - - - divorce_az_number - divorce_az_number - Y - - - divorce_date - divorce_date - Y - - - full_name - full_name - N - - - information_excluded - information_excluded - Y - - - kinship_type - kinship_type - Y - - - marriage_az_number - marriage_az_number - Y - - - marriage_date - marriage_date - Y - -
- N - - - 704 - 208 - -
- - Select values - SelectValues - - Y - - 1 - - none - - - - N - - marriage_date - marriage_date - Date - -2 - -2 - yyyy-MM-dd - false - - - false - - - - - - - - divorce_date - divorce_date - Date - -2 - -2 - yyyy-MM-dd - false - - - false - - - - - - - - - - 448 - 208 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - 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 public.recruits_info ri - join public.recruits r ON r.id = ri.recruit_id AND r.system_update_date >= '${UP_D}' - 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.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, - divorce_az_number, - divorce_date, - information_excluded -FROM public.recruits r -JOIN suprug ON r.id = suprug.recruit_id - - - Y - - - 192 - 208 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - citizen_spouse
- N - Y - N - Y - - - 688 - 64 - -
- - - Select values - - N - - - - - - - - - - -
diff --git a/mappings/info_recruits/subpoena.hpl b/mappings/info_recruits/subpoena.hpl deleted file mode 100644 index 0c134df..0000000 --- a/mappings/info_recruits/subpoena.hpl +++ /dev/null @@ -1,309 +0,0 @@ - - - - subpoena - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - N - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - subpoena_id - subpoena_id - - - - = - status_change_date - status_change_date - - - ervu_dashboard - subpoena
- - subpoena_id - subpoena_id - N - - - status_change_date - status_change_date - N - - - act_number - act_number - Y - - - address - address - Y - - - appearance - appearance - Y - - - appearance_status - appearance_status - Y - - - create_date - create_date - Y - - - delivery_date - delivery_date - Y - - - delivery_fio - delivery_fio - Y - - - delivery_status - delivery_status - Y - - - department_id - department_id - Y - - - fio_commiss - fio_commiss - Y - - - method_delivery - method_delivery - Y - - - method_sending - method_sending - Y - - - number - number - Y - - - recruit_id - recruit_id - Y - - - recruitment_name - recruitment_name - Y - - - send_date - send_date - Y - - - series - series - Y - - - sig_info - sig_info - Y - - - subpoena_reason - subpoena_reason - Y - - - subpoena_status - subpoena_status - Y - - - track_number - track_number - Y - - - visit_date - visit_date - Y - -
- N - - - 1008 - 400 - -
- - Table input - TableInput - - Y - - 1 - - none - - - postgres.subpoena - N - 0 - SELECT - s.id AS subpoena_id, -- идентификатор повестки - s.status_change_date, - s.recruit_id, -- идентификатор рекрута - s.department_id, -- идентификатор ВК - s.series, -- серия повестки - s.create_date, -- дата создания повестки - s.number, -- номер повестки - s.send_date, -- дата направления повестки - s.sig_info, -- открепленная ЭП - sr.name AS subpoena_reason, -- причина вызова по повестке - s.full_name_responsible_user AS fio_commiss, -- фио комиссара - s.recruitment_name, -- наименование военного комиссариата, направившего повестку - rt.address, -- адрес, по которому нужно явиться по повестке - s.visit_date, -- дата и время явки в ВК - ssi.track_number, -- уникальный номер заказного почтового отправления, которым направлена повестка - ss.name AS subpoena_status, -- статус повестки - ssi.act_number, -- номер акта об отказе во вручении повестки - ssi.delivery_fio, -- фио лица, оповестившего гражданина о последствиях отказа от получения повестки - CASE - WHEN ssi.is_delivered = true THEN ssi.delivery_date - ELSE NULL - END AS delivery_date, -- дата вручения - CASE - WHEN ssi.is_delivered = true THEN 'Вручена' - WHEN ssi.is_delivered = false THEN 'Не вручена' - ELSE 'Нет информации' - END AS delivery_status, -- признак вручения повестки - CASE - WHEN sd.type = 'DIRECTION' THEN sd.name - ELSE NULL - END AS method_sending, -- способ направления повестки - CASE - WHEN sd.type = 'DELIVERY' THEN sd.name - ELSE NULL - END AS method_delivery, -- способ вручения повестки - CASE - WHEN sa.fact_appearance = true THEN 'Явился' - WHEN sa.fact_appearance = false THEN 'Не явился' - ELSE 'Нет информации' - END AS appearance_status, -- признак явки или неявки - CASE - WHEN ss.code = '5.1' THEN 'Неявка по уважительной причине' - WHEN ss.code = '5' THEN 'Гражданин не явился' - ELSE NULL - END AS appearance -- уважительная или нет причина --- нет версии повестки -FROM public.subpoena AS s -LEFT JOIN public.subpoena_reason AS sr - ON sr.id = s.reason_id -LEFT JOIN public.recruitment AS rt - ON rt.id = s.department_id -LEFT JOIN public.subpoena_send_info AS ssi - ON ssi.subpoena_id = s.id -LEFT JOIN public.send_dictionary AS sd - ON sd.code = ssi.send_code -LEFT JOIN public.subpoena_status AS ss - ON ss.id = s.status_id -LEFT JOIN public.subpoena_appearance AS sa - ON sa.subpoena_id = s.id -WHERE s.status_change_date >= '${ST_CH_D}'; - Y - - - 688 - 400 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - subpoena
- N - Y - N - Y - - - 1056 - 688 - -
- - - -
diff --git a/mappings/info_recruits/supportive_jobs/job_create_files.hwf b/mappings/info_recruits/supportive_jobs/job_create_files.hwf new file mode 100644 index 0000000..aa91628 --- /dev/null +++ b/mappings/info_recruits/supportive_jobs/job_create_files.hwf @@ -0,0 +1,145 @@ + + + job_create_files + Y + + + + - + 2025/05/26 16:45:11.777 + - + 2025/05/26 16:45:11.777 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 720 + 528 + + + + job_create_files_recruits_info.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/job_create_files_recruits_info.hwf + Nothing + + Y + + N + local + N + N + Y + N + 944 + 528 + + + + Success job_create_files_recruits_info.hwf + + SUCCESS + + N + 1216 + 528 + + + + job_create_files_citizen.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/job_create_files_citizen.hwf + Nothing + + Y + + N + local + N + N + Y + N + 944 + 608 + + + + + + Start + job_create_files_recruits_info.hwf + Y + Y + Y + + + job_create_files_recruits_info.hwf + Success job_create_files_recruits_info.hwf + Y + Y + N + + + Start + job_create_files_citizen.hwf + Y + Y + Y + + + job_create_files_citizen.hwf + Success job_create_files_recruits_info.hwf + Y + Y + N + + + + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 832 + 480 + тут будут все workflow на создание файлов + 247 + + + + diff --git a/mappings/info_recruits/supportive_jobs/job_create_files_for_test.hwf b/mappings/info_recruits/supportive_jobs/job_create_files_for_test.hwf new file mode 100644 index 0000000..640a138 --- /dev/null +++ b/mappings/info_recruits/supportive_jobs/job_create_files_for_test.hwf @@ -0,0 +1,113 @@ + + + job_create_files_for_test + Y + + + + - + 2025/06/04 16:51:54.189 + - + 2025/06/04 16:51:54.189 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 544 + 368 + + + + state_job_citizen_success (2) + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_citizen" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_job_citizen.json + N + 752 + 368 + + + + state_job_recruits_info_success 2 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_recruits_info" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/raw_data/info_recruits/checkpoints/state_job_recruits_info.json + N + 752 + 448 + + + + Success + + SUCCESS + + N + 1008 + 448 + + + + + + Start + state_job_citizen_success (2) + Y + Y + Y + + + Start + state_job_recruits_info_success 2 + Y + Y + Y + + + state_job_citizen_success (2) + Success + Y + Y + N + + + state_job_recruits_info_success 2 + Success + Y + Y + N + + + + + + diff --git a/mappings/info_recruits/job_general_citizen.hwf b/mappings/info_recruits/supportive_jobs/job_recruit_create_date.hwf similarity index 65% rename from mappings/info_recruits/job_general_citizen.hwf rename to mappings/info_recruits/supportive_jobs/job_recruit_create_date.hwf index e4410b7..7e7b7bf 100644 --- a/mappings/info_recruits/job_general_citizen.hwf +++ b/mappings/info_recruits/supportive_jobs/job_recruit_create_date.hwf @@ -1,14 +1,14 @@ - job_general_citizen + job_recruit_create_date Y - - 2025/04/14 16:31:08.086 + 2025/05/29 14:25:10.488 - - 2025/04/14 16:31:08.086 + 2025/05/29 14:25:10.488 @@ -26,36 +26,12 @@ 0 1 N - 480 + 416 352 - job_info_recruits.hwf - - WORKFLOW - - N - N - N - N - ${PROJECT_HOME}/info_recruits/job_info_recruits.hwf - Nothing - - Y - - N - local - N - N - Y - N - 688 - 352 - - - - supportive_count_citizen.hpl + recruit_create_date_person_registry.hpl PIPELINE @@ -65,7 +41,7 @@ N N N - ${PROJECT_HOME}/info_recruits/supportive_count_citizen.hpl + ${PROJECT_HOME}/info_recruits/supportive_jobs/recruit_create_date_person_registry.hpl Basic Y @@ -76,7 +52,7 @@ N Y N - 1008 + 640 352 @@ -86,23 +62,35 @@ SUCCESS N - 1216 + 1152 352 - SQL + row_last_recruit_create_date.hpl - SQL + PIPELINE - ervu-dashboard - N - delete from public.count_citizen - - N - N + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/supportive_jobs/row_last_recruit_create_date.hpl + + + Basic + + Y + + N + local + N + N + Y N - 864 + 912 352 @@ -110,29 +98,22 @@ Start - job_info_recruits.hwf + recruit_create_date_person_registry.hpl Y Y Y - supportive_count_citizen.hpl + recruit_create_date_person_registry.hpl + row_last_recruit_create_date.hpl + Y + Y + N + + + row_last_recruit_create_date.hpl Success Y - N - Y - - - job_info_recruits.hwf - SQL - Y - N - Y - - - SQL - supportive_count_citizen.hpl - Y Y Y diff --git a/mappings/jobs_once_a_day/citizen_criminal_record_once.hpl b/mappings/info_recruits/supportive_jobs/recruit_create_date_person_registry.hpl similarity index 76% rename from mappings/jobs_once_a_day/citizen_criminal_record_once.hpl rename to mappings/info_recruits/supportive_jobs/recruit_create_date_person_registry.hpl index 6cdda36..dcc73d6 100644 --- a/mappings/jobs_once_a_day/citizen_criminal_record_once.hpl +++ b/mappings/info_recruits/supportive_jobs/recruit_create_date_person_registry.hpl @@ -1,7 +1,7 @@ - citizen_criminal_record_once + recruit_create_date_person_registry Y @@ -13,16 +13,16 @@ 1000 100 - - 2025/02/14 11:23:58.362 + 2025/05/29 14:31:18.657 - - 2025/02/14 11:23:58.362 + 2025/05/29 14:31:18.657 Table input - Table output ervu_dashboard.citizen_criminal_record + Table output Y @@ -40,16 +40,23 @@ ervu_person_registry N 0 - SELECT <values> FROM <table name> WHERE <conditions> + SELECT + system_create_date, + system_update_date, + current_timestamp AS record_created, + 'job_general_info_recruits' AS workflow +FROM public.recruits +WHERE system_create_date = (SELECT MAX(system_create_date) FROM public.recruits) +limit 1 N - 384 - 256 + 432 + 352 - Table output ervu_dashboard.citizen_criminal_record + Table output TableOutput Y @@ -67,22 +74,19 @@ N N N - Y - N - ervu_dashboard + public N - citizen_criminal_record
- + recruit_create
N Y N Y - 864 - 256 + 752 + 352
diff --git a/mappings/jobs_once_a_day/supportive_jobs/recruitment_rows.hpl b/mappings/info_recruits/supportive_jobs/recruitment_rows.hpl similarity index 93% rename from mappings/jobs_once_a_day/supportive_jobs/recruitment_rows.hpl rename to mappings/info_recruits/supportive_jobs/recruitment_rows.hpl index f8d3471..5706b5b 100644 --- a/mappings/jobs_once_a_day/supportive_jobs/recruitment_rows.hpl +++ b/mappings/info_recruits/supportive_jobs/recruitment_rows.hpl @@ -57,8 +57,12 @@ ervu-dashboard N 0 - SELECT idm_id AS RECRUITMENT_CITIZEN FROM ervu_dashboard.recruitment ---limit 3 + SELECT +idm_id AS RECRUITMENT, +created_at AS CREATE_DATE +FROM ervu_dashboard.recruitment +order by created_at asc +limit 5 N diff --git a/mappings/info_recruits/supportive_jobs/recruitment_rows_five_flow.hpl b/mappings/info_recruits/supportive_jobs/recruitment_rows_five_flow.hpl new file mode 100644 index 0000000..59d8be1 --- /dev/null +++ b/mappings/info_recruits/supportive_jobs/recruitment_rows_five_flow.hpl @@ -0,0 +1,121 @@ + + + + recruitment_rows_five_flow + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Table input + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 832 + 304 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + WITH ordered AS ( + SELECT + idm_id, + created_at, + ROW_NUMBER() OVER (ORDER BY created_at) AS rn, + COUNT(*) OVER () AS total_rows + from ervu_dashboard.recruitment +), +splitted AS ( + SELECT *, + CEIL(total_rows / 5.0) AS part_size, + FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num, + ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position + FROM ordered +), +pivoted AS ( + SELECT + position, + + MAX(CASE WHEN flow_num = 1 THEN created_at END) AS cr_flow1, + MAX(CASE WHEN flow_num = 1 THEN idm_id::text END) AS idm_flow1, + + MAX(CASE WHEN flow_num = 2 THEN created_at END) AS cr_flow2, + MAX(CASE WHEN flow_num = 2 THEN idm_id::text END) AS idm_flow2, + + MAX(CASE WHEN flow_num = 3 THEN created_at END) AS cr_flow3, + MAX(CASE WHEN flow_num = 3 THEN idm_id::text END) AS idm_flow3, + + MAX(CASE WHEN flow_num = 4 THEN created_at END) AS cr_flow4, + MAX(CASE WHEN flow_num = 4 THEN idm_id::text END) AS idm_flow4, + + MAX(CASE WHEN flow_num = 5 THEN created_at END) AS cr_flow5, + MAX(CASE WHEN flow_num = 5 THEN idm_id::text END) AS idm_flow5 + + FROM splitted + GROUP BY position + ORDER BY position +) +SELECT + cr_flow1, + IDM_FLOW1::uuid, + cr_flow2, + IDM_FLOW2::uuid, + cr_flow3, + IDM_FLOW3::uuid, + cr_flow4, + IDM_FLOW4::uuid, + cr_flow5, + IDM_FLOW5::uuid +FROM pivoted +limit 5 + N + + + 464 + 304 + + + + + + diff --git a/mappings/info_recruits/supportive_jobs/recruitment_rows_five_flow_child.hpl b/mappings/info_recruits/supportive_jobs/recruitment_rows_five_flow_child.hpl new file mode 100644 index 0000000..d51fed4 --- /dev/null +++ b/mappings/info_recruits/supportive_jobs/recruitment_rows_five_flow_child.hpl @@ -0,0 +1,121 @@ + + + + recruitment_rows_five_flow_child + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Table input + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 832 + 304 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + WITH ordered AS ( + SELECT + idm_id, + created_at, + ROW_NUMBER() OVER (ORDER BY created_at) AS rn, + COUNT(*) OVER () AS total_rows + from ervu_dashboard.recruitment +), +splitted AS ( + SELECT *, + CEIL(total_rows / 5.0) AS part_size, + FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num, + ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position + FROM ordered +), +pivoted AS ( + SELECT + position, + + MAX(CASE WHEN flow_num = 1 THEN created_at END) AS cr_flow1, + MAX(CASE WHEN flow_num = 1 THEN idm_id::text END) AS idm_flow1, + + MAX(CASE WHEN flow_num = 2 THEN created_at END) AS cr_flow2, + MAX(CASE WHEN flow_num = 2 THEN idm_id::text END) AS idm_flow2, + + MAX(CASE WHEN flow_num = 3 THEN created_at END) AS cr_flow3, + MAX(CASE WHEN flow_num = 3 THEN idm_id::text END) AS idm_flow3, + + MAX(CASE WHEN flow_num = 4 THEN created_at END) AS cr_flow4, + MAX(CASE WHEN flow_num = 4 THEN idm_id::text END) AS idm_flow4, + + MAX(CASE WHEN flow_num = 5 THEN created_at END) AS cr_flow5, + MAX(CASE WHEN flow_num = 5 THEN idm_id::text END) AS idm_flow5 + + FROM splitted + GROUP BY position + ORDER BY position +) +SELECT + cr_flow1, + IDM_FLOW1::uuid, + cr_flow2, + IDM_FLOW2::uuid, + cr_flow3, + IDM_FLOW3::uuid, + cr_flow4, + IDM_FLOW4::uuid, + cr_flow5, + IDM_FLOW5::uuid +FROM pivoted +limit 3 + N + + + 464 + 304 + + + + + + diff --git a/mappings/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen.hpl b/mappings/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen.hpl new file mode 100644 index 0000000..264def9 --- /dev/null +++ b/mappings/info_recruits/supportive_jobs/recruitment_rows_five_flow_citizen.hpl @@ -0,0 +1,121 @@ + + + + recruitment_rows_five_flow_citizen + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/04/18 09:48:01.970 + - + 2025/04/18 09:48:01.970 + + + + + + Table input + Copy rows to result + Y + + + + Copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 832 + 304 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + WITH ordered AS ( + SELECT + idm_id, + created_at, + ROW_NUMBER() OVER (ORDER BY created_at) AS rn, + COUNT(*) OVER () AS total_rows + from ervu_dashboard.recruitment +), +splitted AS ( + SELECT *, + CEIL(total_rows / 5.0) AS part_size, + FLOOR((rn - 1) / CEIL(total_rows / 5.0)) + 1 AS flow_num, + ((rn - 1) % CEIL(total_rows / 5.0)) + 1 AS position + FROM ordered +), +pivoted AS ( + SELECT + position, + + MAX(CASE WHEN flow_num = 1 THEN created_at END) AS cr_flow1, + MAX(CASE WHEN flow_num = 1 THEN idm_id::text END) AS idm_flow1, + + MAX(CASE WHEN flow_num = 2 THEN created_at END) AS cr_flow2, + MAX(CASE WHEN flow_num = 2 THEN idm_id::text END) AS idm_flow2, + + MAX(CASE WHEN flow_num = 3 THEN created_at END) AS cr_flow3, + MAX(CASE WHEN flow_num = 3 THEN idm_id::text END) AS idm_flow3, + + MAX(CASE WHEN flow_num = 4 THEN created_at END) AS cr_flow4, + MAX(CASE WHEN flow_num = 4 THEN idm_id::text END) AS idm_flow4, + + MAX(CASE WHEN flow_num = 5 THEN created_at END) AS cr_flow5, + MAX(CASE WHEN flow_num = 5 THEN idm_id::text END) AS idm_flow5 + + FROM splitted + GROUP BY position + ORDER BY position +) +SELECT + cr_flow1, + IDM_FLOW1::uuid, + cr_flow2, + IDM_FLOW2::uuid, + cr_flow3, + IDM_FLOW3::uuid, + cr_flow4, + IDM_FLOW4::uuid, + cr_flow5, + IDM_FLOW5::uuid +FROM pivoted +limit 5 + N + + + 464 + 304 + + + + + + diff --git a/mappings/info_recruits/select_delta_time.hpl b/mappings/info_recruits/supportive_jobs/row_last_recruit_create_date.hpl similarity index 66% rename from mappings/info_recruits/select_delta_time.hpl rename to mappings/info_recruits/supportive_jobs/row_last_recruit_create_date.hpl index e5cf5f4..583db88 100644 --- a/mappings/info_recruits/select_delta_time.hpl +++ b/mappings/info_recruits/supportive_jobs/row_last_recruit_create_date.hpl @@ -1,7 +1,7 @@ - select_delta_time + row_last_recruit_create_date Y @@ -13,70 +13,24 @@ 1000 100 - - 2025/01/10 14:32:39.906 + 2025/05/29 15:45:10.478 - - 2025/01/10 14:32:39.906 + 2025/05/29 15:45:10.478 - - Table input - Insert / update - N - Table input Copy rows to result Y + + Copy rows to result + Set variables + Y + - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - select max(update_date) AS UPDATE_DATE -from ervu_dashboard.citizen - N - - - 464 - 240 - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - - - lookup table
-
- N - - - 768 - 384 - -
Copy rows to result RowsToResult @@ -91,7 +45,62 @@ from ervu_dashboard.citizen 768 - 240 + 416 + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + + MAX_RECRUIT_CREATE_DATE + M_R_CR_DATE + GP_WORKFLOW + + + Y + + + 1008 + 416 + + + + Table input + TableInput + + Y + + 1 + + none + + + ervu-dashboard + N + 0 + SELECT + system_create_date AS MAX_RECRUIT_CREATE_DATE--, +--record_created +FROM public.recruit_create +WHERE system_create_date = (select max(system_create_date) from public.recruit_create) +and workflow = 'job_general_info_recruits' +order by record_created desc +limit 1 + N + + + 464 + 416 diff --git a/mappings/info_recruits/temporary_measure.hpl b/mappings/info_recruits/temporary_measure.hpl deleted file mode 100644 index eb30476..0000000 --- a/mappings/info_recruits/temporary_measure.hpl +++ /dev/null @@ -1,230 +0,0 @@ - - - - temporary_measure - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - N - - - Table input - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 10000 - ervu-dashboard - - - = - subpoena_id - subpoena_id - - - ervu_dashboard - temporary_measures
- - applied_fact - applied_fact - Y - - - cancel_date - cancel_date - Y - - - decision_date_cancel - decision_date_cancel - Y - - - decision_date_create - decision_date_create - Y - - - decision_number_cancel - decision_number_cancel - Y - - - decision_number_create - decision_number_create - Y - - - recruit_id - recruit_id - Y - - - recruitment_id - recruitment_id - Y - - - recruitment_name - recruitment_name - Y - - - restriction_name - restriction_name - Y - - - status_measure - status_measure - Y - - - subpoena_id - subpoena_id - N - - - type - type - Y - -
- N - - - 480 - 208 - -
- - Table input - TableInput - - Y - - 1 - - none - - - postgres.subpoena - N - 0 - SELECT - rd.subpoena_id, - rd.vk_id AS recruitment_id, - s.recruit_id, - rds.name AS status_measure, -- статус временной меры - rd.recruitment_name, -- наименоване ВК - rdi.cancel_date, -- дата, с которой отменена временная мера - rn.name AS restriction_name, -- наименование ограничения (тип временной меры) - CASE - WHEN rd.type='CREATE' THEN 'Применение временной меры' - WHEN rd.type='CANCEL' THEN 'Отмена временной меры' - END AS type, -- тип документа ограничения - CASE - WHEN rd.type='CREATE' THEN rd.decision_number - ELSE NULL - END AS decision_number_create, -- номер решения о применении временной меры - CASE - WHEN rd.type='CANCEL' THEN rd.decision_number - ELSE NULL - END AS decision_number_cancel, -- номер решения об отмене временной меры - CASE - WHEN rd.type='CREATE' THEN rd.decision_date - ELSE NULL - END AS decision_date_create, -- дата решения о применении временной меры - CASE - WHEN rd.type='CANCEL' THEN rd.decision_date - ELSE NULL - END AS decision_date_cancel, -- дата решения об отмене временной меры - CASE - WHEN rdi.applied_fact = 'true' THEN 'Временная мера применена' - WHEN rdi.applied_fact = 'false' THEN 'Временная мера не применена' - ELSE 'Нет информации' - END AS applied_fact -- факт применения временной меры -FROM public.restriction_document AS rd -LEFT JOIN public.restriction_document_item AS rdi - ON rdi.restriction_document_create_id = rd.id -LEFT JOIN public.restriction AS rn - ON rn.id = rdi.restriction_id -LEFT JOIN public.restriction_document_status AS rds - ON rds.code = rd.status -LEFT JOIN public.subpoena AS s - ON s.id = rd.subpoena_id -WHERE s.status_change_date >= '${ST_CH_D}' - Y - - - 208 - 208 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - temporary_measures
- N - Y - N - Y - - - 432 - 400 - -
- - - -
diff --git a/mappings/jobs_once_a_day/children_flags.hpl b/mappings/jobs_once_a_day/children_flags.hpl deleted file mode 100644 index f628ad7..0000000 --- a/mappings/jobs_once_a_day/children_flags.hpl +++ /dev/null @@ -1,106 +0,0 @@ - - - - children_flags - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/25 13:09:28.624 - - - 2025/04/25 13:09:28.624 - - - - - - children_flags - Update_children_flags - Y - - - - Update_children_flags - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - has_dead_child - has_dead_child - - - has_minor_child - has_minor_child - - - minors_count - minors - -
- N - Y - - - 512 - 128 - -
- - children_flags - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH age_threshold AS ( - SELECT current_date - interval '18 years' AS cutoff -) -select - recruit_id, - COUNT(*) FILTER (WHERE birth_date > cutoff) AS minors, - bool_or(death_date is not null) as has_dead_child, - bool_or(birth_date > cutoff) as has_minor_child -from citizen_child, age_threshold -group by recruit_id; - N - - - 336 - 128 - - - - - -
diff --git a/mappings/jobs_once_a_day/citizen_appealing_violations_fz53_once.hpl b/mappings/jobs_once_a_day/citizen_appealing_violations_fz53_once.hpl deleted file mode 100644 index 76bd199..0000000 --- a/mappings/jobs_once_a_day/citizen_appealing_violations_fz53_once.hpl +++ /dev/null @@ -1,179 +0,0 @@ - - - - citizen_appealing_violations_fz53_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 11:29:46.684 - - - 2025/02/14 11:29:46.684 - - - - - - Table input - Table output - Y - - - Table input - Update - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - postgres.decision-document-service - N - 0 - SELECT - recruit_id, - appeal_number AS number_appealed, -- номер обжалуемого решения - appeal_date AS date_appealed, -- дата обжалуемого решения - result_number AS case_number, -- номер принятого решения - result_date AS decision_date, -- дата принятия решения - CASE - WHEN result = '1' THEN 'Удовлетворена' - WHEN result = '2' THEN 'Частично удовлетворена' - WHEN result = '3' THEN 'Отказано в удовлетворении' - ELSE NULL - END AS result_appeal, -- код рассмотрения - commission_name AS name_commission, -- наименование комиссии, принявшей решение - reason_for_add_entry AS grounds, -- основание для внесения записи - true AS has_appealing_violations_fz53 -FROM public.appeal_document_dto -WHERE hidden IS FALSE - N - - - 608 - 256 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - recruit_id - recruit_id - - - case_number - case_number - - - date_appealed - date_appealed - - - decision_date - decision_date - - - grounds - grounds - - - name_commission - name_commission - - - number_appealed - number_appealed - - - result_appeal - result_appeal - - - N - N - N - N - - Y - - N - ervu_dashboard - Y - citizen_appealing_violations_fz53
- - N - Y - N - Y - - - 912 - 256 - -
- - Update - Update - - Y - - 1 - - none - - - 100 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - has_appealing_violations_fz53 - has_appealing_violations_fz53 - -
- N - Y - - - 912 - 368 - -
- - - -
diff --git a/mappings/jobs_once_a_day/citizen_complex_filters_once.hpl b/mappings/jobs_once_a_day/citizen_complex_filters_once.hpl deleted file mode 100644 index f781935..0000000 --- a/mappings/jobs_once_a_day/citizen_complex_filters_once.hpl +++ /dev/null @@ -1,27 +0,0 @@ - - - - citizen_complex_filters_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 12:08:11.450 - - - 2025/02/14 12:08:11.450 - - - - - - - - - diff --git a/mappings/jobs_once_a_day/citizen_criminal_liability_fz53_once.hpl b/mappings/jobs_once_a_day/citizen_criminal_liability_fz53_once.hpl deleted file mode 100644 index 5cb4a01..0000000 --- a/mappings/jobs_once_a_day/citizen_criminal_liability_fz53_once.hpl +++ /dev/null @@ -1,178 +0,0 @@ - - - - citizen_criminal_liability_fz53_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 11:26:43.276 - - - 2025/02/14 11:26:43.276 - - - - - - Table input decision-document-service - Table output ervu_dashboard.citizen_criminal_liability_fz53 - Y - - - Table input decision-document-service - Update - Y - - - - Table input decision-document-service - TableInput - - Y - - 1 - - none - - - postgres.decision-document-service - N - 0 - SELECT - recruit_id, - --, -- сведения о факте уголовного преследования - extra_info->>'preTrialNumber' AS case_number_before, -- номер уголовного дела (досудебный) - extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения уголовного дела - extra_info->>'organization' AS body_initiated, -- орган, возбудивший уголовное дело - decision_number AS case_number, -- номер уголовного дела (судебный) - decision_date AS sentence_date, -- дата приговора - extra_info->>'court' AS court_decision, -- суд вынесший приговор - CASE - WHEN extra_info->>'punishment' = '1' THEN 'Штраф' - WHEN extra_info->>'punishment' = '2' THEN 'Обязательные работы' - WHEN extra_info->>'punishment' = '3' THEN 'Арест' - WHEN extra_info->>'punishment' = '4' THEN 'Лишение свободы на определенный срок' - ELSE NULL - END AS type_punishment, -- вид наказания - true has_criminal_liability_fz53 -FROM public.infringement -WHERE hidden IS FALSE -AND type = 'CRIMINAL' - N - - - 464 - 272 - - - - Table output ervu_dashboard.citizen_criminal_liability_fz53 - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - recruit_id - recruit_id - - - case_number_before - case_number_before - - - court_decision - court_decision - - - date_initiation - date_initiation - - - body_initiated - body_initiated - - - sentence_date - sentence_date - - - type_punishment - type_punishment - - - N - N - N - N - - Y - - N - ervu_dashboard - Y - citizen_criminal_liability_fz53
- - N - Y - N - Y - - - 864 - 272 - -
- - Update - Update - - Y - - 1 - - none - - - 100 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - has_criminal_liability_fz53 - has_criminal_liability_fz53 - -
- N - Y - - - 864 - 384 - -
- - - -
diff --git a/mappings/jobs_once_a_day/citizen_diploma_once.hpl b/mappings/jobs_once_a_day/citizen_diploma_once.hpl deleted file mode 100644 index 1b5f94d..0000000 --- a/mappings/jobs_once_a_day/citizen_diploma_once.hpl +++ /dev/null @@ -1,187 +0,0 @@ - - - - citizen_diploma_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/29 15:56:35.792 - - - 2025/04/29 15:56:35.792 - - - - - - Table input - Table output - Y - - - Table output - Dummy (do nothing) - Y - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 608 - 352 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select ri.recruit_id, - to_date(diploma_item->>'dataVyd', 'YYYY-MM-DD') as issue_date, - diploma_item->>'naimOrg' as education_institution_name, - diploma_item->>'kodUrObr' as education_level_code, - diploma_item->>'regNomer' as reg_number, - diploma_item->>'prVUSpecz' = '1' as vus_spec, - diploma_item->>'nomerBlank' as blank_number, - diploma_item->>'seriyaBlank' as blank_series, - diploma_item->'vidDokMinobr'->>'kodVidDok' as doc_type_code_minobr, - diploma_item->'vidDokMinprosv'->>'kodVidDok' as doc_type_code_minprosv, - diploma_item->'svedSpeczMinobr'->>'kodSpecz' as education_speciality_minpobr_code, - diploma_item->'svedSpeczMinprosv'->>'kodSpecz' as education_speciality_minprosv_code -from recruits_info ri - join recruits r - ON ri.recruit_id = r.id - and '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id), - jsonb_array_elements(info->'svedFL'->'svedRObr'->'robr') as diploma_item -where info->'svedFL'->'svedRObr'->'robr' != 'null'; - Y - - - 336 - 208 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - recruit_id - recruit_id - - - issue_date - issue_date - - - education_institution_name - education_institution_name - - - education_level_code - education_level_code - - - reg_number - reg_number - - - vus_spec - vus_spec - - - blank_number - blank_number - - - blank_series - blank_series - - - doc_type_code_minobr - doc_type_code_minobr - - - doc_type_code_minprosv - doc_type_code_minprosv - - - education_speciality_minpobr_code - education_speciality_minpobr_code - - - education_speciality_minprosv_code - education_speciality_minprosv_code - - - N - N - N - N - Y - N - ervu_dashboard - Y - citizen_education_diploma
- N - Y - N - Y - - - 496 - 208 - -
- - - Table output - Dummy (do nothing) - Y - - - - - - - - - - -
diff --git a/mappings/jobs_once_a_day/citizen_education_diplomas_received_once.hpl b/mappings/jobs_once_a_day/citizen_education_diplomas_received_once.hpl deleted file mode 100644 index 6856f3a..0000000 --- a/mappings/jobs_once_a_day/citizen_education_diplomas_received_once.hpl +++ /dev/null @@ -1,130 +0,0 @@ - - - - citizen_education_diplomas_received_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 11:15:24.095 - - - 2025/02/14 11:15:24.095 - - - - - - Table input - Table output - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with vuz as -(select jsonb_array_elements(ri.info->'svedFL'->'svedVUZ'->'vuz') as vuz, - ri.recruit_id recruit_id -from public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') -where jsonb_typeof(ri.info->'svedFL'->'svedVUZ'->'vuz') = 'array' --limit 2 -) -select - r.id recruit_id, - --vuz->'svedOrg'->>'kodTipOrg', - vuz->'svedOrg'->>'naimTipOrg' as type_organization, - vuz->'svedOrg'->>'naimOrg' as name_edu_organization, - vuz->'svedOrg'->>'inn' as inn, - vuz->'svedOrg'->>'kpp' as kpp, - coalesce (vuz->'svedOrg'->>'ogrn', vuz->'svedOrg'->>'ogrnip') as ogrn, - vuz->'svedOrg'->>'adresOrg' as address_edu_organization, - - vuz->>'naimStatus' as student_status, - vuz->>'naimUrovObr' as education_level_org, - vuz->>'nomerKursa' as course_training, - vuz->>'dataZachisl' as receipt_date, - --vuz->>'prPervObuch' , - vuz->>'nomPrikazZachisl' as order_number, - vuz->>'dataPrikazZachisl' as order_date, - --vuz->'svedObrProg'->>'prVUSpecz', - --vuz->'svedObrProg'->>'dataNachObuch', - --vuz->'svedObrProg'->>'kodFormaObuch', - --vuz->'svedObrProg'->>'naimFormaObuch', - --vuz->'svedObrProg'->>'planDataOkonch', - --vuz->'svedObrProg'->'svedSpeczMinobr'->>'kodSpecz', - --vuz->'svedObrProg'->'svedSpeczMinobr'->>'naimSpecz', - --vuz->'svedObrProg'->'svedSpeczMinprosv'->>'kodSpecz', - --vuz->'svedObrProg'->'svedSpeczMinprosv'->>'naimSpecz', - - vuz->'svedVosst'->>'dataVosst' as restore_date, - vuz->'svedVosst'->>'nomPrikazVosst' as order_number_restore, - vuz->'svedVosst'->>'dataPrikazVosst' as order_date_restore -from public.recruits r -join vuz on r.id = vuz.recruit_id - - Y - - - 496 - 320 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - citizen_education_diplomas_received
- - N - Y - N - Y - - - 832 - 320 - -
- - - -
diff --git a/mappings/jobs_once_a_day/citizen_flags.hpl b/mappings/jobs_once_a_day/citizen_flags.hpl deleted file mode 100644 index 0651614..0000000 --- a/mappings/jobs_once_a_day/citizen_flags.hpl +++ /dev/null @@ -1,619 +0,0 @@ - - - - citizen_flags - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/22 16:26:01.929 - - - 2025/04/22 16:26:01.929 - - - - - - children_flags - Update_children_flags - Y - - - opekun_flag - Update_opekun_flag - Y - - - driver_licence_output - Update_driver_licence_flag - Y - - - citizenship_flag_output - Update_citizenship_flag - Y - - - property_flag_output - Update_property_flag - Y - - - deputy_input - Update_deputy_flag - Y - - - has_criminal_prosecution - Update_has_criminal_prosecution - Y - - - criminal_record - Update_criminal_record - Y - - - - Update_children_flags - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - has_dead_child - has_dead_child - - - has_minor_child - has_minor_child - - - minors_count - minors - -
- N - Y - - - 384 - 304 - -
- - Update_citizenship_flag - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - has_russian_citizenship - has_russian_citizenship - - - has_foreign_citizenship - has_foreign_citizenship - -
- N - Y - - - 384 - 672 - -
- - Update_deputy_flag - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - is_deputy - is_deputy - - - is_deputy_candidate - is_deputy_candidate - -
- N - Y - - - 384 - 912 - -
- - Update_driver_licence_flag - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - tractor_license - has_tractor_licence - - - has_driver_license - has_driver_license - -
- N - Y - - - 384 - 560 - -
- - Update_opekun_flag - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - is_guardian - is_guardian - -
- N - Y - - - 384 - 432 - -
- - Update_property_flag - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - has_ground_transport - has_ground_transport - - - has_air_transport - has_air_transport - - - has_water_transport - has_water_transport - - - has_property - has_property - -
- N - Y - - - 384 - 800 - -
- - children_flags - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - WITH age_threshold AS ( - SELECT current_date - interval '18 years' AS cutoff -) -select - recruit_id, - COUNT(*) FILTER (WHERE birth_date > cutoff) AS minors, - bool_or(death_date is not null) as has_dead_child, - bool_or(birth_date > cutoff) as has_minor_child -from citizen_child, age_threshold -group by recruit_id; - N - - - 208 - 304 - - - - citizenship_flag_output - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with foreign_citizenship as ( - select recruit_id, true as has_foreign_citizenship - from citizenship_foreign -) -select - citizenship.recruit_id, - true as has_russian_citizenship, - coalesce(has_foreign_citizenship, false) as has_foreign_citizenship - from citizenship - left join foreign_citizenship - on foreign_citizenship.recruit_id = citizenship.recruit_id -where renunciation_number is null; - N - - - 208 - 672 - - - - deputy_input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - -SELECT - recruit_id, - COALESCE(deputy.deputy, false) AS is_deputy, - NOT COALESCE(deputy.deputy, false) AS is_deputy_candidate -FROM deputy; - N - - - 208 - 912 - - - - driver_licence_output - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - select - recruit_id, - bool_or(not tractor_driver) as has_driver_license, - bool_or(tractor_driver) as has_tractor_licence -from drivers_licence -group by recruit_id; - N - - - 208 - 560 - - - - opekun_flag - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - select distinct - recruit_id, - true as is_guardian - from citizen_guardianship; - N - - - 208 - 432 - - - - property_flag_output - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - select - recruit_id, - bool_or(type_property = 'ground_transportation') as has_ground_transport, - bool_or(type_property = 'air_vehicles') as has_air_transport, - bool_or(type_property = 'water_vehicles') as has_water_transport, - bool_or(type_property = 'realty') as has_property - from property -group by recruit_id; - N - - - 208 - 800 - - - - Update_has_criminal_prosecution - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - - = - recruit_id - recruit_id - - - ervu_dashboard - citizen
- - has_criminal_prosecution - has_criminal_prosecution - -
- N - Y - - - 432 - 1024 - -
- - has_criminal_prosecution - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - -SELECT -distinct -recruit_id, -true as has_criminal_prosecution -FROM prosecution -where close_date is null; - N - - - 208 - 1024 - - - - Update_criminal_record - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - - = - recruit_id - recruit_id - - - ervu_dashboard - citizen
- - serving_sentence - serving_sentence - - - has_sentence - has_sentence - - - has_criminal_record - has_criminal_record - -
- N - Y - - - 432 - 1120 - -
- - criminal_record - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT -recruit_id, -bool_or(start_date < current_date and (release_date isnull or release_date > current_date)) as serving_sentence, -true as has_sentence, -true as has_criminal_record -FROM ervu_dashboard.punishment -group by recruit_id; - N - - - 208 - 1120 - - - - - -
diff --git a/mappings/jobs_once_a_day/citizen_flags.hwf b/mappings/jobs_once_a_day/citizen_flags.hwf deleted file mode 100644 index 2805409..0000000 --- a/mappings/jobs_once_a_day/citizen_flags.hwf +++ /dev/null @@ -1,386 +0,0 @@ - - - citizen_flags - N - - - - 0 - - - 2025/04/25 13:38:56.431 - - - 2025/04/25 13:38:56.431 - - - - - Start - - SPECIAL - - 1 - 12 - 60 - 0 - 0 - N - 0 - 1 - N - 304 - 224 - - - - Success sitizen_flags - - SUCCESS - - N - 1760 - 224 - - - - children_flags.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}\jobs_once_a_day\children_flags.hpl - Basic - - Y - - N - local - N - N - Y - N - 480 - 128 - - - - opekun_flags.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}\jobs_once_a_day\opekun_flags.hpl - Basic - - Y - - N - local - N - N - Y - N - 624 - 128 - - - - driver_licenses_flags.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}\jobs_once_a_day\driver_licenses_flags.hpl - Basic - - Y - - N - local - N - N - Y - N - 768 - 128 - - - - citizenship_flags.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}\jobs_once_a_day\citizenship_flags.hpl - Basic - - Y - - N - local - N - N - Y - N - 928 - 128 - - - - property_flags.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}\jobs_once_a_day\property_flags.hpl - Basic - - Y - - N - local - N - N - Y - N - 1072 - 128 - - - - deputy_flags.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}\jobs_once_a_day\deputy_flags.hpl - Basic - - Y - - N - local - N - N - Y - N - 1200 - 128 - - - - criminal_prosecution_flags.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}\jobs_once_a_day\criminal_prosecution_flags.hpl - Basic - - Y - - N - local - N - N - Y - N - 960 - 224 - - - - criminal_record_flags.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}\jobs_once_a_day\criminal_record_flags.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 1184 - 224 - - - - temporary_measure_flag.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}\jobs_once_a_day\temporary_measure_flag.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 1376 - 224 - - - - subpoena_flags.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}\jobs_once_a_day\subpoena_flags.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 1584 - 224 - - - - - - children_flags.hpl - opekun_flags.hpl - Y - N - Y - - - opekun_flags.hpl - driver_licenses_flags.hpl - Y - N - Y - - - driver_licenses_flags.hpl - citizenship_flags.hpl - Y - N - Y - - - citizenship_flags.hpl - property_flags.hpl - Y - N - Y - - - property_flags.hpl - deputy_flags.hpl - Y - N - Y - - - criminal_prosecution_flags.hpl - criminal_record_flags.hpl - Y - N - Y - - - Start - criminal_prosecution_flags.hpl - Y - Y - Y - - - temporary_measure_flag.hpl - subpoena_flags.hpl - Y - N - Y - - - criminal_record_flags.hpl - temporary_measure_flag.hpl - Y - Y - Y - - - subpoena_flags.hpl - Success sitizen_flags - Y - Y - Y - - - - - - diff --git a/mappings/jobs_once_a_day/citizen_foreign_diploma_once.hpl b/mappings/jobs_once_a_day/citizen_foreign_diploma_once.hpl deleted file mode 100644 index c192220..0000000 --- a/mappings/jobs_once_a_day/citizen_foreign_diploma_once.hpl +++ /dev/null @@ -1,200 +0,0 @@ - - - - citizen_foreign_diploma_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/29 16:01:18.326 - - - 2025/04/29 16:01:18.326 - - - - - - Table input - Table output - Y - - - Table output - Dummy (do nothing) - Y - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 928 - 352 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select ri.recruit_id, - diploma_item->>'kvalif' as qualification, - diploma_item->>'kodOKSM' as oksm_code, - diploma_item->>'naprPod' as study_field, - diploma_item->>'nomSved' as education_certificate_number, - diploma_item->>'kodUrObr' as education_level_code, - to_date(diploma_item->>'dataPriz', 'YYYY-MM-DD') as recognition_date, - diploma_item->>'prVUSpecz' = '1' as vus_spec, - diploma_item->>'regNomDok' as doc_reg_num, - diploma_item->>'serNomDok' as doc_reg_series, - diploma_item->>'naimInoDok' as foreign_doc_name, - diploma_item->>'naimUchZaved' as education_institution_name, - diploma_item->'svedSpeczMinobr'->>'kodSpecz' as education_speciality_minpobr_code, - diploma_item->'svedSpeczMinprosv'->>'kodSpecz' as education_speciality_minprosv_code -from recruits_info ri - join recruits r - ON ri.recruit_id = r.id - and '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id), - jsonb_array_elements(info->'svedFL'->'svedInObr'->'inObr') as diploma_item -where info->'svedFL'->'svedInObr'->'inObr' != 'null'; - Y - - - 656 - 208 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - recruit_id - recruit_id - - - qualification - qualification - - - oksm_code - oksm_code - - - study_field - study_field - - - education_certificate_number - education_certificate_number - - - education_level_code - education_level_code - - - recognition_date - recognition_date - - - vus_spec - vus_spec - - - doc_reg_num - doc_reg_num - - - doc_reg_series - doc_reg_series - - - foreign_doc_name - foreign_doc_name - - - education_institution_name - education_institution_name - - - education_speciality_minpobr_code - education_speciality_minpobr_code - - - education_speciality_minprosv_code - education_speciality_minprosv_code - - - N - N - N - N - - Y - - N - ervu_dashboard - Y - citizen_foreign_education_diploma
- - N - Y - N - Y - - - 816 - 208 - -
- - - Table output - Dummy (do nothing) - Y - - - - - - - - - - -
diff --git a/mappings/jobs_once_a_day/citizen_foreign_once.hpl b/mappings/jobs_once_a_day/citizen_foreign_once.hpl deleted file mode 100644 index 4007ee2..0000000 --- a/mappings/jobs_once_a_day/citizen_foreign_once.hpl +++ /dev/null @@ -1,179 +0,0 @@ - - - - citizen_foreign_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - Y - - - Table input 2 - Table output 2 - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with citizen as -(select jsonb_array_elements(ri.info->'svedFL'->'svedIGPP'->'svedIG') cit, - ri.recruit_id -from public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') -where jsonb_typeof(ri.info->'svedFL'->'svedIGPP'->'svedIG') = 'array') -select - r.id recruit_id, - cit->'oksm'->>'naimOKSM' country_name, - cit->>'osnovPriobrIG' citizenship_basis, - to_date(cit->>'dataPriobrIG', 'YYYY-MM-DD') citizenship_date -from public.recruits r -join citizen on r.id = citizen.recruit_id; - Y - - - 208 - 208 - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with citizen as -(select jsonb_array_elements(ri.info->'svedFL'->'svedIGPP'->'svedPP') cit, - ri.recruit_id -from public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') -where jsonb_typeof(ri.info->'svedFL'->'svedIGPP'->'svedPP') = 'array') -select - r.id recruit_id, - cit->'oksm'->>'naimOKSM' country_name, - cit->>'osnovPriobrPP' residense_right_basis, - to_date(cit->>'dataPriobrPP', 'YYYY-MM-DD') residense_right_date -from public.recruits r -join citizen on r.id = citizen.recruit_id; - Y - - - 208 - 304 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - citizenship_foreign
- - N - Y - N - Y - - - 672 - 208 - -
- - Table output 2 - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - citizenship_foreign
- - N - Y - N - Y - - - 672 - 304 - -
- - - -
diff --git a/mappings/jobs_once_a_day/citizen_individual_decisions_once.hpl b/mappings/jobs_once_a_day/citizen_individual_decisions_once.hpl deleted file mode 100644 index 2be7224..0000000 --- a/mappings/jobs_once_a_day/citizen_individual_decisions_once.hpl +++ /dev/null @@ -1,27 +0,0 @@ - - - - citizen_individual_decisions_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 12:09:58.568 - - - 2025/02/14 12:09:58.568 - - - - - - - - - diff --git a/mappings/jobs_once_a_day/citizen_information_search_once.hpl b/mappings/jobs_once_a_day/citizen_information_search_once.hpl deleted file mode 100644 index 0b8f469..0000000 --- a/mappings/jobs_once_a_day/citizen_information_search_once.hpl +++ /dev/null @@ -1,27 +0,0 @@ - - - - citizen_information_search_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 11:25:30.220 - - - 2025/02/14 11:25:30.220 - - - - - - - - - diff --git a/mappings/jobs_once_a_day/citizen_kolledzh_once.hpl b/mappings/jobs_once_a_day/citizen_kolledzh_once.hpl deleted file mode 100644 index 9f19331..0000000 --- a/mappings/jobs_once_a_day/citizen_kolledzh_once.hpl +++ /dev/null @@ -1,276 +0,0 @@ - - - - citizen_kolledzh_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/28 19:08:50.902 - - - 2025/04/28 19:08:50.902 - - - - - - Table input - Table output - Y - - - Table output - Dummy (do nothing) - N - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 656 - 368 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select ri.recruit_id, - kolledzh_item->'svedOrg'->>'inn' as inn, - kolledzh_item->'svedOrg'->>'kpp' as kpp, - coalesce(kolledzh_item->'svedOrg'->>'ogrn', kolledzh_item->'svedOrg'->>'ogrnip') as ogrn, - kolledzh_item->'svedOrg'->>'naimOrg' as educational_institution_name, - kolledzh_item->'svedOrg'->>'adresOrg' as educational_institution_address, - kolledzh_item->'svedOrg'->>'kodTipOrg' as educational_institution_type_code, - kolledzh_item->>'kodStatus' as education_status_code, - to_date(kolledzh_item->'svedVosst'->>'dataVosst', 'YYYY-MM-DD') as recovery_date, - to_date(kolledzh_item->'svedVosst'->>'nomPrikazVosstnomPrikazVosst', 'YYYY-MM-DD') as recovery_order_date, - kolledzh_item->'svedVosst'->>'nomPrikazVosst' recovery_order_number, - kolledzh_item->>'kodUrovObr' as education_level_code, - kolledzh_item->>'nomerKursa' as grade_number, - to_date(kolledzh_item->'svedOtpusk'->0->>'dataNach', 'YYYY-MM-DD') as leave_start_date, - to_date(kolledzh_item->'svedOtpusk'->0->>'dataOkonch', 'YYYY-MM-DD') as leave_end_date, - kolledzh_item->'svedOtpusk'->0->>'kodPrichOtpusk' as leave_reason_code, - to_date(kolledzh_item->>'dataZachisl', 'YYYY-MM-DD') as admission_date, - kolledzh_item->>'prPervObuch' = '1' as first_education, - kolledzh_item->'svedObrProg'->>'prVUSpecz' = '1' as vus_spec, - to_date(kolledzh_item->'svedObrProg'->>'dataNachObuch', 'YYYY-MM-DD') as education_start_date, - kolledzh_item->'svedObrProg'->>'kodFormaObuch' as education_form_code, - to_date(kolledzh_item->'svedObrProg'->>'planDataOkonch', 'YYYY-MM-DD') as planned_education_end_date, - kolledzh_item->'svedObrProg'->'svedSpeczMinobr'->>'kodSpecz' as minobr_spec_code, - kolledzh_item->'svedObrProg'->'svedSpeczMinprosv'->>'kodSpecz' as minprosv_spec_code, - to_date(kolledzh_item->'svedObrProg'->'svedOtchisl'->>'dataOtchisl', 'YYYY-MM-DD') as expulsion_date, - to_date(kolledzh_item->'svedObrProg'->'svedOtchisl'->>'dataPrikazOtchisl', 'YYYY-MM-DD') as expulsion_order_date, - kolledzh_item->'svedObrProg'->'svedOtchisl'->>'nomPrikazOtchisl' as expulsion_order_number, - to_date(kolledzh_item->>'dataPrikazZachisl', 'YYYY-MM-DD') as admission_order_date, - kolledzh_item->>'nomPrikazZachisl' as admission_order_number -from recruits_info ri, - --join recruits r - --ON ri.recruit_id = r.id - --and '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id), - jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') as kolledzh_item -where info->'svedFL'->'svedKolledzh'->'kolledzh' != 'null'; - - N - - - 384 - 192 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - recruit_id - recruit_id - - - inn - inn - - - kpp - kpp - - - ogrn - ogrn - - - educational_institution_name - educational_institution_name - - - educational_institution_address - educational_institution_address - - - educational_institution_type_code - educational_institution_type_code - - - education_status_code - education_status_code - - - recovery_date - recovery_date - - - recovery_order_date - recovery_order_date - - - recovery_order_number - recovery_order_number - - - education_level_code - education_level_code - - - grade_number - grade_number - - - leave_start_date - leave_start_date - - - leave_end_date - leave_end_date - - - leave_reason_code - leave_reason_code - - - admission_date - admission_date - - - first_education - first_education - - - vus_spec - vus_spec - - - education_start_date - education_start_date - - - education_form_code - education_form_code - - - planned_education_end_date - planned_education_end_date - - - minobr_spec_code - minobr_spec_code - - - minprosv_spec_code - minprosv_spec_code - - - expulsion_date - expulsion_date - - - expulsion_order_date - expulsion_order_date - - - expulsion_order_number - expulsion_order_number - - - admission_order_date - admission_order_date - - - admission_order_number - admission_order_number - - - N - N - N - N - - Y - - N - ervu_dashboard - Y - citizen_education
- - N - Y - N - Y - - - 560 - 192 - -
- - - Table output - Dummy (do nothing) - Y - - - - - - - - - - -
diff --git a/mappings/jobs_once_a_day/citizen_liability_fz53_once.hpl b/mappings/jobs_once_a_day/citizen_liability_fz53_once.hpl deleted file mode 100644 index 17b6678..0000000 --- a/mappings/jobs_once_a_day/citizen_liability_fz53_once.hpl +++ /dev/null @@ -1,209 +0,0 @@ - - - - citizen_liability_fz53_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/22 17:49:36.858 - - - 2025/04/22 17:49:36.858 - - - - - - Table input decision-document-service - Table output ervu_dashboard.citizen_liability_fz53 - Y - - - Table input decision-document-service - Update - Y - - - - Table input decision-document-service - TableInput - - Y - - 1 - - none - - - postgres.decision-document-service - N - 0 - SELECT - recruit_id, - extra_info->>'preTrialNumber' AS case_number_before, -- номер дела об административном правонарушении (досудебный) - extra_info->>'createInfringementDate' AS date_initiation, -- дата возбуждения дела об административном правонарушении - extra_info->>'organization' AS body_initiated, -- орган, возбудивший дело об административном правонарушении - decision_number AS case_number, -- номер дела об административном правонарушении - decision_date AS date_resolution, -- дата постановления - extra_info->>'reasonForAddEntry' AS article_koap_rf, -- пункт, часть, статья КоАП РФ - extra_info->>'court' AS court_decision, -- суд, вынесший постановление - extra_info->>'vkName' AS name_vc, -- военкомат, принявший решение о применении мер - CASE - WHEN decision_reason = '1' THEN 'Неисполнение гражданами обязанностей по воинскому учету' - WHEN decision_reason = '2' THEN 'Уклонение от медицинского обследования' - WHEN decision_reason = '3' THEN 'Умышленные порча или утрата документов воинского учета' - ELSE NULL - END AS reason_use, -- причина применения - extra_info->>'dateApplication' AS start_date, -- дата с которой наложена мера - extra_info->>'description' AS size_term_punishment, -- размер и срок наказания - CASE - WHEN extra_info->>'punishment' = '1' THEN 'Предупреждение' - WHEN extra_info->>'punishment' = '2' THEN 'Административный штраф' - ELSE NULL - END AS type_punishment, -- вид наказания - true AS has_liability_fz53 -FROM public.infringement -WHERE hidden IS FALSE -AND type = 'ADMINISTRATIVE' - N - - - 608 - 288 - - - - Table output ervu_dashboard.citizen_liability_fz53 - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - recruit_id - recruit_id - - - article_koap_rf - article_koap_rf - - - body_initiated - body_initiated - - - case_number - case_number - - - case_number_before - case_number_before - - - court_decision - court_decision - - - date_initiation - date_initiation - - - date_resolution - date_resolution - - - name_vc - name_vc - - - reason_use - reason_use - - - size_term_punishment - size_term_punishment - - - start_date - start_date - - - type_punishment - type_punishment - - - N - N - N - N - - Y - - N - ervu_dashboard - Y - citizen_liability_fz53
- - N - Y - N - Y - - - 1008 - 288 - -
- - Update - Update - - Y - - 1 - - none - - - 100 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - has_liability_fz53 - has_liability_fz53 - -
- N - Y - - - 1008 - 400 - -
- - - -
diff --git a/mappings/jobs_once_a_day/citizen_school_once.hpl b/mappings/jobs_once_a_day/citizen_school_once.hpl deleted file mode 100644 index dceb807..0000000 --- a/mappings/jobs_once_a_day/citizen_school_once.hpl +++ /dev/null @@ -1,193 +0,0 @@ - - - - citizen_school_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/28 19:08:48.700 - - - 2025/04/28 19:08:48.700 - - - - - - Table input - Table output - Y - - - Table output - Dummy (do nothing) - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select ri.recruit_id, - shkola_item->'svedOrg'->>'inn' as inn, - shkola_item->'svedOrg'->>'kpp' as kpp, - coalesce(shkola_item->'svedOrg'->>'ogrn', shkola_item->'svedOrg'->>'ogrnip') as ogrn, - shkola_item->'svedOrg'->>'naimOrg' as educational_institution_name, - shkola_item->'svedOrg'->>'adresOrg' as educational_institution_address, - shkola_item->>'kodStatus' as education_status_code, - '9' as education_level_code, -- костыль - shkola_item->>'klass' as grade_number, - to_date(shkola_item->>'dataPostup', 'YYYY-MM-DD') as admission_date, - to_date(shkola_item->>'dataOkonch', 'YYYY-MM-DD') as planned_education_end_date, - to_date(shkola_item->>'dataPrikazZachisl', 'YYYY-MM-DD') as admission_order_date, - shkola_item->>'nomPrikazZachisl' as admission_order_number -from recruits_info ri - join recruits r - ON ri.recruit_id = r.id - and '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id), - jsonb_array_elements(info->'svedFL'->'svedSHkola'->'shkola') as shkola_item -where info->'svedFL'->'svedSHkola'->'shkola' != 'null'; - - Y - - - 352 - 208 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - recruit_id - recruit_id - - - inn - inn - - - kpp - kpp - - - ogrn - ogrn - - - educational_institution_name - educational_institution_name - - - educational_institution_address - educational_institution_address - - - education_status_code - education_status_code - - - education_level_code - education_level_code - - - grade_number - grade_number - - - admission_date - admission_date - - - planned_education_end_date - planned_education_end_date - - - admission_order_date - admission_order_date - - - admission_order_number - admission_order_number - - - N - N - N - N - Y - N - ervu_dashboard - Y - citizen_education
- N - Y - N - Y - - - 528 - 208 - -
- - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 608 - 352 - - - - - Table output - Dummy (do nothing) - Y - - - - - - - - - - -
diff --git a/mappings/jobs_once_a_day/citizen_sports_categories_once.hpl b/mappings/jobs_once_a_day/citizen_sports_categories_once.hpl deleted file mode 100644 index 2e5f40e..0000000 --- a/mappings/jobs_once_a_day/citizen_sports_categories_once.hpl +++ /dev/null @@ -1,172 +0,0 @@ - - - - citizen_sports_categories_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 11:19:01.880 - - - 2025/02/14 11:19:01.880 - - - - - - Table output - Update - Y - - - Table input - Table output - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - SELECT recruit_id, - (sport_info->'sportRazr'->>'dataPrisv')::date start_date_category, - (sport_info->'sportRazr'->>'dataDeistv')::date as end_date_category, - sport_info->'sportRazr'->>'razryadNaim' as sports_category_name, - sport_info->'sportRazr'->>'sportNaim' as type_sport, - sport_info->>'sportZvan' as sport_title, - case when sport_info->>'sportRazr' != 'null' - then true else false end as having_sport_category, - (case when sport_info->>'sportZvan' != 'null' - then true else false end) as having_sport_title -FROM public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}'), - jsonb_array_elements(ri.info->'svedFL'->'svedSport'->'sport') AS sport_info -WHERE info->'svedFL'->'svedSport'->>'sport' != 'null' - and info->'svedFL'->'svedSport'->>'sport' != '[]'; - Y - - - 208 - 160 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - recruit_id - recruit_id - - - start_date_category - start_date_category - - - end_date_category - end_date_category - - - sports_category_name - sports_category_name - - - type_sport - type_sport - - - sport_title - sport_title - - - N - N - N - N - - Y - - N - ervu_dashboard - Y - citizen_sports_categories
- - N - Y - N - Y - - - 400 - 160 - -
- - Update - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - sports_category - having_sport_category - - - having_sport_title - having_sport_title - -
- N - Y - - - 528 - 160 - -
- - - -
diff --git a/mappings/jobs_once_a_day/citizen_vuz_education_once.hpl b/mappings/jobs_once_a_day/citizen_vuz_education_once.hpl deleted file mode 100644 index 02672be..0000000 --- a/mappings/jobs_once_a_day/citizen_vuz_education_once.hpl +++ /dev/null @@ -1,295 +0,0 @@ - - - - citizen_vuz_education_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/27 19:55:49.026 - - - 2025/04/27 19:55:49.026 - - - - - - vuz_input - Table output - Y - - - Table output - Dummy (do nothing) - N - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 624 - 416 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - recruit_id - recruit_id - - - inn - inn - - - kpp - kpp - - - ogrn - ogrn - - - educational_institution_name - educational_institution_name - - - educational_institution_address - educational_institution_address - - - educational_institution_type_code - educational_institution_type_code - - - education_status_code - education_status_code - - - recovery_date - recovery_date - - - recovery_order_date - recovery_order_date - - - recovery_order_number - recovery_order_number - - - education_level_code - education_level_code - - - grade_number - grade_number - - - leave_start_date - leave_start_date - - - leave_end_date - leave_end_date - - - leave_reason_code - leave_reason_code - - - admission_date - admission_date - - - first_education - first_education - - - vus_spec - vus_spec - - - education_start_date - education_start_date - - - education_form_code - education_form_code - - - planned_education_end_date - planned_education_end_date - - - minobr_spec_code - minobr_spec_code - - - minprosv_spec_code - minprosv_spec_code - - - expulsion_date - expulsion_date - - - expulsion_order_date - expulsion_order_date - - - expulsion_order_number - expulsion_order_number - - - military_education_start_date - military_education_start_date - - - military_education_end_date - military_education_end_date - - - admission_order_date - admission_order_date - - - admission_order_number - admission_order_number - - - military_department_education_start_date - military_department_education_start_date - - - military_department_education_end_date - military_department_education_end_date - - - N - N - N - N - Y - N - ervu_dashboard - Y - citizen_education
- N - Y - N - Y - - - 480 - 304 - -
- - vuz_input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select ri.recruit_id, - vuz_item->'svedOrg'->>'inn' as inn, - vuz_item->'svedOrg'->>'kpp' as kpp, - coalesce(vuz_item->'svedOrg'->>'ogrn', vuz_item->'svedOrg'->>'ogrnip') as ogrn, - vuz_item->'svedOrg'->>'naimOrg' as educational_institution_name, - vuz_item->'svedOrg'->>'adresOrg' as educational_institution_address, - vuz_item->'svedOrg'->>'kodTipOrg' as educational_institution_type_code, - vuz_item->>'kodStatus' as education_status_code, - to_date(vuz_item->'svedVosst'->>'dataVosst', 'YYYY-MM-DD') as recovery_date, - to_date(vuz_item->'svedVosst'->>'nomPrikazVosstnomPrikazVosst', 'YYYY-MM-DD') as recovery_order_date, - vuz_item->'svedVosst'->>'nomPrikazVosst' recovery_order_number, - vuz_item->>'kodUrovObr' as education_level_code, - vuz_item->>'nomerKursa' as grade_number, - to_date(vuz_item->'svedOtpusk'->0->>'dataNach', 'YYYY-MM-DD') as leave_start_date, - to_date(vuz_item->'svedOtpusk'->0->>'dataOkonch', 'YYYY-MM-DD') as leave_end_date, - vuz_item->'svedOtpusk'->0->>'kodPrichOtpusk' as leave_reason_code, - to_date(vuz_item->>'dataZachisl', 'YYYY-MM-DD') as admission_date, - vuz_item->>'prPervObuch' = '1' as first_education, - vuz_item->'svedObrProg'->>'prVUSpecz' = '1' as vus_spec, - to_date(vuz_item->'svedObrProg'->>'dataNachObuch', 'YYYY-MM-DD') as education_start_date, - vuz_item->'svedObrProg'->>'kodFormaObuch' as education_form_code, - to_date(vuz_item->'svedObrProg'->>'planDataOkonch', 'YYYY-MM-DD') as planned_education_end_date, - vuz_item->'svedObrProg'->'svedSpeczMinobr'->>'kodSpecz' as minobr_spec_code, - vuz_item->'svedObrProg'->'svedSpeczMinprosv'->>'kodSpecz' as minprosv_spec_code, - to_date(vuz_item->'svedObrProg'->'svedOtchisl'->>'dataOtchisl', 'YYYY-MM-DD') as expulsion_date, - to_date(vuz_item->'svedObrProg'->'svedOtchisl'->>'dataPrikazOtchisl', 'YYYY-MM-DD') as expulsion_order_date, - vuz_item->'svedObrProg'->'svedOtchisl'->>'nomPrikazOtchisl' as expulsion_order_number, - to_date(vuz_item->'svedVoenObuch'->>'dataNach', 'YYYY-MM-DD') as military_education_start_date, - to_date(vuz_item->'svedVoenObuch'->>'dataOkonch', 'YYYY-MM-DD') as military_education_end_date, - to_date(vuz_item->>'dataPrikazZachisl', 'YYYY-MM-DD') as admission_order_date, - vuz_item->>'nomPrikazZachisl' as admission_order_number, - to_date(vuz_item->'extend'->'svedVoenKaf'->>'dataNach', 'YYYY-MM-DD') as military_department_education_start_date, - to_date(vuz_item->'extend'->'svedVoenKaf'->>'dataOkonch', 'YYYY-MM-DD') as military_department_education_end_date, - to_date(vuz_item->'extend'->'svedVoenKaf'->>'dataOkonch', 'YYYY-MM-DD') is not null as has_military_training_center_education, - to_date(vuz_item->'extend'->'svedVoenKaf'->>'dataOkonch', 'YYYY-MM-DD') is not null as has_military_department_education -from recruits_info ri, - --join recruits r - --ON ri.recruit_id = r.id - -- and '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id), - jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') as vuz_item -where info->'svedFL'->'svedVUZ'->'vuz' != 'null'; - - N - - - 304 - 304 - - - - - Table output - Dummy (do nothing) - N - - - - - - - - - - -
diff --git a/mappings/jobs_once_a_day/citizen_work_activity_once.hpl b/mappings/jobs_once_a_day/citizen_work_activity_once.hpl deleted file mode 100644 index d8b22df..0000000 --- a/mappings/jobs_once_a_day/citizen_work_activity_once.hpl +++ /dev/null @@ -1,289 +0,0 @@ - - - - citizen_work_activity_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 11:02:25.713 - - - 2025/02/14 11:02:25.713 - - - - - - Table input - Table output - Y - - - Table output - Update - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH trud_info AS ( - SELECT - ri.info, - ri.recruit_id::uuid, - case when ri.info->'svedFL'->'svedTrud'->'trudDeyat' IS NULL THEN NULL - WHEN jsonb_typeof(ri.info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' THEN - (ri.info->'svedFL'->'svedTrud'->'trudDeyat'->0) end as trud_deyat, - case when ri.info->'svedFL'->'svedTrud'->'trudDeyat' IS NULL THEN NULL - WHEN jsonb_typeof(ri.info->'svedFL'->'svedTrud'->'trudDeyat'->0->'svedUhodReb') = 'array' - then ri.info->'svedFL'->'svedTrud'->'trudDeyat'->0->'svedUhodReb'->0 end AS parental_leave_info, - coalesce( - ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'aktRabotodat', - ri.info->'svedFL'->'svedRabotodat'->'rabotodat'->'predRabotodat' - ) AS employer, - (CASE - WHEN info->'svedFL'->'svedRegIP'->'regIP' IS NULL THEN NULL - WHEN jsonb_typeof(info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP') = 'array' THEN - (info->'svedFL'->'svedRegIP'->'regIP'->'aktRegIP'->0) - ELSE - info->'svedFL'->'svedRegIP'->'regIP'->'predRegIP' - END) AS reg_ip, - COALESCE( - ri.info->'svedFL'->'svedNPD'->'npd'->'aktNPD', - ri.info->'svedFL'->'svedNPD'->'npd'->'predNPD' - ) AS self_employment - FROM public.recruits_info ri - join public.recruits r - ON r.id = ri.recruit_id - AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') -) -SELECT - ti.recruit_id::uuid, - (ti.trud_deyat->>'dataMeropr')::date AS personnel_event_date, - ti.trud_deyat->>'naimTipKadrMeropr' AS personnel_event_type, - case when ti.trud_deyat->>'prAktMestRab' = '1' then true else false end AS current_workplace, - ti.trud_deyat->>'trudFunkcziya' AS position, - ti.trud_deyat->'svedOrg'->>'naimOrg' AS employer_name, - ti.employer->'svedYUL'->>'kpp' AS employer_kpp, - CASE - WHEN ti.employer->>'svedYUL' != 'null' THEN 'Юридическое лицо' - WHEN ti.employer->>'svedIP' != 'null' THEN 'Индивидуальный предприниматель' - END AS employer_category, - COALESCE( - ti.employer->'svedYUL'->>'innyul', - ti.employer->'svedIP'->>'innyfl' - ) AS employer_inn, - ti.employer->'svedYUL'->'svedOPK'->>'region' AS employer_address, - COALESCE( - ti.employer->'svedIP'->>'ogrnip', - ti.employer->'svedYUL'->'extend'->>'ogrn' - ) AS employer_ogrnip, - ti.employer->'extend'->>'tipPodrazdRabotodat' as employer_unit_type, - ti.employer->'extend'->>'adresPodrazdRabotodat' as employer_unit_address, - (ti.parental_leave_info->>'dataNachUhodReb')::date as parental_leave_start_date, - (ti.parental_leave_info->>'dataKonUhodReb')::date as parental_leave_end_date, - case when (ti.parental_leave_info->>'dataNachUhodReb')::date <= current_date - and ((ti.parental_leave_info->>'dataKonUhodReb')::date is null - or (ti.parental_leave_info->>'dataKonUhodReb')::date > current_date) - then true - else false end as parental_leave_active, - (ti.reg_ip->>'dataRegIP')::date as reg_ip_date, - (ti.reg_ip->>'dataINNNed')::date as dereg_ip_date, - ti.reg_ip->>'ogrnip' as ogrnip_ip, - case when ti.reg_ip != 'null' - then true else false end as active_ip, - ti.self_employment->>'dataUchNPD' as reg_self_employment_date, - ti.self_employment->>'dataSnUchNPD' as dereg_self_employment_date, - case when ti.self_employment != 'null' - then true else false end as active_self_employment -FROM trud_info ti - - Y - - - 0 - 0 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - recruit_id - recruit_id - - - employer_category - employer_category - - - organization_name - employer_name - - - inn - employer_inn - - - ogrn - employer_ogrnip - - - kpp - employer_kpp - - - organization_address - employer_address - - - type_separate_division - employer_unit_type - - - address_separate_division - employer_unit_address - - - type_hr_event - personnel_event_type - - - date_hr_event - personnel_event_date - - - job_title - position - - - start_date_parental_leave - parental_leave_start_date - - - end_date_parental_leave - parental_leave_end_date - - - ogrn_ip - ogrnip_ip - - - date_reg_ip - reg_ip_date - - - date_dereg_ip - dereg_ip_date - - - date_reg_self - reg_self_employment_date - - - date_dereg_self - dereg_self_employment_date - - - N - N - N - N - - Y - - N - ervu_dashboard - Y - citizen_work_activity
- - N - Y - N - Y - - - 144 - 0 - -
- - Update - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - employed - current_workplace - - - active_reg_ip - active_ip - - - active_parental_leave - parental_leave_active - - - self_employed - active_self_employment - -
- N - Y - - - 320 - 0 - -
- - - -
diff --git a/mappings/jobs_once_a_day/citizenship_flags.hpl b/mappings/jobs_once_a_day/citizenship_flags.hpl deleted file mode 100644 index 5ebf506..0000000 --- a/mappings/jobs_once_a_day/citizenship_flags.hpl +++ /dev/null @@ -1,104 +0,0 @@ - - - - citizenship_flags - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/25 13:12:27.341 - - - 2025/04/25 13:12:27.341 - - - - - - citizenship_flag_output - Update_citizenship_flag - Y - - - - Update_citizenship_flag - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - has_russian_citizenship - has_russian_citizenship - - - has_foreign_citizenship - has_foreign_citizenship - -
- N - Y - - - 720 - 208 - -
- - citizenship_flag_output - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with foreign_citizenship as ( - select recruit_id, true as has_foreign_citizenship - from citizenship_foreign -) -select - citizenship.recruit_id, - true as has_russian_citizenship, - coalesce(has_foreign_citizenship, false) as has_foreign_citizenship - from citizenship - left join foreign_citizenship - on foreign_citizenship.recruit_id = citizenship.recruit_id -where renunciation_number is null; - N - - - 544 - 208 - - - - - -
diff --git a/mappings/jobs_once_a_day/copy_punishment_and_deferment_once.hwf b/mappings/jobs_once_a_day/copy_punishment_and_deferment_once.hwf deleted file mode 100644 index 994ccc3..0000000 --- a/mappings/jobs_once_a_day/copy_punishment_and_deferment_once.hwf +++ /dev/null @@ -1,1310 +0,0 @@ - - - copy_punishment_and_deferment_once - Y - - - - - - 2025/01/10 15:49:30.690 - - - 2025/01/10 15:49:30.690 - - - - - Start - - SPECIAL - - 1 - 12 - 60 - 0 - 0 - N - 0 - 1 - N - 240 - 1024 - - - - SQL.punishment - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.punishment - N - N - N - 656 - 768 - - - - punishment_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/punishment_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1024 - 768 - - - - Success punishment_once - - SUCCESS - - N - 1424 - 768 - - - - citizen_appealing_violations_fz53_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/citizen_appealing_violations_fz53_once.hpl - Basic - - Y - - N - local - N - N - Y - N - 1008 - 1136 - - - - citizen_criminal_liability_fz53_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/citizen_criminal_liability_fz53_once.hpl - Basic - - Y - - N - local - N - N - Y - N - 1008 - 1072 - - - - Success citizen_criminal_liability_fz53_once - - SUCCESS - - N - 1408 - 1072 - - - - Success citizen_appealing_violations_fz53_once - - SUCCESS - - N - 1408 - 1136 - - - - SQL.citizen_criminal_liability_fz53 - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_criminal_liability_fz53 - N - N - N - 640 - 1072 - - - - SQL.citizen_appealing_violations_fz53 - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_appealing_violations_fz53 - N - N - N - 640 - 1136 - - - - recruitment_rows.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/supportive_jobs/recruitment_rows.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - N - local - N - N - Y - Y - 512 - 848 - - - - SQL.citizen_deferments - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_deferment_right; -delete from ervu_dashboard.citizen_deferment; - - N - N - N - 656 - 704 - - - - deferments_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/deferments_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1200 - 704 - - - - Success - - SUCCESS - - N - 1440 - 704 - - - - deferment_reason_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/deferment_reason_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 912 - 704 - - - - citizen_liability_fz53_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/citizen_liability_fz53_once.hpl - Basic - - Y - - N - local - N - N - Y - N - 1008 - 1200 - - - - SQL.citizen_liability_fz53 - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_liability_fz53 - N - N - N - 640 - 1200 - - - - Success citizen_liability_fz53_once - - SUCCESS - - N - 1408 - 1200 - - - - Success sitizen_flags - - SUCCESS - - N - 1888 - 1296 - - - - children_flags.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}\jobs_once_a_day\children_flags.hpl - Basic - - Y - - N - local - N - N - Y - N - 640 - 1296 - - - - opekun_flags.hpl - - PIPELINE - - N - N - N - N - N - N - C:\WORK\ervu-dashboard-etl-RT\v1_apache-hop dash mapping\jobs_once_a_day\opekun_flags.hpl - Basic - - Y - - N - local - N - N - Y - N - 784 - 1296 - - - - driver_licenses_flags.hpl - - PIPELINE - - N - N - N - N - N - N - C:\WORK\ervu-dashboard-etl-RT\v1_apache-hop dash mapping\jobs_once_a_day\driver_licenses_flags.hpl - Basic - - Y - - N - local - N - N - Y - N - 928 - 1296 - - - - citizenship_flags.hpl - - PIPELINE - - N - N - N - N - N - N - C:\WORK\ervu-dashboard-etl-RT\v1_apache-hop dash mapping\jobs_once_a_day\citizenship_flags.hpl - Basic - - Y - - N - local - N - N - Y - N - 1088 - 1296 - - - - property_flags.hpl - - PIPELINE - - N - N - N - N - N - N - C:\WORK\ervu-dashboard-etl-RT\v1_apache-hop dash mapping\jobs_once_a_day\property_flags.hpl - Basic - - Y - - N - local - N - N - Y - N - 1232 - 1296 - - - - deputy_flags.hpl - - PIPELINE - - N - N - N - N - N - N - C:\WORK\ervu-dashboard-etl-RT\v1_apache-hop dash mapping\jobs_once_a_day\deputy_flags.hpl - Basic - - Y - - N - local - N - N - Y - N - 1360 - 1296 - - - - criminal_prosecution_flags.hpl - - PIPELINE - - N - N - N - N - N - N - C:\WORK\ervu-dashboard-etl-RT\v1_apache-hop dash mapping\jobs_once_a_day\criminal_prosecution_flags.hpl - Basic - - Y - - N - local - N - N - Y - N - 1520 - 1296 - - - - criminal_record_flags.hpl - - PIPELINE - - N - N - N - N - N - N - C:\WORK\ervu-dashboard-etl-RT\v1_apache-hop dash mapping\jobs_once_a_day\criminal_record_flags.hpl - Basic - - Y - - N - local - N - N - Y - N - 1712 - 1296 - - - - id_ern_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}\jobs_once_a_day\id_ern_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 656 - 832 - - - - recruitment_code_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}\jobs_once_a_day\recruitment_code_once.hpl - Basic - - Y - - N - local - N - N - Y - N - 640 - 992 - - - - Success_id_ern - - SUCCESS - - N - 848 - 832 - - - - Success_recruitment_code - - SUCCESS - - N - 848 - 992 - - - - recruit_ervu_status_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/recruit_ervu_status_once.hpl - Basic - - Y - - N - local - N - N - Y - N - 656 - 912 - - - - success_recruit_ervu_sratus - - SUCCESS - - N - 848 - 912 - - - - education_constants_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/education_constants_once.hpl - Basic - - Y - - N - local - N - N - Y - N - 720 - 496 - - - - citizen_vuz_education_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/citizen_vuz_education_once.hpl - Basic - - Y - - N - local - N - N - Y - N - 1024 - 496 - - - - citizen_kolledzh_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/citizen_kolledzh_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - N - local - N - N - Y - N - 1232 - 496 - - - - citizen_school_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/citizen_school_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - N - local - N - N - Y - N - 1088 - 432 - - - - SQL - - SQL - - ervu-dashboard - N - DELETE FROM ervu_dashboard.citizen_education; - N - N - N - 848 - 496 - - - - Success 2 - - SUCCESS - - N - 1232 - 432 - - - - citizen_diploma_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/citizen_diploma_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - N - local - N - N - Y - N - 672 - 432 - - - - citizen_foreign_diploma_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/citizen_foreign_diploma_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - N - local - N - N - Y - N - 880 - 432 - - - - Success 2 2 - - SUCCESS - - N - 1712 - 608 - - - - SQL 2 - - SQL - - ervu-dashboard - N - WITH updated_citizens AS ( - SELECT DISTINCT recruit_id - FROM ervu_dashboard.citizen_education_diploma - UNION - SELECT DISTINCT recruit_id - FROM ervu_dashboard.citizen_foreign_education_diploma -) -UPDATE ervu_dashboard.citizen c -SET - has_education_diploma = EXISTS ( - SELECT 1 FROM ervu_dashboard.citizen_education_diploma ced - WHERE ced.recruit_id = c.recruit_id - ), - has_foreign_education_diploma = EXISTS ( - SELECT 1 FROM ervu_dashboard.citizen_foreign_education_diploma cfed - WHERE cfed.recruit_id = c.recruit_id - ), - educated = ( - EXISTS ( - SELECT 1 FROM ervu_dashboard.citizen_education_diploma ced - WHERE ced.recruit_id = c.recruit_id - ) OR EXISTS ( - SELECT 1 FROM ervu_dashboard.citizen_foreign_education_diploma cfed - WHERE cfed.recruit_id = c.recruit_id - ) - ) -FROM updated_citizens uc -WHERE c.recruit_id = uc.recruit_id; - - N - N - N - 1328 - 608 - - - - SQL 3 - - SQL - - ervu-dashboard - N - UPDATE ervu_dashboard.citizen AS c -SET has_actual_academic_leave = true -FROM ( - SELECT DISTINCT recruit_id - FROM ervu_dashboard.citizen_education - WHERE leave_end_date > current_date -) AS active_leave -WHERE c.recruit_id = active_leave.recruit_id; - - - N - N - N - 1456 - 608 - - - - SQL 4 - - SQL - - ervu-dashboard - N - WITH active_education AS ( - SELECT - recruit_id, - military_education_end_date > current_date AS has_military_training_center_education, - military_department_education_end_date > current_date AS has_military_department_education - FROM ervu_dashboard.citizen_education - GROUP BY recruit_id, military_education_end_date, military_department_education_end_date -) -UPDATE ervu_dashboard.citizen c -SET - has_military_training_center_education = ae.has_military_training_center_education, - has_military_department_education = ae.has_military_department_education -FROM active_education ae -WHERE c.recruit_id = ae.recruit_id - AND ( - c.has_military_training_center_education IS DISTINCT FROM ae.has_military_training_center_education OR - c.has_military_department_education IS DISTINCT FROM ae.has_military_department_education - ); - - - N - N - N - 1584 - 608 - - - - - - SQL.punishment - punishment_once.hpl - Y - Y - N - - - punishment_once.hpl - Success punishment_once - Y - N - Y - - - citizen_criminal_liability_fz53_once.hpl - Success citizen_criminal_liability_fz53_once - Y - N - Y - - - citizen_appealing_violations_fz53_once.hpl - Success citizen_appealing_violations_fz53_once - Y - N - Y - - - SQL.citizen_criminal_liability_fz53 - citizen_criminal_liability_fz53_once.hpl - Y - Y - N - - - Start - SQL.citizen_criminal_liability_fz53 - N - Y - Y - - - SQL.citizen_appealing_violations_fz53 - citizen_appealing_violations_fz53_once.hpl - Y - Y - N - - - Start - SQL.citizen_appealing_violations_fz53 - N - Y - Y - - - Start - recruitment_rows.hpl - N - Y - Y - - - recruitment_rows.hpl - SQL.punishment - N - Y - N - - - deferments_once.hpl - Success - Y - N - Y - - - deferment_reason_once.hpl - deferments_once.hpl - Y - Y - N - - - recruitment_rows.hpl - SQL.citizen_deferments - N - Y - N - - - SQL.citizen_deferments - deferment_reason_once.hpl - Y - Y - N - - - SQL.citizen_liability_fz53 - citizen_liability_fz53_once.hpl - Y - Y - N - - - citizen_liability_fz53_once.hpl - Success citizen_liability_fz53_once - Y - N - Y - - - Start - SQL.citizen_liability_fz53 - N - Y - Y - - - children_flags.hpl - opekun_flags.hpl - Y - N - Y - - - opekun_flags.hpl - driver_licenses_flags.hpl - Y - N - Y - - - driver_licenses_flags.hpl - citizenship_flags.hpl - Y - N - Y - - - citizenship_flags.hpl - property_flags.hpl - Y - N - Y - - - property_flags.hpl - deputy_flags.hpl - Y - N - Y - - - deputy_flags.hpl - criminal_prosecution_flags.hpl - Y - N - Y - - - criminal_prosecution_flags.hpl - criminal_record_flags.hpl - Y - N - Y - - - criminal_record_flags.hpl - Success sitizen_flags - Y - N - Y - - - Start - children_flags.hpl - N - Y - Y - - - Start - recruitment_code_once.hpl - N - Y - Y - - - id_ern_once.hpl - Success_id_ern - Y - Y - N - - - recruitment_code_once.hpl - Success_recruitment_code - Y - Y - N - - - recruitment_rows.hpl - id_ern_once.hpl - N - Y - N - - - Start - recruit_ervu_status_once.hpl - N - Y - Y - - - recruit_ervu_status_once.hpl - success_recruit_ervu_sratus - Y - Y - N - - - education_constants_once.hpl - SQL - Y - N - Y - - - SQL - citizen_vuz_education_once.hpl - Y - Y - N - - - citizen_vuz_education_once.hpl - citizen_kolledzh_once.hpl - Y - N - Y - - - citizen_diploma_once.hpl - citizen_foreign_diploma_once.hpl - Y - N - Y - - - citizen_foreign_diploma_once.hpl - citizen_school_once.hpl - Y - N - Y - - - citizen_school_once.hpl - Success 2 - Y - N - Y - - - Start - citizen_diploma_once.hpl - N - Y - Y - - - citizen_kolledzh_once.hpl - SQL 2 - N - Y - N - - - SQL 2 - SQL 3 - Y - Y - Y - - - Start - SQL 2 - Y - Y - Y - - - SQL 3 - SQL 4 - Y - N - Y - - - SQL 4 - Success 2 2 - Y - Y - Y - - - - - - diff --git a/mappings/jobs_once_a_day/criminal_record_flags.hpl b/mappings/jobs_once_a_day/criminal_record_flags.hpl deleted file mode 100644 index 4bc529f..0000000 --- a/mappings/jobs_once_a_day/criminal_record_flags.hpl +++ /dev/null @@ -1,103 +0,0 @@ - - - - criminal_record_flags - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/25 13:20:20.487 - - - 2025/04/25 13:20:20.487 - - - - - - criminal_record - Update_criminal_record - Y - - - - Update_criminal_record - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - serving_sentence - serving_sentence - - - has_sentence - has_sentence - - - has_criminal_record - has_criminal_record - -
- N - Y - - - 816 - 208 - -
- - criminal_record - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT -recruit_id, -bool_or(start_date < current_date and (release_date isnull or release_date > current_date)) as serving_sentence, -true as has_sentence, -true as has_criminal_record -FROM ervu_dashboard.punishment -group by recruit_id; - N - - - 592 - 208 - - - - - -
diff --git a/mappings/jobs_once_a_day/deferment_reason_once.hpl b/mappings/jobs_once_a_day/deferment_reason_once.hpl deleted file mode 100644 index e8ac9c3..0000000 --- a/mappings/jobs_once_a_day/deferment_reason_once.hpl +++ /dev/null @@ -1,104 +0,0 @@ - - - - deferment_reason_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/20 13:49:26.080 - - - 2025/04/20 13:49:26.080 - - - - - - Table input 2 - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - = - code - code - - - ervu_dashboard - deferment_reason
- - code - code - N - - - value - value - N - - - actual - actual - N - -
- Y - - - 496 - 304 - -
- - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select - code, - value, - true as actual - from ervu_reason_for_deferment - where hidden is false; - N - - - 304 - 304 - - - - - -
diff --git a/mappings/jobs_once_a_day/deferments_once.hpl b/mappings/jobs_once_a_day/deferments_once.hpl deleted file mode 100644 index 440cf60..0000000 --- a/mappings/jobs_once_a_day/deferments_once.hpl +++ /dev/null @@ -1,341 +0,0 @@ - - - - deferments_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/20 11:21:19.116 - - - 2025/04/20 11:21:19.116 - - - - - - deferment_right_input - deferment_right_output - Y - - - deferment_input - deferment_output - Y - - - deferment_right_output - Update - Y - - - deferment_output - Update 2 - Y - - - deferment_output - Dummy (do nothing) - Y - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 768 - 480 - - - - Update - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - has_deferment_right - has_deferment_right - -
- N - Y - - - 720 - 208 - -
- - Update 2 - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - has_deferment - has_active_deferment - - - has_exemption - has_exemption - -
- N - Y - - - 768 - 336 - -
- - deferment_input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select - ddd.recruit_id, - ddd.decision_number, - ddd.type->>'value' as deferment_type, - ddd.decision_date as start_date, - ddd.postponement_date as end_date, - ddd.base_deferment as reason_code, - ddd.type->>'code' = '1' as has_active_deferment, - ddd.type->>'code' = '2' as has_exemption, - not ddd.hidden as active -from decision_deferment_dto ddd - join public.recruits r - ON r.id = ddd.recruit_id - AND '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id) -where hidden is false; - Y - - - 272 - 336 - - - - deferment_output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - recruit_id - recruit_id - - - decision_number - decision_number - - - type - deferment_type - - - start_date - start_date - - - end_date - end_date - - - reason_code - reason_code - - - active - active - - - N - N - N - N - Y - N - ervu_dashboard - Y - citizen_deferment
- N - Y - N - Y - - - 544 - 336 - -
- - deferment_right_input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select - rd.recruit_id, - rd.date_of_information as start_date, - rd.postponement_date as end_date, - erfd.code, - true as has_deferment_right -from recruits_deferment rd - join ervu_reason_for_deferment erfd - on erfd.id = rd.ervu_reason_for_deferment_id - join public.recruits r - ON r.id = rd.recruit_id - AND '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id) -where rd.hidden is false; - Y - - - 272 - 208 - - - - deferment_right_output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - recruit_id - recruit_id - - - start_date - start_date - - - end_date - end_date - - - code - code - - - actual - has_deferment_right - - - N - N - N - N - Y - N - ervu_dashboard - Y - citizen_deferment_right
- N - Y - N - Y - - - 544 - 208 - -
- - - deferment_output - Dummy (do nothing) - Y - - - - - - - - - - -
diff --git a/mappings/jobs_once_a_day/deputy_flags.hpl b/mappings/jobs_once_a_day/deputy_flags.hpl deleted file mode 100644 index 4822243..0000000 --- a/mappings/jobs_once_a_day/deputy_flags.hpl +++ /dev/null @@ -1,98 +0,0 @@ - - - - deputy_flags - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/25 13:15:05.259 - - - 2025/04/25 13:15:05.259 - - - - - - deputy_input - Update_deputy_flag - Y - - - - Update_deputy_flag - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - is_deputy - is_deputy - - - is_deputy_candidate - is_deputy_candidate - -
- N - Y - - - 560 - 240 - -
- - deputy_input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - -SELECT - recruit_id, - COALESCE(deputy.deputy, false) AS is_deputy, - NOT COALESCE(deputy.deputy, false) AS is_deputy_candidate -FROM deputy; - N - - - 384 - 240 - - - - - -
diff --git a/mappings/jobs_once_a_day/deputy_once.hpl b/mappings/jobs_once_a_day/deputy_once.hpl deleted file mode 100644 index fa7c33e..0000000 --- a/mappings/jobs_once_a_day/deputy_once.hpl +++ /dev/null @@ -1,221 +0,0 @@ - - - - deputy_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input 2 - Table output 2 - Y - - - Table input - Insert / update - N - - - Table input - Table output - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - deputy
- - recruit_id - recruit_id - N - - - end_date - end_date - Y - - - information - information - Y - - - period_office - period_office - Y - -
- N - - - 720 - 160 - -
- - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select r.id recruit_id, -ri.info->'svedFL'->'svedDeputat'->'deputat'->>'srokiPolnomochii' period_office, -to_date(ri.info->'svedFL'->'svedDeputat'->'deputat'->>'dataDosrochPrekr', 'YYYY-MM-DD') end_date, -ri.info->'svedFL'->'svedDeputat'->'deputat'->>'svedIzbrDeputatom' information -from public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') -where ri.info->'svedFL'->'svedDeputat'->'deputat'->>'svedIzbrDeputatom' is not null; - Y - - - 432 - 224 - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select r.id recruit_id, -to_date(ri.info->'svedFL'->'svedKandidat'->'kandidat'->>'dataSnyatKandidat', 'YYYY-MM-DD') end_date, -ri.info->'svedFL'->'svedKandidat'->'kandidat'->>'svedRegKandidata' information, -false deputy -from public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') -where ri.info->'svedFL'->'svedKandidat'->>'kandidat' is not null - Y - - - 432 - 320 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - deputy
- - N - Y - N - Y - - - 800 - 224 - -
- - Table output 2 - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - deputy
- - N - Y - N - Y - - - 800 - 320 - -
- - - -
diff --git a/mappings/jobs_once_a_day/disability_once.hpl b/mappings/jobs_once_a_day/disability_once.hpl deleted file mode 100644 index c602ba2..0000000 --- a/mappings/jobs_once_a_day/disability_once.hpl +++ /dev/null @@ -1,312 +0,0 @@ - - - - disability_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - Y - - - Table input 2 - Table output 2 - Y - - - Table output 2 - Update 2 - Y - - - Table output - Update - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select - recruit_id, - case when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='1' then 'I группа' - when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='2' then 'II группа' - when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='3' then 'III группа' - when ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa'='4' then 'ребенок-инвалид' - end disability_group, - ri.info->'svedFL'->'svedInvalid'->'invalid'->>'ustanOrg' organization_name, - to_date(ri.info->'svedFL'->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataUstan', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedFL'->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataSnyat', 'YYYY-MM-DD') close_date, - to_date(ri.info->'svedFL'->'svedInvalid'->'invalid'->'ustanInvalid'->>'dataPodtverzhdPlan', 'YYYY-MM-DD') confirmation_date, - true disability -from public.recruits_info ri - join public.recruits r - ON r.id = ri.recruit_id - AND (r.target_recruitment_id = '${RCRT_C}' or - r.current_recruitment_id = '${RCRT_C}') -where ri.info->'svedFL'->'svedInvalid'->>'invalid' != 'null'; - Y - - - 208 - 208 - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select - recruit_id, - ri.info->'svedNedeesp'->'nedeesposob'->>'naimOrg' organization_name, - to_date(ri.info->'svedNedeesp'->'nedeesposob'->>'dataPrisv', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedNedeesp'->'nedeesposob'->>'dataOtmeny', 'YYYY-MM-DD') close_date, - false disability, - true is_incompetent -from public.recruits_info ri - join public.recruits r - ON r.id = ri.recruit_id - AND (r.target_recruitment_id = '${RCRT_C}' or - r.current_recruitment_id = '${RCRT_C}') -where ri.info->'svedNedeesp'->>'nedeesposob' != 'null'; - Y - - - 208 - 304 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - recruit_id - recruit_id - - - disability_group - disability_group - - - organization_name - organization_name - - - start_date - start_date - - - close_date - close_date - - - confirmation_date - confirmation_date - - - disability - disability - - - N - N - N - N - - Y - - N - ervu_dashboard - Y - disability
- - N - Y - N - Y - - - 416 - 208 - -
- - Table output 2 - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - recruit_id - recruit_id - - - organization_name - organization_name - - - start_date - start_date - - - close_date - close_date - - - disability - disability - - - N - N - N - N - - Y - - N - ervu_dashboard - Y - disability
- - N - Y - N - Y - - - 416 - 304 - -
- - Update - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - has_disability - disability - -
- N - Y - - - 576 - 208 - -
- - Update 2 - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - is_incompetent - is_incompetent - -
- N - Y - - - 576 - 304 - -
- - - -
diff --git a/mappings/jobs_once_a_day/disease_once.hpl b/mappings/jobs_once_a_day/disease_once.hpl deleted file mode 100644 index c4ccb5f..0000000 --- a/mappings/jobs_once_a_day/disease_once.hpl +++ /dev/null @@ -1,168 +0,0 @@ - - - - disease_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - Y - - - Table output - Update - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with zdorov as (select ri.recruit_id, - jsonb_array_elements( - ri.info -> 'svedFL' -> 'svedSostZdorov' -> 'svedZdorov' -> - 'sostZdorov') z, - case - when ri.info -> 'svedFL' -> 'svedSostZdorov' -> 'svedZdorov' ->> - 'priznakNalichSved' = '1' - then true - else false end as has_disease - from public.recruits_info ri - join public.recruits r - ON r.id = ri.recruit_id - AND (r.target_recruitment_id = '${RCRT_C}' or - r.current_recruitment_id = '${RCRT_C}') - where jsonb_typeof(ri.info -> 'svedFL' -> 'svedSostZdorov' -> 'svedZdorov' -> - 'sostZdorov') = 'array') -select recruit_id, - z ->> 'kodZabol' code, - z ->> 'naimZabol' name, - has_disease, - to_date(z ->> 'dataDiagn', 'YYYY-MM-DD') reg_date -from zdorov; - Y - - - 208 - 208 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - recruit_id - recruit_id - - - code - code - - - name - name - - - reg_date - reg_date - - - N - N - N - N - - Y - - N - ervu_dashboard - Y - disease
- - N - Y - N - Y - - - 416 - 208 - -
- - Update - Update - - Y - - 1 - - none - - - 50000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - has_disease - has_disease - -
- N - Y - - - 592 - 208 - -
- - - -
diff --git a/mappings/jobs_once_a_day/driver_licenses_flags.hpl b/mappings/jobs_once_a_day/driver_licenses_flags.hpl deleted file mode 100644 index e8fae90..0000000 --- a/mappings/jobs_once_a_day/driver_licenses_flags.hpl +++ /dev/null @@ -1,98 +0,0 @@ - - - - driver_licenses_flags - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/25 13:11:28.008 - - - 2025/04/25 13:11:28.008 - - - - - - driver_licence_output - Update_driver_licence_flag - Y - - - - Update_driver_licence_flag - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - tractor_license - has_tractor_licence - - - has_driver_license - has_driver_license - -
- N - Y - - - 464 - 320 - -
- - driver_licence_output - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - select - recruit_id, - bool_or(not tractor_driver) as has_driver_license, - bool_or(tractor_driver) as has_tractor_licence -from drivers_licence -group by recruit_id; - N - - - 288 - 320 - - - - - -
diff --git a/mappings/jobs_once_a_day/drivers_licence_once.hpl b/mappings/jobs_once_a_day/drivers_licence_once.hpl deleted file mode 100644 index c3211dc..0000000 --- a/mappings/jobs_once_a_day/drivers_licence_once.hpl +++ /dev/null @@ -1,183 +0,0 @@ - - - - drivers_licence_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - Y - - - Table input 2 - Table output 2 - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select - ri.recruit_id recruit_id, - ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'serNomDok' licence_series, - --ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'nomVodUd' licence_number, - to_date(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'dataVydDok', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->>'srokDeistvDok', 'YYYY-MM-DD') close_date, - array_to_string(array( - select kat->>'naimKatTS' - from jsonb_array_elements(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') as kat - where jsonb_typeof(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array'), ',') categories -from public.recruits r -join public.recruits_info ri on r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') -where jsonb_typeof(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array' - Y - - - 208 - 208 - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select - r.id recruit_id, - ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'serUTM' licence_series, - ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'nomUTM' licence_number, - to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataVydUTM', 'YYYY-MM-DD') start_date, - to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataOkonchUTM', 'YYYY-MM-DD') close_date, - to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataIztUTM', 'YYYY-MM-DD') seizure_date, -- - to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataZameny', 'YYYY-MM-DD') replacement_date,-- - to_date(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataVozvr', 'YYYY-MM-DD') return_date,-- - array_to_string(array( - select kat->>'naimKatTS' - from jsonb_array_elements(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') as kat - where jsonb_typeof(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') = 'array'), ',') categories, - true tractor_driver -from public.recruits r -join public.recruits_info ri on r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') -where ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM' is not null - Y - - - 208 - 304 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - drivers_licence
- - N - Y - N - Y - - - 416 - 208 - -
- - Table output 2 - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - drivers_licence
- - N - Y - N - Y - - - 416 - 304 - -
- - - -
diff --git a/mappings/jobs_once_a_day/education_constants_once.hpl b/mappings/jobs_once_a_day/education_constants_once.hpl deleted file mode 100644 index ed1023a..0000000 --- a/mappings/jobs_once_a_day/education_constants_once.hpl +++ /dev/null @@ -1,1029 +0,0 @@ - - - - education_constants_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/27 10:44:44.077 - - - 2025/04/27 10:44:44.077 - - - - - - education_form_input - education_form_upsert - Y - - - education_form_upsert - Dummy (do nothing) - Y - - - education_leave_reason_input - education_leave_reason_upsert - Y - - - learning_status_input - learning_status_upsert - Y - - - education_level_input - education_level_upsert - Y - - - education_minobr_doc_type_input - education_minobr_doc_type_upsert - Y - - - education_minprosv_doc_type_input - education_minprosv_doc_type_upsert - Y - - - education_institution_type_input - education_institution_type_upsert - Y - - - education_minobr_speciality_input - education_minobr_speciality_upsert - Y - - - education_leave_reason_upsert - Dummy (do nothing) - Y - - - learning_status_upsert - Dummy (do nothing) - Y - - - education_level_upsert - Dummy (do nothing) - Y - - - education_minobr_doc_type_upsert - Dummy (do nothing) - Y - - - education_minprosv_doc_type_upsert - Dummy (do nothing) - Y - - - education_institution_type_upsert - Dummy (do nothing) - Y - - - education_minobr_speciality_upsert - Dummy (do nothing) - Y - - - education_minprosv_speciality_input - education_minprosv_speciality_upsert - Y - - - education_minprosv_speciality_upsert - Dummy (do nothing) - Y - - - country_oksm_input - country_oksm_upsert - Y - - - country_oksm_upsert - Dummy (do nothing) - Y - - - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 928 - 592 - - - - country_oksm_input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select code, - value, - description, - not hidden as actual -from countries_oksm -where code is not null and value is not null; - N - - - 256 - 960 - - - - country_oksm_upsert - InsertUpdate - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - = - code - code - - ervu_dashboard - country_oksm
- - code - code - N - - - value - value - Y - - - description - description - Y - - - actual - actual - Y - -
- N - - - 528 - 960 - -
- - education_form_input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select code, - value, - description, - not hidden as actual -from education_kod_forma_obuch -where code is not null and value is not null; - N - - - 256 - 240 - - - - education_form_upsert - InsertUpdate - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - = - code - code - - ervu_dashboard - education_form
- - code - code - N - - - value - value - Y - - - description - description - Y - - - actual - actual - Y - -
- N - - - 528 - 240 - -
- - education_institution_type_input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select code, - value, - description, - not hidden as actual -from education_kod_tip_org -where code is not null and value is not null; - - N - - - 256 - 720 - - - - education_institution_type_upsert - InsertUpdate - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - = - code - code - - ervu_dashboard - education_institution_type
- - code - code - N - - - value - value - Y - - - description - description - Y - - - actual - actual - Y - -
- N - - - 528 - 720 - -
- - education_leave_reason_input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select code, - value, - description, - not hidden as actual -from education_kod_prich_otpusk -where code is not null and value is not null; - N - - - 256 - 320 - - - - education_leave_reason_upsert - InsertUpdate - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - = - code - code - - - ervu_dashboard - education_leave_reason
- - code - code - N - - - value - value - Y - - - description - description - Y - - - actual - actual - Y - -
- N - - - 528 - 320 - -
- - education_level_input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select code, - value, - description, - not hidden as actual -from education_level -where code is not null and value is not null; - - N - - - 256 - 480 - - - - education_level_upsert - InsertUpdate - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - = - code - code - - ervu_dashboard - education_level
- - code - code - N - - - value - value - Y - - - description - description - Y - - - actual - actual - Y - -
- N - - - 528 - 480 - -
- - education_minobr_doc_type_input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select code, - value, - description, - not hidden as actual -from education_naim_vid_doc_minobr -where code is not null and value is not null; - N - - - 256 - 560 - - - - education_minobr_doc_type_upsert - InsertUpdate - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - = - code - code - - ervu_dashboard - education_minobr_doc_type
- - code - code - N - - - value - value - Y - - - description - description - Y - - - actual - actual - Y - -
- N - - - 528 - 560 - -
- - education_minobr_speciality_input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select extra_info->>'kodSpecz' as code, - extra_info->>'naimSpecz' as value, - description, - not hidden as actual -from education_speciality_minobr -where extra_info->>'kodSpecz' != 'null' and extra_info->>'naimSpecz' != 'null'; - N - - - 256 - 800 - - - - education_minobr_speciality_upsert - InsertUpdate - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - = - code - code - - ervu_dashboard - education_minobr_speciality
- - code - code - N - - - value - value - Y - - - description - description - Y - - - actual - actual - Y - -
- N - - - 528 - 800 - -
- - education_minprosv_doc_type_input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select code, - value, - description, - not hidden as actual -from education_naim_vid_doc_minprosv -where code is not null and value is not null; - N - - - 256 - 640 - - - - education_minprosv_doc_type_upsert - InsertUpdate - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - = - code - code - - ervu_dashboard - education_minprosv_doc_type
- - code - code - N - - - value - value - Y - - - description - description - Y - - - actual - actual - Y - -
- N - - - 528 - 640 - -
- - education_minprosv_speciality_input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select extra_info->>'kodSpecz' as code, - extra_info->>'naimSpecz' as value, - description, - not hidden as actual -from education_speciality_minprosv -where extra_info->>'kodSpecz' != 'null' and extra_info->>'naimSpecz' != 'null'; - - N - - - 256 - 880 - - - - education_minprosv_speciality_upsert - InsertUpdate - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - = - code - code - - ervu_dashboard - education_minprosv_speciality
- - code - code - N - - - value - value - Y - - - description - description - Y - - - actual - actual - Y - -
- N - - - 528 - 880 - -
- - learning_status_input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select code, - value, - description, - not hidden as actual -from education_kod_status -where code is not null and value is not null; - - N - - - 256 - 400 - - - - learning_status_upsert - InsertUpdate - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - = - code - code - - ervu_dashboard - learning_status
- - code - code - N - - - value - value - Y - - - description - description - Y - - - actual - actual - Y - -
- N - - - 528 - 400 - -
- - - country_oksm_upsert - Dummy (do nothing) - Y - - - - - - - - - - education_form_upsert - Dummy (do nothing) - Y - - - - - - - - - - education_institution_type_upsert - Dummy (do nothing) - Y - - - - - - - - - - education_leave_reason_upsert - Dummy (do nothing) - Y - - - - - - - - - - education_level_upsert - Dummy (do nothing) - Y - - - - - - - - - - education_minobr_doc_type_upsert - Dummy (do nothing) - Y - - - - - - - - - - education_minobr_speciality_upsert - Dummy (do nothing) - Y - - - - - - - - - - education_minprosv_doc_type_upsert - Dummy (do nothing) - Y - - - - - - - - - - education_minprosv_speciality_upsert - Dummy (do nothing) - Y - - - - - - - - - - learning_status_upsert - Dummy (do nothing) - Y - - - - - - - - - - -
diff --git a/mappings/jobs_once_a_day/id_ern_once.hpl b/mappings/jobs_once_a_day/id_ern_once.hpl deleted file mode 100644 index 0ba343d..0000000 --- a/mappings/jobs_once_a_day/id_ern_once.hpl +++ /dev/null @@ -1,91 +0,0 @@ - - - - id_ern_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/26 13:25:08.953 - - - 2025/04/26 13:25:08.953 - - - - - - Table input - Update - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select id, system_id_ern as id_ern - from recruits as r - where '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id); - Y - - - 352 - 240 - - - - Update - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - id - - ervu_dashboard - citizen
- - id_ern - id_ern - -
- N - Y - - - 528 - 240 - -
- - - -
diff --git a/mappings/jobs_once_a_day/incident_once.hpl b/mappings/jobs_once_a_day/incident_once.hpl deleted file mode 100644 index 8ec0b85..0000000 --- a/mappings/jobs_once_a_day/incident_once.hpl +++ /dev/null @@ -1,27 +0,0 @@ - - - - incident_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/02/14 12:11:41.789 - - - 2025/02/14 12:11:41.789 - - - - - - - - - diff --git a/mappings/jobs_once_a_day/info_recruits.hpl b/mappings/jobs_once_a_day/info_recruits.hpl deleted file mode 100644 index 6a044a4..0000000 --- a/mappings/jobs_once_a_day/info_recruits.hpl +++ /dev/null @@ -1,759 +0,0 @@ - - - - info_recruits - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 394 - 960 - 16 - acquired_citizenship -address_actual -address_place_stay -city_birth -date_info_actual -date_loss_info_actual -died_date -dispensary_registration_code -email -end_date_place_stay -end_date_residence -inn -is_in_prison -medic -medical_requirements -region_birth -residence -right_deferment -snils -source_info_actual -start_date_place_stay -start_date_residence -took_break -type_place_stay - 163 - - - - - Select values 4 - Table output - N - - - Table input - Select values 4 - Y - - - Select values 4 - Insert / update - Y - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - recruit_id - recruit_id - N - - - age - age - Y - - - birth_date - birth_date - Y - - - birth_place - birth_place - Y - - - contract_service - contract_service - Y - - - deferment_liberation - deferment_liberation - Y - - - disability_group - disability_group - Y - - - driver_license - driver_license - Y - - - education - education - Y - - - employment - employment - Y - - - first_name - first_name - Y - - - full_name - full_name - Y - - - gender - gender - Y - - - is_registered - is_registered - Y - - - is_wanted - is_wanted - Y - - - issue_date - issue_date - Y - - - last_name - last_name - Y - - - marital_status - marital_status - Y - - - middle_name - middle_name - Y - - - mobilization - mobilization - Y - - - number_children - number_children - Y - - - number_children_18_old - number_children_18_old - Y - - - passport_number - passport_number - Y - - - passport_series - passport_series - Y - - - phone - phone - Y - - - reason_registration - reason_registration - Y - - - recruitment_id - recruitment_id - Y - - - sports_category - sports_category - Y - - - tractor_license - tractor_license - Y - - - update_date - update_date - Y - - - urgent_service - urgent_service - Y - -
- N - - - 688 - 208 - -
- - Select values 4 - SelectValues - - Y - - 1 - - none - - - - N - - issue_date - issue_date - Date - -2 - -2 - yyyy-MM-dd - false - - - false - - - - - - - - - - 448 - 208 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedDeti'->'rebenok') AS child - FROM - public.recruits_info ri - WHERE - jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM - extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_16 - FROM - children_birth_dates - WHERE - AGE(make_date(year, month, day)) < interval '16 years' - GROUP BY - recruit_id -), -registration_reasons AS ( - SELECT mrr.value AS reason_registration, - r.id AS recruit_id - FROM public.recruits AS r - JOIN public.military_registration_reason AS mrr - ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) -), - -driver_license AS ( - SELECT - ri.recruit_id, - COALESCE( - string_agg(sved_vodit->>'kategoriya', ', '), - 'Нет информации' - ) AS driver_license - FROM - public.recruits_info ri - LEFT JOIN LATERAL - jsonb_array_elements(ri.info->'svedVoditUdost'->'voditUdost'->'svedKat') AS sved_vodit - ON true - GROUP BY ri.recruit_id -), - -sports_category AS ( -- проверка на наличие спортивного разряда или звания - SELECT - ri.recruit_id, - CASE - WHEN - -- Условия для "true" (спортивная категория) - ri.info->'svedSport' ? 'sport' -- Проверяем, что ключ 'sport' существует - AND jsonb_typeof(ri.info->'svedSport'->'sport') = 'array' -- Проверяем, что 'sport' это массив - AND jsonb_array_length(ri.info->'svedSport'->'sport') > 0 -- И массив не пустой - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedSport'->'sport') AS sport_elem - WHERE - ( - -- Проверяем, что 'sportRazr' существует и срок действия актуален - jsonb_typeof(sport_elem->'sportRazr') = 'object' - AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL - AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') > CURRENT_DATE - ) - OR ( - -- Проверяем, что 'sportZvan' существует и не пусто - sport_elem->>'sportZvan' IS NOT NULL - AND sport_elem->>'sportZvan' <> '' - ) - OR ( - -- Проверяем, что 'sportRazr' существует и срок действия истек - jsonb_typeof(sport_elem->'sportRazr') = 'object' - AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL - AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') <= CURRENT_DATE - ) - ) - AND ri.info->'svedSport'->>'prOtsSvedSport' IS NULL - THEN true - - WHEN - -- Условия для "false" (не является спортивной категорией) - ( - ri.info->'svedSport'->'sport' IS NULL -- Если 'sport' = NULL - OR ( - ri.info->'svedSport' ? 'sport' -- Проверяем, что ключ 'sport' существует - AND jsonb_typeof(ri.info->'svedSport'->'sport') = 'array' -- Поле 'sport' должно быть массивом - AND jsonb_array_length(ri.info->'svedSport'->'sport') > 0 -- И массив не пустой - ) - ) - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedSport'->'sport') AS sport_elem - WHERE - ( - -- Проверяем 'sportZvan' и если оно не существует или пусто - sport_elem->>'sportZvan' IS NULL OR sport_elem->>'sportZvan' = '' - ) - OR ( - -- Проверяем 'sportRazr' и срок действия истек - jsonb_typeof(sport_elem->'sportRazr') = 'object' - AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL - AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') > CURRENT_DATE - -- И 'sportZvan' также не должно существовать или быть пустым - AND (sport_elem->>'sportZvan' IS NULL OR sport_elem->>'sportZvan' = '') - ) - ) - AND ri.info->'svedSport'->>'prOtsSvedSport' IS NULL - THEN false - - WHEN - -- Условия для "null" (нет информации) - ri.info->'svedSport'->>'prOtsSvedSport' = '1' - OR ri.info->'svedSport' IS NULL -- Проверяем, что 'svedSport' отсутствует - THEN null - - ELSE null -- Неопределенное значение для всех других случаев - END AS sports_category - FROM public.recruits_info ri -), - -disability_group AS ( - SELECT - ri.recruit_id, - CASE - WHEN ri.info->'svedInvalid'->'invalid'->>'gruppa' IS NOT NULL - AND ri.info->'svedInvalid'->>'prOtsSvedInvalid' IS NULL - AND (ri.info->'sportRazr'->>'dataSnyat' IS NULL - OR TO_DATE(ri.info->'sportRazr'->>'dataSnyat', 'YYYY-MM-DD') <= CURRENT_DATE) - THEN ri.info->'svedInvalid'->'invalid'->>'gruppa' - WHEN ri.info->'svedInvalid'->>'prOtsSvedInvalid' = '1' THEN 'Нет информации об инвалидности' - ELSE 'Нет информации об инвалидности' - END AS disability_group - FROM public.recruits_info ri -), - -tractor_license AS ( - SELECT - ri.recruit_id, - CASE - WHEN ri.info->'svedUdostrTraktMash'->>'udostrTraktMash' IS NOT NULL - AND TO_DATE(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataOkonchUTM', 'YYYY-MM-DD') > CURRENT_DATE - THEN true - WHEN ri.info->'svedUdostrTraktMash'->>'udostrTraktMash' IS NOT NULL - AND TO_DATE(ri.info->'svedUdostrTraktMash'->'udostrTraktMash'->>'dataOkonchUTM', 'YYYY-MM-DD') <= CURRENT_DATE - THEN false - WHEN ri.info->'svedUdostrTraktMash'->>'prOtsSvedUTM' = '1' THEN null - ELSE null - END AS tractor_license - FROM public.recruits_info ri -), - -is_wanted AS ( - SELECT - ri.recruit_id, - CASE - WHEN - jsonb_typeof(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -- проверяем, что 'faktyUgolovPresl' это массив - AND jsonb_array_length(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') > 0 -- массив не пустой - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') AS criminal_prosecution - WHERE - criminal_prosecution->>'dataPrekrashh' IS NULL -- дата прекращения отсутствует - ) - AND ri.info->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' IS NULL - THEN true - - WHEN - jsonb_typeof(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -- проверяем, что 'faktyUgolovPresl' это массив - AND jsonb_array_length(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') > 0 -- массив не пустой - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedUgolovPresl'->'faktyUgolovPresl') AS criminal_prosecution - WHERE - criminal_prosecution->>'dataPrekrashh' IS NOT NULL -- дата прекращения не отсутствует - ) - AND ri.info->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' IS NULL - THEN false - - WHEN - ri.info->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' = '1' - THEN NULL - - ELSE NULL - END AS criminal_prosecution - FROM public.recruits_info ri -), - -employment AS ( - SELECT - ri.recruit_id, - COALESCE( - CASE - WHEN ( - jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' IN ('1', '2', '4') - ) - ) OR ( - jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' IN ('1', '2', '4') - ) - ) THEN 'Обучается' - ELSE NULL - END || - CASE - WHEN jsonb_typeof(info->'svedTrud'->'trudDeyat') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) THEN - CASE - WHEN ( - jsonb_typeof(info->'svedVUZ'->'vuz') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' IN ('1', '2', '4') - ) - ) OR ( - jsonb_typeof(info->'svedKolledzh'->'kolledzh') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' IN ('1', '2', '4') - ) - ) THEN ', Работает' - ELSE 'Работает' - END - ELSE NULL - END, - CASE - WHEN - info->'svedVUZ'->>'prOtsSvedVUZ' = '1' -- Отсутствие сведений о вузе - AND info->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' -- Отсутствие сведений о колледже - AND info->'svedTrud'->>'prOtsSvedTrud' = '1' -- Отсутствие сведений о работе - THEN 'Нет информации' - ELSE 'Нет информации' - END - ) AS employment_status - FROM public.recruits_info ri -) - -SELECT - r.full_name, - r.last_name, - r.first_name, - r.middle_name, - r.gender, - r.birth_date, - EXTRACT(YEAR FROM AGE(r.birth_date)) AS age, - r.birth_place, - r.phone, - r.conscription AS deferment_liberation, - - CASE - WHEN (EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 18 AND 70 AND r.gender = 'MALE' AND - (r.conscription IS NULL OR r.conscription = false) AND - COALESCE(cc.children_under_16, 0) < 5 - AND r.vu_current_info ->> 'isMilitaryRegistered' = 'true') - OR - (EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 18 AND 45 AND r.gender = 'FEMALE' AND - (r.conscription IS NULL OR r.conscription = false) AND - COALESCE(cc.children_under_16, 0) < 5 - AND r.vu_current_info ->> 'isMilitaryRegistered' = 'true') - THEN true - ELSE false - END AS mobilization, - - CASE - WHEN (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 30 - AND gender = 'MALE' -- мужчины от 18 до 30 лет - AND (conscription IS NULL OR conscription = false) - AND r.vu_current_info ->> 'isMilitaryRegistered' = 'true') - THEN true - ELSE false - END AS urgent_service, - - CASE WHEN (EXTRACT(YEAR FROM AGE(NOW(), birth_date)) BETWEEN 18 AND 50 - AND gender = 'MALE' -- мужчины от 18 до 50 лет - AND (conscription IS NULL OR conscription = false) -- отсутствие отсрочки - AND ri.info->'svedSudim'->>'prOtsSvedSudim' = '1' -- признак отсутствия данных о судимости - AND r.vu_current_info ->> 'isMilitaryRegistered' = 'true') - THEN true - ELSE false - END AS contract_service, - - CASE - WHEN r.vu_current_info ->> 'isMilitaryRegistered' = 'true' THEN 'Состоит на воинском учете' - WHEN r.vu_current_info ->> 'isMilitaryRegistered' = 'false' THEN 'Не состоит на воинском учете' - ELSE 'Нет информации' - END AS is_registered, - -CASE - WHEN (EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - )) THEN 'Высшее' - WHEN (EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' = '10' - )) THEN 'Среднее профессиональное' - WHEN (EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedRObr'->'robr') AS education - WHERE jsonb_typeof(ri.info->'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' - AND education->>'kodUrObr' IN ('7', '9') - )) THEN 'Общее' - WHEN ((ri.info->'svedRObr'->>'prOtsRObr' = '1' OR ri.info->'svedInObr'->>'prOtsInObr' = '1')) THEN 'Нет данных' - ELSE 'Не указано' -- Добавлено условие по умолчанию - END AS education, - - ri.info->'svedSemPolozh'->>'semPolozhNaim' AS marital_status, - - (SELECT COUNT(*) - FROM jsonb_array_elements(ri.info->'svedDeti'->'rebenok') AS childs - WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND age(make_date(NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'den','')::int)) < make_interval(years => 18) - ) AS number_children, - - (SELECT COUNT(*) - FROM jsonb_array_elements(ri.info->'svedDeti'->'rebenok') AS childs - WHERE jsonb_typeof(ri.info->'svedDeti'->'rebenok') = 'array' - AND age(make_date(NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'den','')::int)) >= make_interval(years => 18) - ) AS number_children_18_old, - - ri.info->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, - ri.info->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, - ri.info->'svedVoin'->'voin'->>'dataReg' AS issue_date, - ri.recruit_id, -- ID рекрута - r.target_recruitment_id AS recruitment_id, - rr.reason_registration, -- причина постановки на учет char - sc.sports_category, -- наличие спортивной категории bool - dl.driver_license, -- категории водительских удостоверений char - dg.disability_group, -- группа инвалидности char - tl.tractor_license, -- наличие удостоверения тракториста bool - iw.criminal_prosecution AS is_wanted, -- наличие уголовного преследования bool - em.employment_status AS employment, -- занятость char - r.system_update_date AS update_date -FROM - public.recruits_info ri -JOIN - public.recruits r ON ri.recruit_id = r.id -LEFT JOIN - children_count cc ON r.id = cc.recruit_id -- Присоединение для получения количества детей -JOIN - registration_reasons rr ON rr.recruit_id = ri.recruit_id -JOIN - sports_category sc ON sc.recruit_id = ri.recruit_id -JOIN - driver_license dl ON dl.recruit_id = ri.recruit_id -JOIN - disability_group dg ON dg.recruit_id = ri.recruit_id -JOIN - tractor_license tl ON tl.recruit_id = ri.recruit_id -JOIN - is_wanted iw ON iw.recruit_id = ri.recruit_id -JOIN - employment em ON em.recruit_id = ri.recruit_id -WHERE - r.target_recruitment_id IS NOT NULL - AND r.current_recruitment_id IS NOT NULL; - Y - - - 208 - 208 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 1000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - citizen
- N - Y - N - Y - - - 656 - 64 - -
- - - -
diff --git a/mappings/jobs_once_a_day/info_recruits_once.hpl b/mappings/jobs_once_a_day/info_recruits_once.hpl deleted file mode 100644 index cacaf81..0000000 --- a/mappings/jobs_once_a_day/info_recruits_once.hpl +++ /dev/null @@ -1,808 +0,0 @@ - - - - info_recruits_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 394 - 960 - 16 - acquired_citizenship -address_actual -address_place_stay -city_birth -date_info_actual -date_loss_info_actual -died_date -dispensary_registration_code -email -end_date_place_stay -end_date_residence -inn -is_in_prison -medic -medical_requirements -region_birth -residence -right_deferment -snils -source_info_actual -start_date_place_stay -start_date_residence -took_break -type_place_stay - 163 - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 26 - 687 - 482 - +target_recruitment_id - 132 - - - - - Select values 4 - Table output (citizen) - Y - - - Table input (info_recruits_once) - Select values 4 - Y - - - Select values 4 - Insert / update - N - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - recruit_id - recruit_id - N - - - age - age - Y - - - birth_date - birth_date - Y - - - birth_place - birth_place - Y - - - contract_service - contract_service - Y - - - deferment_liberation - deferment_liberation - Y - - - disability_group - disability_group - Y - - - driver_license - driver_license - Y - - - education - education - Y - - - employment - employment - Y - - - first_name - first_name - Y - - - full_name - full_name - Y - - - gender - gender - Y - - - is_registered - is_registered - Y - - - is_wanted - is_wanted - Y - - - issue_date - issue_date - Y - - - last_name - last_name - Y - - - marital_status - marital_status - Y - - - middle_name - middle_name - Y - - - mobilization - mobilization - Y - - - number_children - number_children - Y - - - number_children_18_old - number_children_18_old - Y - - - passport_number - passport_number - Y - - - passport_series - passport_series - Y - - - phone - phone - Y - - - reason_registration - reason_registration - Y - - - recruitment_id - recruitment_id - Y - - - sports_category - sports_category - Y - - - tractor_license - tractor_license - Y - - - update_date - update_date - Y - - - urgent_service - urgent_service - Y - -
- N - - - 688 - 208 - -
- - Select values 4 - SelectValues - - Y - - 1 - - none - - - - N - - issue_date - issue_date - Date - -2 - -2 - yyyy-MM-dd - false - - - false - - - - - - - - - - 448 - 208 - - - - Table input (info_recruits_once) - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH -base_recruit_data AS ( - SELECT - distinct - r.system_pgs_status, - r.full_name, - r.last_name, - r.first_name, - r.middle_name, - r.gender, - ri.info->'svedFL'->'svedBS'->'snils'->'aktSNILS'->>'snils' AS snils, - ri.info->'svedFL'->'svedBS'->'inn'->'aktINN'->>'inn' AS inn, - r.birth_date, - EXTRACT(YEAR FROM AGE(r.birth_date)) AS age, - r.birth_place, - r.phone, - r.email, - 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, - 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, - r.system_update_date AS update_date, - CASE - WHEN r.vu_current_info->>'recruitmentCommercialInfo' = 'true' THEN 'CONVICT' - ELSE 'NOTCONVICT' - END AS convicts, - r.current_recruitment_id AS recruitment_id, - r.target_recruitment_id, - 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, - CASE - WHEN ddd.hidden IS false then ddd.hidden - ELSE true END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет - CASE - WHEN - -- Условия для "true" (спортивная категория) - ri.info->'svedFL'->'svedSport' ? 'sport' -- Проверяем, что ключ 'sport' существует - AND jsonb_typeof(ri.info->'svedFL'->'svedSport'->'sport') = 'array' -- Проверяем, что 'sport' это массив - AND jsonb_array_length(ri.info->'svedFL'->'svedSport'->'sport') > 0 -- И массив не пустой - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedFL'->'svedSport'->'sport') AS sport_elem - WHERE - ( - -- Проверяем, что 'sportRazr' существует и срок действия актуален - jsonb_typeof(sport_elem->'sportRazr') = 'object' - AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL - AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') > CURRENT_DATE - ) - OR ( - -- Проверяем, что 'sportZvan' существует и не пусто - sport_elem->>'sportZvan' IS NOT NULL - AND sport_elem->>'sportZvan' <> '' - ) - OR ( - -- Проверяем, что 'sportRazr' существует и срок действия истек - jsonb_typeof(sport_elem->'sportRazr') = 'object' - AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL - AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') <= CURRENT_DATE - ) - ) - AND ri.info->'svedFL'->'svedSport'->>'prOtsSvedSport' IS NULL - THEN true - - WHEN - -- Условия для "false" (не является спортивной категорией) - ( - ri.info->'svedFL'->'svedSport'->'sport' IS NULL -- Если 'sport' = NULL - OR ( - ri.info->'svedSport' ? 'sport' -- Проверяем, что ключ 'sport' существует - AND jsonb_typeof(ri.info->'svedFL'->'svedSport'->'sport') = 'array' -- Поле 'sport' должно быть массивом - AND jsonb_array_length(ri.info->'svedFL'->'svedSport'->'sport') > 0 -- И массив не пустой - ) - ) - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedFL'->'svedSport'->'sport') AS sport_elem - WHERE - ( - -- Проверяем 'sportZvan' и если оно не существует или пусто - sport_elem->>'sportZvan' IS NULL OR sport_elem->>'sportZvan' = '' - ) - OR ( - -- Проверяем 'sportRazr' и срок действия истек - jsonb_typeof(sport_elem->'sportRazr') = 'object' - AND sport_elem->'sportRazr'->>'dataDeistvSportRazr' IS NOT NULL - AND TO_DATE(sport_elem->'sportRazr'->>'dataDeistvSportRazr', 'YYYY-MM-DD') > CURRENT_DATE - -- И 'sportZvan' также не должно существовать или быть пустым - AND (sport_elem->>'sportZvan' IS NULL OR sport_elem->>'sportZvan' = '') - ) - ) - AND ri.info->'svedFL'->'svedSport'->>'prOtsSvedSport' IS NULL - THEN false - - WHEN - -- Условия для "null" (нет информации) - ri.info->'svedSport'->>'prOtsSvedSport' = '1' - OR ri.info->'svedSport' IS NULL -- Проверяем, что 'svedSport' отсутствует - THEN null - - ELSE null -- Неопределенное значение для всех других случаев - END AS sports_category, - - mrr.value AS reason_registration, - - CASE - WHEN ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa' IS NOT NULL - AND ri.info->'svedFL'->'svedInvalid'->>'prOtsSvedInvalid' IS NULL - AND (ri.info->'svedFL'->'sportRazr'->>'dataSnyat' IS NULL - OR TO_DATE(ri.info->'svedFL'->'sportRazr'->>'dataSnyat', 'YYYY-MM-DD') <= CURRENT_DATE) - THEN ri.info->'svedFL'->'svedInvalid'->'invalid'->>'gruppa' - WHEN ri.info->'svedFL'->'svedInvalid'->>'prOtsSvedInvalid' = '1' THEN 'Нет информации об инвалидности' - ELSE 'Нет информации об инвалидности' - END AS disability_group, - - CASE - WHEN ri.info->'svedFL'->'svedUdostTraktMash'->>'udostTraktMash' IS NOT NULL - AND TO_DATE(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataOkonchUTM', 'YYYY-MM-DD') > CURRENT_DATE - THEN true - WHEN ri.info->'svedFL'->'svedUdostTraktMash'->>'udostTraktMash' IS NOT NULL - AND TO_DATE(ri.info->'svedFL'->'svedUdostTraktMash'->'udostTraktMash'->'aktUTM'->>'dataOkonchUTM', 'YYYY-MM-DD') <= CURRENT_DATE - THEN false - WHEN ri.info->'svedFL'->'svedUdostTraktMash'->>'prOtsSvedUTM' = '1' THEN null - ELSE null - END AS tractor_license, - - CASE - WHEN - jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -- проверяем, что 'faktyUgolovPresl' это массив - AND jsonb_array_length(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') > 0 -- массив не пустой - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS criminal_prosecution - WHERE - criminal_prosecution->>'dataPrekrashh' IS NULL -- дата прекращения отсутствует - ) - AND ri.info->'svedFL'->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' IS NULL - THEN true - - WHEN - jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -- проверяем, что 'faktyUgolovPresl' это массив - AND jsonb_array_length(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') > 0 -- массив не пустой - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS criminal_prosecution - WHERE - criminal_prosecution->>'dataPrekrashh' IS NOT NULL -- дата прекращения не отсутствует - ) - AND ri.info->'svedFL'->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' IS NULL - THEN false - - WHEN - ri.info->'svedFL'->'svedUgolovPresl'->>'prOtsSvedUgolovPresl' = '1' - THEN NULL - - ELSE NULL - END AS criminal_prosecution, - - COALESCE( - CASE - WHEN ( - jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' IN ('1', '2', '4') - ) - ) OR ( - jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' IN ('1', '2', '4') - ) - ) THEN 'Обучается' - ELSE NULL - END || - CASE - WHEN jsonb_typeof(info->'svedFL'->'svedTrud'->'trudDeyat') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedFL'->'svedTrud'->'trudDeyat') AS trud - WHERE trud->>'prAktMestRab' = '1' - ) THEN - CASE - WHEN ( - jsonb_typeof(info->'svedFL'->'svedVUZ'->'vuz') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedFL'->'svedVUZ'->'vuz') AS vuz - WHERE vuz->>'kodStatus' IN ('1', '2', '4') - ) - ) OR ( - jsonb_typeof(info->'svedFL'->'svedKolledzh'->'kolledzh') = 'array' - AND EXISTS ( - SELECT 1 - FROM jsonb_array_elements(info->'svedFL'->'svedKolledzh'->'kolledzh') AS kolledzh - WHERE kolledzh->>'kodStatus' IN ('1', '2', '4') - ) - ) THEN ', Работает' - ELSE 'Работает' - END - ELSE NULL - END, - CASE - WHEN - info->'svedFL'->'svedVUZ'->>'prOtsSvedVUZ' = '1' -- Отсутствие сведений о вузе - AND info->'svedFL'->'svedKolledzh'->>'prOtsSvedKolledzh' = '1' -- Отсутствие сведений о колледже - AND info->'svedFL'->'svedTrud'->>'prOtsSvedTrud' = '1' -- Отсутствие сведений о работе - THEN 'Нет информации' - ELSE 'Нет информации' - END - ) AS employment_status, - - CASE - WHEN (EXISTS ( - SELECT 1 - 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->'svedFL'->'svedInObr'->'inObr') AS education - WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' - AND education->>'kodUrObr' IN ('1', '2', '3', '4', '5') - )) THEN 'Высшее' - WHEN (EXISTS ( - SELECT 1 - 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->'svedFL'->'svedInObr'->'inObr') AS education - WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' - AND education->>'kodUrObr' = '10' - )) THEN 'Среднее профессиональное' - WHEN (EXISTS ( - SELECT 1 - 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->'svedFL'->'svedInObr'->'inObr') AS education - WHERE jsonb_typeof(ri.info->'svedFL'->'svedInObr'->'inObr') = 'array' - AND education->>'kodUrObr' IN ('7', '9') - )) THEN 'Общее' - WHEN ((ri.info->'svedFL'->'svedRObr'->>'prOtsRObr' = '1' OR ri.info->'svedFL'->'svedInObr'->>'prOtsInObr' = '1')) THEN 'Нет данных' - ELSE 'Не указано' -- Добавлено условие по умолчанию - END AS education, - ( - SELECT COUNT(*) - FROM jsonb_array_elements(ri.info->'svedFL'->'svedDeti'->'rebenok') AS childs - WHERE jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' - AND age(make_date(NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'den','')::int)) < make_interval(years => 18) - ) AS number_children - FROM public.recruits AS r - LEFT JOIN public.decision_deferment_dto ddd ON ddd.recruit_id = r.id and ddd.hidden is false - JOIN public.recruits_info AS ri ON ri.recruit_id = r.id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') - JOIN public.military_registration_reason AS mrr ON r.registration_reasons::jsonb @> to_jsonb(mrr.code::text) - --JOIN public.recruits_history rh on rh.recruit_id=r.id -), -adresses as ( -SELECT - r.id as recruit_id, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'reg' END) AS actualAddress, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateStart' END) AS actualAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'actualAddress' THEN addr->>'regDateEnd' END) AS actualAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'reg' END) AS residenceAddress, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateStart' END) AS residenceAddress_regDateStart, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'regDateEnd' END) AS residenceAddress_regDateEnd, - MAX(CASE WHEN addr->>'type' = 'residenceAddress' THEN addr->>'kodTipReg' END) AS residenceAddress_kodTipReg -FROM - public.recruits AS r -LEFT JOIN - LATERAL jsonb_array_elements(r.addresses) AS addr ON true -WHERE r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}' -GROUP BY - r.id -), -extracted_children AS ( - SELECT - ri.recruit_id, - jsonb_array_elements_text(ri.info->'svedFL'->'svedDeti'->'rebenok') AS child - FROM base_recruit_data ri - WHERE - jsonb_typeof(ri.info->'svedFL'->'svedDeti'->'rebenok') = 'array' -), -children_birth_dates AS ( - SELECT - recruit_id, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'den')::int AS day, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'mesyacz')::int AS month, - (child::jsonb->'svedFLBS'->'dataRozhdDok'->>'god')::int AS year - FROM extracted_children -), -children_count AS ( - SELECT - recruit_id, - COUNT(*) AS children_under_16 - FROM - children_birth_dates - WHERE - AGE(make_date(year, month, day)) < interval '16 years' - GROUP BY - recruit_id -), - -driver_license AS ( - SELECT - ri.recruit_id, - COALESCE( - string_agg(sved_vodit->>'naimKatTS', ', '), - 'Нет информации' - ) AS driver_license - FROM base_recruit_data ri - LEFT JOIN LATERAL - jsonb_array_elements(ri.info->'svedFL'->'svedVoditUdost'->'voditUdost'->'svedKat') AS sved_vodit - ON true - GROUP BY ri.recruit_id -) -SELECT - r.full_name, - r.last_name, - r.first_name, - r.middle_name, - r.gender, - regexp_replace(r.snils, '[^0-9]', '', 'g') AS snils, - r.inn, - r.birth_date, - r.age, - r.birth_place, - r.phone, - r.email, - r.deferment_liberation, - CASE - WHEN (EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 30 AND 50 AND r.gender = 'MALE') -- мужчины от 30 до 50 лет - OR (EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 30 AND 45 AND r.gender = 'FEMALE') -- женщины от 30 до 45 лет - AND COALESCE(cc.children_under_16, 0) < 5 - THEN true - ELSE false - END AS mobilization, - - CASE - WHEN EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 18 AND 30 - AND r.gender = 'MALE' - AND r.deferment_liberation IS true -- нет отсрочки и нет освобождения от службы - THEN true - ELSE false - END AS urgent_service, - - CASE - WHEN EXTRACT(YEAR FROM AGE(NOW(), r.birth_date)) BETWEEN 18 AND 50 - AND r.gender = 'MALE' - AND (r.info->'svedFL'->'svedPND'->>'prOtsSvedPND' = '1' - OR uchet_pnd IS false) - AND r.info->'svedFL'->'svedUchetVICH'->>'prOtsSvedUchetVICH' = '1' -- признак отсутствия сведений о заболевании ВИЧ - THEN true - ELSE false - END AS contract_service, - - CASE - WHEN r.vu_current_info ->> 'isMilitaryRegistered' = 'true' THEN 'Состоит на воинском учете' - WHEN r.vu_current_info ->> 'isMilitaryRegistered' = 'false' THEN 'Не состоит на воинском учете' - ELSE 'Нет информации' - END AS is_registered, - - r.education, - r.marital_status, - r.number_children, - - (SELECT COUNT(*) - FROM jsonb_array_elements(r.info->'svedFL'->'svedDeti'->'rebenok') AS childs - WHERE jsonb_typeof(r.info->'svedFL'->'svedDeti'->'rebenok') = 'array' - AND age(make_date(NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'god', '')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'mesyacz','')::int, - NULLIF(childs->'svedFLBS'->'dataRozhdDok'->>'den','')::int)) >= make_interval(years => 18) - ) AS number_children_18_old, - r.passport_number, - r.passport_series, - r.issue_date, - r.recruit_id, -- ID рекрута - r.recruitment_id, -- текущий вк - r.target_recruitment_id, -- целевой вк - r.reason_registration, -- причина постановки на учет char - r.date_registration, -- дата постановки на учет date - r.date_deregistration, -- дата снятия с учета date - r.sports_category, -- наличие спортивной категории bool - dl.driver_license, -- категории водительских удостоверений char - r.disability_group, -- группа инвалидности char - r.tractor_license, -- наличие удостоверения тракториста bool - r.criminal_prosecution AS is_wanted, -- наличие уголовного преследования bool - r.employment_status AS employment, -- занятость char - r.update_date, - adr.actualAddress as residence, - adr.actualAddress_regDateStart as start_date_residence, - adr.actualAddress_regDateEnd as end_date_residence, - adr.residenceAddress as address_place_stay, - adr.residenceAddress_regDateStart as start_date_place_stay, - adr.residenceAddress_regDateEnd as end_date_place_stay, - case when adr.residenceAddress_kodTipReg='1' then 'В жилом помещении, не являющимся местом жительства физического лица' - when adr.residenceAddress_kodTipReg='2' then 'В учреждении уголовно-исполнительной системы' - else null end as type_place_stay, - r.system_pgs_status -FROM base_recruit_data r -LEFT JOIN children_count cc ON r.recruit_id = cc.recruit_id -- Присоединение для получения количества детей -JOIN driver_license dl ON dl.recruit_id = r.recruit_id -join adresses adr ON r.recruit_id=adr.recruit_id - Y - - - 208 - 208 - - - - Table output (citizen) - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - citizen
- - N - Y - N - Y - - - 656 - 64 - -
- - - -
diff --git a/mappings/jobs_once_a_day/job_info_recruits_once.hwf b/mappings/jobs_once_a_day/job_info_recruits_once.hwf deleted file mode 100644 index 02923ad..0000000 --- a/mappings/jobs_once_a_day/job_info_recruits_once.hwf +++ /dev/null @@ -1,2390 +0,0 @@ - - - job_info_recruits_once - Y - - - - - - 2025/01/10 15:49:30.690 - - - 2025/01/10 15:49:30.690 - - - - - Start - - SPECIAL - - 1 - 12 - 60 - 0 - 0 - N - 0 - 1 - Y - 0 - 960 - - - - info_recruits_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/info_recruits_once.hpl - txt - ${PROJECT_HOME}/log_jobs/log_job_info_recruits_once - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1008 - 192 - - - - SQL.citizen - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen - N - N - N - 640 - 192 - - - - Success opekun_once - - SUCCESS - - N - 1408 - 96 - - - - SQL.spouse - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_spouse - N - N - N - 640 - 272 - - - - SQL.child - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_child - N - N - N - 640 - 352 - - - - spouse_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/spouse_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1008 - 272 - - - - child_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/child_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1008 - 352 - - - - SQL.disease - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.disease - N - N - N - 640 - 432 - - - - disease_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/disease_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1008 - 432 - - - - SQL.medical_authorities - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.medical_authorities - N - N - N - 640 - 496 - - - - medical_authorities_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/medical_authorities_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1008 - 496 - - - - SQL.disability - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.disability - N - N - N - 640 - 560 - - - - disability_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/disability_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1008 - 560 - - - - SQL.drivers_licence - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.drivers_licence - N - N - N - 640 - 624 - - - - drivers_licence_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/drivers_licence_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1008 - 624 - - - - SQL.property - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.property - N - N - N - 640 - 688 - - - - property_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/property_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1008 - 688 - - - - SQL.citizen_foreign - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizenship_foreign - N - N - N - 640 - 752 - - - - citizen_foreign_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/citizen_foreign_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1008 - 752 - - - - SQL.citizenship - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizenship - N - N - N - 640 - 816 - - - - citizenship_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/citizenship_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1008 - 816 - - - - SQL.deputy - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.deputy - N - N - N - 640 - 880 - - - - deputy_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/deputy_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1008 - 880 - - - - SQL.prosecution - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.prosecution - N - N - N - 640 - 944 - - - - prosecution_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/prosecution_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1008 - 944 - - - - SQL.punishment - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.punishment - N - N - N - 640 - 1008 - - - - punishment_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/punishment_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1008 - 1008 - - - - SQL.passport - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.passport - N - N - N - 640 - 1072 - - - - passport_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/passport_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1008 - 1072 - - - - SQL.subpoena - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.subpoena - N - N - N - 640 - 1136 - - - - subpoena_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/subpoena_once.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 1008 - 1136 - - - - SQL.tempmeas - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.temporary_measures - N - N - N - 640 - 1200 - - - - temporary_measure_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/temporary_measure_once.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 1008 - 1200 - - - - opekun_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/opekun_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 1008 - 96 - - - - SQL.opekun - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_guardianship - N - N - N - 640 - 96 - - - - Success info_recruits_once - - SUCCESS - - N - 1408 - 192 - - - - Success spouse_once - - SUCCESS - - N - 1408 - 272 - - - - Success child_once - - SUCCESS - - N - 1408 - 352 - - - - Success desease_once - - SUCCESS - - N - 1408 - 432 - - - - Success medical_autorities_once - - SUCCESS - - N - 1408 - 496 - - - - Success disability_once - - SUCCESS - - N - 1408 - 560 - - - - Success driver_license_once - - SUCCESS - - N - 1408 - 624 - - - - Success property_once - - SUCCESS - - N - 1408 - 688 - - - - Success citizen_foreign_once - - SUCCESS - - N - 1408 - 752 - - - - Success citizenship_once - - SUCCESS - - N - 1408 - 816 - - - - Success deputy_once - - SUCCESS - - N - 1408 - 880 - - - - Success prosecution_once - - SUCCESS - - N - 1408 - 944 - - - - Success punishment_once - - SUCCESS - - N - 1408 - 1008 - - - - Success passport_once - - SUCCESS - - N - 1408 - 1072 - - - - Success subpoena_once - - SUCCESS - - N - 1408 - 1136 - - - - Success temporary_measure_once - - SUCCESS - - N - 1408 - 1200 - - - - incident_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/incident_once.hpl - Basic - - Y - - N - local - N - N - Y - N - 1008 - 2112 - - - - citizen_individual_decisions_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/citizen_individual_decisions_once.hpl - Basic - - Y - - N - local - N - N - Y - N - 1008 - 2048 - - - - citizen_complex_filters_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/citizen_complex_filters_once.hpl - Basic - - Y - - N - local - N - N - Y - N - 1008 - 1984 - - - - citizen_appealing_violations_fz53_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/citizen_appealing_violations_fz53_once.hpl - Basic - - Y - - N - local - N - N - Y - N - 1008 - 1840 - - - - citizen_criminal_liability_fz53_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/citizen_criminal_liability_fz53_once.hpl - Basic - - Y - - N - local - N - N - Y - N - 1008 - 1776 - - - - citizen_information_search_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/citizen_information_search_once.hpl - Basic - - Y - - N - local - N - N - Y - N - 1008 - 1712 - - - - citizen_criminal_record_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/citizen_criminal_record_once.hpl - Basic - - Y - - N - local - N - N - Y - N - 1008 - 1648 - - - - citizen_sports_categories_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/citizen_sports_categories_once.hpl - - - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - - Y - - Y - local - N - N - Y - N - 1008 - 1584 - - - - citizen_education_diplomas_received_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/citizen_education_diplomas_received_once.hpl - - - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - - Y - - Y - local - N - N - Y - N - 1008 - 1520 - - - - citizen_work_activity_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/citizen_work_activity_once.hpl - - - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - - Y - - Y - local - N - N - Y - N - 1008 - 1456 - - - - Success citizen_work_activity_once - - SUCCESS - - N - 1408 - 1456 - - - - Success citizen_education_diplomas_received_once - - SUCCESS - - N - 1408 - 1520 - - - - Success citizen_sports_categories_once - - SUCCESS - - N - 1408 - 1584 - - - - Success citizen_criminal_record_once - - SUCCESS - - N - 1408 - 1648 - - - - Success citizen_information_search_once - - SUCCESS - - N - 1408 - 1712 - - - - Success citizen_criminal_liability_fz53_once - - SUCCESS - - N - 1408 - 1776 - - - - Success citizen_appealing_violations_fz53_once - - SUCCESS - - N - 1408 - 1840 - - - - Success citizen_complex_filters_once - - SUCCESS - - N - 1408 - 1984 - - - - Success citizen_individual_decisions_once - - SUCCESS - - N - 1408 - 2048 - - - - Success incident_once - - SUCCESS - - N - 1408 - 2112 - - - - SQL.citizen_work_activity - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_work_activity - N - N - N - 640 - 1456 - - - - SQL.citizen_education_diplomas_received - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_education_diplomas_received - N - N - N - 640 - 1520 - - - - SQL.citizen_sports_categories - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_sports_categories - N - N - N - 640 - 1584 - - - - SQL.citizen_criminal_record - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_criminal_record - N - N - N - 640 - 1648 - - - - SQL.citizen_information_search - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_information_search - N - N - N - 640 - 1712 - - - - SQL.citizen_criminal_liability_fz53 - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_criminal_liability_fz53 - N - N - N - 640 - 1776 - - - - SQL.citizen_appealing_violations_fz53 - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_appealing_violations_fz53 - N - N - N - 640 - 1840 - - - - SQL.citizen_complex_filters - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_complex_filters - N - N - N - 640 - 1984 - - - - SQL.citizen_individual_decisions - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_individual_decisions - N - N - N - 640 - 2048 - - - - SQL.incident - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.incident - N - N - N - 640 - 2112 - - - - recruitment_rows.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/supportive_jobs/recruitment_rows.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - N - local - N - N - Y - Y - 208 - 960 - - - - SQL.citizen_deferments - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_deferment_right; -delete from ervu_dashboard.citizen_deferment; - - N - N - N - 640 - 2192 - - - - deferments_once.hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/jobs_once_a_day/deferments_once.hpl - - - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - - Y - - Y - local - N - N - Y - N - 1184 - 2192 - - - - Success - - SUCCESS - - N - 1408 - 2192 - - - - deferment_reason_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/deferment_reason_once.hpl - Basic - - - RCRT_C - RECRUITMENT_CITIZEN - - Y - - Y - local - N - N - Y - N - 896 - 2192 - - - - citizen_liability_fz53_once.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/citizen_liability_fz53_once.hpl - Basic - - Y - - N - local - N - N - Y - N - 1008 - 1904 - - - - SQL.citizen_liability_fz53 - - SQL - - ervu-dashboard - N - delete from ervu_dashboard.citizen_liability_fz53 - N - N - N - 640 - 1904 - - - - Success citizen_liability_fz53_once - - SUCCESS - - N - 1408 - 1904 - - - - citizen_flags.hpl - - PIPELINE - - N - N - N - N - N - N - ${PROJECT_HOME}/jobs_once_a_day/citizen_flags.hpl - - - Basic - - Y - - N - local - N - N - Y - N - 640 - 2272 - - - - Success sitizen_flags - - SUCCESS - - N - 832 - 2272 - - - - - - SQL.citizen - info_recruits_once.hpl - Y - Y - N - - - SQL.spouse - spouse_once.hpl - Y - Y - N - - - SQL.child - child_once.hpl - Y - Y - N - - - SQL.disease - disease_once.hpl - Y - Y - N - - - SQL.medical_authorities - medical_authorities_once.hpl - Y - Y - N - - - SQL.disability - disability_once.hpl - Y - Y - N - - - SQL.drivers_licence - drivers_licence_once.hpl - Y - Y - N - - - SQL.property - property_once.hpl - Y - Y - N - - - SQL.citizen_foreign - citizen_foreign_once.hpl - Y - Y - N - - - SQL.citizenship - citizenship_once.hpl - Y - Y - N - - - SQL.deputy - deputy_once.hpl - Y - Y - N - - - SQL.prosecution - prosecution_once.hpl - Y - Y - N - - - SQL.punishment - punishment_once.hpl - Y - Y - N - - - SQL.passport - passport_once.hpl - Y - Y - N - - - SQL.subpoena - subpoena_once.hpl - Y - Y - N - - - SQL.tempmeas - temporary_measure_once.hpl - Y - Y - N - - - SQL.opekun - opekun_once.hpl - Y - Y - N - - - opekun_once.hpl - Success opekun_once - Y - N - Y - - - info_recruits_once.hpl - Success info_recruits_once - Y - N - Y - - - spouse_once.hpl - Success spouse_once - Y - N - Y - - - child_once.hpl - Success child_once - Y - N - Y - - - disease_once.hpl - Success desease_once - Y - N - Y - - - medical_authorities_once.hpl - Success medical_autorities_once - Y - N - Y - - - disability_once.hpl - Success disability_once - Y - N - Y - - - drivers_licence_once.hpl - Success driver_license_once - Y - N - Y - - - property_once.hpl - Success property_once - Y - N - Y - - - citizen_foreign_once.hpl - Success citizen_foreign_once - Y - N - Y - - - citizenship_once.hpl - Success citizenship_once - Y - N - Y - - - deputy_once.hpl - Success deputy_once - Y - N - Y - - - prosecution_once.hpl - Success prosecution_once - Y - N - Y - - - punishment_once.hpl - Success punishment_once - Y - N - Y - - - passport_once.hpl - Success passport_once - Y - N - Y - - - subpoena_once.hpl - Success subpoena_once - Y - N - Y - - - temporary_measure_once.hpl - Success temporary_measure_once - Y - N - Y - - - citizen_work_activity_once.hpl - Success citizen_work_activity_once - Y - N - Y - - - citizen_education_diplomas_received_once.hpl - Success citizen_education_diplomas_received_once - Y - N - Y - - - citizen_sports_categories_once.hpl - Success citizen_sports_categories_once - Y - N - Y - - - citizen_criminal_record_once.hpl - Success citizen_criminal_record_once - Y - N - Y - - - citizen_information_search_once.hpl - Success citizen_information_search_once - Y - N - Y - - - citizen_criminal_liability_fz53_once.hpl - Success citizen_criminal_liability_fz53_once - Y - N - Y - - - citizen_appealing_violations_fz53_once.hpl - Success citizen_appealing_violations_fz53_once - Y - N - Y - - - citizen_complex_filters_once.hpl - Success citizen_complex_filters_once - Y - N - Y - - - citizen_individual_decisions_once.hpl - Success citizen_individual_decisions_once - Y - N - Y - - - incident_once.hpl - Success incident_once - Y - N - Y - - - SQL.citizen_work_activity - citizen_work_activity_once.hpl - Y - Y - N - - - Start - SQL.citizen_work_activity - N - Y - Y - - - SQL.citizen_education_diplomas_received - citizen_education_diplomas_received_once.hpl - Y - Y - N - - - SQL.citizen_sports_categories - citizen_sports_categories_once.hpl - Y - Y - N - - - SQL.citizen_criminal_record - citizen_criminal_record_once.hpl - Y - Y - N - - - Start - SQL.citizen_criminal_record - N - Y - Y - - - SQL.citizen_information_search - citizen_information_search_once.hpl - Y - Y - N - - - Start - SQL.citizen_information_search - N - Y - Y - - - SQL.citizen_criminal_liability_fz53 - citizen_criminal_liability_fz53_once.hpl - Y - Y - N - - - Start - SQL.citizen_criminal_liability_fz53 - Y - Y - Y - - - SQL.citizen_appealing_violations_fz53 - citizen_appealing_violations_fz53_once.hpl - Y - Y - N - - - Start - SQL.citizen_appealing_violations_fz53 - Y - Y - Y - - - SQL.citizen_complex_filters - citizen_complex_filters_once.hpl - Y - Y - N - - - Start - SQL.citizen_complex_filters - N - Y - Y - - - SQL.citizen_individual_decisions - citizen_individual_decisions_once.hpl - Y - Y - N - - - Start - SQL.citizen_individual_decisions - N - Y - Y - - - SQL.incident - incident_once.hpl - Y - Y - N - - - Start - SQL.incident - N - Y - Y - - - Start - recruitment_rows.hpl - Y - Y - Y - - - recruitment_rows.hpl - SQL.opekun - Y - Y - N - - - recruitment_rows.hpl - SQL.citizen - Y - Y - N - - - recruitment_rows.hpl - SQL.drivers_licence - Y - Y - N - - - recruitment_rows.hpl - SQL.child - Y - Y - N - - - recruitment_rows.hpl - SQL.spouse - Y - Y - N - - - recruitment_rows.hpl - SQL.disease - Y - Y - N - - - recruitment_rows.hpl - SQL.medical_authorities - Y - Y - N - - - recruitment_rows.hpl - SQL.disability - Y - Y - N - - - recruitment_rows.hpl - SQL.property - Y - Y - N - - - recruitment_rows.hpl - SQL.citizen_foreign - Y - Y - N - - - recruitment_rows.hpl - SQL.citizenship - Y - Y - N - - - recruitment_rows.hpl - SQL.deputy - Y - Y - N - - - recruitment_rows.hpl - SQL.prosecution - Y - Y - N - - - recruitment_rows.hpl - SQL.punishment - Y - Y - N - - - recruitment_rows.hpl - SQL.passport - Y - Y - N - - - recruitment_rows.hpl - SQL.subpoena - Y - Y - N - - - recruitment_rows.hpl - SQL.tempmeas - Y - Y - N - - - recruitment_rows.hpl - SQL.citizen_education_diplomas_received - Y - Y - N - - - recruitment_rows.hpl - SQL.citizen_sports_categories - Y - Y - N - - - Start - SQL.subpoena - N - Y - Y - - - Start - SQL.tempmeas - N - Y - Y - - - recruitment_rows.hpl - SQL.citizen_work_activity - Y - Y - N - - - deferments_once.hpl - Success - Y - N - Y - - - deferment_reason_once.hpl - deferments_once.hpl - Y - Y - N - - - recruitment_rows.hpl - SQL.citizen_deferments - Y - Y - N - - - SQL.citizen_deferments - deferment_reason_once.hpl - Y - Y - N - - - SQL.citizen_liability_fz53 - citizen_liability_fz53_once.hpl - Y - Y - N - - - citizen_liability_fz53_once.hpl - Success citizen_liability_fz53_once - Y - N - Y - - - Start - SQL.citizen_liability_fz53 - Y - Y - Y - - - citizen_flags.hpl - Success sitizen_flags - Y - Y - N - - - Start - citizen_flags.hpl - Y - Y - Y - - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 26 - 80 - 880 - без лимитов не запускать - 152 - - - - diff --git a/mappings/jobs_once_a_day/medical_authorities_once.hpl b/mappings/jobs_once_a_day/medical_authorities_once.hpl deleted file mode 100644 index 61dd927..0000000 --- a/mappings/jobs_once_a_day/medical_authorities_once.hpl +++ /dev/null @@ -1,300 +0,0 @@ - - - - medical_authorities_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input hiv - Table output - Y - - - Table input 2 - Table output 2 - Y - - - Table output - Update - Y - - - Table output 2 - Update 2 - Y - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with uchet as - (select ri.recruit_id, - jsonb_array_elements(ri.info -> 'svedFL' -> 'svedPND' -> 'svedUchetDisp' -> - 'svedUchet') u, - ri.info -> 'svedFL' -> 'svedPND' -> 'svedUchetDisp' -> 'svedUchet' ->> - 'priznakNalichSved' = '1' as registered_in_pnd - from public.recruits_info ri - join public.recruits r - ON r.id = ri.recruit_id - AND (r.target_recruitment_id = '${RCRT_C}' or - r.current_recruitment_id = '${RCRT_C}') - where jsonb_typeof(ri.info -> 'svedFL' -> 'svedPND' -> 'svedUchetDisp' -> 'svedUchet') = - 'array') -select recruit_id, - u ->> 'dataPostUchet' start_date, - u ->> 'dataSnyatUchet' close_date, - u ->> 'dataPlan' change_date, - registered_in_pnd -from uchet; - Y - - - 208 - 352 - - - - Table input hiv - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with uchet as - (select ri.recruit_id, - jsonb_array_elements(ri.info->'svedFL'->'svedUchetVICH'->'uchetVICH') u, - ri.info->'svedFL'->'svedUchetVICH'->>'priznakNalichSved' = '1' has_vich - from public.recruits_info ri - join public.recruits r - ON r.id = ri.recruit_id - AND (r.target_recruitment_id = '${RCRT_C}' or - r.current_recruitment_id = '${RCRT_C}') - where jsonb_typeof(ri.info->'svedFL'->'svedUchetVICH'->'uchetVICH') = 'array') -select - recruit_id, - to_date(u->>'dataPostUchet', 'YYYY-MM-DD') start_date, - to_date(u->>'dataSnyat', 'YYYY-MM-DD') close_date, - true HIV -from uchet; - Y - - - 208 - 208 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - recruit_id - recruit_id - - - start_date - start_date - - - close_date - close_date - - - hiv - has_vich - - - N - N - N - N - - Y - - N - ervu_dashboard - Y - medical_authorities
- - N - Y - N - Y - - - 416 - 208 - -
- - Table output 2 - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - recruit_id - recruit_id - - - start_date - start_date - - - close_date - close_date - - - change_date - change_date - - - N - N - N - N - - Y - - N - ervu_dashboard - Y - medical_authorities
- - N - Y - N - Y - - - 416 - 352 - -
- - Update - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - has_vich - has_vich - -
- N - Y - - - 576 - 208 - -
- - Update 2 - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - registered_in_pnd - registered_in_pnd - -
- N - Y - - - 576 - 352 - -
- - - -
diff --git a/mappings/jobs_once_a_day/opekun_flags.hpl b/mappings/jobs_once_a_day/opekun_flags.hpl deleted file mode 100644 index cee18f7..0000000 --- a/mappings/jobs_once_a_day/opekun_flags.hpl +++ /dev/null @@ -1,92 +0,0 @@ - - - - opekun_flags - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/25 13:10:21.355 - - - 2025/04/25 13:10:21.355 - - - - - - opekun_flag - Update_opekun_flag - Y - - - - Update_opekun_flag - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - is_guardian - is_guardian - -
- N - Y - - - 688 - 208 - -
- - opekun_flag - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - select distinct - recruit_id, - true as is_guardian - from citizen_guardianship; - N - - - 512 - 208 - - - - - -
diff --git a/mappings/jobs_once_a_day/passport_once.hpl b/mappings/jobs_once_a_day/passport_once.hpl deleted file mode 100644 index 7ee3673..0000000 --- a/mappings/jobs_once_a_day/passport_once.hpl +++ /dev/null @@ -1,181 +0,0 @@ - - - - passport_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - Y - - - Table input 2 - Table output 2 - N - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - SELECT - r.id AS recruit_id, - ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'nomDok' AS passport_number, - ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'serDok' AS passport_series, - ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'vydDok' AS organization_name, - ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'kodVydDok' AS unit_code, - TO_DATE(ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'dataDok', 'YYYY-MM-DD') AS issue_date, - CASE - WHEN ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'kodStatus' = '1' - THEN TRUE ELSE FALSE - END AS actual -FROM public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') -WHERE ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'nomDok' IS NOT NULL -AND LENGTH(ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'serDok') = 4 -AND LENGTH(ri.info->'svedFL'->'svedBS'->'pasportRF'->'aktPasportRF'->>'nomDok') = 6; - Y - - - 208 - 208 - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - select r.id recruit_id, -ri.info->'pasportRF'->'predPasportRF'->>'nomDok' passport_number, -ri.info->'pasportRF'->'predPasportRF'->>'serDok' passport_series, -ri.info->'pasportRF'->'predPasportRF'->>'vydDok' organization_name, -ri.info->'pasportRF'->'predPasportRF'->>'kodVydDok' unit_code, -to_date(ri.info->'pasportRF'->'predPasportRF'->>'dataDok', 'YYYY-MM-DD') issue_date, -case when ri.info->'pasportRF'->'predPasportRF'->>'kodStatus'='1' then true -else false -end actual -from public.recruits_info ri -join public.recruits r ON ri.recruit_id = r.id -where ri.info->'pasportRF'->'predPasportRF'->>'nomDok' is not null; - N - - - 528 - 480 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - passport
- - N - Y - N - Y - - - 672 - 208 - -
- - Table output 2 - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - passport
- - N - Y - N - Y - - - 992 - 480 - -
- - - -
diff --git a/mappings/jobs_once_a_day/property_flags.hpl b/mappings/jobs_once_a_day/property_flags.hpl deleted file mode 100644 index b77d3cd..0000000 --- a/mappings/jobs_once_a_day/property_flags.hpl +++ /dev/null @@ -1,104 +0,0 @@ - - - - property_flags - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/25 13:13:44.087 - - - 2025/04/25 13:13:44.087 - - - - - - citizenship_flag_output - Update_citizenship_flag - Y - - - - Update_citizenship_flag - Update - - Y - - 1 - - none - - - 1000 - ervu-dashboard - Y - - - = - recruit_id - recruit_id - - ervu_dashboard - citizen
- - has_russian_citizenship - has_russian_citizenship - - - has_foreign_citizenship - has_foreign_citizenship - -
- N - Y - - - 704 - 176 - -
- - citizenship_flag_output - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - with foreign_citizenship as ( - select recruit_id, true as has_foreign_citizenship - from citizenship_foreign -) -select - citizenship.recruit_id, - true as has_russian_citizenship, - coalesce(has_foreign_citizenship, false) as has_foreign_citizenship - from citizenship - left join foreign_citizenship - on foreign_citizenship.recruit_id = citizenship.recruit_id -where renunciation_number is null; - N - - - 528 - 176 - - - - - -
diff --git a/mappings/jobs_once_a_day/property_once.hpl b/mappings/jobs_once_a_day/property_once.hpl deleted file mode 100644 index 9e750b7..0000000 --- a/mappings/jobs_once_a_day/property_once.hpl +++ /dev/null @@ -1,342 +0,0 @@ - - - - property_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - Y - - - Table input 2 - Table output 2 - Y - - - Table input 2 2 - Table output 2 2 - Y - - - Table input 2 2 2 - Table output 2 2 2 - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with prop as -(select jsonb_array_elements(ri.info->'svedFL'->'svedON'->'on') u, - ri.recruit_id -from public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') -where jsonb_typeof(ri.info->'svedFL'->'svedON'->'on') = 'array') -select - r.id recruit_id, - u->>'naimVidPrav' kind_right, - u->'adrObSob'->>'adrObSobTekst' address, - to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, - to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, - 'realty' type_property -from public.recruits r -join prop on r.id = prop.recruit_id; - Y - - - 480 - 208 - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with prop as -(select jsonb_array_elements(ri.info->'svedFL'->'svedNazTS'->'nazTS') u, - ri.recruit_id -from public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') -where jsonb_typeof(ri.info->'svedFL'->'svedNazTS'->'nazTS') = 'array') -select - r.id recruit_id, - u->>'vidTS' vehicle_type, - u->>'godVyp' issue_year, - u->>'markaTS' brand_model, - u->>'gosRegZn' reg_plate, - u->>'idenNom' vin, - to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, - to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, - 'ground_transportation' type_property -from public.recruits r -join prop on r.id = prop.recruit_id; - Y - - - 480 - 304 - - - - Table input 2 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with prop as -(select jsonb_array_elements(ri.info->'svedFL'->'svedVozTS'->'vozTS') u, - ri.recruit_id -from public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') -where jsonb_typeof(ri.info->'svedFL'->'svedVozTS'->'vozTS') = 'array') -select - r.id recruit_id, - u->>'naimVid' vehicle_type, - u->>'naznKat' vehicle_category, - to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, - to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, - 'air_vehicles' type_property -from public.recruits r -join prop on r.id = prop.recruit_id; - Y - - - 480 - 384 - - - - Table input 2 2 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - with prop as -(select jsonb_array_elements(ri.info->'svedFL'->'svedVodTS'->'vodTS') u, - ri.recruit_id -from public.recruits_info ri -join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') -where jsonb_typeof(ri.info->'svedFL'->'svedVodTS'->'vodTS') = 'array') -select - r.id recruit_id, - u->>'naimVid' vehicle_type, - u->>'naznKat' vehicle_category, - to_date(u->>'dataRegPrav', 'YYYY-MM-DD') start_date, - to_date(u->>'dataPrekPrav', 'YYYY-MM-DD') close_date, - 'water_vehicles' type_property -from public.recruits r -join prop on r.id = prop.recruit_id - Y - - - 480 - 464 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - property
- - N - Y - N - Y - - - 688 - 208 - -
- - Table output 2 - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - property
- - N - Y - N - Y - - - 688 - 304 - -
- - Table output 2 2 - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - property
- - N - Y - N - Y - - - 688 - 384 - -
- - Table output 2 2 2 - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - property
- - N - Y - N - Y - - - 688 - 464 - -
- - - -
diff --git a/mappings/jobs_once_a_day/prosecution_once.hpl b/mappings/jobs_once_a_day/prosecution_once.hpl deleted file mode 100644 index 55af724..0000000 --- a/mappings/jobs_once_a_day/prosecution_once.hpl +++ /dev/null @@ -1,169 +0,0 @@ - - - - prosecution_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - 251 - 232 - 201 - 90 - 58 - 14 - N - 90 - 58 - 14 - N - Segoe UI - 9 - 328 - 976 - 144 - архив -WITH ugol AS ( - SELECT - jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS u, - ri.recruit_id - FROM public.recruits_info ri - WHERE jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -) -SELECT - r.id AS recruit_id, - u->'sledSud'->>'naimSud' AS kind, - TO_DATE(u->'sledSud'->>'dataVozbUD', 'YYYY-MM-DD') AS create_date, - TO_DATE(u->'sledSud'->'svedSnyat'->>'dataSnyatSud', 'YYYY-MM-DD') AS close_date, - u->'sledSud'->>'naimOrgan' AS authority_name, - STRING_AGG(TRIM(BOTH ' "' FROM law.f), ', ') AS law_point, - u->'sledSud'->'svedSnyat'->>'osnSnyatSud' AS termination_basis -FROM public.recruits r -JOIN ugol ON r.id = ugol.recruit_id -LEFT JOIN LATERAL jsonb_array_elements_text(u->'sledSud'->'statiUK') AS law(f) ON true -GROUP BY r.id, kind, create_date, close_date, authority_name, termination_basis; - 486 - - - - - Table input (prosecution) - Table output (prosecution) - Y - - - - Table input (prosecution) - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH -ugolov_presl AS ( - SELECT - jsonb_array_elements(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') AS up, - ri.recruit_id - --'prOtsSvedUgolovPresl' - FROM public.recruits_info ri - join public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') - WHERE jsonb_typeof(ri.info->'svedFL'->'svedUgolovPresl'->'faktyUgolovPresl') = 'array' -) -SELECT - r.id AS recruit_id, - --up->'sledSud'->>'uk', -- уголовный кодекс? - up->'sledSud'->'extend'->>'nomerUDPredv' AS case_number, -- номер уголовного дела (предварительный) - up->'sledSud'->'extend'->>'svedPerekvalif' AS reclassification, -- сведения о переквалификации деяния - --up->'sledSud'->'extend'->>'kodVidUgolovPresl', -- - up->'sledSud'->'extend'->>'naimVidUgolovPresl' AS kind, -- наименование вида уголовного преследования - CASE - WHEN up->'sledSud'->'extend'->>'priznakPeredachSud' = '1' THEN true -- передано в суд - ELSE false -- нет или нет инфы - END AS transfer_to_court, -- признак передачи в суд уголовного дела в отношении гражданина? - - --up->'sledSud'->>'naimSud', -- Наименование суда??? - up->'sledSud'->>'nomerUD' AS case_number_court, -- номер уголовного дела??? номер уголовного дела (судебный) - STRING_AGG(TRIM(BOTH ' "' FROM law.f), ', ') AS law_point, -- статьи уголовного кодекса - up->'sledSud'->>'naimOrgan' AS authority_name, -- наименование органа принявшего решение - --up->'sledSud'->'svedSnyat'->>'osnSnyatSud', -- основание прекращения уголовного преследования??? - --up->'sledSud'->'svedSnyat'->>'dataSnyatSud', -- дата прекращения уголовного преследования - --up->'sledSud'->'svedSnyat'->>'dataOsuzhd', -- дата осуждения??? = - up->'sledSud'->'svedSnyat'->>'dataVozbUD' AS create_date, -- дата возбуждения уголовного дела - up->'sledSud'->'svedSnyat'->>'osnPrekrUD' AS termination_basis, -- основания прекращения уголовного дела = основания прекращения уголовного преследования? - --up->'sledSud'->'svedSnyat'->>'statusNaim' , -- ???? - up->'sledSud'->'svedSnyat'->>'dataPrekrUD' AS close_date--, -- дата прекращения уголовного дела - --up->>'sledSudTekst', -- ??? - --up->>'sledSudPriznak' -- ??? - --'UG_PRESL' AS info_type -FROM public.recruits r -JOIN ugolov_presl up ON r.id = up.recruit_id -LEFT JOIN LATERAL jsonb_array_elements_text(up->'sledSud'->'statiUK') AS law(f) ON true -GROUP BY r.id, up - Y - - - 432 - 304 - - - - Table output (prosecution) - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - prosecution
- - N - Y - N - Y - - - 736 - 304 - -
- - - -
diff --git a/mappings/jobs_once_a_day/punishment_once.hpl b/mappings/jobs_once_a_day/punishment_once.hpl deleted file mode 100644 index e263f80..0000000 --- a/mappings/jobs_once_a_day/punishment_once.hpl +++ /dev/null @@ -1,108 +0,0 @@ - - - - punishment_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input 2 - Table output - Y - - - - Table input 2 - TableInput - - Y - - 1 - - none - - - ervu_person_registry - N - 0 - WITH ugol AS (SELECT ri.recruit_id, - jsonb_array_elements(ri.info -> 'svedFL' -> 'svedNakaz' -> 'nakaz') AS nakaz - FROM public.recruits_info ri - JOIN public.recruits r ON r.id = ri.recruit_id - WHERE ri.info -> 'svedFL' -> 'svedNakaz' ->> 'nakaz' != 'null' - AND '${RCRT_C}' IN (r.target_recruitment_id, r.current_recruitment_id)) -SELECT recruit_id, - nakaz ->> 'naimSud' AS authority_name, - nakaz ->> 'srokNakaz' AS sentence, - nakaz ->> 'adresOrg' AS sentence_place, --- nakaz->>'vidNakaz' AS punishment_code, - nakaz ->> 'naimIzmSrokNakaz' AS sentence_changed, - nakaz ->> 'vidNakaz' AS punishment_type, - TO_DATE(nakaz ->> 'dataNachSrok', 'YYYY-MM-DD') AS start_date, - TO_DATE(nakaz ->> 'dataOsvob', 'YYYY-MM-DD') AS release_date, - TO_DATE(nakaz ->> 'dataOsuzhd', 'YYYY-MM-DD') AS sentense_date, - string_agg(statiuk_elem, ', ') AS law_point, - nakaz ->> 'osnOsvob' AS release_reason -FROM ugol - LEFT JOIN LATERAL jsonb_array_elements_text(nakaz -> 'statiUK') AS statiuk_elem ON true -GROUP BY recruit_id, nakaz; - Y - - - 464 - 304 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 50000 - ervu-dashboard - - - N - N - N - N - Y - N - ervu_dashboard - N - punishment
- N - Y - N - Y - - - 736 - 304 - -
- - - -
diff --git a/mappings/jobs_once_a_day/spouse_once.hpl b/mappings/jobs_once_a_day/spouse_once.hpl deleted file mode 100644 index 2b203d4..0000000 --- a/mappings/jobs_once_a_day/spouse_once.hpl +++ /dev/null @@ -1,296 +0,0 @@ - - - - spouse_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Select values - Table output - Y - - - Table input - Select values - Y - - - Select values - Insert / update - N - - - - Insert / update - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruit_id - recruit_id - - - = - full_name - full_name - - ervu_dashboard - citizen_spouse
- - recruit_id - recruit_id - N - - - birth_date - birth_date - Y - - - death_az_number - divorce_az_number - Y - - - death_date - death_date - Y - - - divorce_az_number - divorce_az_number - Y - - - divorce_date - divorce_date - Y - - - full_name - full_name - Y - - - information_excluded - information_excluded - Y - - - kinship_type - kinship_type - Y - - - marriage_az_number - marriage_az_number - Y - - - marriage_date - marriage_date - Y - -
- N - - - 704 - 208 - -
- - Select values - SelectValues - - Y - - 1 - - none - - - - N - - marriage_date - marriage_date - Date - -2 - -2 - yyyy-MM-dd - false - - - false - - - - - - - - divorce_date - divorce_date - Date - -2 - -2 - yyyy-MM-dd - false - - - false - - - - - - - - - - 448 - 208 - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu_person_registry - 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 public.recruits_info ri - JOIN public.recruits r ON r.id = ri.recruit_id AND (r.target_recruitment_id= '${RCRT_C}' or r.current_recruitment_id = '${RCRT_C}') - 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.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, - divorce_az_number, - divorce_date, - information_excluded -FROM public.recruits r -JOIN suprug ON r.id = suprug.recruit_id - Y - - - 192 - 208 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 20000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - citizen_spouse
- - N - Y - N - Y - - - 688 - 64 - -
- - - Select values - - N - - - - - - - - - - -
diff --git a/mappings/jobs_once_a_day/subpoena_flags.hpl b/mappings/jobs_once_a_day/subpoena_flags.hpl deleted file mode 100644 index 7b700ae..0000000 --- a/mappings/jobs_once_a_day/subpoena_flags.hpl +++ /dev/null @@ -1,110 +0,0 @@ - - - - subpoena_flags - Y - - - - Normal - - - N - 1000 - 100 - - - 2025/04/25 16:50:55.585 - - - 2025/04/25 16:50:55.585 - - - - - - Table input - Update - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - ervu-dashboard - N - 0 - SELECT distinct on (recruit_id) - recruit_id, - send_date is not null AS has_sent_summons, - subpoena_status = 'Повестка вручена' AS has_served_summons, - visit_date_true is not null AS appeared_to_recruitment_center, - date_recognition_reason is not null AS not_appeared_by_valid_excuse -FROM subpoena -order by recruit_id, send_date desc; - N - - - 272 - 224 - - - - Update - Update - - Y - - 1 - - none - - - 1000 - 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 - - - 448 - 224 - -
- - - -
diff --git a/mappings/jobs_once_a_day/subpoena_once.hpl b/mappings/jobs_once_a_day/subpoena_once.hpl deleted file mode 100644 index 403519f..0000000 --- a/mappings/jobs_once_a_day/subpoena_once.hpl +++ /dev/null @@ -1,150 +0,0 @@ - - - - subpoena_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - postgres.subpoena - N - 0 - SELECT - s.id AS subpoena_id, -- идентификатор повестки - s.status_change_date, - s.recruit_id, -- идентификатор рекрута - s.department_id, -- идентификатор ВК - s.series, -- серия повестки - s.create_date, -- дата создания повестки - s.number, -- номер повестки - s.send_date, -- дата направления повестки - s.sig_info, -- открепленная ЭП - sr.name AS subpoena_reason, -- причина вызова по повестке - s.full_name_responsible_user AS fio_commiss, -- фио комиссара - s.recruitment_name, -- наименование военного комиссариата, направившего повестку - rt.address, -- адрес, по которому нужно явиться по повестке - s.visit_date, -- дата и время явки в ВК - ssi.track_number, -- уникальный номер заказного почтового отправления, которым направлена повестка - ss.name AS subpoena_status, -- статус повестки - ssi.act_number, -- номер акта об отказе во вручении повестки - ssi.delivery_fio, -- фио лица, оповестившего гражданина о последствиях отказа от получения повестки - CASE - WHEN ssi.is_delivered = true THEN ssi.delivery_date - ELSE NULL - END AS delivery_date, -- дата вручения - CASE - WHEN ssi.is_delivered = true THEN 'Вручена' - WHEN ssi.is_delivered = false THEN 'Не вручена' - ELSE 'Нет информации' - END AS delivery_status, -- признак вручения повестки - CASE - WHEN sd.type = 'DIRECTION' THEN sd.name - ELSE NULL - END AS method_sending, -- способ направления повестки - CASE - WHEN sd.type = 'DELIVERY' THEN sd.name - ELSE NULL - END AS method_delivery, -- способ вручения повестки - CASE - WHEN sa.fact_appearance = true THEN 'Явился' - WHEN sa.fact_appearance = false THEN 'Не явился' - ELSE 'Нет информации' - END AS appearance_status, -- признак явки или неявки - CASE - WHEN ss.code = '5.1' THEN 'Неявка по уважительной причине' - WHEN ss.code = '5' THEN 'Гражданин не явился' - ELSE NULL - END AS appearance -- уважительная или нет причина --- нет версии повестки -FROM public.subpoena AS s -LEFT JOIN public.subpoena_reason AS sr - ON sr.id = s.reason_id -LEFT JOIN public.recruitment AS rt - ON rt.id = s.department_id -LEFT JOIN public.subpoena_send_info AS ssi - ON ssi.subpoena_id = s.id -LEFT JOIN public.send_dictionary AS sd - ON sd.code = ssi.send_code -LEFT JOIN public.subpoena_status AS ss - ON ss.id = s.status_id -LEFT JOIN public.subpoena_appearance AS sa - ON sa.subpoena_id = s.id; - N - - - 208 - 208 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 5000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - subpoena
- - N - Y - N - Y - - - 416 - 208 - -
- - - -
diff --git a/mappings/jobs_once_a_day/temporary_measure_once.hpl b/mappings/jobs_once_a_day/temporary_measure_once.hpl deleted file mode 100644 index c6cc5e0..0000000 --- a/mappings/jobs_once_a_day/temporary_measure_once.hpl +++ /dev/null @@ -1,132 +0,0 @@ - - - - temporary_measure_once - Y - - - - Normal - - - N - 1000 - 100 - - - 2024/08/15 14:02:51.713 - - - 2024/08/15 14:02:51.713 - - - - - - Table input - Table output - Y - - - - Table input - TableInput - - Y - - 1 - - none - - - postgres.subpoena - N - 0 - SELECT - rd.subpoena_id, - rd.vk_id AS recruitment_id, - s.recruit_id, - rds.name AS status_measure, -- статус временной меры - rd.recruitment_name, -- наименоване ВК - rdi.cancel_date, -- дата, с которой отменена временная мера - rn.name AS restriction_name, -- наименование ограничения (тип временной меры) - CASE - WHEN rd.type='CREATE' THEN 'Применение временной меры' - WHEN rd.type='CANCEL' THEN 'Отмена временной меры' - END AS type, -- тип документа ограничения - CASE - WHEN rd.type='CREATE' THEN rd.decision_number - ELSE NULL - END AS decision_number_create, -- номер решения о применении временной меры - CASE - WHEN rd.type='CANCEL' THEN rd.decision_number - ELSE NULL - END AS decision_number_cancel, -- номер решения об отмене временной меры - CASE - WHEN rd.type='CREATE' THEN rd.decision_date - ELSE NULL - END AS decision_date_create, -- дата решения о применении временной меры - CASE - WHEN rd.type='CANCEL' THEN rd.decision_date - ELSE NULL - END AS decision_date_cancel, -- дата решения об отмене временной меры - CASE - WHEN rdi.applied_fact = 'true' THEN 'Временная мера применена' - WHEN rdi.applied_fact = 'false' THEN 'Временная мера не применена' - ELSE 'Нет информации' - END AS applied_fact -- факт применения временной меры -FROM public.restriction_document AS rd -LEFT JOIN public.restriction_document_item AS rdi - ON rdi.restriction_document_create_id = rd.id -LEFT JOIN public.restriction AS rn - ON rn.id = rdi.restriction_id -LEFT JOIN public.restriction_document_status AS rds - ON rds.code = rd.status -LEFT JOIN public.subpoena AS s - ON s.id = rd.subpoena_id - N - - - 208 - 208 - - - - Table output - TableOutput - - Y - - 1 - - none - - - 5000 - ervu-dashboard - - - N - N - N - N - - Y - - N - ervu_dashboard - N - temporary_measures
- - N - Y - N - Y - - - 416 - 208 - -
- - - -
diff --git a/mappings/mil_com/job_recruitments_milcom.hwf b/mappings/mil_com/job_recruitments_milcom.hwf index 6fb1a77..f429311 100644 --- a/mappings/mil_com/job_recruitments_milcom.hwf +++ b/mappings/mil_com/job_recruitments_milcom.hwf @@ -46,48 +46,6 @@ 1552 - - main_dashboard.appeals(m_c).hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/mil_com/main_dashboard.appeals(m_c).hpl - txt - ${Internal.Entry.Current.Folder}/\logs\appeals - Basic - - - ARR_MC - ARRAY_MIL_COM - - Y - - Y - local - N - N - Y - N - 1840 - 944 - - - - Success - - SUCCESS - - N - 2048 - 944 - - Success 2 @@ -522,46 +480,6 @@ 1824 - - recruitment_campaign.appeals(m_c).hpl - - PIPELINE - - N - N - N - N - N - Y - ${PROJECT_HOME}/mil_com/recruitment_campaign.appeals(m_c).hpl - Basic - - - ARR_MC - ARRAY_MIL_COM - - Y - - Y - local - N - N - Y - N - 320 - 1968 - - - - Success 16 - - SUCCESS - - N - 0 - 1968 - - array_recruitments.hpl @@ -588,16 +506,6 @@ 1552 - - Dummy - - DUMMY - - N - 1648 - 944 - - SQL total_registered.reg_mil_cat @@ -775,23 +683,6 @@ WHERE recording_date = current_date 1824 - - SQL recruitment_campaign.appeals - - SQL - - ervu-dashboard - N - DELETE FROM recruitment_campaign.appeals -WHERE recording_date = current_date - AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty', 'Organization', 'Region') - N - N - N - 624 - 1968 - - main_dashboard.recruitment_campaign(m_c).hwf @@ -801,7 +692,9 @@ WHERE recording_date = current_date N N N - ${PROJECT_HOME}/mil_com/main_dashboard.recruitment_campaign(m_c).hwf + ${PROJECT_HOME}/mil_com/main_dashboard.recruitment_campaign(m_c)/main_dashboard.recruitment_campaign(m_c).hwf + + Nothing Y @@ -1817,20 +1710,6 @@ WHERE recording_date = current_date Y N - - recruitment_campaign.appeals(m_c).hpl - Success 16 - Y - Y - N - - - main_dashboard.appeals(m_c).hpl - Success - Y - Y - N - Start array_recruitments.hpl @@ -1838,20 +1717,6 @@ WHERE recording_date = current_date Y Y - - array_recruitments.hpl - Dummy - N - Y - N - - - Dummy - main_dashboard.appeals(m_c).hpl - Y - Y - Y - array_recruitments.hpl SQL total_registered.reg_mil_cat @@ -1992,20 +1857,6 @@ WHERE recording_date = current_date N Y - - array_recruitments.hpl - SQL recruitment_campaign.appeals - N - Y - N - - - SQL recruitment_campaign.appeals - recruitment_campaign.appeals(m_c).hpl - Y - Y - Y - Start main_dashboard.recruitment_campaign(m_c).hwf diff --git a/mappings/mil_com/main_dashboard.appeals(m_c).hpl b/mappings/mil_com/main_dashboard.appeals(m_c).hpl deleted file mode 100644 index 91bc951..0000000 --- a/mappings/mil_com/main_dashboard.appeals(m_c).hpl +++ /dev/null @@ -1,314 +0,0 @@ - - - - main_dashboard.appeals(m_c) - Y - - - - Normal - 0 - - - N - 1000 - 100 - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - - - - - - Get variables 3 2 - Select values 3 2 - N - - - Select values 3 2 - Insert / update (main_dashboard.appeals) 2 - N - - - Table input (appeal_document) регионы - Get variables 3 2 - N - - - Execute SQL script - Table input (appeal_document) регионы - Y - - - Table input (appeal_document) регионы - Insert / update (main_dashboard.appeals) 2 - Y - - - - Execute SQL script - ExecSql - - Y - - 1 - - none - - - - - ervu-dashboard - - N - - N - - Y - N - N - DELETE FROM main_dashboard.appeals -WHERE recording_date = current_date - AND schema IN ('Department', 'MD_LVL', 'REG_LVL', 'empty') - - - - - 224 - 192 - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - -1 - REС_ID - -1 - none - String - - - -1 - SCM - -1 - none - String - - - - - 672 - 384 - - - - Insert / update (main_dashboard.appeals) 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - main_dashboard - appeals
- - total_appeals - total_appeals - Y - - - average_consideration - average_consideration - Y - - - resolved - resolved - Y - - - average_rating - average_rating - Y - - - average_to_face - average_to_face - Y - - - "average_EPGU" - average_epgu - Y - - - average_to_face_percent - average_to_face_percent - Y - - - "average_EPGU_percent" - average_epgu_percent - Y - - - recruitment_id - recruitment_id - N - -
- Y - - - 1024 - 192 - -
- - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REС_ID - REС_ID - String - -2 - -2 - - false - - - false - - - - - - - - SCM - SCM - String - -2 - -2 - - false - - - false - - - - - - - - - - 816 - 384 - - - - Table input (appeal_document) регионы - TableInput - - N - - 1 - - none - - - postgres.appeal-document-service - N - 0 - WITH -ids AS ( - SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id -), -t1 AS ( - SELECT - COUNT(*) AS total_appeals, - vk_id::uuid AS recruitment_id - FROM public.appeal_document - WHERE vk_id::uuid IN (SELECT recruitment_id FROM ids) - GROUP BY vk_id -), -t2 AS ( - SELECT - ROUND(AVG((TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date)), 2) AS average_consideration, - vk_id::uuid AS recruitment_id - FROM public.appeal_document ad - WHERE vk_id::uuid IN (SELECT recruitment_id FROM ids) - AND ad.extra_info ->> 'resultDate' IS NOT NULL - AND ad.extra_info ->> 'resultDate' != '' - GROUP BY vk_id -), -resolved AS ( - SELECT - COUNT(*) AS resolved, - vk_id::uuid AS recruitment_id - FROM public.appeal_document ad - WHERE ad.extra_info ->> 'result' = '1' - AND vk_id::uuid IN (SELECT recruitment_id FROM ids) - GROUP BY vk_id -) -SELECT - COALESCE(t1.total_appeals, 0) AS total_appeals, - COALESCE(t2.average_consideration, 0) AS average_consideration, - COALESCE(resolved.resolved, 0) AS resolved, - ids.recruitment_id, - current_date AS recording_date, - 0 AS average_rating, - 0 AS average_to_face, - 0 AS average_epgu, - 0 AS average_to_face_percent, - 0 AS average_epgu_percent -FROM ids -LEFT JOIN t1 ON ids.recruitment_id = t1.recruitment_id -LEFT JOIN t2 ON ids.recruitment_id = t2.recruitment_id -LEFT JOIN resolved ON ids.recruitment_id = resolved.recruitment_id; - Y - - - 448 - 192 - - - - - -
diff --git a/mappings/mil_com/main_dashboard.recruitment_campaign(m_c).hwf b/mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/main_dashboard.recruitment_campaign(m_c).hwf similarity index 100% rename from mappings/mil_com/main_dashboard.recruitment_campaign(m_c).hwf rename to mappings/mil_com/main_dashboard.recruitment_campaign(m_c)/main_dashboard.recruitment_campaign(m_c).hwf diff --git a/mappings/mil_com/parameters/add_schema.hpl b/mappings/mil_com/parameters/add_schema.hpl index 30303dd..836f4d7 100644 --- a/mappings/mil_com/parameters/add_schema.hpl +++ b/mappings/mil_com/parameters/add_schema.hpl @@ -20,86 +20,6 @@ - - Table input - Insert / update (main_dashboard.total_registered) - N - - - Table input - Insert / update (main_dashboard.waiting_registration) - N - - - Table input - Insert / update (total_registered.reg_mil_cat) - N - - - Table input - Insert / update (total_registered.removed_registry) - N - - - Table input - Insert / update (total_registered.subpoenas) - N - - - Table input - Insert / update (total_registered.driver_license) - N - - - Table input - Insert / update (total_registered.child_minor) - N - - - Table input - Insert / update (total_registered.age) - N - - - Table input - Insert / update (total_registered.marital_status) - N - - - Table input - Insert / update (total_registered.education_level) - N - - - Table input - Insert / update (recruitment_campaign.appeals) - N - - - Table input - Dummy (do nothing) - N - - - Dummy (do nothing) - Insert / update (main_dashboard.appeals) - N - - - Table input main_dashboard.recruitment_campaign - Insert / update (main_dashboard.recruitment_campaign) - N - - - Table input recruitment_campaign.subpoenas - Insert / update (recruitment_campaign.subpoenas) - N - - - Table input - Insert / update (total_registered.busyness) - N - Table input Update (total_registered.driver_license) @@ -158,7 +78,7 @@ Table input Update (recruitment_campaign.appeals) - Y + N Table input @@ -171,918 +91,6 @@ Y - - Dummy (do nothing) - Dummy - - Y - - 1 - - none - - - - - 176 - 464 - - - - Insert / update (main_dashboard.appeals) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - recording_date - recording_date - - main_dashboard - appeals
- - recruitment_id - recruitment_id - N - - - schema - schema - Y - - - recording_date - recording_date - N - -
- N - - - 416 - 464 - -
- - Insert / update (main_dashboard.recruitment_campaign) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - recording_date - recording_date - - - = - spring_autumn - spring_autumn - - main_dashboard - recruitment_campaign
- - recruitment_id - recruitment_id - N - - - schema - schema - Y - - - recording_date - recording_date - N - - - appeared_on_subpoenas - appeared_on_subpoenas - N - - - appeared_on_subpoenas_percent - appeared_on_subpoenas_percent - N - - - new_recruits - new_recruits - N - - - not_appeared_on_subpoenas - not_appeared_on_subpoenas - N - - - not_appeared_on_subpoenas_percent - not_appeared_on_subpoenas_percent - N - - - postponement_granted - postponement_granted - N - - - postponement_granted_percent - postponement_granted_percent - N - - - postponement_have_right - postponement_have_right - N - - - postponement_have_right_percent - postponement_have_right_percent - N - - - subpoenas_sent - subpoenas_sent - N - - - spring_autumn - spring_autumn - Y - -
- N - - - 448 - 272 - -
- - Insert / update (main_dashboard.total_registered) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - recording_date - recording_date - - main_dashboard - total_registered
- - recruitment_id - recruitment_id - N - - - schema - schema - Y - - - recording_date - recording_date - N - -
- N - - - 176 - 592 - -
- - Insert / update (main_dashboard.waiting_registration) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - recording_date - recording_date - - main_dashboard - waiting_registration
- - recruitment_id - recruitment_id - N - - - schema - schema - Y - - - recording_date - recording_date - N - -
- N - - - 176 - 672 - -
- - Insert / update (recruitment_campaign.appeals) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - recording_date - recording_date - - recruitment_campaign - appeals
- - recruitment_id - recruitment_id - N - - - schema - schema - Y - - - recording_date - recording_date - N - -
- N - - - 0 - 2016 - -
- - Insert / update (recruitment_campaign.subpoenas) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - recording_date - recording_date - - - = - spring_autumn - spring_autumn - - recruitment_campaign - subpoenas
- - recruitment_id - recruitment_id - N - - - schema - schema - Y - - - recording_date - recording_date - N - - - ap_not_required - ap_not_required - N - - - ap_not_required_percent - ap_not_required_percent - N - - - appear_date_is_good - appear_date_is_good - N - - - appear_date_is_good_percent - appear_date_is_good_percent - N - - - appeared - appeared - N - - - appeared_percent - appeared_percent - N - - - count_not_delivery - count_not_delivery - N - - - introduced_measures - introduced_measures - N - - - introduced_measures_percent - introduced_measures_percent - N - - - not_ap_good_reason - not_ap_good_reason - N - - - not_ap_good_reason_percent - not_ap_good_reason_percent - N - - - not_appeared - not_appeared - N - - - not_appeared_percent - not_appeared_percent - N - - - not_delivery_percent - not_delivery_percent - N - - - rest - rest - N - - - restrictions_applied - restrictions_applied - N - - - restrictions_applied_percent - restrictions_applied_percent - N - - - subpoena - subpoena - N - - - spring_autumn - spring_autumn - Y - -
- N - - - 448 - 352 - -
- - Insert / update (total_registered.age) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - recording_date - recording_date - - total_registered - age
- - recruitment_id - recruitment_id - N - - - schema - schema - Y - - - recording_date - recording_date - N - -
- N - - - 0 - 1616 - -
- - Insert / update (total_registered.busyness) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - recording_date - recording_date - - total_registered - busyness
- - recruitment_id - recruitment_id - N - - - schema - schema - Y - - - recording_date - recording_date - N - -
- N - - - 0 - 1776 - -
- - Insert / update (total_registered.child_minor) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - recording_date - recording_date - - total_registered - child_minor
- - recruitment_id - recruitment_id - N - - - schema - schema - Y - - - recording_date - recording_date - N - -
- N - - - 0 - 1536 - -
- - Insert / update (total_registered.driver_license) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - recording_date - recording_date - - total_registered - driver_license
- - recruitment_id - recruitment_id - N - - - schema - schema - Y - - - recording_date - recording_date - N - -
- N - - - 0 - 1456 - -
- - Insert / update (total_registered.education_level) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - recording_date - recording_date - - total_registered - education_level
- - recruitment_id - recruitment_id - N - - - schema - schema - Y - - - recording_date - recording_date - N - -
- N - - - 0 - 1856 - -
- - Insert / update (total_registered.marital_status) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - recording_date - recording_date - - total_registered - marital_status
- - recruitment_id - recruitment_id - N - - - schema - schema - Y - - - recording_date - recording_date - N - -
- N - - - 0 - 1696 - -
- - Insert / update (total_registered.reg_mil_cat) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - recording_date - recording_date - - total_registered - reg_mil_cat
- - recruitment_id - recruitment_id - N - - - schema - schema - Y - - - recording_date - recording_date - N - -
- N - - - 176 - 752 - -
- - Insert / update (total_registered.removed_registry) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - recording_date - recording_date - - total_registered - removed_registry
- - recruitment_id - recruitment_id - N - - - schema - schema - Y - - - recording_date - recording_date - N - -
- N - - - 176 - 832 - -
- - Insert / update (total_registered.subpoenas) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - recording_date - recording_date - - total_registered - subpoenas
- - recruitment_id - recruitment_id - N - - - schema - schema - Y - - - recording_date - recording_date - N - -
- N - - - 176 - 912 - -
Table input TableInput @@ -1118,120 +126,6 @@ WHERE schema in ('Department', 'Organization', 'Region') 928
- - Table input main_dashboard.recruitment_campaign - TableInput - - N - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -season_separations AS ( - SELECT 'Осень' AS spring_autumn - UNION ALL - SELECT 'Весна' AS spring_autumn -) - SELECT - 0 AS new_recruits, - 0 AS subpoenas_sent, - 0 AS appeared_on_subpoenas, - 0 AS not_appeared_on_subpoenas, - 0 AS postponement_have_right, - 0 AS postponement_granted, - 0 AS appeared_on_subpoenas_percent, - 0 AS not_appeared_on_subpoenas_percent, - 0 AS postponement_have_right_percent, - 0 AS postponement_granted_percent, - ss.spring_autumn, - idm_id AS recruitment_id, - -- parent_id AS PARENT_ID, - CASE - WHEN schema = 'Department' THEN 'Department' - WHEN schema = 'Organization' THEN 'REG_LVL' - WHEN schema = 'Region' THEN 'MD_LVL' - WHEN schema = 'Ministry' THEN 'Ministry' - ELSE schema -- на случай, если появится неизвестное значение - END AS schema, - current_date AS recording_date -FROM - ervu_dashboard.recruitment -CROSS JOIN season_separations ss -WHERE schema in ('Department', 'Organization', 'Region') - N - - - 80 - 272 - - - - Table input recruitment_campaign.subpoenas - TableInput - - N - - 1 - - none - - - ervu-dashboard - N - 0 - WITH -season_separations AS ( - SELECT 'Осень' AS spring_autumn - UNION ALL - SELECT 'Весна' AS spring_autumn -) - SELECT - 0 AS subpoena, - 0 AS appeared, - 0 AS not_appeared, - 0 AS not_ap_good_reason, - 0 AS ap_not_required, - 0 AS restrictions_applied, - 0 AS appeared_percent, - 0 AS not_appeared_percent, - 0 AS not_ap_good_reason_percent, - 0 AS ap_not_required_percent, - 0 AS restrictions_applied_percent, - 0 AS introduced_measures, - 0 AS introduced_measures_percent, - 0 AS rest, - 0 AS count_not_delivery, - 0 AS not_delivery_percent, - 0 AS appear_date_is_good, - 0 AS appear_date_is_good_percent, - ss.spring_autumn, - idm_id AS recruitment_id, - -- parent_id AS PARENT_ID, - CASE - WHEN schema = 'Department' THEN 'Department' - WHEN schema = 'Organization' THEN 'REG_LVL' - WHEN schema = 'Region' THEN 'MD_LVL' - WHEN schema = 'Ministry' THEN 'Ministry' - ELSE schema -- на случай, если появится неизвестное значение - END AS schema, - current_date AS recording_date -FROM - ervu_dashboard.recruitment -CROSS JOIN season_separations ss -WHERE schema in ('Department', 'Organization', 'Region') - N - - - 80 - 352 - - Update (main_dashboard.recruitment_campaign) Update @@ -1246,19 +140,16 @@ WHERE schema in ('Department', 'Organization', 'Region') 100 ervu-dashboard Y - = recruitment_id recruitment_id - = recording_date recording_date - main_dashboard recruitment_campaign
diff --git a/mappings/mil_com/parameters/array_recruitments.hpl b/mappings/mil_com/parameters/array_recruitments.hpl index b691c7f..4fc3712 100644 --- a/mappings/mil_com/parameters/array_recruitments.hpl +++ b/mappings/mil_com/parameters/array_recruitments.hpl @@ -33,12 +33,32 @@ Segoe UI 9 42 - 768 - 203 + 752 + 128 ARRAY_MIL_COM - алиас (массив idm_id всех военкоматов) ARR_MC - параметр 339 + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 752 + 192 + для запуска без параллели + 158 +
@@ -77,7 +97,6 @@ ARR_MC - параметр ervu-dashboard N - WITH ids AS ( SELECT idm_id, (ROW_NUMBER() OVER ()) - 1 AS rn diff --git a/mappings/mil_com/parameters/ft_main_dashboard.appeals(m_c).hpl b/mappings/mil_com/parameters/ft_main_dashboard.appeals(m_c).hpl deleted file mode 100644 index 0189b69..0000000 --- a/mappings/mil_com/parameters/ft_main_dashboard.appeals(m_c).hpl +++ /dev/null @@ -1,310 +0,0 @@ - - - - ft_main_dashboard.appeals(m_c) - Y - - - - Normal - 0 - - - N - 1000 - 100 - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - - - - - - Get variables 3 2 - Select values 3 2 - N - - - Select values 3 2 - Insert / update (main_dashboard.appeals) 2 - N - - - Table input (appeal_document) регионы - Get variables 3 2 - N - - - Execute SQL script - Table input (appeal_document) регионы - Y - - - Table input (appeal_document) регионы - Insert / update (main_dashboard.appeals) 2 - Y - - - - Execute SQL script - ExecSql - - Y - - 1 - - none - - - - - ervu-dashboard - N - N - Y - N - N - DELETE FROM main_dashboard.appeals -WHERE recording_date = current_date - AND schema IN ('Department', 'MD_LVL', 'REG_LVL') - - - - 208 - 192 - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - -1 - REС_ID - -1 - none - String - - - -1 - SCM - -1 - none - String - - - - - 672 - 432 - - - - Insert / update (main_dashboard.appeals) 2 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - main_dashboard - appeals
- - total_appeals - total_appeals - Y - - - average_consideration - average_consideration - Y - - - resolved - resolved - Y - - - average_rating - average_rating - Y - - - average_to_face - average_to_face - Y - - - "average_EPGU" - average_epgu - Y - - - average_to_face_percent - average_to_face_percent - Y - - - "average_EPGU_percent" - average_epgu_percent - Y - - - recruitment_id - recruitment_id - N - -
- Y - - - 1024 - 192 - -
- - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REС_ID - REС_ID - String - -2 - -2 - - false - - - false - - - - - - - - SCM - SCM - String - -2 - -2 - - false - - - false - - - - - - - - - - 800 - 432 - - - - Table input (appeal_document) регионы - TableInput - - N - - 1 - - none - - - postgres.appeal-document-service - N - 0 - WITH -ids AS ( - SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id -), -t1 AS ( - SELECT - COUNT(*) AS total_appeals, - vk_id::uuid AS recruitment_id - FROM public.appeal_document - WHERE vk_id::uuid IN (SELECT recruitment_id FROM ids) - GROUP BY vk_id -), -t2 AS ( - SELECT - ROUND(AVG((TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date)), 2) AS average_consideration, - vk_id::uuid AS recruitment_id - FROM public.appeal_document ad - WHERE vk_id::uuid IN (SELECT recruitment_id FROM ids) - AND ad.extra_info ->> 'resultDate' IS NOT NULL - AND ad.extra_info ->> 'resultDate' != '' - GROUP BY vk_id -), -resolved AS ( - SELECT - COUNT(*) AS resolved, - vk_id::uuid AS recruitment_id - FROM public.appeal_document ad - WHERE ad.extra_info ->> 'result' = '1' - AND vk_id::uuid IN (SELECT recruitment_id FROM ids) - GROUP BY vk_id -) -SELECT - COALESCE(t1.total_appeals, 0) AS total_appeals, - COALESCE(t2.average_consideration, 0) AS average_consideration, - COALESCE(resolved.resolved, 0) AS resolved, - ids.recruitment_id, - 0 AS average_rating, - 0 AS average_to_face, - 0 AS average_epgu, - 0 AS average_to_face_percent, - 0 AS average_epgu_percent -FROM ids -LEFT JOIN t1 ON ids.recruitment_id = t1.recruitment_id -LEFT JOIN t2 ON ids.recruitment_id = t2.recruitment_id -LEFT JOIN resolved ON ids.recruitment_id = resolved.recruitment_id; - Y - - - 448 - 192 - - - - - -
diff --git a/mappings/mil_com/recruitment_campaign.appeals(m_c).hpl b/mappings/mil_com/recruitment_campaign.appeals(m_c).hpl deleted file mode 100644 index fcdb9a8..0000000 --- a/mappings/mil_com/recruitment_campaign.appeals(m_c).hpl +++ /dev/null @@ -1,284 +0,0 @@ - - - - recruitment_campaign.appeals(m_c) - Y - - - - Normal - 0 - - - N - 1000 - 100 - - - 2024/08/02 11:56:22.507 - - - 2024/08/02 11:56:22.507 - - - - - - Get variables 3 2 - Select values 3 2 - N - - - Table input (appeal_document) регионы - Get variables 3 2 - N - - - Select values 3 2 - Insert / update (main_dashboard.appeals) - N - - - Table input (appeal_document) регионы - Insert / update (main_dashboard.appeals) - Y - - - - Get variables 3 2 - GetVariable - - Y - - 1 - - none - - - - - -1 - REC_ID - -1 - none - String - - - -1 - SCM - -1 - none - String - - - - - 960 - 416 - - - - Insert / update (main_dashboard.appeals) - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - spring_autumn - spring_autumn - - - = - recording_date - recording_date - - recruitment_campaign - appeals
- - total_appeals - total_appeals - Y - - - average_consideration - average_consideration - Y - - - resolved - resolved - Y - - - not_resolved - not_resolved - Y - - - not_resolved_percent - not_resolved_percent - Y - - - average_rating - average_rating - Y - - - resolved_percent - resolved_percent - Y - - - recruitment_id - recruitment_id - N - - - spring_autumn - spring_autumn - N - -
- N - - - 1200 - 336 - -
- - Select values 3 2 - SelectValues - - Y - - 1 - - none - - - - N - - REC_ID - REC_ID - String - -2 - -2 - - false - - - false - - - - - - - - SCM - SCM - String - -2 - -2 - - false - - - false - - - - - - - - - - 1088 - 416 - - - - Table input (appeal_document) регионы - TableInput - - N - - 1 - - none - - - postgres.appeal-document-service - N - 0 - -- ad.extra_info->>'result' = '**' 1 - удовлетворена, 2 - частично удовлетворена, 3 - отказано в удовлетворении -WITH -ids AS ( - SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id -), -season_separations AS ( - SELECT 'Осень' AS spring_autumn - UNION ALL - SELECT 'Весна' AS spring_autumn -), -data_combinations AS ( - -- Создаём все комбинации target_recruitment_id и spring_autumn - SELECT - i.recruitment_id AS recruitment_id, - ss.spring_autumn - FROM ids i - CROSS JOIN season_separations ss -), -appeals_data AS ( - SELECT - vk_id AS recruitment_id, - COUNT(*) AS total_appeals, - ROUND(AVG((TRIM(BOTH '"' FROM (ad.extra_info ->> 'resultDate')::text)::date - ad.appeal_date)), 2) AS average_consideration, - COUNT(CASE WHEN ad.extra_info->>'result' in ('1', '2') THEN 1 ELSE 0 END) AS resolved, - COUNT(CASE WHEN ad.extra_info->>'result' = '3' THEN 1 ELSE 0 END) AS not_resolved - FROM public.appeal_document ad - WHERE vk_id::uuid IN (SELECT recruitment_id FROM ids) - AND ad.extra_info ->> 'resultDate' IS NOT NULL AND ad.extra_info ->> 'resultDate'!='' - GROUP BY vk_id -) -SELECT - current_date AS recording_date, - COALESCE(ad.total_appeals, 0) AS total_appeals, - COALESCE(ad.average_consideration, 0) AS average_consideration, - COALESCE(ad.resolved, 0) AS resolved, - COALESCE(ad.not_resolved, 0) AS not_resolved, - COALESCE(ROUND(COALESCE(ad.resolved, 0) * 100.0 / NULLIF(ad.total_appeals, 0), 2), 0) AS resolved_percent, - COALESCE(ROUND(COALESCE(ad.not_resolved, 0) * 100.0 / NULLIF(ad.total_appeals, 0), 2), 0) AS not_resolved_percent, - dc.recruitment_id, - 0 AS average_rating, - dc.spring_autumn -FROM data_combinations dc -LEFT JOIN appeals_data AS ad - ON ad.recruitment_id = dc.recruitment_id; - Y - - - 848 - 336 - - - - - -
diff --git a/mappings/mil_com/recruitment_campaign.subpoenas(m_c).hpl b/mappings/mil_com/recruitment_campaign.subpoenas(m_c).hpl deleted file mode 100644 index f09b272..0000000 --- a/mappings/mil_com/recruitment_campaign.subpoenas(m_c).hpl +++ /dev/null @@ -1,685 +0,0 @@ - - - - recruitment_campaign.subpoenas(m_c) - Y - - - - Normal - 0 - - - N - 1000 - 100 - - - 2024/08/09 13:13:59.825 - - - 2024/08/09 13:13:59.825 - - - - - - Get variables 4 3 - Select values 4 3 - N - - - Table input (subpoena) осень/регионы - Get variables 4 3 - N - - - Select values 4 3 - Insert / update (recruitment_campaign.subpoenas) 3 - N - - - Table input (subpoena) осень/регионы - Insert / update (recruitment_campaign.subpoenas) 3 - N - - - Table input (subpoena) осень/регионы - Update recruitment_campaign.subpoenas - Y - - - - Get variables 4 3 - GetVariable - - Y - - 1 - - none - - - - - -1 - REC_ID - -1 - none - String - - - -1 - SCM - -1 - none - String - - - - - 592 - 624 - - - - Insert / update (recruitment_campaign.subpoenas) 3 - InsertUpdate - - Y - - 1 - - none - - - 100 - ervu-dashboard - - - = - recruitment_id - recruitment_id - - - = - spring_autumn - spring_autumn - - - = - recording_date - recording_date - - recruitment_campaign - subpoenas
- - subpoena - count_subpoena - Y - - - appeared - count_appeared - Y - - - not_appeared - count_not_appeared - Y - - - not_ap_good_reason - count_not_ap_good_reason - Y - - - introduced_measures - count_introduced_measures - Y - - - ap_not_required - count_ap_not_required - Y - - - restrictions_applied - count_restrictions_applied - Y - - - appeared_percent - appeared_percent - Y - - - not_appeared_percent - not_appeared_percent - Y - - - not_ap_good_reason_percent - not_ap_good_reason_percent - Y - - - ap_not_required_percent - ap_not_required_percent - Y - - - restrictions_applied_percent - restrictions_applied_percent - Y - - - introduced_measures_percent - introduced_measures_percent - Y - - - recruitment_id - recruitment_id - N - - - rest - rest - Y - - - spring_autumn - spring_autumn - N - - - count_not_delivery - count_not_delivery - Y - - - appear_date_is_good - appear_date_is_good - Y - - - not_delivery_percent - not_delivery_percent - Y - - - appear_date_is_good_percent - appear_date_is_good_percent - Y - -
- N - - - 1040 - 624 - -
- - Select values 4 3 - SelectValues - - Y - - 1 - - none - - - - N - - REC_ID - REC_ID - String - -2 - -2 - - false - - - false - - - - - - - - SCM - SCM - String - -2 - -2 - - false - - - false - - - - - - - - - - 768 - 624 - - - - Table input (subpoena) осень/регионы - TableInput - - Y - - 1 - - none - - - postgres.subpoena - N - 0 - WITH -ids AS ( - SELECT unnest(string_to_array(trim(both '{}' from '${ARR_MC}'), ','))::uuid AS recruitment_id -), -subpoena_data AS ( - SELECT - s.id AS subpoena_id, - s.create_date, - s.visit_date, - s.department_id::uuid AS recruitment_id, - s.status_id, - ssh.code AS sub_stat_hist, - s.send_date, - sh.date_time::timestamp AS history_date, - rdi.restriction_document_cancel_id AS restr_dc, - rdi.applied_date AS ap_date, - rdi.id AS rdi_id, - ssi.delivery_code AS d_code, - ssi.act_number - FROM subpoena s - JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY date_time DESC) AS rn, - subpoena_id, - status_id, - date_time - FROM subpoena_history sh - ) sh on sh.subpoena_id = s.id - JOIN subpoena_status AS ssh ON ssh.id = sh.status_id - JOIN subpoena_reason AS sr ON sr.id = s.reason_id - LEFT JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY created_at DESC) AS rn_d, - subpoena_id, - id - FROM restriction_document - ) AS rd ON rd.subpoena_id = s.id - LEFT JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY restriction_document_create_id ORDER BY created_at DESC) AS rn_di, - restriction_document_create_id, - restriction_document_cancel_id, - applied_date, - id - FROM restriction_document_item - ) AS rdi ON rdi.restriction_document_create_id = rd.id - LEFT JOIN ( - SELECT - ROW_NUMBER() OVER (PARTITION BY subpoena_id ORDER BY send_date DESC) AS rn_si, - subpoena_id, - delivery_code, - act_number - FROM subpoena_send_info - ) AS ssi ON ssi.subpoena_id = s.id - WHERE sh.rn = 1 AND rd.rn_d = 1 AND rdi.rn_di = 1 AND ssi.rn_si = 1 - AND sr.type = '3' - AND ssh.code NOT IN ('3.7','3.72', '3.71') -- 3.14 снесено от 14.03.2025 - AND s.department_id::uuid IN (SELECT recruitment_id FROM ids) - AND EXISTS ( - SELECT 1 - FROM subpoena_history sh2 - WHERE sh2.subpoena_id = s.id - AND sh2.status_id = (SELECT id FROM subpoena_status WHERE code = '3') - ) -), -season_separations AS ( - SELECT distinct - ls.recruitment_id, - ls.create_date, - ls.visit_date, - ls.sub_stat_hist, - ls.subpoena_id, - ls.history_date, - ls.send_date, - ls.restr_dc, - ls.ap_date, - ls.d_code, - ls.act_number, - ls.rdi_id, - CASE - WHEN (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '3 months' + INTERVAL '1 day' - AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '6 months' + INTERVAL '15 days') - THEN 'Весна' - WHEN (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '9 months' + INTERVAL '1 day' - AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '12 months' + INTERVAL '31 days') - THEN 'Осень' - END AS spring_autumn - FROM subpoena_data ls - WHERE --ls.create_date >= DATE_TRUNC('year', CURRENT_DATE) - --AND - ((ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '3 months' + INTERVAL '1 day' - AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '6 months' + INTERVAL '15 days') - OR - (ls.visit_date BETWEEN DATE_TRUNC('year', ls.visit_date) + INTERVAL '9 months' + INTERVAL '1 day' - AND DATE_TRUNC('year', ls.visit_date) + INTERVAL '12 months' + INTERVAL '31 days')) -), -season_separations_clean AS ( - SELECT DISTINCT recruitment_id, spring_autumn FROM season_separations -), -t1 AS ( - SELECT - ss.recruitment_id, - ss.spring_autumn, - COUNT(DISTINCT ss.subpoena_id) AS count_subpoena - FROM season_separations ss - WHERE sub_stat_hist IS NOT NULL - GROUP BY ss.recruitment_id, ss.spring_autumn -), -t2 AS ( - SELECT - ss.recruitment_id, - ss.spring_autumn, - ROUND( - AVG( - CASE - WHEN ss.sub_stat_hist = '4.2' THEN - GREATEST(EXTRACT(DAY FROM (ss.history_date::timestamp - ss.visit_date::timestamp)), 0) - ELSE - GREATEST(EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ss.visit_date::timestamp)), 0) - END - ) FILTER (WHERE - CASE - WHEN ss.sub_stat_hist = '4.2' THEN - EXTRACT(DAY FROM (ss.history_date::timestamp - ss.visit_date::timestamp)) - ELSE - EXTRACT(DAY FROM (CURRENT_DATE::timestamp - ss.visit_date::timestamp)) - END > 0 - ), 1 - ) AS average_appeared - FROM season_separations ss - GROUP BY ss.recruitment_id, ss.spring_autumn -), -t3 AS ( - SELECT - ss.recruitment_id, - ss.spring_autumn, - COUNT(DISTINCT ss.subpoena_id) AS count_appeared - FROM season_separations ss - WHERE ss.sub_stat_hist IN ('4.1', '4.2') -- снесен 4 статус от 14.03.2025 - GROUP BY ss.recruitment_id, ss.spring_autumn -), -t4 AS ( - SELECT - ss.recruitment_id, - ss.spring_autumn, - COUNT(DISTINCT ss.subpoena_id) AS count_not_appeared - FROM season_separations ss - WHERE sub_stat_hist = '5' - GROUP BY ss.recruitment_id, ss.spring_autumn -), -t5 AS ( - SELECT - ss.recruitment_id, - ss.spring_autumn, - COUNT(DISTINCT ss.subpoena_id) AS count_not_ap_good_reason - FROM season_separations ss - WHERE sub_stat_hist = '5.1' - GROUP BY ss.recruitment_id, ss.spring_autumn -), -t6 AS ( - SELECT - ss.recruitment_id, - ss.spring_autumn, - COUNT(DISTINCT ss.subpoena_id) AS count_ap_not_required - FROM season_separations ss - WHERE sub_stat_hist IN ('3.8', '5.2') - GROUP BY ss.recruitment_id, ss.spring_autumn -), -t7 AS ( - SELECT - ss.recruitment_id, - ss.spring_autumn, - COUNT(DISTINCT ss.subpoena_id) AS count_restrictions_applied - FROM season_separations ss - WHERE restr_dc IS NULL - GROUP BY ss.recruitment_id, ss.spring_autumn -), -t8 AS ( - SELECT - ss.recruitment_id, - ss.spring_autumn, - COUNT(DISTINCT ss.subpoena_id) AS count_introduced_measures - FROM season_separations ss - WHERE restr_dc IS NULL AND ap_date IS NOT NULL - GROUP BY ss.recruitment_id, ss.spring_autumn -), -t9 AS ( - SELECT - ss.recruitment_id, - ss.spring_autumn, - COUNT(DISTINCT ss.subpoena_id) AS count_paper - FROM season_separations ss - WHERE d_code != '7' - GROUP BY ss.recruitment_id, ss.spring_autumn -), -t10 AS ( - SELECT - ss.recruitment_id, - ss.spring_autumn, - COUNT(DISTINCT ss.subpoena_id) AS count_electron - FROM season_separations ss - WHERE d_code = '7' - GROUP BY ss.recruitment_id, ss.spring_autumn -), -t11 AS ( - SELECT - ss.recruitment_id, - ss.spring_autumn, - COUNT (DISTINCT ss.rdi_id) AS count_restrictions - FROM season_separations ss - GROUP BY ss.recruitment_id, ss.spring_autumn -), -t12 AS ( - SELECT - ss.recruitment_id, - ss.spring_autumn, - COUNT(DISTINCT ss.subpoena_id) AS count_not_delivery - FROM season_separations ss - WHERE ss.act_number IS NOT NULL - GROUP BY ss.recruitment_id, ss.spring_autumn -), -t13 AS ( - SELECT - ss.recruitment_id, - ss.spring_autumn, - COUNT(DISTINCT ss.subpoena_id) AS appear_date_is_good - FROM season_separations ss - WHERE ss.sub_stat_hist IN ('3','3.12', '3.13', '3.15', '3.1') - GROUP BY ss.recruitment_id, ss.spring_autumn -) -SELECT - current_date AS recording_date, - COALESCE(t1.count_subpoena, 0) AS count_subpoena, - COALESCE(t2.average_appeared, 0) AS average_appeared, - COALESCE(t3.count_appeared, 0) AS count_appeared, - COALESCE(t4.count_not_appeared, 0) AS count_not_appeared, - COALESCE(t5.count_not_ap_good_reason, 0) AS count_not_ap_good_reason, - COALESCE(t6.count_ap_not_required, 0) AS count_ap_not_required, - COALESCE(t7.count_restrictions_applied, 0) AS count_restrictions_applied, - COALESCE(t8.count_introduced_measures, 0) AS count_introduced_measures, - COALESCE(t9.count_paper, 0) AS count_paper, - COALESCE(t10.count_electron, 0) AS count_electron, - COALESCE(t11.count_restrictions, 0) AS count_restrictions, - COALESCE(t12.count_not_delivery, 0) AS count_not_delivery, - COALESCE(t13.appear_date_is_good, 0) AS appear_date_is_good, - ROUND(COALESCE(t3.count_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appeared_percent, - ROUND(COALESCE(t4.count_not_appeared, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_appeared_percent, - ROUND(COALESCE(t5.count_not_ap_good_reason, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_ap_good_reason_percent, - ROUND(COALESCE(t6.count_ap_not_required, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS ap_not_required_percent, - ROUND(COALESCE(t10.count_electron, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS electron_percent, - ROUND(COALESCE(t9.count_paper, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS paper_percent, - ROUND(COALESCE(t7.count_restrictions_applied, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS restrictions_applied_percent, - ROUND(COALESCE(t8.count_introduced_measures, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS introduced_measures_percent, - ROUND(COALESCE(t12.count_not_delivery, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS not_delivery_percent, - ROUND(COALESCE(t13.appear_date_is_good, 0) * 100.0 / NULLIF(t1.count_subpoena, 0), 2) AS appear_date_is_good_percent, - ss.recruitment_id, - 0 AS rest, - ss.spring_autumn -FROM season_separations_clean ss -LEFT JOIN t1 ON ss.recruitment_id = t1.recruitment_id AND ss.spring_autumn = t1.spring_autumn -LEFT JOIN t2 ON ss.recruitment_id = t2.recruitment_id AND ss.spring_autumn = t2.spring_autumn -LEFT JOIN t3 ON ss.recruitment_id = t3.recruitment_id AND ss.spring_autumn = t3.spring_autumn -LEFT JOIN t4 ON ss.recruitment_id = t4.recruitment_id AND ss.spring_autumn = t4.spring_autumn -LEFT JOIN t5 ON ss.recruitment_id = t5.recruitment_id AND ss.spring_autumn = t5.spring_autumn -LEFT JOIN t6 ON ss.recruitment_id = t6.recruitment_id AND ss.spring_autumn = t6.spring_autumn -LEFT JOIN t7 ON ss.recruitment_id = t7.recruitment_id AND ss.spring_autumn = t7.spring_autumn -LEFT JOIN t8 ON ss.recruitment_id = t8.recruitment_id AND ss.spring_autumn = t8.spring_autumn -LEFT JOIN t9 ON ss.recruitment_id = t9.recruitment_id AND ss.spring_autumn = t9.spring_autumn -LEFT JOIN t10 ON ss.recruitment_id = t10.recruitment_id AND ss.spring_autumn = t10.spring_autumn -LEFT JOIN t11 ON ss.recruitment_id = t11.recruitment_id AND ss.spring_autumn = t11.spring_autumn -LEFT JOIN t12 ON ss.recruitment_id = t12.recruitment_id AND ss.spring_autumn = t12.spring_autumn -LEFT JOIN t13 ON ss.recruitment_id = t13.recruitment_id AND ss.spring_autumn = t13.spring_autumn - Y - - - 464 - 400 - - - - Update recruitment_campaign.subpoenas - Update - - Y - - 1 - - none - - - 100 - ervu-dashboard - Y - - - - = - recruitment_id - recruitment_id - - - - = - spring_autumn - spring_autumn - - - - = - recording_date - recording_date - - - recruitment_campaign - subpoenas
- - subpoena - count_subpoena - - - appeared - count_appeared - - - not_appeared - count_not_appeared - - - not_ap_good_reason - count_not_ap_good_reason - - - ap_not_required - count_ap_not_required - - - restrictions_applied - count_restrictions_applied - - - appeared_percent - appeared_percent - - - not_appeared_percent - not_appeared_percent - - - not_ap_good_reason_percent - not_ap_good_reason_percent - - - ap_not_required_percent - ap_not_required_percent - - - restrictions_applied_percent - restrictions_applied_percent - - - introduced_measures - count_introduced_measures - - - introduced_measures_percent - introduced_measures_percent - - - count_not_delivery - count_not_delivery - - - appear_date_is_good - appear_date_is_good - - - not_delivery_percent - not_delivery_percent - - - appear_date_is_good_percent - appear_date_is_good_percent - -
- N - Y - - - 1040 - 400 - -
- - - -
diff --git a/mappings/pack.pub_recruitment.hpl b/mappings/pack.pub_recruitment.hpl index 11d2bc8..ceca4e0 100644 --- a/mappings/pack.pub_recruitment.hpl +++ b/mappings/pack.pub_recruitment.hpl @@ -111,7 +111,8 @@ rt.idm_id, rt.schema, rt.military_code AS code, - rt.updated_at + rt.updated_at, + ROW_NUMBER() OVER (ORDER BY rt.idm_id) AS rn_recruitment FROM public.recruitment rt WHERE rt.idm_id ~ '^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$' From 5c90e0568b5c63b169c297d0ab3500752ee8eeac Mon Sep 17 00:00:00 2001 From: "r.gaztdinov" Date: Tue, 10 Jun 2025 15:31:15 +0300 Subject: [PATCH 5/5] fix --- mappings/connections/db_mln118_to_local.json | 8 +- ...checkpoint_job_info_recruits_from_json.hpl | 641 ++++++++++++++++++ .../checkpoints/job_create_files_child.hwf | 235 +++++++ .../child/checkpoints/state_child_flow1.json | 2 +- .../child/checkpoints/state_child_flow2.json | 2 +- .../child/checkpoints/state_child_flow3.json | 2 +- .../child/checkpoints/state_child_flow4.json | 2 +- .../child/checkpoints/state_child_flow5.json | 2 +- .../child/checkpoints/state_job_child.json | 4 - .../job_general_info_recruits.hwf | 450 +++++------- .../job_info_recruits_from_json.hwf | 374 ++++++++++ .../checkpoint_recruit_info_error.hpl | 2 +- .../info_recruits/delta_recruits_info.hpl | 3 +- .../parallel/recruits_info_flow1.hpl | 3 +- .../parallel/recruits_info_flow2.hpl | 3 +- .../parallel/recruits_info_flow3.hpl | 3 +- .../parallel/recruits_info_flow4.hpl | 3 +- .../parallel/recruits_info_flow5.hpl | 3 +- .../recruit_update_date_ervu_dashboard.hpl | 2 +- .../recruitment_rows_five_flow_if_error.hpl | 2 +- .../supportive_jobs/job_create_files.hwf | 70 ++ .../job_create_files_for_test.hwf | 38 +- 22 files changed, 1549 insertions(+), 305 deletions(-) create mode 100644 mappings/info_recruits/checkpoints/checkpoint_job_info_recruits_from_json.hpl create mode 100644 mappings/info_recruits/citizen_tables/child/checkpoints/job_create_files_child.hwf delete mode 100644 mappings/info_recruits/citizen_tables/child/checkpoints/state_job_child.json create mode 100644 mappings/info_recruits/job_info_recruits_from_json.hwf diff --git a/mappings/connections/db_mln118_to_local.json b/mappings/connections/db_mln118_to_local.json index 3c877af..223067c 100644 --- a/mappings/connections/db_mln118_to_local.json +++ b/mappings/connections/db_mln118_to_local.json @@ -81,11 +81,11 @@ "description" : "" }, { "name" : "DB_SUBPOENA_HOST", - "value" : "10.65.244.45", + "value" : "10.10.31.119", "description" : "" }, { "name" : "DB_SUBPOENA_PORT", - "value" : "6432", + "value" : "5432", "description" : "" }, { "name" : "DB_SUBPOENA_NAME", @@ -93,11 +93,11 @@ "description" : "" }, { "name" : "DB_SUBPOENA_USERNAME", - "value" : "readonly", + "value" : "ervu-dashboard", "description" : "" }, { "name" : "DB_SUBPOENA_PASSWORD", - "value" : "readonly", + "value" : "ervu-dashboard", "description" : "" } ] } \ No newline at end of file diff --git a/mappings/info_recruits/checkpoints/checkpoint_job_info_recruits_from_json.hpl b/mappings/info_recruits/checkpoints/checkpoint_job_info_recruits_from_json.hpl new file mode 100644 index 0000000..cb521a8 --- /dev/null +++ b/mappings/info_recruits/checkpoints/checkpoint_job_info_recruits_from_json.hpl @@ -0,0 +1,641 @@ + + + + checkpoint_job_info_recruits_from_json + Y + + + + Normal + + + N + 1000 + 100 + - + 2025/05/30 10:34:00.239 + - + 2025/05/30 10:34:00.239 + + + + + + JSON input state_job_???.json + Filter rows + N + + + JSON input state_child_delta.json + Filter rows + Y + + + JSON input state_???_delta.json + Filter rows + N + + + JSON input state_job_child.json + Filter rows + Y + + + Set variables + Write to log 3 + Y + + + Set variables 2 + Write to log 3 2 + Y + + + Dummy (do nothing) + Set variables 2 + N + + + Dummy (do nothing) + Set variables + N + + + Filter rows + Abort + Y + + + + Abort + Abort + + Y + + 1 + + none + + + ABORT_WITH_ERROR + Y + 0 + + + 1072 + 784 + + + + Dummy (do nothing) + Dummy + + Y + + 1 + + none + + + + + 1136 + 608 + + + + Filter rows + FilterRows + + Y + + 1 + + none + + + + + + + + + + + = + pipeline + N + - + + N + -1 + + constant + -1 + job_child + 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 + delta_child + 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 + + + 752 + 784 + + + + JSON input state_???_delta.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_citizen_delta.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 448 + 832 + + + + JSON input state_job_???.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/citizen/checkpoints/state_job_citizen.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 448 + 912 + + + + JSON input state_child_delta.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_child_delta.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 448 + 656 + + + + JSON input state_job_child.json + JsonInput + + Y + + 1 + + none + + + N + + N + N + N + N + N + Y + Y + Y + + + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_job_child.json + + + N + N + + + + pipeline + $.pipeline + String + + + + + -1 + -1 + none + N + + + status + $.status + String + + + + + -1 + -1 + none + N + + + 0 + N + N + + + + + + + + + + + + 448 + 736 + + + + Set variables + SetVariable + + Y + + 1 + + none + + + + + status + STATUS + PARENT_WORKFLOW + + + Y + + + 1328 + 560 + + + + Set variables 2 + SetVariable + + Y + + 1 + + none + + + + + status + STATUS + PARENT_WORKFLOW + + + Y + + + 1328 + 640 + + + + Write to log 3 + WriteToLog + + Y + + 1 + + none + + + Y + + + N + 0 + Basic + ${STATUS} + + + 1520 + 560 + + + + Write to log 3 2 + WriteToLog + + Y + + 1 + + none + + + Y + + + N + 0 + Basic + ${STATUS} + + + 1520 + 640 + + + + + + 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 new file mode 100644 index 0000000..b31ca9f --- /dev/null +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/job_create_files_child.hwf @@ -0,0 +1,235 @@ + + + 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/checkpoints/state_child_flow1.json b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json index 3caff54..e858535 100644 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow1.json @@ -1,4 +1,4 @@ { - "status": "ERROR", + "status": "NEW", "pipeline": "child_flow1" } \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json index d7a317e..b154088 100644 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow2.json @@ -1,4 +1,4 @@ { - "status": "ERROR", + "status": "NEW", "pipeline": "child_flow2" } \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json index 270d04a..a42efd4 100644 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow3.json @@ -1,4 +1,4 @@ { - "status": "ERROR", + "status": "NEW", "pipeline": "child_flow3" } \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json index 8b38e87..99130c0 100644 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow4.json @@ -1,4 +1,4 @@ { - "status": "ERROR", + "status": "NEW", "pipeline": "child_flow4" } \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json index 52d92f3..c3b4a2f 100644 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json +++ b/mappings/info_recruits/citizen_tables/child/checkpoints/state_child_flow5.json @@ -1,4 +1,4 @@ { - "status": "ERROR", + "status": "NEW", "pipeline": "child_flow5" } \ No newline at end of file diff --git a/mappings/info_recruits/citizen_tables/child/checkpoints/state_job_child.json b/mappings/info_recruits/citizen_tables/child/checkpoints/state_job_child.json deleted file mode 100644 index c8d947c..0000000 --- a/mappings/info_recruits/citizen_tables/child/checkpoints/state_job_child.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "status": "SUCCESS", - "pipeline": "job_child" -} \ No newline at end of file diff --git a/mappings/info_recruits/job_general_info_recruits.hwf b/mappings/info_recruits/job_general_info_recruits.hwf index 89ff1f1..e1bfb88 100644 --- a/mappings/info_recruits/job_general_info_recruits.hwf +++ b/mappings/info_recruits/job_general_info_recruits.hwf @@ -109,8 +109,8 @@ DUMMY N - 3216 - 672 + 3232 + 624 @@ -141,74 +141,6 @@ 464 - - flags - - WORKFLOW - - N - N - N - N - cddf - Nothing - - Y - - N - local - N - N - Y - N - 2704 - 1120 - - - - flags 2 - - WORKFLOW - - N - N - N - N - cddf - Nothing - - Y - - N - local - N - N - Y - N - 2704 - 1248 - - - - Success 2 - - SUCCESS - - N - 2928 - 1120 - - - - Success 2 2 - - SUCCESS - - N - 2944 - 1248 - - job_recruit_create_date.hwf @@ -399,78 +331,10 @@ SUCCESS N - 3232 + 3616 1552 - - flags 5 - - WORKFLOW - - N - N - N - N - cddf - Nothing - - Y - - N - local - N - N - Y - N - 2272 - 1776 - - - - flags 2 2 - - WORKFLOW - - N - N - N - N - cddf - Nothing - - Y - - N - local - N - N - Y - N - 2272 - 1904 - - - - Success 2 5 - - SUCCESS - - N - 2496 - 1776 - - - - Success 2 2 2 - - SUCCESS - - N - 2512 - 1904 - - state_job_general_info_recruits_success 2 @@ -485,7 +349,7 @@ UTF-8 ${PROJECT_HOME}/info_recruits/checkpoints/state_job_general_info_recruits.json N - 2976 + 3360 1552 @@ -503,7 +367,7 @@ UTF-8 ${PROJECT_HOME}/info_recruits/checkpoints/state_job_general_info_recruits.json N - 2976 + 3360 1632 @@ -513,7 +377,7 @@ SUCCESS N - 3232 + 3616 1632 @@ -652,7 +516,7 @@ UTF-8 ${PROJECT_HOME}/info_recruits/checkpoints/state_job_general_info_recruits.json N - 2784 + 2800 416 @@ -672,8 +536,8 @@ DUMMY N - 2720 - 1552 + 3168 + 1472 @@ -725,7 +589,7 @@ N N Y - N + Y 2432 1552 @@ -744,8 +608,8 @@ UTF-8 ${PROJECT_HOME}/info_recruits/checkpoints/state_job_general_info_recruits.json N - 2960 - 1408 + 2592 + 1392 @@ -754,60 +618,12 @@ SUCCESS N - 3168 - 1408 + 2800 + 1392 - job_child.hwf - - WORKFLOW - - N - N - N - N - ${PROJECT_HOME}/info_recruits/citizen_tables/child/job_child.hwf - Nothing - - Y - - N - local - N - N - Y - N - 2704 - 672 - - - - ???job_pasport - - WORKFLOW - - N - N - N - N - df - Nothing - - Y - - N - local - N - N - Y - N - 2704 - 752 - - - - checkpoint_job_recruits_info_child + checkpoint_job_info_recruits_from_json.hpl PIPELINE @@ -817,7 +633,7 @@ N N N - 1 + ${PROJECT_HOME}/info_recruits/checkpoints/checkpoint_job_info_recruits_from_json.hpl Basic Y @@ -832,22 +648,90 @@ 672 + + job_info_recruits_from_json.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/job_info_recruits_from_json.hwf + Nothing + + + M_R_CR_DATE + ${M_R_CR_DATE} + + Y + + N + local + N + N + Y + N + 2672 + 672 + + + + checkpoint_job_info_recruits_from_json.hpl 2 + + PIPELINE + + N + N + N + N + N + N + ${PROJECT_HOME}/info_recruits/checkpoints/checkpoint_job_info_recruits_from_json.hpl + Basic + + Y + + N + local + N + N + Y + N + 3008 + 1552 + + + + job_info_recruits_from_json.hwf 2 + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/job_info_recruits_from_json.hwf + Nothing + + + M_R_CR_DATE + ${M_R_CR_DATE} + + Y + + N + local + N + N + Y + N + 2720 + 1552 + + - - flags - Success 2 - Y - Y - N - - - flags 2 - Success 2 2 - Y - Y - N - job_recruitment.hwf job_recruit_create_date.hwf @@ -904,20 +788,6 @@ Y N - - flags 5 - Success 2 5 - Y - Y - N - - - flags 2 2 - Success 2 2 2 - Y - Y - N - state_job_general_info_recruits_success 2 Success 4 @@ -998,7 +868,7 @@ Dummy state_job_general_info_recruits_success - Y + N Y Y @@ -1019,14 +889,14 @@ Dummy 3 state_job_general_info_recruits_success 2 - Y + N Y Y Dummy 3 state_job_general_info_recruits_error 2 - Y + N Y Y @@ -1037,20 +907,6 @@ Y N - - job_parallel_recruits_info_citizen.hwf 2 - flags 5 - N - Y - N - - - job_parallel_recruits_info_citizen.hwf 2 - flags 2 2 - N - Y - N - job_parallel_recruits_info_citizen.hwf 2 checkpoint_job_recruits_info_citizen.hpl 2 @@ -1058,13 +914,6 @@ N Y - - checkpoint_job_recruits_info_citizen.hpl 2 - Dummy 3 - Y - Y - N - state_job_general_info_recruits_error 3 2 Success 3 3 2 @@ -1087,47 +936,68 @@ N - checkpoint_job_recruits_info_citizen.hpl - job_child.hwf - Y - Y - N - - - checkpoint_job_recruits_info_citizen.hpl - ???job_pasport - N - Y - N - - - job_child.hwf - checkpoint_job_recruits_info_child - Y - Y - N - - - checkpoint_job_recruits_info_child + checkpoint_job_info_recruits_from_json.hpl Dummy + N + Y + N + + + checkpoint_job_info_recruits_from_json.hpl + state_job_general_info_recruits_success Y Y N - checkpoint_job_recruits_info_citizen.hpl - flags - N - Y + checkpoint_job_info_recruits_from_json.hpl + state_job_general_info_recruits_error + Y + N N checkpoint_job_recruits_info_citizen.hpl - flags 2 - N + job_info_recruits_from_json.hwf + Y Y N + + job_info_recruits_from_json.hwf + checkpoint_job_info_recruits_from_json.hpl + Y + N + Y + + + job_info_recruits_from_json.hwf 2 + checkpoint_job_info_recruits_from_json.hpl 2 + Y + N + Y + + + checkpoint_job_recruits_info_citizen.hpl 2 + job_info_recruits_from_json.hwf 2 + Y + Y + N + + + checkpoint_job_info_recruits_from_json.hpl 2 + state_job_general_info_recruits_success 2 + Y + Y + N + + + checkpoint_job_info_recruits_from_json.hpl 2 + state_job_general_info_recruits_error 2 + Y + N + N + @@ -1195,6 +1065,26 @@ и загрузка ervu_dashboard.recruitment 219 + + 251 + 232 + 201 + 90 + 58 + 14 + N + 90 + 58 + 14 + N + Segoe UI + 9 + 26 + 2592 + 624 + тут все джожбы которые парсят json + 212 + diff --git a/mappings/info_recruits/job_info_recruits_from_json.hwf b/mappings/info_recruits/job_info_recruits_from_json.hwf new file mode 100644 index 0000000..967cb3a --- /dev/null +++ b/mappings/info_recruits/job_info_recruits_from_json.hwf @@ -0,0 +1,374 @@ + + + job_info_recruits_from_json + Y + + + + - + 2025/06/10 13:13:23.644 + - + 2025/06/10 13:13:23.644 + + + + + Start + + SPECIAL + + 1 + 12 + 60 + 0 + 0 + N + 0 + 1 + N + 496 + 400 + + + + job_child.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/job_child.hwf + + + Nothing + + + M_R_CR_DATE + + ${M_R_CR_DATE} + + Y + + N + local + N + N + Y + N + 800 + 80 + + + + Workflow 2 + + WORKFLOW + + N + N + N + N + + Y + + N + N + N + Y + N + 800 + 160 + + + + Workflow 3 + + WORKFLOW + + N + N + N + N + + Y + + N + N + N + Y + N + 800 + 240 + + + + Workflow 4 + + WORKFLOW + + N + N + N + N + + Y + + N + N + N + Y + N + 800 + 320 + + + + Workflow 5 + + WORKFLOW + + N + N + N + N + + Y + + N + N + N + Y + N + 800 + 400 + + + + Workflow 6 + + WORKFLOW + + N + N + N + N + + Y + + N + N + N + Y + N + 800 + 480 + + + + Workflow 7 + + WORKFLOW + + N + N + N + N + + Y + + N + N + N + Y + N + 800 + 560 + + + + Workflow 8 + + WORKFLOW + + N + N + N + N + + Y + + N + N + N + Y + N + 800 + 640 + + + + Workflow 9 + + WORKFLOW + + N + N + N + N + + Y + + N + N + N + Y + N + 800 + 720 + + + + Success + + SUCCESS + + N + 1168 + 400 + + + + + + Start + job_child.hwf + Y + Y + Y + + + Start + Workflow 2 + N + Y + Y + + + Start + Workflow 3 + N + Y + Y + + + Start + Workflow 4 + N + Y + Y + + + Start + Workflow 5 + N + Y + Y + + + Start + Workflow 6 + N + Y + Y + + + Start + Workflow 7 + N + Y + Y + + + Start + Workflow 8 + N + Y + Y + + + Start + Workflow 9 + N + Y + Y + + + Workflow 5 + Success + Y + Y + N + + + Workflow 4 + Success + Y + Y + N + + + Workflow 3 + Success + Y + Y + N + + + Workflow 2 + Success + Y + Y + N + + + job_child.hwf + Success + Y + Y + N + + + Workflow 6 + Success + Y + Y + N + + + Workflow 7 + Success + Y + Y + N + + + Workflow 8 + Success + Y + Y + N + + + Workflow 9 + Success + Y + Y + N + + + + + + diff --git a/mappings/info_recruits/raw_data/info_recruits/checkpoints/checkpoint_recruit_info_error.hpl b/mappings/info_recruits/raw_data/info_recruits/checkpoints/checkpoint_recruit_info_error.hpl index 3349308..07e1124 100644 --- a/mappings/info_recruits/raw_data/info_recruits/checkpoints/checkpoint_recruit_info_error.hpl +++ b/mappings/info_recruits/raw_data/info_recruits/checkpoints/checkpoint_recruit_info_error.hpl @@ -111,7 +111,7 @@ flow_ranges AS ( ), recr_inf AS ( SELECT DISTINCT COALESCE(current_recruitment_id, target_recruitment_id) AS idm_id - FROM ervu_person_registry_raw.recruits_info + FROM ervu_dashboard.recruits_info ), flow_data AS ( SELECT diff --git a/mappings/info_recruits/raw_data/info_recruits/delta_recruits_info.hpl b/mappings/info_recruits/raw_data/info_recruits/delta_recruits_info.hpl index 45ba18d..a32fa45 100644 --- a/mappings/info_recruits/raw_data/info_recruits/delta_recruits_info.hpl +++ b/mappings/info_recruits/raw_data/info_recruits/delta_recruits_info.hpl @@ -55,8 +55,9 @@ = recruit_id recruit_id + - ervu_person_registry_raw + ervu_dashboard recruits_info
recruit_id diff --git a/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl index 18828b4..71a7b98 100644 --- a/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl +++ b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow1.hpl @@ -87,8 +87,9 @@ = recruit_id recruit_id + - ervu_person_registry_raw + ervu_dashboard recruits_info
recruit_id diff --git a/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl index 4cd6655..068d2c1 100644 --- a/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl +++ b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow2.hpl @@ -44,8 +44,9 @@ = recruit_id recruit_id + - ervu_person_registry_raw + ervu_dashboard recruits_info
recruit_id diff --git a/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl index 5786789..78ca857 100644 --- a/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl +++ b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow3.hpl @@ -44,8 +44,9 @@ = recruit_id recruit_id + - ervu_person_registry_raw + ervu_dashboard recruits_info
recruit_id diff --git a/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl index 086352d..1201625 100644 --- a/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl +++ b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow4.hpl @@ -44,8 +44,9 @@ = recruit_id recruit_id + - ervu_person_registry_raw + ervu_dashboard recruits_info
recruit_id diff --git a/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl index fa4ceb2..332bc6e 100644 --- a/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl +++ b/mappings/info_recruits/raw_data/info_recruits/parallel/recruits_info_flow5.hpl @@ -44,8 +44,9 @@ = recruit_id recruit_id + - ervu_person_registry_raw + ervu_dashboard recruits_info
recruit_id diff --git a/mappings/info_recruits/raw_data/info_recruits/recruit_update_date_ervu_dashboard.hpl b/mappings/info_recruits/raw_data/info_recruits/recruit_update_date_ervu_dashboard.hpl index 5aa7685..fe451a2 100644 --- a/mappings/info_recruits/raw_data/info_recruits/recruit_update_date_ervu_dashboard.hpl +++ b/mappings/info_recruits/raw_data/info_recruits/recruit_update_date_ervu_dashboard.hpl @@ -45,7 +45,7 @@ updated_at AS system_update_date, current_timestamp AS record_created, 'job_recruits_info' AS workflow -FROM ervu_person_registry_raw.recruits_info +FROM ervu_dashboard.recruits_info WHERE updated_at = (SELECT MAX(updated_at) FROM ervu_person_registry_raw.recruits_info) limit 1
N diff --git a/mappings/info_recruits/raw_data/info_recruits/recruitment_rows_five_flow_if_error.hpl b/mappings/info_recruits/raw_data/info_recruits/recruitment_rows_five_flow_if_error.hpl index 307af00..ccb4483 100644 --- a/mappings/info_recruits/raw_data/info_recruits/recruitment_rows_five_flow_if_error.hpl +++ b/mappings/info_recruits/raw_data/info_recruits/recruitment_rows_five_flow_if_error.hpl @@ -81,7 +81,7 @@ flow_ranges AS ( ), recr_inf AS ( SELECT DISTINCT COALESCE(current_recruitment_id, target_recruitment_id) AS idm_id - FROM ervu_person_registry_raw.recruits_info + FROM ervu_dashboard.recruits_info ), flow_data AS ( SELECT diff --git a/mappings/info_recruits/supportive_jobs/job_create_files.hwf b/mappings/info_recruits/supportive_jobs/job_create_files.hwf index aa91628..3e8f21c 100644 --- a/mappings/info_recruits/supportive_jobs/job_create_files.hwf +++ b/mappings/info_recruits/supportive_jobs/job_create_files.hwf @@ -88,6 +88,48 @@ 608 + + job_create_files_child.hwf + + WORKFLOW + + N + N + N + N + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/job_create_files_child.hwf + Nothing + + Y + + N + local + N + N + Y + N + 944 + 688 + + + + state_job_general_info_recruits_error 3 + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_general_info_recruits" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/checkpoints/state_job_general_info_recruits.json + N + 944 + 768 + + @@ -118,6 +160,34 @@ Y N + + Start + job_create_files_child.hwf + Y + Y + Y + + + job_create_files_child.hwf + Success job_create_files_recruits_info.hwf + Y + Y + N + + + Start + state_job_general_info_recruits_error 3 + Y + Y + Y + + + state_job_general_info_recruits_error 3 + Success job_create_files_recruits_info.hwf + Y + Y + N + diff --git a/mappings/info_recruits/supportive_jobs/job_create_files_for_test.hwf b/mappings/info_recruits/supportive_jobs/job_create_files_for_test.hwf index 640a138..8367208 100644 --- a/mappings/info_recruits/supportive_jobs/job_create_files_for_test.hwf +++ b/mappings/info_recruits/supportive_jobs/job_create_files_for_test.hwf @@ -31,7 +31,7 @@ - state_job_citizen_success (2) + state_job_citizen_success WRITE_TO_FILE @@ -76,11 +76,29 @@ 448 + + state_job_child_success + + WRITE_TO_FILE + + N + { + "status": "SUCCESS", + "pipeline": "job_child" +} + N + UTF-8 + ${PROJECT_HOME}/info_recruits/citizen_tables/child/checkpoints/state_job_child.json + N + 752 + 288 + + Start - state_job_citizen_success (2) + state_job_citizen_success Y Y Y @@ -93,7 +111,7 @@ Y - state_job_citizen_success (2) + state_job_citizen_success Success Y Y @@ -106,6 +124,20 @@ Y N + + Start + state_job_child_success + Y + Y + Y + + + state_job_child_success + Success + Y + Y + N +