Intrastatmeldungen

Last modified by Dimitri Rupp on 2026/07/08 12:34

📦 Intrastatmeldungen (Automatisierung)

Information

Zweck: Automatisierte Erstellung von Intrastat-Importmeldungen aus Lieferantenrechnungen — mit KI-gestützter Extraktion und automatischer KN8-Code-Ermittlung.

Überblick

Dieses Projekt automatisiert die Erstellung von Intrastat-Importmeldungen aus Lieferantenrechnungen. Der Prozess besteht aus mehreren Schritten:

  1. Einlesen einer Basis-Exceldatei
  2. Auslesen der zugehörigen PDF-Rechnungen
  3. KI-gestützte Extraktion der Artikelinformationen
  4. Automatische Ermittlung fehlender KN8-Codes
  5. Erstellung einer Datenerfassungsdatei
  6. Manuelle Prüfung der Ergebnisse
  7. 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

01_Basis_PDF/     Eingabedateien (Basis-Excel + PDFs)
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:

  1. Normalisierung der Warenbeschreibung
  2. Erstellung von OpenAI-Embeddings
  3. Vergleich mit vorhandenen KN8-Daten
  4. Auswahl der ähnlichsten Warentexte
  5. 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