ervu-dashboard-etl/apache-hop mapping/country/recruitment_campaign.appeals.hpl

297 lines
8.8 KiB
Text
Raw Normal View History

2024-10-16 10:38:29 +03:00
<pipeline>
<info>
<name>recruitment_campaign.appeals</name>
<name_sync_with_filename>Y</name_sync_with_filename>
<description/>
<extended_description/>
<pipeline_version/>
<pipeline_type>Normal</pipeline_type>
<pipeline_status>0</pipeline_status>
<directory>/</directory>
<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>2024/08/02 11:56:22.507</created_date>
<modified_user>-</modified_user>
<modified_date>2024/08/02 11:56:22.507</modified_date>
<key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
<is_key_private>N</is_key_private>
</info>
<notepads>
</notepads>
<order>
<hop>
<from>Table input (appeal_document) РФ/осень</from>
<to>Insert / update (main_dashboard.appeals)</to>
<enabled>Y</enabled>
</hop>
<hop>
<from>Table input (appeal_document) РФ/весна</from>
<to>Insert / update (main_dashboard.appeals) 2</to>
<enabled>Y</enabled>
</hop>
</order>
<transform>
<name>Insert / update (main_dashboard.appeals)</name>
<type>InsertUpdate</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>ervu-dashboard</connection>
<commit>100</commit>
<update_bypassed>N</update_bypassed>
<lookup>
<schema>recruitment_campaign</schema>
<table>appeals</table>
<key>
<name>recruitment_id</name>
<field>recruitment_id</field>
<condition>=</condition>
<name2/>
</key>
<key>
<name>spring_autumn</name>
<field>spring_autumn</field>
<condition>=</condition>
<name2/>
</key>
<value>
<name>total_appeals</name>
<rename>total_appeals</rename>
<update>Y</update>
</value>
<value>
<name>average_consideration</name>
<rename>average_consideration</rename>
<update>Y</update>
</value>
<value>
<name>resolved</name>
<rename>resolved</rename>
<update>Y</update>
</value>
<value>
<name>not_resolved</name>
<rename>not_resolved</rename>
<update>Y</update>
</value>
<value>
<name>not_resolved_percent</name>
<rename>not_resolved_percent</rename>
<update>Y</update>
</value>
<value>
<name>average_rating</name>
<rename>average_rating</rename>
<update>Y</update>
</value>
<value>
<name>resolved_percent</name>
<rename>resolved_percent</rename>
<update>Y</update>
</value>
<value>
<name>recruitment_id</name>
<rename>recruitment_id</rename>
<update>N</update>
</value>
<value>
<name>spring_autumn</name>
<rename>spring_autumn</rename>
<update>N</update>
</value>
</lookup>
<attributes/>
<cluster_schema/>
<GUI>
<xloc>752</xloc>
<yloc>176</yloc>
<draw>Y</draw>
</GUI>
</transform>
<transform>
<name>Insert / update (main_dashboard.appeals) 2</name>
<type>InsertUpdate</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>ervu-dashboard</connection>
<commit>100</commit>
<update_bypassed>N</update_bypassed>
<lookup>
<schema>recruitment_campaign</schema>
<table>appeals</table>
<key>
<name>recruitment_id</name>
<field>recruitment_id</field>
<condition>=</condition>
<name2/>
</key>
<key>
<name>spring_autumn</name>
<field>spring_autumn</field>
<condition>=</condition>
<name2/>
</key>
<value>
<name>total_appeals</name>
<rename>total_appeals</rename>
<update>Y</update>
</value>
<value>
<name>average_consideration</name>
<rename>average_consideration</rename>
<update>Y</update>
</value>
<value>
<name>resolved</name>
<rename>resolved</rename>
<update>Y</update>
</value>
<value>
<name>not_resolved</name>
<rename>not_resolved</rename>
<update>Y</update>
</value>
<value>
<name>not_resolved_percent</name>
<rename>not_resolved_percent</rename>
<update>Y</update>
</value>
<value>
<name>average_rating</name>
<rename>average_rating</rename>
<update>Y</update>
</value>
<value>
<name>resolved_percent</name>
<rename>resolved_percent</rename>
<update>Y</update>
</value>
<value>
<name>recruitment_id</name>
<rename>recruitment_id</rename>
<update>N</update>
</value>
<value>
<name>spring_autumn</name>
<rename>spring_autumn</rename>
<update>N</update>
</value>
</lookup>
<attributes/>
<cluster_schema/>
<GUI>
<xloc>752</xloc>
<yloc>272</yloc>
<draw>Y</draw>
</GUI>
</transform>
<transform>
<name>Table input (appeal_document) РФ/весна</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>postgres.appeal-document-service</connection>
<sql>-- 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,
'00' AS recruitment_id,
0 AS average_rating,
'Весна' as spring_autumn
FROM appeals_data AS ad;</sql>
<limit>0</limit>
<lookup/>
<execute_each_row>N</execute_each_row>
<variables_active>N</variables_active>
<lazy_conversion_active>N</lazy_conversion_active>
<attributes/>
<cluster_schema/>
<GUI>
<xloc>400</xloc>
<yloc>272</yloc>
<draw>Y</draw>
</GUI>
</transform>
<transform>
<name>Table input (appeal_document) РФ/осень</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>postgres.appeal-document-service</connection>
<sql>-- 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,
'00' AS recruitment_id,
0 AS average_rating,
'Осень' as spring_autumn
FROM appeals_data AS ad;</sql>
<limit>0</limit>
<lookup/>
<execute_each_row>N</execute_each_row>
<variables_active>N</variables_active>
<lazy_conversion_active>N</lazy_conversion_active>
<attributes/>
<cluster_schema/>
<GUI>
<xloc>400</xloc>
<yloc>176</yloc>
<draw>Y</draw>
</GUI>
</transform>
<transform_error_handling>
</transform_error_handling>
<attributes/>
</pipeline>