This commit is contained in:
r.gaztdinov 2025-06-23 13:16:59 +03:00
parent e4c0569017
commit d09defaed3
6 changed files with 553 additions and 116 deletions

View file

@ -26,6 +26,116 @@
<enabled>Y</enabled>
</hop>
</order>
<transform>
<name>Table input</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>ervu_person_registry</connection>
<execute_each_row>N</execute_each_row>
<limit>0</limit>
<sql>with
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 '${M_R_CR_DATE}'::timestamp >= r.system_create_date
AND r.system_update_date >= '${M_R_UP_DATE}'::timestamp
GROUP BY
r.id
)
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
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 -- тип регистрации
-- address_actual -- Адрес фактического проживания ***1
-- source_info_actual -- Источник сведений о месте фактического проживания ***1
-- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1
-- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1
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}'
join adresses adr ON r.recruit_id=adr.recruit_id
-- ***1 - страница личные сведения есть поле, нет данных</sql>
<variables_active>Y</variables_active>
<attributes/>
<GUI>
<xloc>624</xloc>
<yloc>352</yloc>
</GUI>
</transform>
<transform>
<name>Insert / update</name>
<type>InsertUpdate</type>
@ -128,8 +238,8 @@
<update>Y</update>
</value>
<value>
<name>convicts</name>
<rename>convicts</rename>
<name>vu_current_info</name>
<rename>vu_current_info</rename>
<update>Y</update>
</value>
<value>
@ -152,84 +262,46 @@
<rename>reason_registration</rename>
<update>Y</update>
</value>
<value>
<name>residence</name>
<rename>residence</rename>
<update>Y</update>
</value>
<value>
<name>start_date_residence</name>
<rename>start_date_residence</rename>
<update>Y</update>
</value>
<value>
<name>end_date_residence</name>
<rename>end_date_residence</rename>
<update>Y</update>
</value>
<value>
<name>address_place_stay</name>
<rename>address_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>start_date_place_stay</name>
<rename>start_date_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>end_date_place_stay</name>
<rename>end_date_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>type_place_stay</name>
<rename>type_place_stay</rename>
<update>Y</update>
</value>
</lookup>
<update_bypassed>N</update_bypassed>
<attributes/>
<GUI>
<xloc>1168</xloc>
<yloc>352</yloc>
</GUI>
</transform>
<transform>
<name>Table input</name>
<type>TableInput</type>
<description/>
<distribute>Y</distribute>
<custom_distribution/>
<copies>1</copies>
<partitioning>
<method>none</method>
<schema_name/>
</partitioning>
<connection>ervu_person_registry</connection>
<execute_each_row>N</execute_each_row>
<limit>0</limit>
<sql>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}'</sql>
<variables_active>Y</variables_active>
<attributes/>
<GUI>
<xloc>624</xloc>
<xloc>1104</xloc>
<yloc>352</yloc>
</GUI>
</transform>

View file

@ -196,6 +196,41 @@
<rename>reason_registration</rename>
<update>Y</update>
</value>
<value>
<name>residence</name>
<rename>residence</rename>
<update>Y</update>
</value>
<value>
<name>start_date_residence</name>
<rename>start_date_residence</rename>
<update>Y</update>
</value>
<value>
<name>end_date_residence</name>
<rename>end_date_residence</rename>
<update>Y</update>
</value>
<value>
<name>address_place_stay</name>
<rename>address_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>start_date_place_stay</name>
<rename>start_date_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>end_date_place_stay</name>
<rename>end_date_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>type_place_stay</name>
<rename>type_place_stay</rename>
<update>Y</update>
</value>
</lookup>
<update_bypassed>N</update_bypassed>
<attributes/>
@ -255,7 +290,28 @@
<connection>ervu_person_registry</connection>
<execute_each_row>N</execute_each_row>
<limit>0</limit>
<sql>SELECT
<sql>with
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 '${ID_F1}' != '' -- Проверка на пустую строку
AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F1}'
AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp
GROUP BY
r.id
)
SELECT
r.system_pgs_status,
r.full_name,
r.last_name,
@ -292,8 +348,22 @@
WHEN ddd.hidden IS false then ddd.hidden
ELSE true
END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет
mrr.value AS reason_registration
mrr.value AS reason_registration,
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 -- тип регистрации
-- address_actual -- Адрес фактического проживания ***1
-- source_info_actual -- Источник сведений о месте фактического проживания ***1
-- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1
-- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1
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}'
@ -307,7 +377,10 @@ LEFT JOIN (
) 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}'</sql>
--WHERE r.system_update_date >= '${UP_D}'
join adresses adr ON r.recruit_id=adr.recruit_id
-- ***1 - страница личные сведения есть поле, нет данных</sql>
<variables_active>Y</variables_active>
<attributes/>
<GUI>

View file

@ -44,7 +44,6 @@
<condition>=</condition>
<field>recruit_id</field>
<name>recruit_id</name>
<name2/>
</key>
<schema>ervu_dashboard</schema>
<table>citizen</table>
@ -153,12 +152,47 @@
<rename>reason_registration</rename>
<update>Y</update>
</value>
<value>
<name>residence</name>
<rename>residence</rename>
<update>Y</update>
</value>
<value>
<name>start_date_residence</name>
<rename>start_date_residence</rename>
<update>Y</update>
</value>
<value>
<name>end_date_residence</name>
<rename>end_date_residence</rename>
<update>Y</update>
</value>
<value>
<name>address_place_stay</name>
<rename>address_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>start_date_place_stay</name>
<rename>start_date_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>end_date_place_stay</name>
<rename>end_date_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>type_place_stay</name>
<rename>type_place_stay</rename>
<update>Y</update>
</value>
</lookup>
<update_bypassed>N</update_bypassed>
<attributes/>
<GUI>
<xloc>1104</xloc>
<yloc>288</yloc>
<xloc>1280</xloc>
<yloc>384</yloc>
</GUI>
</transform>
<transform>
@ -175,7 +209,28 @@
<connection>ervu_person_registry</connection>
<execute_each_row>N</execute_each_row>
<limit>0</limit>
<sql>SELECT
<sql>with
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 '${ID_F2}' != '' -- Проверка на пустую строку
AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F2}'
AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp
GROUP BY
r.id
)
SELECT
r.system_pgs_status,
r.full_name,
r.last_name,
@ -212,8 +267,22 @@
WHEN ddd.hidden IS false then ddd.hidden
ELSE true
END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет
mrr.value AS reason_registration
mrr.value AS reason_registration,
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 -- тип регистрации
-- address_actual -- Адрес фактического проживания ***1
-- source_info_actual -- Источник сведений о месте фактического проживания ***1
-- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1
-- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1
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}'
@ -227,12 +296,15 @@ LEFT JOIN (
) 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}'</sql>
--WHERE r.system_update_date >= '${UP_D}'
join adresses adr ON r.recruit_id=adr.recruit_id
-- ***1 - страница личные сведения есть поле, нет данных</sql>
<variables_active>Y</variables_active>
<attributes/>
<GUI>
<xloc>560</xloc>
<yloc>288</yloc>
<xloc>736</xloc>
<yloc>384</yloc>
</GUI>
</transform>
<transform_error_handling>

View file

@ -44,7 +44,6 @@
<condition>=</condition>
<field>recruit_id</field>
<name>recruit_id</name>
<name2/>
</key>
<schema>ervu_dashboard</schema>
<table>citizen</table>
@ -153,12 +152,47 @@
<rename>reason_registration</rename>
<update>Y</update>
</value>
<value>
<name>residence</name>
<rename>residence</rename>
<update>Y</update>
</value>
<value>
<name>start_date_residence</name>
<rename>start_date_residence</rename>
<update>Y</update>
</value>
<value>
<name>end_date_residence</name>
<rename>end_date_residence</rename>
<update>Y</update>
</value>
<value>
<name>address_place_stay</name>
<rename>address_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>start_date_place_stay</name>
<rename>start_date_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>end_date_place_stay</name>
<rename>end_date_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>type_place_stay</name>
<rename>type_place_stay</rename>
<update>Y</update>
</value>
</lookup>
<update_bypassed>N</update_bypassed>
<attributes/>
<GUI>
<xloc>1216</xloc>
<yloc>352</yloc>
<xloc>1264</xloc>
<yloc>416</yloc>
</GUI>
</transform>
<transform>
@ -175,7 +209,28 @@
<connection>ervu_person_registry</connection>
<execute_each_row>N</execute_each_row>
<limit>0</limit>
<sql>SELECT
<sql>with
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 '${ID_F3}' != '' -- Проверка на пустую строку
AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F3}'
AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp
GROUP BY
r.id
)
SELECT
r.system_pgs_status,
r.full_name,
r.last_name,
@ -212,8 +267,22 @@
WHEN ddd.hidden IS false then ddd.hidden
ELSE true
END AS deferment_liberation,-- когда hidden ис фолс отсрочка есть, когда тру или нулл - нет
mrr.value AS reason_registration
mrr.value AS reason_registration,
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 -- тип регистрации
-- address_actual -- Адрес фактического проживания ***1
-- source_info_actual -- Источник сведений о месте фактического проживания ***1
-- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1
-- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1
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}'
@ -227,12 +296,15 @@ LEFT JOIN (
) 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}'</sql>
--WHERE r.system_update_date >= '${UP_D}'
join adresses adr ON r.recruit_id=adr.recruit_id
-- ***1 - страница личные сведения есть поле, нет данных</sql>
<variables_active>Y</variables_active>
<attributes/>
<GUI>
<xloc>672</xloc>
<yloc>352</yloc>
<xloc>720</xloc>
<yloc>416</yloc>
</GUI>
</transform>
<transform_error_handling>

View file

@ -44,7 +44,6 @@
<condition>=</condition>
<field>recruit_id</field>
<name>recruit_id</name>
<name2/>
</key>
<schema>ervu_dashboard</schema>
<table>citizen</table>
@ -153,12 +152,47 @@
<rename>reason_registration</rename>
<update>Y</update>
</value>
<value>
<name>residence</name>
<rename>residence</rename>
<update>Y</update>
</value>
<value>
<name>start_date_residence</name>
<rename>start_date_residence</rename>
<update>Y</update>
</value>
<value>
<name>end_date_residence</name>
<rename>end_date_residence</rename>
<update>Y</update>
</value>
<value>
<name>address_place_stay</name>
<rename>address_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>start_date_place_stay</name>
<rename>start_date_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>end_date_place_stay</name>
<rename>end_date_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>type_place_stay</name>
<rename>type_place_stay</rename>
<update>Y</update>
</value>
</lookup>
<update_bypassed>N</update_bypassed>
<attributes/>
<GUI>
<xloc>1072</xloc>
<yloc>320</yloc>
<xloc>1216</xloc>
<yloc>432</yloc>
</GUI>
</transform>
<transform>
@ -175,7 +209,28 @@
<connection>ervu_person_registry</connection>
<execute_each_row>N</execute_each_row>
<limit>0</limit>
<sql>SELECT
<sql>with
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 '${ID_F4}' != '' -- Проверка на пустую строку
AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F4}'
AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp
GROUP BY
r.id
)
SELECT
r.system_pgs_status,
r.full_name,
r.last_name,
@ -200,18 +255,34 @@
--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
mrr.value AS reason_registration,
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 -- тип регистрации
-- address_actual -- Адрес фактического проживания ***1
-- source_info_actual -- Источник сведений о месте фактического проживания ***1
-- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1
-- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1
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}'
@ -225,12 +296,15 @@ LEFT JOIN (
) 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}'</sql>
--WHERE r.system_update_date >= '${UP_D}'
join adresses adr ON r.recruit_id=adr.recruit_id
-- ***1 - страница личные сведения есть поле, нет данных</sql>
<variables_active>Y</variables_active>
<attributes/>
<GUI>
<xloc>528</xloc>
<yloc>320</yloc>
<xloc>672</xloc>
<yloc>432</yloc>
</GUI>
</transform>
<transform_error_handling>

View file

@ -44,7 +44,6 @@
<condition>=</condition>
<field>recruit_id</field>
<name>recruit_id</name>
<name2/>
</key>
<schema>ervu_dashboard</schema>
<table>citizen</table>
@ -153,12 +152,47 @@
<rename>reason_registration</rename>
<update>Y</update>
</value>
<value>
<name>residence</name>
<rename>residence</rename>
<update>Y</update>
</value>
<value>
<name>start_date_residence</name>
<rename>start_date_residence</rename>
<update>Y</update>
</value>
<value>
<name>end_date_residence</name>
<rename>end_date_residence</rename>
<update>Y</update>
</value>
<value>
<name>address_place_stay</name>
<rename>address_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>start_date_place_stay</name>
<rename>start_date_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>end_date_place_stay</name>
<rename>end_date_place_stay</rename>
<update>Y</update>
</value>
<value>
<name>type_place_stay</name>
<rename>type_place_stay</rename>
<update>Y</update>
</value>
</lookup>
<update_bypassed>N</update_bypassed>
<attributes/>
<GUI>
<xloc>1104</xloc>
<yloc>368</yloc>
<xloc>1248</xloc>
<yloc>416</yloc>
</GUI>
</transform>
<transform>
@ -175,7 +209,28 @@
<connection>ervu_person_registry</connection>
<execute_each_row>N</execute_each_row>
<limit>0</limit>
<sql>SELECT
<sql>with
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 '${ID_F5}' != '' -- Проверка на пустую строку
AND COALESCE(current_recruitment_id, target_recruitment_id) = '${ID_F5}'
AND '${M_R_CR_DATE}' >= r.system_create_date::timestamp
GROUP BY
r.id
)
SELECT
r.system_pgs_status,
r.full_name,
r.last_name,
@ -200,18 +255,34 @@
--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
mrr.value AS reason_registration,
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 -- тип регистрации
-- address_actual -- Адрес фактического проживания ***1
-- source_info_actual -- Источник сведений о месте фактического проживания ***1
-- date_info_actual -- Дата получения сведений об адресе фактического проживания ***1
-- date_loss_info_actual -- Дата потери актуальности сведений об адресе фактического проживания ***1
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}'
@ -225,12 +296,15 @@ LEFT JOIN (
) 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}'</sql>
--WHERE r.system_update_date >= '${UP_D}'
join adresses adr ON r.recruit_id=adr.recruit_id
-- ***1 - страница личные сведения есть поле, нет данных</sql>
<variables_active>Y</variables_active>
<attributes/>
<GUI>
<xloc>560</xloc>
<yloc>368</yloc>
<xloc>704</xloc>
<yloc>416</yloc>
</GUI>
</transform>
<transform_error_handling>