Auto-OCR załączników PDF, kolumny spedycyjne, Tablica zaznaczanie zakresem

Filip Borkowski, Backend/Frontend/Fullstack Engineer

Zadania — sortowanie i uproszczony widok

Panel zadań otrzymał sortowanie po kolumnach. Kliknięcie w nagłówek kolumny sortuje rosnąco, ponowne kliknięcie — malejąco, trzecie — resetuje sortowanie. Strzałka przy nazwie kolumny wskazuje aktualny kierunek.

Kolumna Priorytet wyświetla teraz zwykły tekst z kolorami zamiast edytowalnego selecta z ramką. Kolory priorytetów: Niski — szary, Średni — ciemny, Wysoki — pomarańczowy, Pilny — czerwony. Edycja priorytetów i przydzielonych osób możliwa jest wyłącznie przez dialog edycji.

Szablony dokumentów — zapis w bazie danych

Szablony dokumentów przeniesione z localStorage do bazy Supabase. Nowa tabela document_templates przechowuje nazwę, pola (JSONB), kategorię bazową oraz przypisanego kontrahenta. API CRUD obsługuje pełen cykl życia szablonu.

Pliki przykładowe (PDF, JPG, PNG) zapisywane są w Supabase Storage (bucket document-templates). Przy edycji szablonu plik jest automatycznie pobierany z bazy i wyświetlany w podglądzie, umożliwiając dalszą pracę z zaznaczaniem obszarów OCR.

Szablony — przypisanie kontrahenta

Edytor szablonów umożliwia teraz przypisanie kontrahenta z bazy. Dropdown wyświetla aktywnych kontrahentów z NIP-em. Powiązanie szablonu z kontrahentem pozwoli aplikacji automatycznie dopasowywać pola przy odczytywaniu przychodzących zleceń od danego kontrahenta.

Na kartach szablonów wyświetlany jest badge z nazwą przypisanego kontrahenta oraz oznaczenie czy szablon ma załączony dokument przykładowy.

Mapa — biały tag podmiotu

Tag podmiotu (entity) w liście pojazdów na mapie wyświetlany jest teraz jako biały tekst na czarnym tle zamiast dotychczasowego czarnego tekstu. Poprawia to czytelność przy ciemnym i jasnym motywie.

Asystent dokumentów — overlay przyklejony do dokumentu

Zaznaczone obszary pól (zielone prostokąty) w Asystencie dokumentów są teraz renderowane wewnątrz wrappera mediów zamiast pozycjonowania zewnętrznego. Overlay podąża za dokumentem 1:1 podczas scrollowania i zmiany zoom — zarówno dla PDF jak i obrazów. Usunięto setInterval do śledzenia pozycji DOM na rzecz czystego CSS (absolute inset-0 wewnątrz relative wrappera).

Agent AI — klucz API w ustawieniach konta

Nowa karta „Agent AI" w panelu ustawień konta umożliwia administratorom skonfigurowanie klucza API Anthropic bezpośrednio z poziomu aplikacji. Klucz jest zapisywany w bazie danych Supabase i używany przez wszystkie funkcje AI: OCR dokumentów, Asystent dokumentów oraz Chat AI. Nie trzeba już ustawiać zmiennej środowiskowej na serwerze — wystarczy wpisać klucz w ustawieniach.

Agent API — mutacje danych

Agent Query API obsługuje teraz operacje zapisu: insert, update i delete. Nowe źródło mutation pozwala agentowi AI na tworzenie, aktualizację i usuwanie rekordów w dozwolonych tabelach z walidacją filtrów bezpieczeństwa.

Szablony dokumentów — widok tabelaryczny

Lista szablonów dokumentów wyświetlana jest teraz w formie tabeli zamiast kart. Kolumny: Nazwa, Kategoria, Kontrahent, Pola, Obszary, Dokument i akcje. Kliknięcie wiersza otwiera edytor szablonu.

Zlecenia — 15 nowych kolumn spedycyjnych

Panel zleceń rozszerzony o kolumny spedycyjne: Haulier, Unifeeder booking no., Shipper, Consignee, Tracking ID, Shipper's ref., Port of loading, Port of discharge, Pier of loading, Pier of discharge, Vessel, ETD, ETA, Stuffing address, Stuffing date/time. Dodano również: Miasto początkowe, Kod miasta, Godzina załadunku, Typ kontenera, Plomba. Kolumna „Termin" przemianowana na „Termin załadunku".

Zlecenia — widoczność kolumn i nawigacja

Toggle widoczności kolumn z trzema trybami: „Wszystkie" (zaznacza wszystko), „Minimum" (tylko stałe kolumny), „Reset" (domyślne). Wszystkie kolumny domyślnie widoczne. Przyciski lewo/prawo umożliwiają przewijanie tabeli horyzontalnie przy dużej liczbie kolumn.

Zlecenia — automatyczne uzupełnianie pól

Formularze dodawania i edycji zleceń posiadają teraz auto-fill: podczas wpisywania wyświetlają się podpowiedzi z wartości już użytych w istniejących zleceniach. Działa dla miast, adresów, portów, pierów, vessel, haulier, shipper, consignee, typu kontenera, słów kluczowych i innych pól tekstowych.

Auto-OCR załączników PDF — dane spedycyjne z BOOKING NOTE

Nowy pipeline automatycznej ekstrakcji danych spedycyjnych z załączników PDF. Gdy przychodzi email z BOOKING NOTE od DP World/Unifeeder, system automatycznie:

  1. Zapisuje PDF w Supabase Storage i przypisuje do zlecenia
  2. Uruchamia OCR przez Claude Sonnet 4 na załączniku PDF
  3. Odczytuje 25+ pól spedycyjnych: vessel, port of loading/discharge, container type, consignee, shipper, haulier, ETD/ETA, gross weight, stuffing address i więcej
  4. Zapisuje dane bezpośrednio do tabeli orders w Supabase

OCR uzupełnia wyłącznie puste pola — nigdy nie nadpisuje istniejących danych. Endpoint /api/admin/inbound-emails/ocr-extract umożliwia ręczne uruchomienie batch OCR dla wszystkich załączników.

Tablica — zaznaczanie zakresem

Panel Tablica (Gantt chart) posiada teraz możliwość zaznaczania obiektów zakresem. Przeciągnięcie myszą tworzy prostokąt zaznaczenia, a wszystkie wiersze w obszarze zostają zaznaczone. Ctrl+klik dodaje/usuwa z zaznaczenia, Shift+klik zaznacza zakres. Pasek akcji wyświetla liczbę zaznaczonych elementów z przyciskami „Zaznacz wszystkie" i „Odznacz".

Zlecenia — sortowanie wszystkich kolumn

Każda kolumna w tabeli zleceń jest teraz sortowalna. Kliknięcie nagłówka sortuje rosnąco, ponowne — malejąco, trzecie — resetuje. Nagłówki kolumn zawijają tekst i mają pionowe linie oddzielające pola. Tabela ma naprzemienny kolor wierszy (zebra-striping) dla lepszej czytelności.

Mapa — ograniczenia ciężarówek

Naprawiono przycisk ograniczeń ciężarówek na mapie. Zapytania Overpass API dostosowują się teraz do widocznego obszaru mapy (viewport) zamiast odpytywać całą Polskę, co eliminowało timeouty. Cache per region z 15-minutowym TTL.

Auto-linkowanie PDF do zleceń

Webhook automatycznie przypisuje załączniki PDF do odpowiednich zleceń — zarówno dla emaili z jednym zleceniem, jak i z wieloma. Pliki zapisywane są w formacie {nrZlecenia}_{data}.pdf. Batch OCR uzupełnił dane spedycyjne w 250+ zleceniach.

WorkDesk — dane spedycyjne i status akceptacji

Panel WorkDesk wyświetla teraz pełne dane spedycyjne na kartach zleceń: vessel, typ kontenera, porty załadunku/rozładunku, shipper, consignee, ETD/ETA, wagę brutto i adres stuffingu. Po wysłaniu zlecenia do akceptacji z przypisanym kierowcą i pojazdem, status zmienia się na „Wysłano do akceptacji" i jest widoczny w panelu Zlecenia.

Tablica — data i godzina załadunku

Harmonogram Gantta wyświetla teraz datę i godzinę załadunku pod trasą w każdym wierszu. Panel szczegółów (po najechaniu) również pokazuje te dane.

Zlecenia — sticky nagłówki, kolumna Akcje i uppercase

Tabela zleceń posiada teraz zablokowane nagłówki: wiersz z opisami kolumn i wiersz z numeracją pozostają widoczne podczas scrollowania. Kolumna Akcje jest przypięta po prawej stronie z cieniem oddzielającym ją od reszty tabeli. Wszystkie dane w tabeli wyświetlane są wielkimi literami (uppercase). Przyciski przewijania tabeli w lewo/prawo działają poprawnie.

Zlecenia — podgląd PDF w dialogu

Przycisk „Podgląd PDF" w akcjach zlecenia otwiera teraz plik PDF wewnątrz strony w dialogu (iframe 85% wysokości ekranu) zamiast pobierać go lub otwierać w nowej karcie. Dialog automatycznie zwalnia pamięć po zamknięciu.

WorkDesk — uproszczony panel zleceń

Prawy panel zleceń w WorkDesk wyświetla teraz tylko kluczowe informacje: numer zlecenia, kontrahent, data i godzina załadunku oraz miejsce załadunku. Usunięto rozbudowaną siatkę danych spedycyjnych na rzecz kompaktowego widoku.

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