-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into staging/tecnologia-penalidade
- Loading branch information
Showing
9 changed files
with
460 additions
and
387 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,32 @@ | ||
{% macro get_license_date() %} | ||
SELECT | ||
CASE | ||
{% if var("stu_data_versao") != "" %} | ||
WHEN "{{ var('stu_data_versao') }}" != "" THEN DATE("{{ var('stu_data_versao') }}") | ||
{% endif %} | ||
--- Versão fixa do STU em 2024-03-25 para mar/Q1 devido à falha de atualização na fonte da dados (SIURB) | ||
WHEN DATE("{{ var('run_date') }}") >= "2024-03-01" AND DATE("{{ var('run_date') }}") < "2024-03-16" THEN DATE("2024-03-25") | ||
-- Versão fixa do STU em 2024-04-09 para mar/Q2 devido à falha de atualização na fonte da dados (SIURB) | ||
WHEN DATE("{{ var('run_date') }}") >= "2024-03-16" AND DATE("{{ var('run_date') }}") < "2024-04-01" THEN DATE("2024-04-09") | ||
ELSE ( | ||
SELECT MIN(DATE(data)) | ||
FROM {{ ref("licenciamento_stu_staging") }} | ||
WHERE DATE(data) >= DATE_ADD(DATE("{{ var('run_date') }}"), INTERVAL 5 DAY) | ||
-- Admite apenas versões do STU igual ou após 2024-04-09 a partir de abril/24 devido à falha de atualização na fonte da dados (SIURB) | ||
AND (DATE("{{ var('run_date') }}") < "2024-04-01" OR DATE(data) >= '2024-04-09') | ||
) | ||
END | ||
{% endmacro %} | ||
select | ||
case | ||
/* Versão fixa do STU em 2024-03-25 para mar/Q1 devido à falha de | ||
atualização na fonte da dados (SIURB) */ | ||
when | ||
date("{{ var('run_date') }}") >= "2024-03-01" | ||
and date("{{ var('run_date') }}") < "2024-03-16" | ||
then date("2024-03-25") | ||
/* Versão fixa do STU em 2024-04-09 para mar/Q2 devido à falha de | ||
atualização na fonte da dados (SIURB) */ | ||
when | ||
date("{{ var('run_date') }}") >= "2024-03-16" | ||
and date("{{ var('run_date') }}") < "2024-04-01" | ||
then date("2024-04-09") | ||
else | ||
( | ||
select min(date(data)) | ||
from {{ ref("licenciamento_stu_staging") }} | ||
where | ||
date(data) | ||
>= date_add(date("{{ var('run_date') }}"), interval 5 day) | ||
/* Admite apenas versões do STU igual ou após 2024-04-09 a | ||
partir de abril/24 devido à falha de atualização na fonte | ||
de dados (SIURB) */ | ||
and ( | ||
date("{{ var('run_date') }}") < "2024-04-01" | ||
or date(data) >= '2024-04-09' | ||
) | ||
) | ||
end | ||
{% endmacro %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,96 +1,92 @@ | ||
-- depends_on: {{ ref('aux_sppo_licenciamento_vistoria_atualizada') }} | ||
{{ | ||
config( | ||
materialized="incremental", | ||
partition_by={"field": "data", "data_type": "date", "granularity": "day"}, | ||
unique_key=["data", "id_veiculo"], | ||
incremental_strategy="insert_overwrite", | ||
) | ||
config( | ||
materialized="incremental", | ||
partition_by={"field": "data", "data_type": "date", "granularity": "day"}, | ||
unique_key=["data", "id_veiculo"], | ||
incremental_strategy="insert_overwrite", | ||
) | ||
}} | ||
|
||
{% if execute and is_incremental() %} | ||
{% set licenciamento_date = run_query(get_license_date()).columns[0].values()[0] %} | ||
{% set licenciamento_date = run_query(get_license_date()).columns[0].values()[0] %} | ||
{% endif %} | ||
|
||
WITH stu AS ( | ||
SELECT | ||
* EXCEPT(data), | ||
DATE(data) AS data | ||
FROM | ||
{{ ref("licenciamento_stu_staging") }} AS t | ||
{% if is_incremental() %} | ||
WHERE | ||
DATE(data) = DATE("{{ licenciamento_date }}") | ||
{% endif %} | ||
), | ||
stu_rn AS ( | ||
SELECT | ||
* EXCEPT (timestamp_captura), | ||
EXTRACT(YEAR FROM data_ultima_vistoria) AS ano_ultima_vistoria, | ||
ROW_NUMBER() OVER (PARTITION BY data, id_veiculo) rn | ||
FROM | ||
stu | ||
), | ||
stu_ano_ultima_vistoria AS ( | ||
-- Temporariamente considerando os dados de vistoria enviados pela TR/SUBTT/CGLF | ||
SELECT | ||
s.* EXCEPT(ano_ultima_vistoria), | ||
CASE | ||
WHEN data >= "2024-03-01" AND c.ano_ultima_vistoria > s.ano_ultima_vistoria THEN c.ano_ultima_vistoria | ||
WHEN data >= "2024-03-01" THEN COALESCE(s.ano_ultima_vistoria, c.ano_ultima_vistoria) | ||
ELSE s.ano_ultima_vistoria | ||
END AS ano_ultima_vistoria_atualizado, | ||
FROM | ||
stu_rn AS s | ||
LEFT JOIN | ||
( | ||
SELECT | ||
id_veiculo, | ||
placa, | ||
ano_ultima_vistoria | ||
FROM | ||
{{ ref("aux_sppo_licenciamento_vistoria_atualizada") }} | ||
) AS c | ||
USING(id_veiculo, placa) | ||
) | ||
SELECT | ||
data, | ||
modo, | ||
id_veiculo, | ||
ano_fabricacao, | ||
carroceria, | ||
data_ultima_vistoria, | ||
id_carroceria, | ||
id_chassi, | ||
id_fabricante_chassi, | ||
id_interno_carroceria, | ||
id_planta, | ||
indicador_ar_condicionado, | ||
indicador_elevador, | ||
indicador_usb, | ||
indicador_wifi, | ||
nome_chassi, | ||
permissao, | ||
placa, | ||
CASE | ||
WHEN tipo_veiculo LIKE "%BASIC%" OR tipo_veiculo LIKE "%BS%" THEN "BASICO" | ||
WHEN tipo_veiculo LIKE "%MIDI%" THEN "MIDI" | ||
WHEN tipo_veiculo LIKE "%MINI%" THEN "MINI" | ||
WHEN tipo_veiculo LIKE "%PDRON%" OR tipo_veiculo LIKE "%PADRON%" THEN "PADRON" | ||
WHEN tipo_veiculo LIKE "%ARTICULADO%" THEN "ARTICULADO" | ||
ELSE NULL | ||
END AS tecnologia, | ||
quantidade_lotacao_pe, | ||
quantidade_lotacao_sentado, | ||
tipo_combustivel, | ||
tipo_veiculo, | ||
status, | ||
data_inicio_vinculo, | ||
ano_ultima_vistoria_atualizado, | ||
CURRENT_DATETIME("America/Sao_Paulo") AS datetime_ultima_atualizacao, | ||
"{{ var("version") }}" AS versao | ||
FROM | ||
stu_ano_ultima_vistoria | ||
WHERE | ||
rn = 1 | ||
|
||
with | ||
stu as ( | ||
select * except (data), date(data) as data | ||
from {{ ref("licenciamento_stu_staging") }} as t | ||
{% if is_incremental() %} | ||
where date(data) = date("{{ licenciamento_date }}") | ||
{% endif %} | ||
), | ||
stu_rn as ( | ||
select | ||
* except (timestamp_captura), | ||
extract(year from data_ultima_vistoria) as ano_ultima_vistoria, | ||
row_number() over (partition by data, id_veiculo) rn | ||
from stu | ||
), | ||
stu_ano_ultima_vistoria as ( | ||
-- Temporariamente considerando os dados de vistoria enviados pela TR/SUBTT/CGLF | ||
select | ||
s.* except (ano_ultima_vistoria), | ||
case | ||
when | ||
data between "2024-03-01" and "2024-12-31" | ||
and c.ano_ultima_vistoria > s.ano_ultima_vistoria | ||
then c.ano_ultima_vistoria | ||
when data between "2024-03-01" and "2024-12-31" | ||
then coalesce(s.ano_ultima_vistoria, c.ano_ultima_vistoria) | ||
else s.ano_ultima_vistoria | ||
end as ano_ultima_vistoria_atualizado, | ||
from stu_rn as s | ||
left join | ||
( | ||
select id_veiculo, placa, ano_ultima_vistoria | ||
from {{ ref("aux_sppo_licenciamento_vistoria_atualizada") }} | ||
) as c using (id_veiculo, placa) | ||
) | ||
select | ||
data, | ||
modo, | ||
id_veiculo, | ||
ano_fabricacao, | ||
carroceria, | ||
data_ultima_vistoria, | ||
id_carroceria, | ||
id_chassi, | ||
id_fabricante_chassi, | ||
id_interno_carroceria, | ||
id_planta, | ||
indicador_ar_condicionado, | ||
indicador_elevador, | ||
indicador_usb, | ||
indicador_wifi, | ||
nome_chassi, | ||
permissao, | ||
placa, | ||
case | ||
when tipo_veiculo like "%BASIC%" or tipo_veiculo like "%BS%" | ||
then "BASICO" | ||
when tipo_veiculo like "%MIDI%" | ||
then "MIDI" | ||
when tipo_veiculo like "%MINI%" | ||
then "MINI" | ||
when tipo_veiculo like "%PDRON%" or tipo_veiculo like "%PADRON%" | ||
then "PADRON" | ||
when tipo_veiculo like "%ARTICULADO%" | ||
then "ARTICULADO" | ||
else null | ||
end as tecnologia, | ||
quantidade_lotacao_pe, | ||
quantidade_lotacao_sentado, | ||
tipo_combustivel, | ||
tipo_veiculo, | ||
status, | ||
data_inicio_vinculo, | ||
ano_ultima_vistoria_atualizado, | ||
current_datetime("America/Sao_Paulo") as datetime_ultima_atualizacao, | ||
"{{ var('version') }}" as versao | ||
from stu_ano_ultima_vistoria | ||
where rn = 1 |
Oops, something went wrong.