Intrastatmeldungen
📦 Intrastatmeldungen (Automatisierung)
Überblick
Dieses Projekt automatisiert die Erstellung von Intrastat-Importmeldungen aus Lieferantenrechnungen. Der Prozess besteht aus mehreren Schritten:
- Einlesen einer Basis-Exceldatei
- Auslesen der zugehörigen PDF-Rechnungen
- KI-gestützte Extraktion der Artikelinformationen
- Automatische Ermittlung fehlender KN8-Codes
- Erstellung einer Datenerfassungsdatei
- Manuelle Prüfung der Ergebnisse
- Konvertierung in das endgültige CSV-Format für die Intrastatmeldung
Prozessübersicht
flowchart TD
A["Basis-Excel"] --> B["run_basis.py"]
B --> C["basis_plus_datacollection.py"]
C --> D["PDF-Auswertung
datacollection.py"]
D --> E["fehlende KN8-Codes ergänzen
find_missing_kn8.py"]
E --> F["Datenerfassung.xlsx"]
F --> G["manuelle Prüfung"]
G --> H["run_converter.py"]
H --> I["converter.py"]
I --> J["Import_MM_YYYY.csv"]
Projektstruktur
02_Review/ erzeugte Datenerfassung
03_Checked/ manuell geprüfte Exceldateien
04_Final/ finale CSV-Dateien
basis_plus_datacollection.py
datacollection.py
find_missing_kn8.py
converter.py
run_basis.py
run_converter.py
core.py
Module
core.py
Zentrale Hilfsfunktionen: RunConfig, Konfigurationsdaten für einen Lauf, Dateiprüfungen, Extraktion von Monat und Jahr aus Dateinamen, allgemeine Hilfsfunktionen.
run_basis.py
Startet den Verarbeitungsprozess:
- sucht neue Basisdateien
- extrahiert Monat, Jahr und Firmenname
- erstellt eine RunConfig
- startet basis_plus_datacollection
- verschiebt erfolgreich bearbeitete Dateien nach Erledigt, fehlerhafte nach Fehler
basis_plus_datacollection.py
Hauptpipeline und Kern des Projekts — verantwortlich für: Einlesen der Basisdatei, Verarbeitung aller Rechnungs-PDFs, Zusammenführen der Daten, Bereinigung, Ergänzung fehlender KN8-Codes und Erzeugen der Datenerfassungsdatei.
datacollection.py
Extrahiert Informationen aus PDF-Rechnungen.
Technologien: PyPDF2, PyMuPDF (fitz), pdf2image, Tesseract OCR, DocTR OCR, OpenAI API.
Extrahierte Informationen: Warenbeschreibung, Handelspartnerland, Ursprungsland, Eigenmasse, Anzahl, Nettopreis, KN8-Code (falls vorhanden). Die KI liefert strukturierte JSON-Daten, die anschließend in ein Pandas-DataFrame überführt werden.
find_missing_kn8.py
Ermittelt fehlende KN8-Codes:
- Normalisierung der Warenbeschreibung
- Erstellung von OpenAI-Embeddings
- Vergleich mit vorhandenen KN8-Daten
- Auswahl der ähnlichsten Warentexte
- Zuordnung des wahrscheinlichsten KN8-Codes
Verwendet: text-embedding-3-small, SequenceMatcher, Vektorvergleich.
converter.py
Erstellt die finale CSV-Datei: Einlesen der geprüften Datenerfassung, Gruppierung gleicher Positionen, Summierung der Mengen und Werte, Formatierung der Zahlen, Export ohne Spaltenüberschriften. Ausgabe: Import_MM_YYYY_Firma.csv.
Verwendete Bibliotheken
- Datenverarbeitung: pandas, numpy
- PDF: PyPDF2, PyMuPDF, pdf2image
- OCR: Tesseract, DocTR
- KI: OpenAI API, Embeddings, GPT
- Sonstiges: pathlib, difflib, json, tomllib, pycountry
Benötigte Eingaben
Basis-Exceldatei · Ordner mit Rechnungs-PDFs · KN8-Datei · OpenAI-API-Key.
Fehlerbehandlung
Das Projekt prüft u. a. die Existenz aller Eingabedateien, gültige Excel-Dateien, vorhandene PDF-Verzeichnisse sowie Monat/Jahr im Dateinamen. Fehlerhafte Eingaben werden in den Ordner Fehler verschoben.
Server
Technischer User: intrastat (mit sudo su - intrastat arbeiten). Das Projekt liegt unter /home/intrastat/scripts/intrastat/.
Geplanter Ablauf:
- Basisdateien + Rechnungs-PDFs kommen auf
atvietfs01\daten\IT\Intrastat - Fabric-Gateway-Verbindung zu File- und KI-Server
- Fabric-Notebook überwacht den Fileserver; sind Dateien vorhanden → Kopie auf Fabric
- KI-Server überwacht Fabric; sind Dateien vorhanden → Skripte laufen durch
- Ergebnisse wieder in umgekehrter Richtung auf den Fileserver