Pular para o conteúdo principal

Visão Técnica das Funcionalidades

Esta seção foca em detalhar a lógica, comportamento e funcionamento estrutural do Sistema Lotação.


Lógica de Dados e Persistência​

O sistema diferencia a origem dos dados para garantir a integridade das informações provenientes de fontes oficiais.

Registros de Carga vs. Manuais​

A mutabilidade de um registro é definida pela sua origem:

  • Registros de Carga: Provenientes de sistemas externos (SIARHES, Acesso Cidadão). Possuem estado de somente leitura.
    • Regra: Se a Origem for igual a "Carga", as permissões do usuário são restritas apenas à Visualização.
  • Registros Manuais: Criados diretamente na interface do sistema, permitindo o ciclo completo de CRUD (Criação, Consulta, Edição e Exclusão).

Exclusão Lógica (Soft Delete)​

O sistema não realiza a remoção física de registros do banco de dados. Ao "excluir" uma lotação, ocupação ou grupo:

  1. O campo de situação é alterado para Inativo.
  2. O registro deixa de ser exibido em buscas comuns e seletores.
  3. A rastreabilidade histórica é preservada para auditoria e relatórios retroativos.

Gestão de Lotações​

A lotação é a entidade central que vincula um CPF a uma Ocupação e uma Unidade.

Matriz de Unicidade​

Para evitar redundância, o sistema valida a unicidade baseada no tipo de lotação. Não é permitido criar registros duplicados para as mesmas chaves abaixo:

TipoChave de Unicidade (Combinação Obrigatória)
ServidorCPF + Ocupação + Unidade
TerceiroCPF + Papel + Origem
ComissãoCPF + Comissão + Ocupação

Reativação Automática​

Em vez de gerar registros duplicados, o sistema implementa uma lógica de Upsert.

Lógica: Se um usuário tenta cadastrar uma lotação manual que já existiu no passado (e está com status Inativo), o sistema recupera esse registro e altera seu status para Ativo em vez de criar um novo ID no banco de dados.


Estrutura e Governança​

Hierarquia Organizacional​

O sistema opera em uma estrutura de árvore descendente, onde a relação de subordinação é clara: Patriarca > Órgão > Unidade > Subunidade.

  • Grupos Organizacionais: Diferenciam-se dos grupos comuns por possuírem Sigla única e permitirem uma hierarquia própria (Relação Pai-Filho).
  • Comissões: São entidades transversais que não seguem a hierarquia de unidades, mas exigem ocupações específicas de comissão.
Restrição de Exclusão

Não é possível excluir uma Comissão ou Grupo Organizacional enquanto houver membros ativos vinculados a eles. A hierarquia deve ser limpa das "folhas" (membros) para a "raiz" (entidade).


Algoritmo de Herança de Gestor​

Um dos recursos mais críticos é a propagação automática de responsabilidade na hierarquia de unidades e grupos.

Lógica de Resolução​

O gestor exibido para uma Unidade ou Grupo Organizacional é calculado dinamicamente. Caso um nó não possua um gestor direto, o sistema busca o responsável no nível imediatamente superior:

  1. Possui Gestor Direto? Exibe o servidor atribuído.
  2. Não possui? Busca o gestor da Unidade/Grupo Pai.
  3. Recursividade: O sistema repete a busca subindo os níveis até encontrar um gestor ou atingir o topo da hierarquia (Órgão).

Gatilhos de Recálculo​

O recálculo da herança é disparado automaticamente em três cenários:

  • Atribuição de um novo gestor a um nó superior.
  • Remoção de um gestor de um nó superior.
  • Inativação da lotação de um servidor que possuía cargo de gestão (o sistema remove o vínculo de gestor antes de inativar a pessoa).

Integração e Segurança​

Autenticação e Contexto​

O sistema utiliza o Acesso Cidadão como provedor de identidade. A segurança é baseada em dois pilares:

  • Escopo de Órgão: Ao trocar de órgão no cabeçalho, o contexto de segurança é reiniciado. O usuário só visualiza entidades vinculadas ao ID do Órgão selecionado.
  • RBAC (Role-Based Access Control): As funcionalidades são liberadas via perfis (roles) específicos (ex: acessoExternos libera o menu de terceiros, enquanto acessoComissoes libera a gestão de membros de comissão.

Normalização de Dados​

Para garantir a consistência nas buscas e integrações com sistemas externos (E-Docs, Organograma):

  • Todos os nomes e siglas são convertidos para CAIXA ALTA automaticamente.
  • CPFs são armazenados apenas como números, removendo pontos e traços na persistência.