Ir para o conteúdo principal

Retificação de Decretos gerados no SISNE

Data de elaboração 06/06/2023
Responsável pelo estudo

Alexandre dos Santos Freire Ferreira (Assessor)

Equipe do estudo Caveiras
Alvo SISNE .
Origem

Implementação

Objetivo Possibilitar retificação de decretos gerados pelo sistema SISNE, mantendo compatibilidade com decretos gerados através do sistema CECAANE.
1. Introdução

Atualmente, o Sistema de Nomeação e Exoneração (SISNE) enfrenta um desafio significativo relacionado à retificação de decretos gerados por meio dele. A estrutura atual do sistema foi concebida exclusivamente para lidar com decretos gerados no sistema CECAANE, o que resultou em uma incompatibilidade com os decretos do tipo Guid.

Essa incompatibilidade entre os tipos de decreto representa uma limitação importante do SISNE. Enquanto o CECAANE utiliza um identificador único do tipo inteiro para os decretos, o SISNE exige um identificador do tipo Guid. Essa diferença estrutural impede que o SISNE acomode adequadamente ambos os tipos de decretos, o que compromete sua capacidade de realizar retificações.

Para superar esse obstáculo, é necessário realizar uma refatoração completa do Sistema de Nomeação e Exoneração. A refatoração envolverá modificações substanciais na arquitetura e no código-fonte do sistema, a fim de torná-lo compatível e capaz de suportar as duas estruturas diferentes de decretos.

2. Desenvolvimento

A primeira etapa desse processo de refatoração será a adaptação da estrutura do SISNE para incorporar o identificador do tipo Guid. Isso exigirá modificações extensivas em vários componentes do sistema, como a camada de persistência de dados, os modelos de dados e as APIs de comunicação com outros sistemas.

Uma vez concluída essa adaptação, o próximo passo será estabelecer mecanismos de conversão entre os diferentes tipos de identificadores de decreto. Isso garantirá que o SISNE possa reconhecer e manipular corretamente tanto os decretos do tipo inteiro quanto os do tipo Guid. Será necessário implementar algoritmos de conversão eficientes e confiáveis, a fim de realizar a tradução adequada entre os dois formatos de identificador.

Essa é uma estrutura utilizada durante a retificação, através do id ou protocolo do decreto é realizado uma busca na base de dados do sistema cecaane, e em seguida essa estrutura abaixo é preenchida:

image.png

O Cecaane possui todas essas informações em sua base dados, dessa forma não existe a necessidade de consultar outros serviços externos, porém o decreto gerado pelo SISNE não segue da mesma forma, ele trabalha com informações distribuídas em outros serviços. Sendo assim essa nova forma de buscar as informações devera ser aplicada nas classes atuais.

image.png

2.1 Mesclagem dos decretos

Para possibilitar a retificação dos decretos no Sistema de Nomeação e Exoneração (SISNE), é necessário encontrar uma solução para unificar a abordagem dos identificadores de decreto. Atualmente, a retificação no sistema funciona apenas com o campo "decretoId" do tipo inteiro. Portanto, será necessário adotar medidas para permitir que os decretos de ambos os sistemas, CECAANE e SISNE, possam ser processados juntos.

Uma opção viável é converter o campo "decretoId" de inteiro para string. Essa conversão permitirá agregar tanto o "decretoId" inteiro do CECAANE quanto o "decretoId" do SISNE, que é um campo do tipo Guid.

2.1 Impactos

Essa mudança, embora seja de pequena escala, terá impacto em vários arquivos do sistema. Será necessário ajustar os testes automatizados existentes para garantir que eles estejam alinhados com a nova estrutura de identificadores. Além disso, será crucial realizar uma revalidação de todos os fluxos para assegurar que o sistema continue operacional após a implementação dessa modificação.

Além da alteração do tipo do campo "decretoId", será necessário refatorar as classes responsáveis por buscar as informações dos decretos. Essas classes precisarão ser ajustadas para que possam identificar automaticamente a fonte do decreto e retornar os dados corretos, dependendo da origem do decreto.

Essa adaptação exigirá um cuidadoso planejamento e execução, pois impactará vários componentes do sistema. Será necessário atualizar a estrutura do banco de dados para acomodar o novo formato do campo "decretoId" e garantir que a integridade dos dados seja preservada durante o processo de migração.

Além disso, testes abrangentes devem ser realizados para identificar e corrigir quaisquer problemas que possam surgir devido à mesclagem dos diferentes tipos de identificadores de decreto.

3. Conclusão

É importante ressaltar que a refatoração do SISNE não se limitará apenas às questões relacionadas aos tipos de identificadores de decretos. Durante esse processo, será uma oportunidade para realizar outras melhorias e otimizações no sistema, visando aprimorar sua eficiência, escalabilidade e manutenibilidade.

Em resumo, a atual incompatibilidade do Sistema de Nomeação e Exoneração em relação aos diferentes tipos de identificadores de decretos requer uma refatoração completa do sistema. Essa refatoração envolverá adaptações na estrutura do SISNE, implementação de mecanismos de conversão entre os tipos de identificadores, atualização da lógica de negócio e possíveis melhorias adicionais.

Somente com essas mudanças será possível garantir que o SISNE seja capaz de suportar e retificar adequadamente os decretos gerados tanto no sistema CECAANE quanto no SISNE que utiliza o identificador do tipo Guid. Foi iniciado algumas mudanças relacionadas a essa demanda, estão na branch CAV-1140 no gitlab dentro do projeto do SISNE.