From f55e2b1facb1af172ae29c49f646b82fd5129e1d Mon Sep 17 00:00:00 2001 From: Rafael Carvalho Pinheiro <74972217+pixuimpou@users.noreply.github.com> Date: Tue, 10 Sep 2024 18:28:47 -0300 Subject: [PATCH] Adiciona coluna `id_ordem_pagamento_consorcio_operador_dia` / Cria tabela `servico_operadora` (#191) * add id_ordem_pagamento_consorcio_operador_dia * cria tabela servico_operadora * descomenta refs * corrige descricao * corrige indentacao e add colunas operadora * add changelog * registrar nova versao dbt --------- Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- .../br_rj_riodejaneiro_bilhetagem/flows.py | 2 +- .../CHANGELOG.md | 7 +++++ ...ordem_pagamento_consorcio_operador_dia.sql | 9 ++++++ .../br_rj_riodejaneiro_bilhetagem/schema.yml | 2 ++ .../transacao.sql | 1 + ...g_linha_consorcio_operadora_transporte.sql | 2 +- queries/models/cadastro/CHANGELOG.md | 5 +++ queries/models/cadastro/schema.yml | 25 ++++++++++++++- queries/models/cadastro/servico_operadora.sql | 31 +++++++++++++++++++ 9 files changed, 81 insertions(+), 3 deletions(-) create mode 100644 queries/models/cadastro/servico_operadora.sql diff --git a/pipelines/migration/br_rj_riodejaneiro_bilhetagem/flows.py b/pipelines/migration/br_rj_riodejaneiro_bilhetagem/flows.py index 3c84fc3cf..1eef10596 100644 --- a/pipelines/migration/br_rj_riodejaneiro_bilhetagem/flows.py +++ b/pipelines/migration/br_rj_riodejaneiro_bilhetagem/flows.py @@ -2,7 +2,7 @@ """ Flows for br_rj_riodejaneiro_bilhetagem -DBT: 2024-09-05 2 +DBT: 2024-09-10 """ from copy import deepcopy diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem/CHANGELOG.md b/queries/models/br_rj_riodejaneiro_bilhetagem/CHANGELOG.md index 288f4efb6..d74262828 100644 --- a/queries/models/br_rj_riodejaneiro_bilhetagem/CHANGELOG.md +++ b/queries/models/br_rj_riodejaneiro_bilhetagem/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog - bilhetagem +## [2.5.0] - 2024-09-10 + +### Alterado +- Adiciona coluna `id_ordem_pagamento_consorcio_operador_dia` no modelo `ordem_pagamento_consorcio_operador_dia.sql` (https://github.com/prefeitura-rio/pipelines_rj_smtr/pull/191) +- Cria tratamento da coluna `timestamp_captura` no modelo `staging_linha_consorcio_operadora_transporte.sql` (https://github.com/prefeitura-rio/pipelines_rj_smtr/pull/191) + + ## [2.4.0] - 2024-09-05 ### Alterado diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento_consorcio_operador_dia.sql b/queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento_consorcio_operador_dia.sql index 76986fcd2..4dd3be947 100644 --- a/queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento_consorcio_operador_dia.sql +++ b/queries/models/br_rj_riodejaneiro_bilhetagem/ordem_pagamento_consorcio_operador_dia.sql @@ -38,6 +38,7 @@ WITH pagamento AS ( valor_pago FROM {{ ref("aux_retorno_ordem_pagamento") }} + -- `rj-smtr.controle_financeiro_staging.aux_retorno_ordem_pagamento` {% if is_incremental() %} WHERE {% if partitions|length > 0 %} @@ -50,6 +51,7 @@ WITH pagamento AS ( ordem_pagamento AS ( SELECT o.data_ordem, + o.id_ordem_pagamento_consorcio_operadora AS id_ordem_pagamento_consorcio_operador_dia, dc.id_consorcio, dc.consorcio, do.id_operadora, @@ -78,16 +80,20 @@ ordem_pagamento AS ( o.valor_liquido AS valor_total_transacao_liquido_ordem FROM {{ ordem_pagamento_consorcio_operadora_staging }} o + -- `rj-smtr.br_rj_riodejaneiro_bilhetagem_staging.ordem_pagamento_consorcio_operadora` o JOIN {{ ref("staging_ordem_pagamento") }} op + -- `rj-smtr.br_rj_riodejaneiro_bilhetagem_staging.ordem_pagamento` op ON o.data_ordem = op.data_ordem LEFT JOIN {{ ref("operadoras") }} do + -- `rj-smtr.cadastro.operadoras` do ON o.id_operadora = do.id_operadora_jae LEFT JOIN {{ ref("consorcios") }} dc + -- `rj-smtr.cadastro.consorcios` dc ON o.id_consorcio = dc.id_consorcio_jae {% if is_incremental() %} @@ -107,6 +113,7 @@ ordem_pagamento_completa AS ( SELECT data_ordem, + id_ordem_pagamento_consorcio_operador_dia, id_consorcio, consorcio, id_operadora, @@ -138,6 +145,7 @@ ordem_pagamento_completa AS ( ordem_valor_pagamento AS ( SELECT data_ordem, + id_ordem_pagamento_consorcio_operador_dia, id_consorcio, o.consorcio, id_operadora, @@ -170,6 +178,7 @@ ordem_valor_pagamento AS ( ) SELECT data_ordem, + id_ordem_pagamento_consorcio_operador_dia, id_consorcio, consorcio, id_operadora, diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem/schema.yml b/queries/models/br_rj_riodejaneiro_bilhetagem/schema.yml index 36ca444b5..63c3aca43 100644 --- a/queries/models/br_rj_riodejaneiro_bilhetagem/schema.yml +++ b/queries/models/br_rj_riodejaneiro_bilhetagem/schema.yml @@ -377,6 +377,8 @@ models: columns: - name: data_ordem description: "Data da ordem de pagamento (partição)" + - name: id_ordem_pagamento_consorcio_operador_dia + description: "Identificador único do registro no banco de dados da Jaé" - name: id_consorcio description: "Identificador do consórcio na tabela cadastro.consorcios" - name: consorcio diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem/transacao.sql b/queries/models/br_rj_riodejaneiro_bilhetagem/transacao.sql index cebccce20..6013486ad 100644 --- a/queries/models/br_rj_riodejaneiro_bilhetagem/transacao.sql +++ b/queries/models/br_rj_riodejaneiro_bilhetagem/transacao.sql @@ -1,4 +1,5 @@ -- depends_on: {{ ref('operadoras_contato') }} +-- depends_on: {{ ref('servico_operadora') }} -- depends_on: {{ ref('transacao_riocard') }} {{ config( diff --git a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_linha_consorcio_operadora_transporte.sql b/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_linha_consorcio_operadora_transporte.sql index 6a2d02c0e..d067140d1 100644 --- a/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_linha_consorcio_operadora_transporte.sql +++ b/queries/models/br_rj_riodejaneiro_bilhetagem_staging/staging_linha_consorcio_operadora_transporte.sql @@ -10,7 +10,7 @@ WITH linha_consorcio_operadora_transporte AS ( SAFE_CAST(CD_CONSORCIO AS STRING) AS cd_consorcio, SAFE_CAST(CD_OPERADORA_TRANSPORTE AS STRING) AS cd_operadora_transporte, SAFE_CAST(CD_LINHA AS STRING) AS cd_linha, - timestamp_captura, + DATETIME(PARSE_TIMESTAMP('%Y-%m-%d %H:%M:%S%Ez', timestamp_captura), "America/Sao_Paulo") AS timestamp_captura, DATETIME(PARSE_TIMESTAMP('%Y-%m-%dT%H:%M:%S%Ez', SAFE_CAST(JSON_VALUE(content, '$.DT_INCLUSAO') AS STRING)), "America/Sao_Paulo") AS dt_inclusao, PARSE_DATE("%Y-%m-%d", SAFE_CAST(JSON_VALUE(content, '$.DT_INICIO_VALIDADE') AS STRING)) AS dt_inicio_validade, PARSE_DATE("%Y-%m-%d", SAFE_CAST(JSON_VALUE(content, '$.DT_FIM_VALIDADE') AS STRING)) AS dt_fim_validade diff --git a/queries/models/cadastro/CHANGELOG.md b/queries/models/cadastro/CHANGELOG.md index f496cc7a4..d4ac495c5 100644 --- a/queries/models/cadastro/CHANGELOG.md +++ b/queries/models/cadastro/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog - cadastro +## [1.3.0] - 2024-09-10 + +### Adicionado +- Cria modelo `servico_operadora.sql` (https://github.com/prefeitura-rio/pipelines_rj_smtr/pull/191) + ## [1.2.1] - 2024-08-02 ### Alterado diff --git a/queries/models/cadastro/schema.yml b/queries/models/cadastro/schema.yml index 78abbe796..163c3639d 100644 --- a/queries/models/cadastro/schema.yml +++ b/queries/models/cadastro/schema.yml @@ -130,4 +130,27 @@ models: - name: data_fim_vigencia description: "Data de fim da vigência do serviço segundo o GTFS" - name: versao - description: "Código de controle de versão do dado (SHA Github)" \ No newline at end of file + description: "Código de controle de versão do dado (SHA Github)" + - name: servico_operadora + description: "Tabela com a relação entre serviço, consorcio e operadora de transporte de acordo com a base da Jaé" + columns: + - name: id_consorcio + description: "Identificador único do consórcio, podendo ser o código de permissionário ou código da Jaé" + - name: consorcio + description: "Nome do consórcio" + - name: id_operadora + description: "Identificador único do operador, podendo ser o código de permissionário ou código da Jaé" + - name: operadora + description: "Nome do operador (mascarado quando o operador é pessoa física)" + - name: servico + description: "Nome do serviço consolidado. Para linhas, é o nome curto da linha (ex: 010, 011SN). E para estações, é o stop_code do GTFS ou o código interno da estação no banco de dados da Jaé. (Caso o registro não exista no GTFS, busca o serviço na base de dados da Jaé)" + - name: id_servico_jae + description: "Identificador único do serviço no banco de dados da Jaé" + - name: descricao_servico + description: "Nome completo do serviço consolidado. Para linhas é, primariamente o route_long_name da tabela routes do GTFS. Para estações é primariamente a coluna stop_name da tabela stops do GTFS. (Caso o registro não exista no GTFS, busca o nome do serviço na base de dados da Jaé)" + - name: data_inicio_validade + description: "Data de inicio da validade do registro" + - name: data_fim_validade + description: "Data de fim da validade do registro" + - name: versao + description: "{{ doc('versao') }}" \ No newline at end of file diff --git a/queries/models/cadastro/servico_operadora.sql b/queries/models/cadastro/servico_operadora.sql new file mode 100644 index 000000000..d47e208fe --- /dev/null +++ b/queries/models/cadastro/servico_operadora.sql @@ -0,0 +1,31 @@ +{{ + config( + materialized="table" + ) +}} + +SELECT + c.id_consorcio, + c.consorcio, + o.id_operadora, + o.operadora, + lco.cd_linha AS id_servico_jae, + s.servico, + s.descricao_servico, + lco.dt_inicio_validade AS data_inicio_validade, + lco.dt_fim_validade AS data_fim_validade, + '{{ var("version") }}' as versao +FROM + {{ ref("staging_linha_consorcio_operadora_transporte") }} lco +JOIN + {{ ref("operadoras") }} o +ON + lco.cd_operadora_transporte = o.id_operadora_jae +JOIN + {{ ref("consorcios") }} c +ON + lco.cd_consorcio = c.id_consorcio_jae +JOIN + {{ ref("servicos") }} s +ON + lco.cd_linha = s.id_servico_jae \ No newline at end of file