feat: Implementa job de ranking para 300k consultores

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
This commit is contained in:
Frederico Castro
2025-12-10 01:33:00 -03:00
parent 0213a55791
commit 3ea6a4409e
19 changed files with 1596 additions and 20 deletions

View File

@@ -46,6 +46,36 @@
background: var(--accent-2);
}
.mode-selector {
display: flex;
gap: 0.5rem;
margin: 1.5rem 0;
justify-content: center;
}
.mode-selector button {
padding: 0.75rem 1.5rem;
background: rgba(255,255,255,0.06);
border: 1px solid var(--stroke);
border-radius: 8px;
color: var(--muted);
font-size: 0.95rem;
font-weight: 500;
cursor: pointer;
transition: all 200ms;
}
.mode-selector button:hover {
border-color: var(--accent-2);
color: var(--text);
}
.mode-selector button.active {
background: var(--accent);
border-color: var(--accent);
color: white;
}
.controls {
margin: 1.5rem 0;
display: flex;