PdfViewer, multi-booking OCR, podkolumny adresowe, parser adresów

Filip Borkowski, Backend/Frontend/Fullstack Engineer

Podgląd PDF — PdfViewer

Panel Zleceń używa teraz komponentu PdfViewer opartego na pdfjs-dist — tego samego co pozostałe panele (Email, Biblioteka Danych). Eliminuje to problemy z tagiem <object>, brakiem cookies i podwójnym pobieraniem pliku (HEAD + GET). Podgląd otwiera się natychmiast, a błędy są obsługiwane wewnętrznie przez komponent.

Multi-booking OCR

System rozpoznaje teraz pliki PDF zawierające wiele zleceń transportowych. Kiedy email nie zawiera numeru bookingu w tytule (np. „Nowa Sol / 15x week 12/"), OCR analizuje cały dokument i wyciąga każde zlecenie osobno — tworząc oddzielne rekordy w bazie z pełnymi danymi spedycyjnymi. Dodano normalizację dat i godzin z różnych formatów.

Automatyczna synchronizacja zadań — server-side

Logika synchronizacji zadań została przeniesiona na stronę serwera. Po każdym dodaniu, edycji lub usunięciu pracownika API automatycznie generuje zadania dla brakujących pól — bez polegania na kliencie. Wspólny moduł task-sync.js jest współdzielony między endpointami. Rozszerzono listę sprawdzanych pól o 7 nowych pozycji: numer dowodu, prawo jazdy, karta kierowcy, termin badań lekarskich, psychologicznych, Kod 95 i ważność prawa jazdy.

WorkDesk — formatowanie adresów

Adresy załadunku i rozładunku wyświetlane są teraz w 4 liniach: firma, ulica, kod pocztowy, miasto. Lista zleceń po prawej stronie ma ujednolicony rozmiar elementów z datą i godziną załadunku pod numerem zlecenia.

Pracownicy

Status pracownika wyświetla się czarnym tekstem zamiast zielonego. Import z pliku TXT poprawnie dzieli format „NAZWISKO IMIĘ" na osobne kolumny. Kody krajów w polu telefonu wyświetlane w formacie ISO: PL (+48), UA (+380), DE (+49). Pola wymagane przy dodawaniu pracownika ograniczone do: Imię, Nazwisko, Telefon.

Zadania — polskie nazwy pól

Naprawiono paginację przy pobieraniu istniejących auto-tasków (Supabase domyślnie zwraca max 1000 wierszy). Dzięki temu wszystkie zadania mają teraz polskie nazwy: „nr prawa jazdy" zamiast „license_number", „ważność badań lekarskich" zamiast „medical_expiry", „nr karty kierowcy" zamiast „driver_card_number" itd.

Ustawienia — reorganizacja

Sekcja „Czat z AI (Claude)" przeniesiona z karty Preferencje do karty Agent AI — wszystkie klucze API Anthropic w jednym miejscu.

Zlecenia — podkolumny adresowe

Kolumny adresowe (14 Podjęcie kont., 15 Adres załadunku, 21 Złożenie kont.) zostały podzielone na 6 podkolumn: Zakład, Ulica, Miasto, Kod, Województwo, Kraj. Każda kolumna wyświetla dane w wewnętrznym gridzie z pionowymi separatorami.

Zlecenia — inteligentny parser adresów

Parser adresów został przepisany z precyzyjnym rozpoznawaniem województw (dokładne nazwy zamiast częściowych wzorców). Eliminuje to mylenie miast jak „Gorzów Wielkopolski" z województwem „Wielkopolskie". Ulice bez nazwy firmy (np. „Przemyslowa 2", „Kasprzaka 6a") są poprawnie klasyfikowane. Adresy bez przecinków obsługiwane przez fallback na dzielenie po spacjach. Rozszerzona lista rozpoznawanych krajów.

WorkDesk — numer bookingu i spójny layout kart

Nagłówek karty zlecenia wyświetla teraz numer bookingu zamiast tematu emaila — ułatwia to identyfikację zlecenia na pierwszy rzut oka. Ujednolicono layout kart zleceń: spójne wyświetlanie danych, czytelne rozmieszczenie informacji. Wysokość kart zleceń w panelu bocznym zwiększona do 100px dla lepszej czytelności.

Zlecenia — ujednolicone kolumny 200px

Wszystkie kolumny w tabeli zleceń ustawione na jednolitą szerokość 200px. Podkolumny adresowe (Podjęcie kont., Adres załadunku, Złożenie kont.) również po 200px każda. Usunięto kolumny Stuffing address i Stuffing time jako zbędne.

Zlecenia — pełne nazwy kolumn i nowa kolumna

Polskie skróty w nagłówkach tabeli zamienione na pełne nazwy: „Nr zlecenia" → „Numer zlecenia", „Podjęcie kont." → „Podjęcie kontenera", „Godz. załadunku" → „Godzina załadunku" itd. Zmieniono kolejność kolumn portowych (Pier of loading za Port of loading) i dodano nową kolumnę Pier of discharge. Tabela wyświetla teraz 20 pozycji na stronę.

WorkDesk — sortowanie zleceń po dacie załadunku

Lista zleceń w panelu bocznym WorkDesk sortowana jest teraz po dacie i godzinie załadunku — najbliższe terminy względem aktualnego czasu wyświetlane są na górze. Zlecenia bez daty trafiają na koniec listy.

Plan załadunkowy — nowa tabela z kolumnami zleceń

Panel Plan załadunkowy przebudowany z nową tabelą o identycznej strukturze kolumn jak w panelu Zlecenia (33 kolumny z podkolumnami adresowymi). Tabela wyświetla zlecenia ze statusem „oczekujące na akceptację" przesłane z WorkDesk.

Zlecenia — czarne nagłówki kolumn

Tekst opisów kolumn (wiersze 2 i 3 nagłówka) wyświetlany teraz czarną czcionką zamiast szarej — poprawa czytelności. Wiersz numeracji kolumn pozostał bez zmian.

PdfViewer — komunikat o braku załącznika

Podgląd PDF rozróżnia teraz brak załącznika (HTTP 404 → „Brak załącznika PDF dla tego zlecenia") od innych błędów ładowania. Eliminuje to mylący ogólny komunikat o błędzie dla zleceń bez PDF.

Zlecenia — fallback nazwy zakładu

Kolumna „Zakład" w adresie załadunku wyświetla teraz nazwę zamawiającego (Shipper) jako fallback, gdy parser adresów nie wykryje nazwy firmy w adresie.

WorkDesk — poprawka przeciągania zleceń

Naprawiono mechanizm drag-and-drop — dynamiczne pomiary wysokości kart (zamiast stałej wartości) z uwzględnieniem poziomu zoom zapewniają prawidłowe upuszczanie zleceń na karty kierowców.

Więcej artykułów

Naprawa OCR cron, dropdown statusu, animacje tabeli zleceń

Naprawa crona OCR, dropdown statusu z ustawieniami, logika Przetwarzanie AI → in Planing, animacje pulsacji wierszy i wykrzykniki brakujących danych.

Czytaj więcej

Akordeonowy widok korespondencji email i poprawki WorkDesk

Nowy wątkowy widok emaili z animowanymi akordeonami, podgląd treści wiadomości, poprawki WorkDesk i Biblioteki danych.

Czytaj więcej