avant correction v2 priorite

This commit is contained in:
2025-12-10 13:31:58 -05:00
parent e9c7f51f91
commit 9db677e313
3 changed files with 60 additions and 1 deletions

View File

@ -162,7 +162,6 @@ def process_course(cur, cnx, con_id: int):
det_id = tp_info["det_id"]
detail_table = f"resultv2_{con_id}_detail"
# -------------------------------------------------
# Règle de priorité (peut rejeter ou forcer tour)
# -------------------------------------------------
@ -177,6 +176,49 @@ def process_course(cur, cnx, con_id: int):
det_id,
tp_config
)
# -------------------------------------------------
# Gestion mémoire locale selon la règle de priorité
# -------------------------------------------------
# Si la lecture courante est rejetée par priorité :
if status == 0 and reason_code in ("REPLACED_BY_HIGHER_PRIORITY", "LOWER_PRIORITY"):
# On doit retirer l'ancienne lecture valide de la mémoire
if (tp_id, dossard) in _last_valid_read:
del _last_valid_read[(tp_id, dossard)]
# Si la lecture courante remplace une lecture existante :
elif reason_code == "REPLACED_BY_HIGHER_PRIORITY":
# La nouvelle lecture devient la base correcte pour les intervalles
_last_valid_read[(tp_id, dossard)] = dt_local
# -------------------------------------------------
# Si la priorité a déjà rejeté la lecture, on n'applique pas les autres règles
# -------------------------------------------------
if status == 0:
insert_detail_record(
cur, cnx, con_id,
dossard, lec,
tp_id, tp_name,
chr_loc, prio, controller,
dt_utc,
status=status,
reason_code=reason_code,
reason_ref_id=reason_ref_id,
tour=None,
tempstour=None,
tempstour_str=None
)
continue
# -------------------------------------------------
# Règle d'intervalle minimum entre lectures
@ -205,6 +247,23 @@ def process_course(cur, cnx, con_id: int):
reason_ref_id = det_id
log_debug(f"[SKIP INTERVAL] id={rcourse_id} {delta:.1f}s < {interval_sec}s")
insert_detail_record(
cur, cnx, con_id,
dossard, lec,
tp_id, tp_name,
chr_loc, prio, controller,
dt_utc,
status=status,
reason_code=reason_code,
reason_ref_id=reason_ref_id,
tour=None,
tempstour=None,
tempstour_str=None
)
continue
# -------------------------------------------------
# Calcul du tour + temps de tour
# -------------------------------------------------