Produktiv im Einsatz
Mischanlage EDV
Windows-Desktop-Software zur Verwaltung von Einkauf, Produktion und Qualität einer Beton-Mischanlage
Die Herausforderung
In einem Beton-Fertigteilwerk fallen täglich wiederkehrende Büro- und Dokumentationsaufgaben an: Bestellungen bei Lieferanten, das Ausfüllen von Wiege- und Gewichtsprotokollen je Produkt, Etikettierung sowie die Erfassung von Produktionsfehlern. Diese Abläufe wurden bislang manuell und über einzelne Excel-Dateien abgewickelt, was fehleranfällig und zeitaufwändig ist. Es fehlte eine zentrale, bedienerfreundliche Oberfläche, die die Daten bündelt, Excel-Vorlagen automatisch befüllt und Bestell-E-Mails direkt aus dem laufenden Betrieb verschickt.
Das Ziel
Eine zentrale Windows-Desktop-Anwendung schaffen, die Einkauf, Produktion (Wiegeprotokolle/Etikettierung) und Qualitäts-/Fehlerdokumentation der Mischanlage in einer Oberfläche zusammenführt, Excel-Vorlagen automatisch ausfüllt und Bestellungen per Outlook versendet - robust genug für den dauerhaften Produktivbetrieb durch das Werkspersonal.
Die Lösung
- Reitergegliederte Oberfläche (Tkinter/ttkbootstrap) mit sechs Hauptbereichen: Dashboard, Einkauf, Produktion, Tools, Fehlerbericht, Zuschläge (verwaltung.py: _create_tabs)
- Einkaufsmodul mit durchsuchbaren Tabellen für Material, Gewinde, Schrauben, Torstahl sowie Bestellschein und Historie; Artikel-Editor zum Pflegen der Stammdaten (einkauf.py, einkauf_editor.py, database_manager.py)
- Produktionsmodul bündelt sieben Protokoll-/Werkzeug-Reiter: ESM-Etikettierung, ESM-Protokolle, LTM 1650, Deitmers, Haulotte, Muhr sowie einen Prüfgewicht-Rechner (produktion.py)
- Automatisches Befüllen vordefinierter Excel-Vorlagen mit den Wiege-/Gewichtsdaten je Auftrag, inkl. dynamischer Toleranzberechnung und Farbmarkierung von Soll-/Ist-Abweichungen (excel_helper.py, deitmers_protokoll_ui.py, changelog Version 1.4.2)
- Live-Autosave laufender Eingaben in JSON-Standby-Dateien (*_active_job.json) gegen Datenverlust bei Neustart; zentrale, fortlaufende Protokollnummern über protocol_counters.json (changelog 1.4.2.3, 1.4.1.x)
- Bestell- und Fertigmeldungs-E-Mails direkt über Microsoft Outlook (COM) - Einkaufsbestellung, LTM-Fertigmeldung sowie Zuschlags-Bestellungen für Sand/Kies, Magnetit, Winfill und Zement N/R (mail.py, zuschläge.py, HTML-Vorlagen in Vorlagen/)
- Fehlerbericht-Modul mit Autocomplete-Eingabe und lokalem Fuzzy-Abgleich (difflib) gegen bestehende Begriffe sowie KI-gestützter Datenbankbereinigung über die OpenAI-API zur Deduplizierung und Rechtschreibkorrektur (fehler.py, autocomplete_entry.py, ai_database_cleaner.py)
- Tools-Reiter mit Volumen-Rechner, Kompensations-/Dichte-Rechner und einem OpenAI-Assistant-Chat mit auswählbaren Modellen (tool.py, volumen_calc.py, dichte_comp_calc.py, openai_assistant_frame.py)
- Dashboard als chronologische Aktivitätsübersicht (letzte Bestellungen, gespeicherte Protokolle/Fehlerberichte) und Fussleiste mit Live-Uhr (deutsche Locale) sowie Wetteranzeige über OpenWeatherMap (dashboard.py, verwaltung.py)
Technik & Architektur
- Python-Desktop-App mit Tkinter und ttkbootstrap als GUI; Einstiegspunkt verwaltung.py mit App-Klasse, Notebook-Tabs und Hintergrund-Thread für Wetterabruf
- Modularer Aufbau: 28 Python-Module, jeder Hauptbereich und jedes Protokoll in eigener Datei (z. B. produktion.py delegiert an deitmers_/ltm_/esm_/haulotte_/muhr_protokoll_ui.py)
- Lokale SQLite-Datenbank (vg_db.db), gekapselt in database_manager.py mit Whitelist-Validierung von Tabellen- und Spaltennamen sowie parametrisierten Queries als SQL-Injection-Schutz
- Konfiguration zentral über datenbank.ini (Abschnitte settings, pfade, openai, emails, ltm1650, esm_*, muhr), geladen von config_manager.py inkl. atomarem Schreiben und optionaler .env-Unterstützung
- Excel-Verarbeitung mit openpyxl: Befüllen/Auslesen der Vorlagen in Vorlagen/ (BLANKO-M-Reihe, Deitmers, Haulotte, LTM, Fehlerliste)
- Outlook-Anbindung über pywin32/win32com (COM) für den E-Mail-Versand; E-Mail-Validierung über die email-validator-Bibliothek
- OpenAI-API-Integration (openai-Paket): Assistants/Threads-Chat sowie strukturierte JSON-Antwort für die Fehler-Datenbankbereinigung
- Robustheit für den Produktivbetrieb: zentrales Logging mit RotatingFileHandler (log.txt), spezifische Exception-Behandlung (u. a. PermissionError bei geöffneten Excel-Dateien, Outlook-COM-Fehler) und PyInstaller-Packaging mit Splash-Screen
Nutzen in der Praxis
- Bündelt Einkauf, Produktionsprotokolle und Fehlerdokumentation in einer einzigen Oberfläche statt verstreuter Excel-Dateien und manueller Abläufe
- Automatisches Befüllen der Excel-Vorlagen und Versand der Bestellungen per Outlook reduziert manuelle Schreibarbeit und Übertragungsfehler
- Live-Autosave und zentrale Protokollnummern verhindern Datenverlust und Doppelvergaben bei laufendem Betrieb
- Whitelist-validierte SQL-Zugriffe und durchgängiges Logging sorgen für eine wartbare, im Dauerbetrieb stabile Anwendung
- KI-gestützte Fehlerdatenbank hält die Begriffsliste sauber (Deduplizierung, Rechtschreibung) und erleichtert die Erfassung durch Autocomplete
- Über datenbank.ini konfigurierbar (Empfänger, Pfade, Produktdefinitionen, KI-Modelle) - anpassbar ohne Code-Änderung
Meine Rolle
Konzept, Entwicklung und Umsetzung eigenständig durch Ricardo Rehfeldt - von der Architektur über die Module bis zur laufenden Pflege und Versionierung.