Filtro E_CONSULTOR:
- Adicionar coluna E_CONSULTOR na tabela TB_RANKING_CONSULTOR
- Filtrar apenas consultores ao selecionar Ativo/Inativo
- Não-consultores não aparecem mais no filtro de inativos
Correção de anos para inativos:
- Calcular anos_consecutivos baseado no período histórico (não mais 0)
- Calcular anos_atuacao usando data fim do período (não datetime.now())
- Backend: reorganizar blocos para A (Coord CAPES), B (Consultoria),
C (Avaliacoes/Premiacoes), D (Indicadores), E (Coord PPG)
- Frontend: atualizar labels e formulas dos blocos
- Frontend: ajustar CSS para blocos com tamanho uniforme e quebra de linha
- Adicionar migration script para COMPONENTE_E no Oracle
Backend:
- Adiciona Scroll API no cliente Elasticsearch para processar todos os 300k+ consultores
- Cria tabela TB_RANKING_CONSULTOR no Oracle para ranking pré-calculado
- Implementa job de processamento com APScheduler (diário às 3h)
- Adiciona endpoints: /ranking/paginado, /ranking/status, /ranking/processar, /ranking/estatisticas
- Repository Oracle com paginação eficiente via ROW_NUMBER
- Status do job com progresso em tempo real (polling)
- Leitura automática de LOBs no OracleClient
Frontend:
- Componente RankingPaginado com paginação completa
- Barra de progresso do job em tempo real
- Botão para reprocessar ranking
- Alternância entre Top N (rápido) e Ranking Completo (300k)
Infraestrutura:
- Docker compose com depends_on para garantir Oracle disponível
- Schema SQL com procedure SP_ATUALIZAR_POSICOES
- Índices otimizados para paginação