Przejdź do treści

Realizacja · obróbka blach i metalu · lakiernia proszkowa

System dla obróbki metali i lakierni proszkowej

Lakotech to zakład usługowej obróbki blach i metalu z własną lakiernią proszkową. Materiał, grubość, ilość i operacje były zapisane tylko w nazwach plików DXF, o stan detalu trzeba było pytać ludzi na hali, a zlecenia malowania szły przez grupę na WhatsAppie i zeszyt. Zbudowałem dla zakładu jedną aplikację, która prowadzi zamówienie od folderu z rysunkami, przez halę i lakiernię, do WZ, etykiet i podpowiedzi cen do faktury.

Tekst i kod: Rafał Szewc, inżynier oprogramowania, RS Mobile

  • 16 modułów w jednej aplikacji
  • 11 mies. rozwoju u klienta, moduł po module
  • 15 min najpóźniej po tym czasie nowe zamówienie z dysku jest w systemie
Branża
Obróbka blach i metalu na zlecenie firm, lakiernia proszkowa
Zakres
Zamówienia, plan produkcji, lakiernia, wyceny, WZ, etykiety, ceny do faktur, zakupy
Technologia
Java 21, Spring Boot, Angular, MySQL, Elasticsearch, Docker; AI: OpenAI GPT-4o przez LangChain4j
Okres (z historii git)
XI 2025 – X 2026, rozwijany etapami
Status
Działa u klienta, na jego serwerze NAS.
01 · RAL 7035

Jak to wyglądało wcześniej

Zakład miał wszystkie dane, tylko rozproszone. Najwięcej mówiła nazwa pliku z rysunkiem.

Folder zamówienia na dysku

  • LT-1482D numer zamówienia
  • BRYKOMET firma
  • 260930 data przyjęcia 30.09.2026

Plik z rysunkiem w tym folderze

  • S235 materiał
  • 5mm grubość
  • 2szt ilość
  • C cięcie
  • Gw gwintowanie
  • P piaskowanie
  • M7016M malowanie RAL 7016 mat
  • 1482D nr zamówienia
  • BRYKOMET firma
  • płyta montażowa opis
  • .dxf rysunek 2D
Wzorzec nazw w zamówieniu. Dane fikcyjne.
  • Zamówienia

    Zamówienie to folder na dysku z plikami DXF, STEP i PDF. Materiał, grubość, ilość i kolejne operacje były zapisane tylko w nazwach plików.

  • Stan produkcji

    Nie było jednego miejsca, w którym widać etap każdego detalu. Sprawdzało się go w folderach, także w kopiach w folderach GOTOWE, albo u ludzi na hali.

  • Wyceny

    Liczyło się je z wymiarów rysunków. Pierwszą próbą automatyzacji był osobny skrypt, który z plików DXF robił arkusz Excela.

  • Faktury, WZ i etykiety

    Cen do faktury szukało się w starych fakturach w arkuszach. Numer zamówienia klienta przepisywało się na WZ i na etykiety.

  • Lakiernia

    Zlecenie to był post w grupie na WhatsAppie, „zdjęcia + kolor + instrukcja”, i linijka w zeszycie. Farbę ważono i rozliczano za kg poza systemem, a wsady do pieca układało się z głowy.

  • Zakupy

    Braki, np. „skończyła się dysza do piaskarki”, zgłaszało się na WhatsAppie. Właściciel szukał w starych mailach, gdzie to ostatnio zamawiał, i wysyłał to samo zapytanie do kilku firm.

02 · RAL 5015

Co zbudowałem

Jedną aplikację w przeglądarce: biuro pracuje w niej na komputerach, hala na tabletach. Zamówienie przechodzi tu drogę od folderu z rysunkami do WZ, etykiet i pozycji do faktury.

  1. 01 Folder DXF z dysku co 15 min
  2. 02 Zamówienie elementy z miniaturami
  3. 03 Operacje C · G · Gw · P · Sz
  4. 04 Lakiernia temat, RAL, wsad
  5. 05 WZ i etykiety PDF i TSC 50×30 mm
  6. 06 Ceny do faktury podpowiedzi z historii FV

Zamówienia

Folder z rysunkami staje się zamówieniem

Co 15 minut system czyta foldery zamówień z dysku firmy. Każdy plik staje się elementem zamówienia, a operacje system odczytuje z nazwy. Miniaturę i wymiary w milimetrach dorabia serwis CAD: wsadowo co 5 godzin albo od razu, na przycisk. Statusy Oczekuje, W trakcie i Wykonane liczą się same, a Skompletowane i Wydane zaznacza się ręcznie.

Zamówienia — folder z rysunkami DXF jako zamówienie: elementy, operacje, statusy. Zrzut z aplikacji, dane fikcyjne

Produkcja

Plan Dziś / Jutro dla hali

Biuro przeciąga zamówienia do kolumn Dziś i Jutro. Pracownik loguje się numerem telefonu i 4-cyfrowym PIN-em, widzi tylko operacje swojego stanowiska i odhacza krok jednym przyciskiem. Aplikacja zapisuje, kto i kiedy to zrobił, a pomyłkę da się cofnąć.

  • zdjęcia maszyn przy krokach
  • zakładka Kompletowanie z listą w PDF
Produkcja — plan Dziś / Jutro, widok biura. Pracownik na tablecie widzi tylko operacje swojego stanowiska. Zrzut z aplikacji, dane fikcyjne

Lakiernia

Lakiernia z botem na grupie WhatsApp

Zlecenie malowania to temat z numerem, zdjęciami, kolorem RAL, ilością i procentem pieca. Bot (GPT-4o od OpenAI) czyta grupę lakierni razem ze zdjęciami, zakłada temat i pyta tylko o brakujący kolor. Tablica podpowiada, jak złożyć wsady do 100% pieca, a farbę waży się przed i po malowaniu, ze zdjęciem wagi.

Lakiernia – zlecenia grupa WhatsApp · czwartek 08.10
  1. Leszek Osłony silników, 12 szt., Termasz, na jutro
  2. Lakiernia Bot Nowy temat T-2026-076 Osłony silników · 12 szt. · TERMASZ Kolor: nie podano — odpisz tutaj, uzupełnię. Termin: pt. 09.10
  3. Leszek 9005 mat
  4. Lakiernia Bot Zaktualizowano T-2026-076 RAL 9005 mat (było: nie podano)
Ilustracja wymiany w grupie lakierni, dane fikcyjne.
Lakiernia — tematy z grupy WhatsApp, kolory RAL i wsady do pieca. Zrzut z aplikacji, dane fikcyjne

Wycena i ceny do faktury

Wycena i ceny do faktury z pamięcią cen

„Utwórz wycenę” zapisuje w folderze zamówienia arkusz Excela z miniaturami, wymiarami, materiałem i sumą netto. Nazwy plików czyta przy tym GPT. Przy pozycjach do faktury system pokazuje dla każdego pliku do 5 cen z dawnych faktur, po jednej na rok, i ostrzega, gdy wtedy był inny materiał lub grubość. Samej faktury aplikacja nie wystawia; to, co już zafakturowano, co godzinę odczytuje z arkuszy Google.

  • trafność podpowiedzi w procentach
  • ceny materiałów osobno dla firm
  • status zafakturowania na liście zamówień
Strona „Wystaw fakturę”, krok 1: pozycje i podpowiedzi cen z historii faktur. Zrzut z aplikacji, dane fikcyjne

Dokumenty

WZ, lista kompletacji i etykiety

WZ z roczną numeracją i listę kompletacji system składa w PDF i zapisuje w folderze zamówienia. Etykiety 50×30 mm idą na drukarkę TSC prosto z zamówienia. Numer zamówienia klienta wpisuje się raz, a trafia na WZ i na każdą etykietę.

Schemat etykiety z polami jak na wydruku, dane fikcyjne.

Zakupy

najnowszy moduł · X 2026

Zakupy prosto z grupy na WhatsAppie

Bot wyłapuje z grup potrzeby zakupowe i zakłada temat. Dostawców podpowiada z bazy firmowych maili, a zapytanie wychodzi z firmowej skrzynki, z 10 sekundami na „Cofnij”. Odpowiedzi system czyta co 5 minut, a decyzję o zamówieniu podejmuje człowiek.

  1. Do zamówienia
  2. Zapytanie wysłane
  3. Odpowiedź dostawcy
  4. Zamówione
  5. Zakończony

Pozostałe moduły · 7 z 16

  • Podglądy CAD i wymiary
  • Duplikaty i foldery GOTOWE
  • „Pokaż w folderze” w Eksploratorze Windows
  • Firmy z GUS, użytkownicy i role
  • Operacje ze zdjęciami maszyn
  • LakotechBot w Telegramie
  • Email Bot
03 · RAL 7016

Jak to działa

System stoi u klienta: aplikacja i baza działają w kontenerach Docker na jego serwerze Synology NAS, obok folderów z zamówieniami. Funkcje AI korzystają z OpenAI (GPT-4o przez LangChain4j), więc dane, które obsługują, wychodzą poza zakład.

W zakładzie

serwer Synology NAS u klienta · Docker
Aplikacja
Java 21 i Spring Boot, interfejs w Angularze
Dane
MySQL: zamówienia, plan produkcji, lakiernia, WZ, zakupy
Wyszukiwanie
Elasticsearch: historia faktur i maili
Rysunki
serwis miniatur CAD: DXF, STEP, IGES, IPT
WhatsApp
most na nieoficjalnej bibliotece: loguje się do WhatsAppa jako połączone urządzenie (jak WhatsApp Web), a nie przez Cloud API Mety
Dysk
foldery zamówień z dysku firmy
Hala
drukarka etykiet TSC w sieci zakładu

Poza zakładem

usługi w chmurze, przez internet
OpenAI
wiadomości i zdjęcia z grup na WhatsAppie, nazwy plików do wyceny, nazwy pozycji z faktur (do szukania cen), treść maili, pytania z Telegrama razem z danymi zamówień, które bot pobiera do odpowiedzi
Dostęp zdalny
tunel ngrok do API aplikacji: tędy z internetu przychodzą webhooki Telegrama
WhatsApp
wiadomości przechodzą przez serwery Mety
Google
arkusze z fakturami, z których system czyta statusy
Poczta
firmowa skrzynka (SMTP i IMAP)
Inne
Telegram dla LakotechBota, GUS dla danych firm po NIP

Bezpieczniki

  • Tryby bota

    Pięć trybów pracy, od wyłączonego do pełnego. W trybie obserwacji bot tylko zapisuje, co by zrobił. Po ponad 10 wysyłkach w 10 minut albo ponad 30 w ciągu dnia sam się pauzuje.

  • Bot niczego nie kasuje

    Nie usuwa tematów i nie zakłada nowych firm. Tematy z WhatsAppa czekają na sprawdzenie w przerywanej ramce.

  • Kontrola w kodzie

    Kod w Javie sprawdza każdą odpowiedź modelu, a terminy liczy sam. Role ADMIN i EMPLOYEE są pilnowane w interfejsie i w API.

04 · RAL 1023

Przebieg projektu

System rósł moduł po module przez 11 miesięcy, od 7.11.2025 do 1.10.2026. Daty etapów pochodzą z historii zmian w kodzie.

  1. XI 2025

    Import folderów, operacje i statusy elementów, miniatury CAD i szukanie duplikatów. Od 26.11 synchronizacja z dyskiem co 15 minut.

  2. XII 2025 – I 2026

    Rozwój panelu i zakładki zamówień. Od 7.01 LakotechBot w Telegramie odpowiada na pytania o zamówienia.

  3. II 2026

    Wycena z plików DXF do Excela. Nazwy plików czyta AI.

  4. IV 2026

    Wyceniacz, firmy z GUS, WZ, drukarka TSC i baza maili w Elasticsearch.

  5. V – VII 2026

    Logowanie telefonem i PIN-em, plan produkcji, historia cen i strona „Wystaw fakturę”.

  6. VIII 2026

    Etykiety dla całego zamówienia i lista kompletacji.

  7. IX 2026

    Lakiernia (1.09) i bot na WhatsAppie (7.09), zakładka Kompletowanie, „Pokaż w folderze”.

  8. X 2026

    Zakupy (1.10), najnowszy moduł systemu.

05 · RAL 6018

Efekty

To wynika wprost z tego, jak działa system.

  • Nikt nie przepisuje zamówień. Nowy folder pojawia się w systemie najpóźniej po 15 minutach.

  • Etap każdego detalu widać na liście zamówień, bez przeglądania folderów i dopytywania hali.

  • Każdy krok na hali ma podpis: kto go odhaczył i kiedy.

  • Zlecenie malowania staje się tematem z numerem, kolorem RAL i terminem, a braki, np. kolor albo ważenie, widać na karcie.

  • Zużycie farby wynika z ważeń ze zdjęciem wagi i rozlicza się w zł za kg, bez zeszytu.

  • Numer zamówienia klienta wpisuje się raz, a cenę do faktury podpowiada historia.

06 · RAL 9010

Pytania, które słyszę od zakładów

Ile kosztuje system dla obróbki metali?

Zaczynam od prototypu (PoC) na Twoich folderach i rysunkach: kosztuje 10–25 tys. zł netto i trwa 2–4 tygodnie. Pierwszy etap systemu na danych firmy to zwykle 40–120 tys. zł i 2–3 miesiące. W Lakotechu system rósł etapami przez 11 miesięcy. Utrzymanie kosztuje 1–2 tys. zł miesięcznie. Więcej liczb jest we wpisie o koszcie wdrożenia AI.

Czy nasze dane zostają w firmie?

Baza zamówień, rysunki i plan produkcji leżą na serwerze w zakładzie. Na zewnątrz wychodzi to, czym zajmuje się AI: wiadomości i zdjęcia z grup na WhatsAppie, nazwy plików przy wycenie, nazwy pozycji z faktur, treść maili oraz pytania do bota w Telegramie razem z danymi zamówień, których dotyczy odpowiedź. OpenAI deklaruje, że danych z API nie używa do trenowania modeli. W chmurze są też arkusze Google z fakturami i sam WhatsApp, czyli serwery Mety. Jeśli jakieś dane nie mogą opuścić zakładu, stawiam model lokalny na serwerze w firmie.

Jak długo trwa wdrożenie?

PoC na Twoich plikach zajmuje 2–4 tygodnie, kolejne moduły dochodzą etapami. W tym projekcie import zamówień ze statusami powstał w listopadzie 2025, plan produkcji w maju i czerwcu 2026, a lakiernia z botem we wrześniu 2026.

Co, jeśli zabraknie jedynego programisty?

System działa na serwerze w zakładzie, nie u mnie. Bazę MySQL i indeks Elasticsearch kopiują i odtwarzają gotowe skrypty. Kod to standardowa Java ze Spring Bootem i Angularem, z 255 klasami testów backendu i 48 scenariuszami testów E2E, więc inny programista nie zaczyna od zera. Prawa do kodu, NDA i zasady przekazania projektu ustalamy w umowie przed rozpoczęciem prac. Stałe utrzymanie to 1–2 tys. zł miesięcznie.

Czy to zadziała z systemami, które już mamy?

Tak, bo zaczynam od tego, na czym zakład już pracuje. U tego klienta to foldery na dysku, arkusze Google z fakturami, firmowa skrzynka, grupy WhatsApp i drukarka etykiet TSC. Jeśli pracujesz na Comarch ERP, SAP albo IFS, łączę się z tym systemem przez API albo widoki SQL. Co ma do niego płynąć, a co z niego, ustalamy na pierwszej rozmowie.

Co, jeśli bot źle odczyta wiadomość?

Temat i tak trafi na tablicę w przerywanej ramce, ze statusem „do sprawdzenia”, więc ktoś go poprawi przed malowaniem. Na start bot może też pracować w trybie obserwacji, w którym nic nie tworzy i nic nie wysyła.

Czy WhatsApp może zablokować bota?

Może. Bot czyta istniejącą grupę lakierni jako połączone urządzenie, tak jak WhatsApp Web, przez nieoficjalną bibliotekę, a nie przez Cloud API Mety, które opisuję we wpisie o chatbocie WhatsApp. Dzięki temu załoga pisze tam, gdzie pisała, ale Meta takiego połączenia nie wspiera. Dlatego bot ma limit wysyłek i tryb obserwacji, a temat w lakierni zawsze można założyć ręcznie.

07 · RAL 3020

Zacznijmy od jednego modułu: zamówień, hali albo lakierni

Opisz, jak u Ciebie wygląda droga od zamówienia do faktury. Odpiszę, od którego modułu bym zaczął i ile to może kosztować. W RS Mobile pierwszym krokiem jest test na Twoich folderach i rysunkach: 2–4 tygodnie, 10–25 tys. zł netto. W dni robocze odpowiadam na WhatsAppie zwykle w ciągu godziny.

Rafał Szewc

Rafał Szewc

Inżynier oprogramowania, 12+ lat, wcześniej SAP. Rozmawiasz wprost z osobą, która pisze kod.

Więcej o mnie
WhatsApp