🎉 Refactor Backend Logs and Utilities 🖥️📚
This commit is contained in:
Binary file not shown.
@@ -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}")
|
||||
|
Reference in New Issue
Block a user