ervu-dashboard-etl/mappings_old/jobs_once/citizen_flags.hpl
2025-06-10 13:41:05 +03:00

619 lines
16 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<pipeline>
<info>
<name>citizen_flags</name>
<name_sync_with_filename>Y</name_sync_with_filename>
<description/>
<extended_description/>
<pipeline_version/>
<pipeline_type>Normal</pipeline_type>
<parameters>
</parameters>
<capture_transform_performance>N</capture_transform_performance>
<transform_performance_capturing_delay>1000</transform_performance_capturing_delay>
<transform_performance_capturing_size_limit>100</transform_performance_capturing_size_limit>
<created_user>-</created_user>
<created_date>2025/04/22 16:26:01.929</created_date>
<modified_user>-</modified_user>
<modified_date>2025/04/22 16:26:01.929</modified_date>
</info>
<notepads>
</notepads>
<order>
<hop>
<from>children_flags</from>
<to>Update_children_flags</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>opekun_flag</from>
<to>Update_opekun_flag</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>driver_licence_output</from>
<to>Update_driver_licence_flag</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>citizenship_flag_output</from>
<to>Update_citizenship_flag</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>property_flag_output</from>
<to>Update_property_flag</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>deputy_input</from>
<to>Update_deputy_flag</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>has_criminal_prosecution</from>
<to>Update_has_criminal_prosecution</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>criminal_record</from>
<to>Update_criminal_record</to>
<enabled>Y</enabled>
</hop>
</order>
<transform>
<name>Update_children_flags</name>
<type>Update</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<commit>1000</commit>
<connection>ervu-dashboard</connection>
<error_ignored>Y</error_ignored>
<lookup>
<key>
<condition>=</condition>
<field>recruit_id</field>
<name>recruit_id</name>
</key>
<schema>ervu_dashboard</schema>
<table>citizen</table>
<value>
<name>has_dead_child</name>
<rename>has_dead_child</rename>
</value>
<value>
<name>has_minor_child</name>
<rename>has_minor_child</rename>
</value>
<value>
<name>minors_count</name>
<rename>minors</rename>
</value>
</lookup>
<skip_lookup>N</skip_lookup>
<use_batch>Y</use_batch>
<attributes/>
<GUI>
<xloc>384</xloc>
<yloc>304</yloc>
</GUI>
</transform>
<transform>
<name>Update_citizenship_flag</name>
<type>Update</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<commit>1000</commit>
<connection>ervu-dashboard</connection>
<error_ignored>Y</error_ignored>
<lookup>
<key>
<condition>=</condition>
<field>recruit_id</field>
<name>recruit_id</name>
</key>
<schema>ervu_dashboard</schema>
<table>citizen</table>
<value>
<name>has_russian_citizenship</name>
<rename>has_russian_citizenship</rename>
</value>
<value>
<name>has_foreign_citizenship</name>
<rename>has_foreign_citizenship</rename>
</value>
</lookup>
<skip_lookup>N</skip_lookup>
<use_batch>Y</use_batch>
<attributes/>
<GUI>
<xloc>384</xloc>
<yloc>672</yloc>
</GUI>
</transform>
<transform>
<name>Update_deputy_flag</name>
<type>Update</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<commit>1000</commit>
<connection>ervu-dashboard</connection>
<error_ignored>Y</error_ignored>
<lookup>
<key>
<condition>=</condition>
<field>recruit_id</field>
<name>recruit_id</name>
</key>
<schema>ervu_dashboard</schema>
<table>citizen</table>
<value>
<name>is_deputy</name>
<rename>is_deputy</rename>
</value>
<value>
<name>is_deputy_candidate</name>
<rename>is_deputy_candidate</rename>
</value>
</lookup>
<skip_lookup>N</skip_lookup>
<use_batch>Y</use_batch>
<attributes/>
<GUI>
<xloc>384</xloc>
<yloc>912</yloc>
</GUI>
</transform>
<transform>
<name>Update_driver_licence_flag</name>
<type>Update</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<commit>1000</commit>
<connection>ervu-dashboard</connection>
<error_ignored>Y</error_ignored>
<lookup>
<key>
<condition>=</condition>
<field>recruit_id</field>
<name>recruit_id</name>
</key>
<schema>ervu_dashboard</schema>
<table>citizen</table>
<value>
<name>tractor_license</name>
<rename>has_tractor_licence</rename>
</value>
<value>
<name>has_driver_license</name>
<rename>has_driver_license</rename>
</value>
</lookup>
<skip_lookup>N</skip_lookup>
<use_batch>Y</use_batch>
<attributes/>
<GUI>
<xloc>384</xloc>
<yloc>560</yloc>
</GUI>
</transform>
<transform>
<name>Update_opekun_flag</name>
<type>Update</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<commit>1000</commit>
<connection>ervu-dashboard</connection>
<error_ignored>Y</error_ignored>
<lookup>
<key>
<condition>=</condition>
<field>recruit_id</field>
<name>recruit_id</name>
</key>
<schema>ervu_dashboard</schema>
<table>citizen</table>
<value>
<name>is_guardian</name>
<rename>is_guardian</rename>
</value>
</lookup>
<skip_lookup>N</skip_lookup>
<use_batch>Y</use_batch>
<attributes/>
<GUI>
<xloc>384</xloc>
<yloc>432</yloc>
</GUI>
</transform>
<transform>
<name>Update_property_flag</name>
<type>Update</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<commit>1000</commit>
<connection>ervu-dashboard</connection>
<error_ignored>Y</error_ignored>
<lookup>
<key>
<condition>=</condition>
<field>recruit_id</field>
<name>recruit_id</name>
</key>
<schema>ervu_dashboard</schema>
<table>citizen</table>
<value>
<name>has_ground_transport</name>
<rename>has_ground_transport</rename>
</value>
<value>
<name>has_air_transport</name>
<rename>has_air_transport</rename>
</value>
<value>
<name>has_water_transport</name>
<rename>has_water_transport</rename>
</value>
<value>
<name>has_property</name>
<rename>has_property</rename>
</value>
</lookup>
<skip_lookup>N</skip_lookup>
<use_batch>Y</use_batch>
<attributes/>
<GUI>
<xloc>384</xloc>
<yloc>800</yloc>
</GUI>
</transform>
<transform>
<name>children_flags</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>ervu-dashboard</connection>
<execute_each_row>N</execute_each_row>
<limit>0</limit>
<sql>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;</sql>
<variables_active>N</variables_active>
<attributes/>
<GUI>
<xloc>208</xloc>
<yloc>304</yloc>
</GUI>
</transform>
<transform>
<name>citizenship_flag_output</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>ervu-dashboard</connection>
<execute_each_row>N</execute_each_row>
<limit>0</limit>
<sql>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;</sql>
<variables_active>N</variables_active>
<attributes/>
<GUI>
<xloc>208</xloc>
<yloc>672</yloc>
</GUI>
</transform>
<transform>
<name>deputy_input</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>ervu-dashboard</connection>
<execute_each_row>N</execute_each_row>
<limit>0</limit>
<sql>
SELECT
recruit_id,
COALESCE(deputy.deputy, false) AS is_deputy,
NOT COALESCE(deputy.deputy, false) AS is_deputy_candidate
FROM deputy;</sql>
<variables_active>N</variables_active>
<attributes/>
<GUI>
<xloc>208</xloc>
<yloc>912</yloc>
</GUI>
</transform>
<transform>
<name>driver_licence_output</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>ervu-dashboard</connection>
<execute_each_row>N</execute_each_row>
<limit>0</limit>
<sql>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;</sql>
<variables_active>N</variables_active>
<attributes/>
<GUI>
<xloc>208</xloc>
<yloc>560</yloc>
</GUI>
</transform>
<transform>
<name>opekun_flag</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>ervu-dashboard</connection>
<execute_each_row>N</execute_each_row>
<limit>0</limit>
<sql>select distinct
recruit_id,
true as is_guardian
from citizen_guardianship;</sql>
<variables_active>N</variables_active>
<attributes/>
<GUI>
<xloc>208</xloc>
<yloc>432</yloc>
</GUI>
</transform>
<transform>
<name>property_flag_output</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>ervu-dashboard</connection>
<execute_each_row>N</execute_each_row>
<limit>0</limit>
<sql>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;</sql>
<variables_active>N</variables_active>
<attributes/>
<GUI>
<xloc>208</xloc>
<yloc>800</yloc>
</GUI>
</transform>
<transform>
<name>Update_has_criminal_prosecution</name>
<type>Update</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<commit>1000</commit>
<connection>ervu-dashboard</connection>
<error_ignored>Y</error_ignored>
<ignore_flag_field/>
<lookup>
<key>
<condition>=</condition>
<field>recruit_id</field>
<name>recruit_id</name>
<name2/>
</key>
<schema>ervu_dashboard</schema>
<table>citizen</table>
<value>
<name>has_criminal_prosecution</name>
<rename>has_criminal_prosecution</rename>
</value>
</lookup>
<skip_lookup>N</skip_lookup>
<use_batch>Y</use_batch>
<attributes/>
<GUI>
<xloc>432</xloc>
<yloc>1024</yloc>
</GUI>
</transform>
<transform>
<name>has_criminal_prosecution</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>ervu-dashboard</connection>
<execute_each_row>N</execute_each_row>
<limit>0</limit>
<sql>
SELECT
distinct
recruit_id,
true as has_criminal_prosecution
FROM prosecution
where close_date is null;</sql>
<variables_active>N</variables_active>
<attributes/>
<GUI>
<xloc>208</xloc>
<yloc>1024</yloc>
</GUI>
</transform>
<transform>
<name>Update_criminal_record</name>
<type>Update</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<commit>1000</commit>
<connection>ervu-dashboard</connection>
<error_ignored>Y</error_ignored>
<ignore_flag_field/>
<lookup>
<key>
<condition>=</condition>
<field>recruit_id</field>
<name>recruit_id</name>
<name2/>
</key>
<schema>ervu_dashboard</schema>
<table>citizen</table>
<value>
<name>serving_sentence</name>
<rename>serving_sentence</rename>
</value>
<value>
<name>has_sentence</name>
<rename>has_sentence</rename>
</value>
<value>
<name>has_criminal_record</name>
<rename>has_criminal_record</rename>
</value>
</lookup>
<skip_lookup>N</skip_lookup>
<use_batch>Y</use_batch>
<attributes/>
<GUI>
<xloc>432</xloc>
<yloc>1120</yloc>
</GUI>
</transform>
<transform>
<name>criminal_record</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>ervu-dashboard</connection>
<execute_each_row>N</execute_each_row>
<limit>0</limit>
<sql>SELECT
recruit_id,
bool_or(start_date &lt; 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;</sql>
<variables_active>N</variables_active>
<attributes/>
<GUI>
<xloc>208</xloc>
<yloc>1120</yloc>
</GUI>
</transform>
<transform_error_handling>
</transform_error_handling>
<attributes/>
</pipeline>