Skip to content

Commit

Permalink
atualização dos modelos e schema
Browse files Browse the repository at this point in the history
  • Loading branch information
akaBotelho committed Jan 9, 2025
1 parent 76d2fab commit 2365f0f
Show file tree
Hide file tree
Showing 4 changed files with 152 additions and 20 deletions.
29 changes: 19 additions & 10 deletions queries/models/transito/autuacao.sql
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,18 @@ with
descricao_infracao as tipificacao_resumida
from {{ source("infracao_staging", "infracoes_renainf") }}
),
autuacao_ids as (
select data, id_autuacao, id_auto_infracao
from {{ ref("aux_autuacao_id") }}
{% if is_incremental() %}
where
data between date("{{var('date_range_start')}}") and date(
"{{var('date_range_end')}}"
)
{% endif %}
),
citran as (
select
select distinct
data,
id_auto_infracao,
datetime(concat(data, ' ', hora, ':00')) as datetime_autuacao,
Expand Down Expand Up @@ -110,7 +120,7 @@ with
{% endif %}
),
serpro as (
select
select distinct
data,
id_auto_infracao,
datetime_autuacao,
Expand Down Expand Up @@ -159,8 +169,8 @@ with
' '
)
)
when logradouro_autuacao_2 is not null
then logradouro_autuacao_2
when logradouro_rodovia_autuacao is not null
then logradouro_rodovia_autuacao
else null
end as cep_autuacao,
null as tile_autuacao,
Expand All @@ -181,7 +191,6 @@ with
autuacao as (
select
data,
to_hex(sha256(concat(generate_uuid(), id_auto_infracao))) as id_autuacao, -- trocar generate_uuid ?
id_auto_infracao,
datetime_autuacao,
data_limite_defesa_previa,
Expand Down Expand Up @@ -223,7 +232,6 @@ with
union all
select
data,
to_hex(sha256(concat(generate_uuid(), id_auto_infracao))) as id_autuacao, -- trocar generate_uuid ?
id_auto_infracao,
datetime_autuacao,
data_limite_defesa_previa,
Expand Down Expand Up @@ -274,9 +282,9 @@ with
{% endif %}
)
select
data,
id_autuacao,
id_auto_infracao,
u.data,
a.id_autuacao,
u.id_auto_infracao,
datetime_autuacao,
data_limite_defesa_previa,
data_limite_recurso,
Expand Down Expand Up @@ -314,5 +322,6 @@ select
status_sne,
fonte,
datetime_ultima_atualizacao
from update_partition
from update_partition as u
left join autuacao_ids as a using (id_auto_infracao)
left join infracoes_renainf as i using (codigo_enquadramento)
99 changes: 91 additions & 8 deletions queries/models/transito/schema.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ models:
- name: uf_proprietario
description: "Estado do proprietário do veículo"
- name: cep_proprietario
description: "CEP do proprietário do veículo [protegido]"
description: "CEP do proprietário do veículo"
- name: valor_infracao
description: "Valor monetário da autuação (100%) [R$]"
- name: valor_pago
Expand Down Expand Up @@ -66,6 +66,8 @@ models:
description: "Data da autuação (Coluna de particionamento)"
- name: id_auto_infracao
description: "Código do auto de infração"
- name: origem_auto_infracao
description: "Origem do AIT"
- name: datetime_autuacao
description: "Data e hora da autuação"
- name: data_limite_defesa_previa
Expand All @@ -78,6 +80,8 @@ models:
description: "Descrição do status da infração"
- name: codigo_enquadramento
description: "Código da autuação"
- name: codigo_desdobramento
description: "Desdobramento do tipo de infração que junto com o código identifica exclusivamente o tipo de infração"
- name: tipificacao_resumida
description: "Descrição da autuação"
- name: pontuacao
Expand All @@ -86,12 +90,20 @@ models:
description: "Descrição da gravidade da autuação"
- name: amparo_legal
description: "Amparo legal da autuação"
- name: velocidade_aferida
description: "Valor aferido para aplicação da infração"
- name: velocidade_considerada
description: "Valor considerado para aplicação da infração"
- name: velocidade_regulamentada
description: "Limite regulamento para aplicação da infração"
- name: tipo_veiculo
description: "Tipo de veículo autuado"
- name: descricao_veiculo
description: "Marca/modelo do veículo"
- name: placa_veiculo
description: "Placa do veículo"
- name: chassi_veiculo
description: "Chassi do veículo"
- name: ano_fabricacao_veiculo
description: "Ano de fabricação do veículo"
- name: ano_modelo_veiculo
Expand All @@ -100,37 +112,105 @@ models:
description: "Cor do veículo"
- name: especie_veiculo
description: "Espécie do veículo"
- name: uf_infrator
description: "Estado do condutor infrator (em caso de indicação de real condutor infrator)"
- name: uf_principal_condutor
description: "Estado do condutor principal do veículo"
- name: uf_veiculo
description: "Sigla do estado do veículo"
- name: nome_proprietario
description: "Nome do proprietário"
- name: cpf_proprietario
description: "CPF do proprietario do veículo"
- name: cnh_proprietario
description: "Número da CNH do proprietario do veículo"
- name: uf_cnh_proprietario
description: "Sigla do estado da CNH do proprietário"
- name: uf_proprietario
description: "Estado do proprietário do veículo"
- name: cep_proprietario
description: "CEP do proprietário do veículo [protegido]"
- name: numero_condutor_nao_habilitado
description: "Número de identificação do documento do condutor não habilitado"
- name: nome_condutor
description: "Nome do condutor"
- name: numero_identificacao_condutor
description: "Número do documento de identificação do condutor do veículo"
- name: cnh_condutor
description: "Número da CNH do condutor do veículo"
- name: uf_principal_condutor
description: "Estado do condutor principal do veículo"
- name: nome_infrator
description: "Nome do infrator"
- name: cpf_infrator
description: "CPF do infrator"
- name: cnh_infrator
description: "CNH do infrator"
- name: uf_infrator
description: "Estado do condutor infrator (em caso de indicação de real condutor infrator)"
- name: valor_infracao
description: "Valor monetário da autuação (100%) [R$]"
- name: valor_pago
description: "Valor pago da autuação [R$]"
- name: data_pagamento
description: "Data do pagamento"
- name: codigo_banco
description: "Código do banco"
- name: nome_banco
description: "Nome do banco"
- name: status_pagamento
description: "Status do pagamento. (pago, pago a mais, pago a menos, pago em duplicidade, nao identificado, desvinculado, em aberto)"
- name: codigo_auto_infracao_renainf
description: "Código do auto de infração no sistema renainf"
- name: id_autuador
description: "Código do órgão autuador"
- name: descricao_autuador
description: "Descrição da unidade de autuação"
- name: matricula_autuador
description: "Matrícula do usuário no órgão cadastrado"
- name: id_municipio_autuacao
description: "Código TOM do município da autuação"
- name: descricao_municipio
description: "Nome do município da autuação"
- name: uf_autuacao
description: "Sigla do estado da autuação"
- name: bairro_autuacao
description: "Endereço da autuação - Bairro"
- name: cep_autuacao
description: "Endereço da autuação - CEP"
- name: logradouro_autuacao
description: "Endereço da autuação - Logradouro"
- name: ende_numero_autuacao
description: "Endereço da autuação - Número"
- name: complemento
description: "Endereço da autuação - Complemento"
- name: logradouro_rodovia_autuacao
description: "Endereço da autuação - Logradouro"
- name: observacao_autuacao
description: "Observação geral do auto"
- name: processo_defesa_autuacao
description: "Número do processo de defesa prévia"
- name: rrso_num_processo
description: "Número de processo"
- name: cpa_num_processo
description: "Número de processo"
- name: susp_num_processo
description: "Número de processo"
- name: recurso_penalidade_multa
description: "Número do processo de recurso contra aplicação de penalidade de multa em primeira instância"
- name: processo_troca_real_infrator
description: "Número do processo de troca de real condutor infrator"
- name: status_sne
description: "Indicador de adesão do veículo ao SNE"

- name: aux_autuacao_id
description: "Tabela auxiliar para gerar identificador único da autuação"
columns:
- name: data
description: "Data da autuação (Coluna de particionamento)"
- name: id_autuacao
description: "Identificador único da autuação"
- name: id_auto_infracao
description: "Código do auto de infração [protegido]"
policy_tags:
- 'projects/rj-smtr/locations/us/taxonomies/7968932463054912793/policyTags/5243840798726507169'
- name: datetime_ultima_atualizacao
description: "{{ doc('datetime_ultima_atualizacao') }}"

- name: autuacao
description: "Tabela com dados de autuações (até abril/2023)"
columns:
Expand Down Expand Up @@ -167,7 +247,7 @@ models:
- name: descricao_veiculo
description: "Marca/modelo do veículo"
- name: placa_veiculo
description: "Placa do veículo"
description: "Placa do veículo [protegido]"
policy_tags:
- 'projects/rj-smtr/locations/us/taxonomies/7968932463054912793/policyTags/5243840798726507169'
- name: ano_fabricacao_veiculo
Expand Down Expand Up @@ -220,6 +300,9 @@ models:
description: "Indicador de adesão do veículo ao Sistema de Notificação Eletrônica (SNE)"
- name: fonte
description: "Origem dos dados"
- name: datetime_ultima_atualizacao
description: "{{ doc('datetime_ultima_atualizacao') }}"

- name: receita_autuacao
columns:
- name: data
Expand Down
14 changes: 12 additions & 2 deletions queries/models/transito/staging/autuacao_serpro.sql
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,17 @@


select
date(data) as data,
date(
parse_timestamp(
'%Y-%m-%d %H:%M:%S',
regexp_replace(
safe_cast(json_value(content, '$.auinf_dt_infracao') as string),
r'\.\d+',
''
)
),
'America/Sao_Paulo'
) as data,
auinf_num_auto as id_auto_infracao,
safe_cast(
json_value(content, '$.auinf_origem_desc') as string
Expand Down Expand Up @@ -164,7 +174,7 @@ select
safe_cast(json_value(content, '$.complemento') as string) as complemento,
safe_cast(
json_value(content, '$.auinf_local_rodovia') as string
) as logradouro_autuacao_2, -- Deveria ser somente rodovias
) as logradouro_rodovia_autuacao,
safe_cast(
json_value(content, '$.auinf_observacao') as string
) as observacao_autuacao,
Expand Down
30 changes: 30 additions & 0 deletions queries/models/transito/staging/aux_autuacao_id.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{{
config(
materialized="incremental",
partition_by={"field": "data", "data_type": "date", "granularity": "day"},
unique_key="id_auto_infracao",
incremental_strategy="insert_overwrite",
)
}}

select
s.data,
to_hex(sha256(concat(generate_uuid(), id_auto_infracao))) as id_autuacao,
id_auto_infracao,
current_datetime("America/Sao_Paulo") as datetime_ultima_atualizacao
from
(
select distinct id_auto_infracao, data
from {{ ref("autuacao_citran") }}
union all
select distinct id_auto_infracao, data
from {{ ref("autuacao_serpro") }}
) s
{% if is_incremental() %}
left join {{ this }} as t using (data, id_auto_infracao)
where
t.id_auto_infracao is null
and s.data between date("{{var('date_range_start')}}") and date(
"{{var('date_range_end')}}"
)
{% endif %}

0 comments on commit 2365f0f

Please sign in to comment.