🎉 Refactor Backend Logs and Utilities 🖥️📚

This commit is contained in:
2025-06-02 14:37:04 +02:00
parent 3cab66efc8
commit 7ee6ce5cae
30 changed files with 1171 additions and 19 deletions

View File

@@ -11,6 +11,7 @@ from sqlalchemy.orm import joinedload
from models import get_db_session, Job, Printer
from utils.logging_config import get_logger
from utils.conflict_manager import conflict_manager
# Blueprint initialisieren - URL-Präfix geändert um Konflikte zu vermeiden
jobs_blueprint = Blueprint('jobs', __name__, url_prefix='/api/jobs-bp')
@@ -217,6 +218,35 @@ def create_job():
jobs_logger.debug(f"✅ Drucker gefunden: {printer.name} (ID: {printer_id})")
# ERWEITERTE KONFLIKTPRÜFUNG
job_data = {
'printer_id': printer_id,
'start_time': start_at,
'end_time': end_at,
'priority': data.get('priority', 'normal'),
'duration_minutes': duration_minutes
}
# Konflikte erkennen
conflicts = conflict_manager.detect_conflicts(job_data, db_session)
if conflicts:
critical_conflicts = [c for c in conflicts if c.severity.value in ['kritisch', 'hoch']]
if critical_conflicts:
# Kritische Konflikte verhindern Job-Erstellung
conflict_descriptions = [c.description for c in critical_conflicts]
jobs_logger.warning(f"⚠️ Kritische Konflikte gefunden: {conflict_descriptions}")
db_session.close()
return jsonify({
"error": "Kritische Konflikte gefunden",
"conflicts": conflict_descriptions,
"suggestions": [s for c in critical_conflicts for s in c.suggested_solutions]
}), 409
# Mittlere/niedrige Konflikte protokollieren aber zulassen
jobs_logger.info(f"📋 {len(conflicts)} Konflikte erkannt, aber übergehbar")
# Prüfen, ob der Drucker online ist
printer_status, printer_active = check_printer_status(printer.plug_ip if printer.plug_ip else "")
jobs_logger.debug(f"🖨️ Drucker-Status: {printer_status}, aktiv: {printer_active}")