priorite fonctionne de base a tester
This commit is contained in:
15
a faire
15
a faire
@ -1,15 +0,0 @@
|
|||||||
Notes pour correction du moteur Python
|
|
||||||
|
|
||||||
Les priorités ne fonctionnent pas.
|
|
||||||
La logique actuelle doit être revue.
|
|
||||||
|
|
||||||
La validation des intervalles est mal faite.
|
|
||||||
Elle doit être basée directement sur l’heure pour obtenir un rapprochement plus uniforme.
|
|
||||||
|
|
||||||
Les tours ne fonctionnent pas.
|
|
||||||
Le calcul du tour et du temps de tour doit être revu complètement.
|
|
||||||
|
|
||||||
Concept général à corriger :
|
|
||||||
Lorsqu’une entrée est jugée « bonne », on doit l’écrire immédiatement dans la base de données,
|
|
||||||
avant d’appliquer n’importe quelle autre validation.
|
|
||||||
Parce que ces lectures doivent être conservées quoi qu’il arrive.
|
|
||||||
Binary file not shown.
Binary file not shown.
@ -168,9 +168,9 @@ def process_course(cur, cnx, con_id: int):
|
|||||||
# -------------------------------------------------
|
# -------------------------------------------------
|
||||||
# Règle de priorité
|
# Règle de priorité
|
||||||
# -------------------------------------------------
|
# -------------------------------------------------
|
||||||
#status, reason_code, reason_ref_id, forced_tour = resolve_priority(
|
status, reason_code, reason_ref_id, forced_tour = regles.resolve_priority(
|
||||||
# cur, cnx, detail_table, tp_id, dossard, timestamp, prio, det_id, tp_config
|
cur, cnx, detail_table, tp_id, dossard, timestamp, prio, detail_id, tp_config
|
||||||
#)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@ def resolve_priority(
|
|||||||
dossard,
|
dossard,
|
||||||
new_timestamp,
|
new_timestamp,
|
||||||
new_priority,
|
new_priority,
|
||||||
det_id,
|
detail_id,
|
||||||
tp_config
|
tp_config
|
||||||
):
|
):
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ def resolve_priority(
|
|||||||
except:
|
except:
|
||||||
backup_window = 0
|
backup_window = 0
|
||||||
|
|
||||||
log_debug(f"[resolve_priority] backup_window={backup_window}")
|
|
||||||
|
|
||||||
# -------------------------------------------------
|
# -------------------------------------------------
|
||||||
# Si backup_window = 0 → toujours accepter
|
# Si backup_window = 0 → toujours accepter
|
||||||
@ -51,9 +51,12 @@ def resolve_priority(
|
|||||||
WHERE tp_id = %s
|
WHERE tp_id = %s
|
||||||
AND cla_info_dossard = %s
|
AND cla_info_dossard = %s
|
||||||
AND status = 1
|
AND status = 1
|
||||||
|
AND detail_id <> %s
|
||||||
AND ABS(timestamp_read - %s) <= %s
|
AND ABS(timestamp_read - %s) <= %s
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
""", (tp_id, dossard, str(new_timestamp), backup_window))
|
""", (tp_id, dossard, detail_id, new_timestamp, backup_window))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
row = cur.fetchone()
|
row = cur.fetchone()
|
||||||
|
|
||||||
@ -61,6 +64,7 @@ def resolve_priority(
|
|||||||
# Aucun doublon → accepter
|
# Aucun doublon → accepter
|
||||||
# -------------------------------------------------
|
# -------------------------------------------------
|
||||||
if not row:
|
if not row:
|
||||||
|
log_debug(f"[resolve_priority] pas de doublon backup_window={backup_window}")
|
||||||
return 1, None, None, None
|
return 1, None, None, None
|
||||||
|
|
||||||
old_id = row["detail_id"]
|
old_id = row["detail_id"]
|
||||||
@ -70,10 +74,10 @@ def resolve_priority(
|
|||||||
# -------------------------------------------------
|
# -------------------------------------------------
|
||||||
# Comparaison des priorités
|
# Comparaison des priorités
|
||||||
# -------------------------------------------------
|
# -------------------------------------------------
|
||||||
|
log_debug(f"[resolve_priority] detail_id={detail_id} old_id={old_id} backup_window={backup_window}")
|
||||||
# Nouvelle lecture moins prioritaire → rejet
|
# Nouvelle lecture moins prioritaire → rejet
|
||||||
if new_priority > old_priority:
|
if new_priority > old_priority:
|
||||||
return 0, "LOWER_PRIORITY", det_id, None
|
return 0, "LOWER_PRIORITY", detail_id, None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -88,7 +92,7 @@ def resolve_priority(
|
|||||||
reason_code = 'REPLACED_BY_HIGHER_PRIORITY',
|
reason_code = 'REPLACED_BY_HIGHER_PRIORITY',
|
||||||
reason_ref_id = %s
|
reason_ref_id = %s
|
||||||
WHERE detail_id = %s
|
WHERE detail_id = %s
|
||||||
""", (det_id, old_id))
|
""", (detail_id, old_id))
|
||||||
|
|
||||||
cnx.commit()
|
cnx.commit()
|
||||||
|
|
||||||
@ -97,7 +101,7 @@ def resolve_priority(
|
|||||||
|
|
||||||
|
|
||||||
# Même priorité → rejet
|
# Même priorité → rejet
|
||||||
return 0, "EQUAL_PRIORITY", det_id, None
|
return 0, "EQUAL_PRIORITY", detail_id, None
|
||||||
|
|
||||||
# -------------------------------------------------
|
# -------------------------------------------------
|
||||||
# Regle interval
|
# Regle interval
|
||||||
|
|||||||
@ -37,3 +37,20 @@ TABLE reader_config_detail — RÈGLES GÉNÉRALES
|
|||||||
7) Source unique
|
7) Source unique
|
||||||
- Toutes les informations de configuration (TP et course) doivent provenir de reader_config_detail.
|
- Toutes les informations de configuration (TP et course) doivent provenir de reader_config_detail.
|
||||||
- Aucune autre source de règle ne doit être utilisée dans le moteur.
|
- Aucune autre source de règle ne doit être utilisée dans le moteur.
|
||||||
|
|
||||||
|
|
||||||
|
Notes pour correction du moteur Python
|
||||||
|
|
||||||
|
Les priorités ne fonctionnent pas.
|
||||||
|
voir si les priorité devrais etre a la fin
|
||||||
|
La logique actuelle doit être revue.
|
||||||
|
|
||||||
|
|
||||||
|
valider les multiple interval
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Concept général à corriger :
|
||||||
|
si ca plente pendant la validatione des regles
|
||||||
|
|
||||||
|
valider premier tours
|
||||||
|
|||||||
Reference in New Issue
Block a user