Program do ewidencji odzieży roboczej - kartoteka egzemplarza

Program do ewidencji odzieży roboczej zastępuje papierowe kartoteki i arkusze jedną bazą danych, w której każdy egzemplarz ma własny rekord. Rekord opisuje wydanie i zwrot oraz pranie i termin wymiany, więc historia sortu jest dostępna bez przeszukiwania segregatorów. Studio TCS.net, produkt SoftwareStudio, prowadzi taką kartotekę w tym samym systemie, w którym pracuje narzędziownia i dział utrzymania ruchu. Ten artykuł pokazuje, co daje to połączenie.

Odzieży roboczej dotyczy kilka osobnych stron serwisu. Przegląd systemów zawiera tekst o systemach do ewidencji odzieży roboczej, obowiązki pracodawcy i gospodarkę sortami omawia ewidencja odzieży roboczej w przedsiębiorstwach, a koszty i zgodność z przepisami - artykuł o systemie do zarządzania odzieżą roboczą. Normy wydawania i terminy wymiany opisuje strona Narzędzia i odzież robocza, a dobór środków ochrony do zagrożeń - tekst o kontroli nad środkami ochrony indywidualnej. Tutaj oś jest inna: powiązanie odzieży z narzędziami i zleceniami utrzymania ruchu.

ObszarMetoda tradycyjnaStudio TCS.net
Rejestracja wydań i zwrotówpapierowe kartoteki lub arkusz kalkulacyjnykartoteka cyfrowa z historią w czasie rzeczywistym
Kontrola terminów ważnościręczne przeglądanie dokumentacjiautomatyczne powiadomienia o zbliżającym się terminie wymiany
Raporty i zestawieniaręczne zliczanie danych z wielu arkuszygotowe raporty dostępne na żądanie
Ewidencja narzędzi i odzieżyosobne rejestry, ryzyko rozbieżnościwspólna kartoteka pracownika dla obu zasobów

Termin wymiany jako dana w bazie

Termin wymiany jest kolumną z datą, a nie notatką na karcie. Dzięki temu zapytanie o egzemplarze do wymiany w najbliższym miesiącu zajmuje ułamek sekundy, a powiadomienie wysyła się zadaniem harmonogramu. Poniższy skrypt jest przykładem mechanizmu, a nie schematem produktu.

-- przykładowa kartoteka egzemplarza odzieży z terminem wymiany
CREATE TABLE dbo.EgzemplarzOdziezyPrzyklad (
    Id            int IDENTITY(1,1) PRIMARY KEY,
    PracownikId   int         NULL,                 -- NULL oznacza magazyn
    Rodzaj        varchar(40) NOT NULL,
    Rozmiar       varchar(10) NOT NULL,
    DataWydania   date        NULL,
    TerminWymiany date        NULL,
    Status        varchar(12) NOT NULL DEFAULT 'magazyn'
);

CREATE NONCLUSTERED INDEX IX_EgzemplarzOdziezy_Wymiana
ON dbo.EgzemplarzOdziezyPrzyklad (TerminWymiany)
INCLUDE (PracownikId, Rodzaj)
WHERE Status = 'wydany';

-- egzemplarze do wymiany w ciągu 30 dni
SELECT PracownikId, Rodzaj, TerminWymiany
FROM dbo.EgzemplarzOdziezyPrzyklad
WHERE Status = 'wydany'
  AND TerminWymiany <= DATEADD(DAY, 30, CAST(GETDATE() AS date))
ORDER BY TerminWymiany;

Indeks filtrowany obejmuje wyłącznie wiersze ze statusem wydany, więc pozostaje mały nawet przy dużym magazynie odzieży. Zapytanie musi zawierać ten sam warunek Status, żeby optymalizator mógł z indeksu skorzystać. Opis mechanizmu znajduje się w dokumentacji indeksów filtrowanych SQL Server.

Dwoje pracowników przy monitorze z listą pozycji i półką z narzędziami w magazynie BHP
Stanowisko wydawania, przy którym odzież i narzędzia zapisuje się w tej samej kartotece pracownika.

Wydanie i zwrot odzieży w jednej transakcji

Wydanie odzieży wymaga kilku kliknięć. Program aktualizuje stany magazynowe i historię pracownika, więc papierowy protokół przestaje być potrzebny. Zapis stanu i zapis ruchu muszą się jednak udać razem: jeśli jeden z nich zawiedzie, drugi powinien się cofnąć, inaczej stan magazynu rozjedzie się z historią.

-- przykładowe wydanie egzemplarza: stan i historia zmieniają się w jednej transakcji
DECLARE @EgzemplarzId int = 3021,
        @PracownikId  int = 118,
        @OkresMiesiecy int = 12;   -- wartość z normy wydawania

BEGIN TRY
    BEGIN TRANSACTION;

    UPDATE dbo.EgzemplarzOdziezyPrzyklad
    SET PracownikId   = @PracownikId,
        DataWydania   = CAST(GETDATE() AS date),
        TerminWymiany = DATEADD(MONTH, @OkresMiesiecy, CAST(GETDATE() AS date)),
        Status        = 'wydany'
    WHERE Id = @EgzemplarzId AND Status = 'magazyn';

    IF @@ROWCOUNT <> 1
        THROW 50010, 'Egzemplarz nie jest dostępny na magazynie.', 1;

    INSERT INTO dbo.RuchOdziezyPrzyklad (EgzemplarzId, PracownikId, Typ, Czas)
    VALUES (@EgzemplarzId, @PracownikId, 'wydanie', SYSDATETIME());

    COMMIT TRANSACTION;
END TRY
BEGIN CATCH
    IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION;
    THROW;
END CATCH;

Warunek Status = 'magazyn' w klauzuli WHERE chroni przed wydaniem egzemplarza, który już ma użytkownika. Gdy liczba zmienionych wierszy nie równa się jeden, instrukcja THROW przerywa transakcję, a blok CATCH ją wycofuje. Składnię omawia dokumentacja instrukcji THROW.

Reguła: wydać można tylko egzemplarz ze statusem magazyn, a każde wydanie zostawia wpis w historii ruchów.

Pranie i czyste komplety

Odzież wraca do obiegu po praniu, więc cykl życia egzemplarza obejmuje więcej stanów niż wydany i zwrócony. Funkcja sortów odzieżowych wspiera logistykę zwrotów i przygotowania czystych kompletów dla załogi. Kartoteka egzemplarza zapisuje pranie jako zdarzenie w historii, co przydaje się przy ocenie zużycia i przy planowaniu zakupów.

Norma wydawania a termin wymiany

Okres w skrypcie pochodzi z normy wydawania, czyli ustaleń pracodawcy o liczbie sztuk i czasie użytkowania odzieży na danym stanowisku. Program przenosi tę wartość do terminu wymiany w chwili wydania, więc kierownik nie liczy dat ręcznie. Sama norma i jej konsekwencje dla zamówień są tematem osobnej strony, do której odsyła artykuł o narzędziach i odzieży w jednej ewidencji. Tutaj ważny jest efekt: termin wymiany staje się daną, którą widzi też zlecenie utrzymania ruchu.

Zwrot do prania i kasacja

Zwrot odzieży ma dwa możliwe skutki: sort wraca do prania i po nim na magazyn albo zostaje wycofany jako zużyty. Oba rozstrzygnięcia zmieniają status egzemplarza, więc stan magazynowy pokazuje tylko sztuki gotowe do ponownego wydania. Egzemplarz skasowany znika ze stanu, ale jego historia zostaje w bazie i tłumaczy, dlaczego dany rodzaj odzieży zużywa się szybciej u jednej grupy stanowisk.

Jedna kartoteka pracownika dla odzieży i narzędzi

Odzież robocza i narzędzia trafiają do tych samych osób, często przy tym samym okienku. Prowadzenie obu obszarów w jednym systemie upraszcza pracę obsługi i skraca szkolenie, bo wystarcza jeden interfejs. Różnice dotyczą szczegółów: rozmiarówka przy odzieży, terminy badań przy narzędziach. Wydanie i zwrot, a także kontrola terminu i sygnalizacja zbliżającej się wymiany działają dla obu grup tak samo.

ElementOdzież roboczaNarzędzia
Cecha specyficznarozmiar i historia pranianumer ewidencyjny i termin legalizacji
Termin kontrolowanywymiana zużytego sortuprzegląd lub badanie
Zwrotdo prania albo do kasacjina stan narzędziowni
Dokumentwydanie i zwrot odzieżywypożyczenie i zwrot narzędzia

Sama kartoteka nie zastępuje szkolenia, ale przechowuje jego potwierdzenie obok wydanych środków ochrony. Przy kontroli inspektor dostaje jedno zestawienie: co pracownik otrzymał, w jakim terminie oraz czy przeszedł wymagane szkolenie. Bez wspólnej kartoteki te trzy informacje leżą w różnych miejscach.

Zestawienie wszystkiego, co powierzono pracownikowi, jest potrzebne przy zmianie stanowiska albo przy zakończeniu zatrudnienia. Dwa osobne rejestry oznaczają konieczność sprawdzenia obu i ryzyko pominięcia jednego z nich. Wspólna kartoteka upraszcza też kontrole: zestawienie wydanych środków ochrony wraz z potwierdzeniem przeszkolenia jest dokumentem, o który pytają organy nadzoru.

-- przykładowe zestawienie wszystkiego, co powierzono pracownikowi
DECLARE @PracownikId int = 118;

SELECT 'odzież' AS Grupa, Rodzaj AS Nazwa, DataWydania AS Od
FROM dbo.EgzemplarzOdziezyPrzyklad
WHERE PracownikId = @PracownikId AND Status = 'wydany'
UNION ALL
SELECT 'narzędzie', Nazwa, DataWypozyczenia
FROM dbo.NarzedziePrzyklad
WHERE PracownikId = @PracownikId AND Status = 'wypozyczone'
ORDER BY Grupa, Od;

Jedno zapytanie łączy dwa źródła operatorem UNION ALL i zwraca pełną listę do podpisu przy rozliczeniu. Kolumna Grupa pozwala odróżnić odzież od narzędzi w wydruku. Podobną logikę dla samych narzędzi opisuje artykuł o programie do ewidencji narzędzi, a proces wypożyczeń - strona o wypożyczaniu narzędzi z magazynu.

Zlecenie utrzymania ruchu z listą wymaganego wyposażenia

Zespół techniczny korzysta zarówno z narzędzi, jak i z odzieży ochronnej o określonych parametrach, więc oba obszary łączą się na poziomie zlecenia. Zlecenie prac wymagających szczególnych zabezpieczeń, na przykład przy instalacjach elektrycznych albo na wysokości, wiąże się z określonym wyposażeniem ochronnym. Jego dostępność i ważność trzeba sprawdzić przed rozpoczęciem pracy.

Powiązanie zlecenia z listą wymaganego wyposażenia zamienia tę kontrolę w element procedury. Technik nie musi pamiętać, co zabrać, a kierownik widzi, czy komplet jest gotowy, zanim zespół wyjedzie do zadania. Ogólne zasady organizacji pracy takiego działu opisuje artykuł o utrzymaniu ruchu w przedsiębiorstwie produkcyjnym, a miejsce systemu klasy CMMS - tekst o roli CMMS.

Kontrola przed startem obejmuje cztery pytania, które zadaje się każdemu zleceniu z listą wyposażenia.

  • Dostępność - czy komplet leży na magazynie albo jest już wydany wykonawcy.
  • Ważność - czy termin badania lub wymiany nie upłynął przed dniem pracy.
  • Przydział - czy wyposażenie jest zapisane na osobę, która wykona zadanie.
  • Potwierdzenie - czy pracownik ma zapisane przeszkolenie wymagane przy tej pracy.
Rodzaj zadaniaPrzykładowe wyposażenie na liścieKontrola przed startem
Prace przy instalacjach elektrycznychrękawice i narzędzia izolowaneważność badań oraz dostępność u technika
Prace na wysokościśrodki ochrony przed upadkiemtermin przeglądu i przydział do osoby
Przegląd maszyny w haliodzież ochronna i przyrządy pomiarowekomplet wydany i legalizacja przyrządu

Reguła: lista wyposażenia jest częścią zlecenia, a jej kontrola następuje przed rozpoczęciem pracy, nie po niej.

Rozliczenie kosztów zlecenia i pracownika

Przypisanie do zlecenia zużytych materiałów oraz wypożyczonego sprzętu i wydanych środków ochrony daje pełny koszt zadania. Zestawienie bywa potrzebne przy rozliczaniu prac na rzecz innych działów oraz przy ocenie opłacalności własnych służb. Bez takiego powiązania koszty zostają w budżetach ogólnych i nie da się ocenić, ile kosztuje utrzymanie konkretnej maszyny.

-- przykładowy koszt zlecenia utrzymania ruchu w podziale na rodzaje pozycji
SELECT z.Id AS ZlecenieId,
       SUM(CASE WHEN k.Rodzaj = 'material' THEN k.Kwota ELSE 0 END) AS Materialy,
       SUM(CASE WHEN k.Rodzaj = 'sprzet'   THEN k.Kwota ELSE 0 END) AS SprzetWypozyczony,
       SUM(CASE WHEN k.Rodzaj = 'ochrona'  THEN k.Kwota ELSE 0 END) AS SrodkiOchrony,
       SUM(k.Kwota) AS Razem
FROM dbo.ZlecenieUrPrzyklad AS z
JOIN dbo.KosztZleceniaPrzyklad AS k ON k.ZlecenieId = z.Id
GROUP BY z.Id;

Podobnie działa przypisanie wydatków na odzież do działów lub pracowników. Program do rozliczania odzieży pozwala zestawić, ile poszczególne komórki organizacyjne pobrały sortów, więc zakupy planuje się według faktycznego zużycia. Koszt przypisany do działu pozwala porównać komórki o podobnym profilu pracy. Jeśli jeden dział pobiera wyraźnie więcej sortów niż drugi, przyczyną bywa inny charakter zadań albo źle dobrana norma, a system pokazuje samą różnicę. Wskaźniki MTBF i MTTR, czyli średni czas między awariami i średni czas naprawy, uzupełniają ten obraz w części dotyczącej maszyn.

Zapotrzebowanie na odzież w następnym kwartale

W dokumentacji papierowej odpowiedź na proste pytanie, ilu pracowników potrzebuje nowej odzieży w nadchodzącym kwartale, wymagała żmudnego przeglądania kartotek. W bazie to jedno zapytanie z grupowaniem po rodzaju i rozmiarze, a wynik jest gotową listą zakupów.

-- przykładowe zapotrzebowanie na następny kwartał według rodzaju i rozmiaru
SELECT Rodzaj, Rozmiar, COUNT(*) AS DoWymiany
FROM dbo.EgzemplarzOdziezyPrzyklad
WHERE Status = 'wydany'
  AND TerminWymiany < DATEADD(QUARTER, 1, CAST(GETDATE() AS date))
GROUP BY Rodzaj, Rozmiar
ORDER BY Rodzaj, Rozmiar;

Zestawienie pokazuje, ile sztuk każdego rozmiaru trafi do wymiany, więc zamówienie u dostawcy opiera się na danych z kartotek, a nie na szacunku. Raport można uruchomić na żądanie, na przykład przed rozmową z dostawcą.

Dwoje pracowników w pomarańczowych kaskach i okularach ochronnych patrzy na ekran laptopa
Sprawdzenie wyposażenia ochronnego jako krok zlecenia: wynik trafia do kosztu zadania i do kartoteki pracownika.

Gospodarka narzędziowa i utrzymanie ruchu w jednym systemie

Program do ewidencji narzędzi śledzi każdy egzemplarz od zakupu przez wydanie pracownikowi aż po zwrot lub likwidację. Moduł wypożyczalni rejestruje, kto i kiedy pobrał sprzęt, co zwiększa odpowiedzialność za powierzone narzędzie i zapobiega gubieniu. Podobnie działa ewidencja sprzętu budowlanego, która w Studio TCS.net pozwala śledzić lokalizację i status drogich maszyn. Zasady ewidencji narzędzi w narzędziowni omawia tekst o ewidencji narzędzi w narzędziowni.

Po stronie utrzymania ruchu system klasy CMMS planuje przeglądy, przyjmuje zgłoszenia awarii i prowadzi historię napraw. Zespół zamiast arkuszy korzysta z jednej bazy, która przypomina o nadchodzących przeglądach i terminach wymiany części, a analiza przyczyn awarii pozwala wprowadzać działania korygujące. Połączenie trzech obszarów w jednej instalacji przedstawia artykuł o jednym systemie dla narzędziowni oraz odzieży i przeglądów maszyn. Informacje o produkcie znajdują się także na stronie tcs.softwarestudio.com.pl, a dobór środków ochrony indywidualnej wspiera Centralny Instytut Ochrony Pracy.