fix(backend): corrigir calculo de anos consecutivos para consultores ativos
- Nao usar inativacaoSituacao como data fim quando situacao indica ativo - Evita que consultores com "Atividade Continua" tenham 0 anos consecutivos - Corrigir alinhamento dos headers nas tabelas de criterios (Header.css)
This commit is contained in:
76
scripts/recarregar_ranking.sh
Executable file
76
scripts/recarregar_ranking.sh
Executable file
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
API_URL="${API_URL:-http://localhost:8010/api/v1}"
|
||||
|
||||
echo "=== Recarregando Ranking de Consultores CAPES ==="
|
||||
echo ""
|
||||
|
||||
STATUS_CHECK=$(curl -s "${API_URL}/ranking/status")
|
||||
JA_RODANDO=$(echo "$STATUS_CHECK" | python3 -c "import sys,json; print(json.load(sys.stdin).get('running', False))" 2>/dev/null || echo "False")
|
||||
|
||||
if [ "$JA_RODANDO" = "True" ]; then
|
||||
echo "[!] Job já em execução - acompanhando progresso existente..."
|
||||
else
|
||||
echo "[1/2] Disparando job (limpar_antes=true)..."
|
||||
RESP=$(curl -s -X POST "${API_URL}/ranking/processar" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"limpar_antes": true}')
|
||||
|
||||
if echo "$RESP" | grep -q '"sucesso":true'; then
|
||||
echo " ✓ Job iniciado com sucesso"
|
||||
else
|
||||
echo " ✗ Erro ao iniciar job: $RESP"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "[2/2] Acompanhando progresso..."
|
||||
echo ""
|
||||
|
||||
while true; do
|
||||
STATUS=$(curl -s "${API_URL}/ranking/status")
|
||||
|
||||
RUNNING=$(echo "$STATUS" | python3 -c "import sys,json; print(json.load(sys.stdin).get('running', False))" 2>/dev/null || echo "False")
|
||||
PROCESSADOS=$(echo "$STATUS" | python3 -c "import sys,json; print(json.load(sys.stdin).get('processados', 0))" 2>/dev/null || echo "0")
|
||||
TOTAL=$(echo "$STATUS" | python3 -c "import sys,json; print(json.load(sys.stdin).get('total', 0))" 2>/dev/null || echo "0")
|
||||
PROGRESS=$(echo "$STATUS" | python3 -c "import sys,json; print(json.load(sys.stdin).get('progress', 0))" 2>/dev/null || echo "0")
|
||||
MSG=$(echo "$STATUS" | python3 -c "import sys,json; print(json.load(sys.stdin).get('mensagem', ''))" 2>/dev/null || echo "")
|
||||
|
||||
BARRA=""
|
||||
PROGRESS_INT=${PROGRESS%.*}
|
||||
PREENCHIDO=$((PROGRESS_INT / 5))
|
||||
VAZIO=$((20 - PREENCHIDO))
|
||||
for ((i=0; i<PREENCHIDO; i++)); do BARRA+="█"; done
|
||||
for ((i=0; i<VAZIO; i++)); do BARRA+="░"; done
|
||||
|
||||
printf "\r [%s] %5.1f%% | %s/%s | %s" "$BARRA" "$PROGRESS" "$PROCESSADOS" "$TOTAL" "$MSG"
|
||||
|
||||
if [ "$RUNNING" = "False" ]; then
|
||||
echo ""
|
||||
break
|
||||
fi
|
||||
|
||||
sleep 3
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "=== Concluído ==="
|
||||
|
||||
STATS=$(curl -s "${API_URL}/ranking/estatisticas" 2>/dev/null || echo "{}")
|
||||
if [ "$STATS" != "{}" ]; then
|
||||
echo ""
|
||||
echo "Estatísticas:"
|
||||
echo "$STATS" | python3 -c "
|
||||
import sys, json
|
||||
data = json.load(sys.stdin)
|
||||
print(f\" Total consultores: {data.get('total_consultores', 'N/A'):,}\")
|
||||
print(f\" Com pontuação: {data.get('com_pontuacao', 'N/A'):,}\")
|
||||
print(f\" Pontuação máxima: {data.get('pontuacao_maxima', 'N/A')}\")
|
||||
print(f\" Pontuação média: {data.get('pontuacao_media', 'N/A'):.2f}\")
|
||||
" 2>/dev/null || echo " (não foi possível obter estatísticas)"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Pronto!"
|
||||
Reference in New Issue
Block a user