feat(backend): ranking 100% Elasticsearch e critérios do PDF

This commit is contained in:
Frederico Castro
2025-12-15 00:13:12 -03:00
parent 70787fbb51
commit 2a0dc1a652
25 changed files with 522 additions and 263 deletions

View File

@@ -89,10 +89,19 @@ class CalculadorPontuacao:
tempo = min(anos_total * criterio.multiplicador_tempo, criterio.teto_tempo)
bonus = 0
if consultoria.anos_consecutivos >= 8 and criterio.bonus_continuidade_8anos:
bonus += criterio.bonus_continuidade_8anos
if codigo == "CONS_ATIVO" and consultoria.retornos > 0 and criterio.bonus_retorno:
bonus += criterio.bonus_retorno
# Bônus de continuidade (escalonado, não cumulativo) - apenas CONS_ATIVO
if codigo == "CONS_ATIVO":
if consultoria.anos_consecutivos >= 8:
bonus += 15
elif consultoria.anos_consecutivos >= 5:
bonus += 10
elif consultoria.anos_consecutivos >= 3:
bonus += 5
# Bônus de retorno (uma vez) - apenas CONS_ATIVO
if consultoria.retornos > 0 and criterio.bonus_retorno:
bonus += criterio.bonus_retorno
total_bruto = base + tempo + bonus
total = min(total_bruto, criterio.teto) if criterio.teto > 0 else total_bruto