avant correction v2 priorite
This commit is contained in:
Binary file not shown.
Binary file not shown.
@ -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)
|
||||
# -------------------------------------------------
|
||||
@ -178,6 +177,49 @@ def process_course(cur, cnx, con_id: int):
|
||||
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
|
||||
# -------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user