Ir para o conteúdo principal

Como identificar o perfil se é servidor ou um usuário externo e qual carta de serviço devo mostrar para esse usuário

Data de elaboração 24/10/2022
Responsável pelo estudo
  1. Rafael Passos dos Santos (Assessor)
  2. Lucas de Souza e Sousa (Assessor)
Equipe do estudo
  1. André Honório de Andrade Silva (Tecnico)
  2. Gezinéia Paula da Costa (Product Owner)
  3. Emanuel Rufino Alcantara de Lima (Analista)
  4. Lucas de Souza e Souza (Assessor)
  5. Rafael Passos dos Santos (Assessor)
Alvo Alpha - Carta de serviços
Origem

Implementação: Identificar se  o perfil do servidor é interno ou de usuário externo

Objetivo

O presente estudo tem como objetivo identificar se  o perfil do servidor é interno ou de usuário externo e qual carta de serviço devo mostrar para esse usuário

Documentação correlata
Observações O presente estudo pretende também pretende levantar as Historias dos cards para a Sprint 
1. Objetivo

O presente estudo tem como objetivo identificar se  o perfil do servidor é interno ou de usuário externo e qual carta de serviço devo mostrar para esse usuário

1.1 JUSTIFICATIVA

Existe a necessidade de incluir as cartas de serviços de outras instituições que também utilizarão o Alpha, porém não fazem parte da hierarquia interna do Governo. Para essas instituições foi levantada a hipótese de se realizar este estudo para verificar a possibilidade de se utilizar o CNPJ para identificar qual a carta de serviços é relacionada ao gestor de serviços ou ao atendente.

1.2 RESULTADOS ESPERADOS

Espera-se que, após este estudo, seja possível avaliar a possibilidade de se utilizar o CNPJ para criar e buscar a carta de serviços de instituições internas e externas do Governo

2. Introdução

O Alpha é uma aplicação desenvolvida pela SETIC - esta é utilizada pelos servidores gestores das cartas de serviços do Estado de Rondônia. 

3. Desenvolvimento - Vincular a carta de serviços a um CNPJ

3.1 CENÁRIO ATUAL

3.1.1 Alpha Serviços API

ASabe-se que o alpha terar que ser acessado por usuários externos, que não são servidores publicos, diante disso tornou-se necessario identificar se o perfil da pessoa usando o sistema é servidor ou um usuário externo e qual carta de serviçoso devemos mostrar para esse usuário.

Após reunião com o Desenvolvedor Anderson Soares do TIME ESQUADRÃO, foi desenvolvida baseada em um identificador interno (unidadeOrcamentariaId), trata-se de um campovisto que identificatal informação pode vim da Apis do E-ESTADO.

O qual unidade orçamentária corresponde a determinada carta de serviços. 


1. Tabela da carta de serviços

Nesta tabela esse campo é identificado com CodigoDaUnidadeGestoraDoDepartamento.

Para identificar qual a unidade que o servidor está lotado, utilizamos a rota no e-estado API trazendo as movimentações comtem os seguintes campos:

  1.  codigoDaUnidadeOrcamentaria - código que identifica qual a unidadebancos de origem do servidor
  2.  codigoDaUnidadeGestoraDoDepartamento - código que identifica a unidadedados em que o servidor está lotado
  3.  departamentoPadrao - flag que identifica que a movimentação é a padrão, ou seja, movimentação vigente do servidor.
Postgres:

Obs: Nesta rota, não existe a informaçãoTabela de qualservidores, é o CNPJ da unidade.

Foi verificado quecom o campo "CodigoDaUnidadeGestoraDoDepartamento"pessoa_id.

não

image.png

é

Tabela utilizadode parausuários, relacionamentotambém com ao campo pessoa_id 

image.png

E tabela de serviços,usuario ouescopo, seja,onde emvincula termosuma unidade a pessoa 

image.png

As informações da Pessoa, pode vim da api de relacionamentopessoas nãofisicas do impactosE-estado:

no

image.png

banco

Já a de dados.servidores, pode ser pela nova api de Servidores


image.png

3.1.2Se Alphaa Solicitaçõespessoa APItiver dados nessa api, então ela é um servidor, se não, é um usuário externo.

Solicitações do Servidor

Na tabela de solicitações do servidor há o campo unidade orçamentária, este campo identifica a unidade orçamentária que o servidor estiver lotado no momento da solicitação. Este campo é utilizado no filtro de solicitações.

Avaliações dos agendamentos

O campo de unidade orçamentária também é utilizado como parâmetro para se obter as avaliações por unidade orçamentária. Para isso, é utilizada a rota de obter todos os serviços da unidade orçamentária. Com base nesses serviços é realizado um filtro nas avaliações existentes.

Dashboard

O campo de unidade orçamentária também é utilizado para se obter o quantitivo de solicitações por unidade orçamentária.


3.2 SOLUÇÃO

É possível implementar uma das duas soluções:

3.2.1 SOLUÇÃO 1 - Utilizar tanto unidade orçamentária (servidores) quanto CNPJ (externos) para identificar a carta de serviços

Adicionar o campo CNPJ nas buscas da carta de serviço. Dessa forma, a carta poderá ser buscada tanto por unidade orçamentária quanto por CNPJ, realizando a tratativa de acordo se um dos campos estiver nulo.

3.2.2.1 IMPLEMENTAÇÃO E HISTÓRIAS DE USUÁRIOS

Para aplicar a solução acima será necessário as seguintes histórias de usuários:

O que? Pontos Regras Produto
Criação do campo CNPJ na tabela Carta de serviços 5

Regras ao salvar

  • campo CNPJ opcional para as cartas de entidades do governo e campo unidadeOrcamentaria obrigatória
  • campo CNPJ obrigatório quando for entidade externa ao governo e campo unidadeOrcamentaria nula

Integridade

  • Não pode deixar criar duas cartas de serviços com o mesmo cnpj
  • Não pode deixar criar duas cartas de serviços com a mesma unidade orcamentaria

Obs: a nível de aplicação, poderia ser criada herança para identificar carta de serviços internas e externas.

Alpha

API

Adicionar parâmetro CNPJ nas rotas de ObterCartaDeServicos na API 5

Alterar a rota para permitir receber dois campos:

1) CodigoDaUnidadeOrcamentaria - para as unidades do governo

2) CNPJ - para as unidades externas

A action deve ser alterada para que no caso do codigoDaUnidadeOrcamentaria vier nula, utilizar o CNPJ para obter a carta de serviços

Rotas a serem alteradas:

  • ObterCartaDeServicosPublicadosParaOPortalDoServidor/{codigoDaUnidadeOrcamentaria}
  • ObterCartaDeServicosPorCodigoDaUnidadeOrcamentaria/{codigoDaUnidadeOrcamentaria}

Sugestão: obter os parâmetros via fromQuery

Alpha API
(Opcional) Criar campo para identificar se a carta de serviços é de origem interna ou externa aos órgãos do governo 3

Este campo facilitaria possíveis filtros e relatórios posteriores

Alpha API
Adicionar parâmetro CNPJ nas rotas de ObterCartaDeServicos no Alpha WEB 3

Quando identificar que o usuário é de entidade externa

Alpha WEB
Adicionar CNPJ nas rotas de ObterCartaDeServicos no Portal do cidadão 3

Quando identificar que é entidade externa

Portal do cidadão




Total 19




3.2.2 SOLUÇÃO 2 - Utilizar o CNPJ como identificador único na busca da carta de serviços

Esta solução requer incluir as informações dos CNPJs da Unidade Gestora do Departamento e da Unidade Orcamentaria do servidor na rota de movimentações. Dessa forma, será padronizada a busca por CNPJ, tanto para usuários do governo quanto usuários externos, retirando o campo de Unidade orçamentaria das buscas.

3.2.2.1 IMPLEMENTAÇÃO E HISTÓRIAS DE USUÁRIOS DA SOLUÇÃO 2

O que?PontosRegrasProduto
E-Estado



Incluir CNPJ das unidades orçamentária e gestora do servidor na rota de movimentações do servidor5


E-Estado
Criar rota para obter a unidade orçamentária pelo CNPJ

5

Mesmo retorno da rota: api/unidadeorcamentaria/id/

E-Estado
Alpha Servicos



Criação do campo CNPJ na tabela Carta de serviços5

- Campo obrigatório

- Retirar o campo unidadeOrcamentariaId da tabela carta de serviços

- Criar rotina para atualizar o banco da carta de serviços, incluindo o cnpj de cada unidade orçamentária relacionada

Alpha

API

Alterar o parâmetro para buscar por CNPJ nas rotas de ObterCartaDeServicos na Api5

Alterar o parâmetro das rotas para buscar por cnpj

Parâmetro:

cnpjDaUnidade - para as unidades externas


Rotas a serem alteradas:

  • CartaDeServicos/ObterCartaDeServicosPublicadosParaOPortalDoServidor/{cnpjDaUnidade}
  • CartaDeServicos/ObterCartaDeServicosPorCodigoDaUnidadeOrcamentaria/{cnpjDaUnidade}
  • Servico/ObterServicosPorUnidadeOrcamentaria{cnpjDaUnidade}
Alpha API
Alterar parâmetro de busca por unidade orçamentária e substituir por CNPJ nas rotas de ObterCartaDeServicos no Alpha WEB3


Alpha WEB
Portais



Alterar parâmetro de busca por unidade orçamentária e substituir por CNPJ nas rotas de ObterCartaDeServicos no Portal do servidor5

- Deve ser alterado além da controller, as dtos, services e factories

Portal do servidor
Alterar parâmetro de busca por unidade orçamentária e substituir por CNPJ nas rotas de ObterCartaDeServicos no Portal do cidadão5

- Deve ser alterado além da controller, as dtos, services e factories

Portal do cidadão
Busca de unidades externas3

- Busca de algum lugar a lista de unidades externas para mostrar ao cidadao

Portal do cidadão
Alpha Solicitacoes API



Alterar campo unidadeOrcamentaria para CNPJ na tabela solicitacoes de servidores5

Criar rotina para atualizar o campo CNPJ

Alpha solicitações API
Alterar rota ObterAvaliacoesPorUnidadeOrcamentaria3

Alterar para ObterAvaliacoesPorCNPJ

Alpha Solicitações API
Alpha Solicitacoes WEB



Alterar consulta de avaliações por CNPJ3

Alterar para ObterAvaliacoesPorCNPJ

Alpha solicitações Web
Alterar parâmetro de busca por unidade orçamentária e substituir por CNPJ nas rotas de ObterCartaDeServicos no Alpha Solicitações WEB3


Alpha WEB
Total50



3.4 POSSÍVEIS IMPEDIMENTOS

Não foram encontrados possíveis problemas de implementação.

4. Conclusão

Conclui-se que a solução que trará menos impacto ao sistema será a solução 1. Dessa forma conseguiremos obter a carta de serviços tanto através da unidade orçamentária quanto por CNPJ.