Phase 2: Wartungs- und Pruefmanagement
Wartungsvorlagen mit Checklisten, Prueftermine aus einem naechtlichen Lauf, Prueffristen-Dashboard, Pruefwizard mit Foto und Unterschrift, unveraenderliche Protokolle als PDF, Maengel-Workflow, Rueckrufe und Lebensdauerueberwachung. Elf neue Tabellen, alle mit organisationId und Row Level Security. Die Unveraenderbarkeit abgeschlossener Protokolle setzt ein Datenbanktrigger durch, nicht der Anwendungscode: eine Korrektur erzeugt eine neue Pruefung mit Verweis auf die alte, beide bleiben lesbar. 79 neue Tests (47 Unit, 10 gegen eine echte Datenbank, 22 E2E). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
7f866ac35c
commit
e503aafc18
+228
-9
@@ -1,10 +1,10 @@
|
||||
# Anleitung
|
||||
|
||||
Bedienung von FLORIAN, Stand Phase 1 (Version 0.2.0). Die Bilder zeigen die
|
||||
Bedienung von FLORIAN, Stand Phase 2 (Version 0.3.0). Die Bilder zeigen die
|
||||
Beispielwehr aus dem Seed und werden mit `npm run screenshots` neu erzeugt.
|
||||
|
||||
> Prüfungen, Einsätze, Atemschutz und die Kiosk-Oberfläche kommen in den
|
||||
> folgenden Phasen dazu. Siehe [ROADMAP.md](ROADMAP.md).
|
||||
> Einsätze, Atemschutz und die Kiosk-Oberfläche kommen in den folgenden Phasen
|
||||
> dazu. Siehe [ROADMAP.md](ROADMAP.md).
|
||||
|
||||
---
|
||||
|
||||
@@ -70,7 +70,7 @@ derselben Installation hat, ist nicht sichtbar und nicht abfragbar.
|
||||
### Die Seitenleiste
|
||||
|
||||
Links stehen alle Module. Was noch nicht existiert, ist ausgegraut und trägt
|
||||
rechts sein Phasenkürzel — `P2` heißt „kommt in Phase 2".
|
||||
rechts sein Phasenkürzel — `P3` heißt „kommt in Phase 3".
|
||||
|
||||
Was jemand überhaupt sieht, hängt an seinen Rechten. Ein einfaches Mitglied
|
||||
sieht die Mitgliederliste, aber nicht das Protokoll. Wichtig zum Verständnis:
|
||||
@@ -366,7 +366,226 @@ Zum Schluss steht da, wie viele Datensätze angelegt, aktualisiert und
|
||||
|
||||
---
|
||||
|
||||
## 11. Rollen und was sie dürfen
|
||||
---
|
||||
|
||||
## 11. Prüfungen und Fristen
|
||||
|
||||

|
||||
|
||||
Die Seite, die der Gerätewart morgens aufmacht. Sie beantwortet eine Frage:
|
||||
**was ist zu tun.**
|
||||
|
||||
Ganz oben stehen vier Zahlen, nach Dringlichkeit geordnet:
|
||||
|
||||
| Topf | Bedeutung |
|
||||
|---|---|
|
||||
| **überfällig** | hätte längst geprüft sein müssen |
|
||||
| **diese Woche** | in den nächsten sieben Tagen |
|
||||
| **diesen Monat** | in den nächsten 30 Tagen |
|
||||
| **nächste 90 Tage** | mittelfristig zu planen |
|
||||
|
||||
Jede Zahl ist gleichzeitig ein Filter: ein Klick, und die Liste darunter zeigt
|
||||
nur noch diesen Zeitraum. Nochmal klicken hebt den Filter wieder auf.
|
||||
|
||||
„Überfällig" wird jeden Tag neu gerechnet und nicht gespeichert. Ein Termin,
|
||||
der heute Nacht fällig geworden ist, steht morgen früh im richtigen Topf, ohne
|
||||
dass jemand etwas anstoßen muss.
|
||||
|
||||
### Verteilung
|
||||
|
||||
Darunter steht, **wo** die offenen Termine hängen — wahlweise nach Fahrzeug,
|
||||
Standort, Gerätetyp oder Zuständigem. Wer einen Prüftag ansetzt, arbeitet ein
|
||||
Fahrzeug ab und keine alphabetische Liste; deshalb ist Fahrzeug die Vorgabe.
|
||||
|
||||
### Termine zuweisen
|
||||
|
||||
In der Terminliste lassen sich mehrere Zeilen ankreuzen und in einem Zug jemandem
|
||||
zuweisen. Der Zuständige bekommt die Erinnerungen; ist niemand zuständig, gehen
|
||||
sie an die Gerätewarte der Wehr.
|
||||
|
||||
### Erinnerungen
|
||||
|
||||
Nachts um 3:45 Uhr verschickt FLORIAN eine **Sammelnachricht je Empfänger** —
|
||||
nicht eine Mail je Gerät. Erinnert wird bei 30 Tagen (oder der Vorwarnzeit der
|
||||
Vorlage), bei 7 Tagen, am Fälligkeitstag und einmal, wenn ein Termin überfällig
|
||||
geworden ist. Jede Stufe genau einmal.
|
||||
|
||||
Solange `MAIL_ENABLED=false` steht, landen die Nachrichten im Protokoll statt
|
||||
im Postfach.
|
||||
|
||||
---
|
||||
|
||||
## 12. Wartungsvorlagen
|
||||
|
||||

|
||||
|
||||
Eine Wartungsvorlage sagt, **was** an einem Gerätetyp **in welchem Takt**
|
||||
geprüft wird. Sie ist die Regel; der Termin ist ihre Anwendung auf ein einzelnes
|
||||
Gerät.
|
||||
|
||||
**Ohne Vorlage gibt es keine Termine.** Das ist die erste Seite, die eine Wehr
|
||||
in diesem Modul ausfüllt.
|
||||
|
||||
| Angabe | Wofür |
|
||||
|---|---|
|
||||
| **Gerätetyp** | für welche Bauart die Vorlage gilt. Ohne Gerätetyp plant der nächtliche Lauf nichts. |
|
||||
| **Intervall in Monaten** | zählt ab der letzten durchgeführten Prüfung |
|
||||
| **Vorwarnzeit in Tagen** | wann die erste Erinnerung rausgeht |
|
||||
| **Prüfvorschrift** | steht später im Protokoll und in der Fußzeile des PDF |
|
||||
| **Übliche Dauer** | Erfahrungswert für die Planung eines Prüftags |
|
||||
|
||||
### Die Checkliste
|
||||
|
||||

|
||||
|
||||
Jeder Punkt hat eine von vier Antwortarten:
|
||||
|
||||
| Art | Wann |
|
||||
|---|---|
|
||||
| **Ja / Nein** | Sichtprüfungen: „ohne Risse", „Kennzeichnung lesbar" |
|
||||
| **Messwert** | alles Gemessene, mit zulässigem Bereich und Einheit |
|
||||
| **Text** | Befunde, die sich nicht ankreuzen lassen |
|
||||
| **Foto** | wenn der Zustand belegt werden soll |
|
||||
|
||||
Bei einem Messwert entscheidet der zulässige Bereich, ob der Punkt in Ordnung
|
||||
ist. Gerechnet wird das auf dem Server, nicht im Browser.
|
||||
|
||||
**Pflichtpunkt heißt: davon hängt die Einsatzbereitschaft ab.** Ein
|
||||
Pflichtpunkt, der durchfällt, bedeutet „nicht bestanden" und sperrt das Gerät.
|
||||
Ein Kann-Punkt, der durchfällt, bedeutet „bestanden mit Mängeln". Wer einen
|
||||
Punkt als Pflicht anlegt, trifft also eine fachliche Entscheidung.
|
||||
|
||||
Die Reihenfolge zählt: der Prüfwizard arbeitet die Punkte genau so ab, wie sie
|
||||
hier stehen. Umsortiert wird mit den Pfeiltasten — das geht auch mit Handschuhen
|
||||
und mit der Tastatur.
|
||||
|
||||
---
|
||||
|
||||
## 13. Eine Prüfung durchführen
|
||||
|
||||
Gestartet wird sie entweder im Fristen-Dashboard über **Prüfen** oder auf der
|
||||
Gerätedetailseite über **Prüfung durchführen**. Wer das Gerät am Regal
|
||||
gescannt hat, ist schon auf der richtigen Seite.
|
||||
|
||||
Der Wizard zeigt **einen Prüfpunkt je Bildschirm**. Oben läuft die Zeit mit;
|
||||
sie landet im Protokoll und gehört zum Nachweis, wie gründlich geprüft wurde.
|
||||
|
||||
Zu jedem Punkt lassen sich zusätzlich ein Foto und eine Bemerkung erfassen.
|
||||
Auf dem Tablet öffnet der Fotoknopf unmittelbar die Kamera.
|
||||
|
||||
**Jede Antwort geht sofort zum Server.** Wenn im Gerätehaus das WLAN wegbricht,
|
||||
ist höchstens die letzte Antwort verloren. Beim erneuten Öffnen wird der
|
||||
angefangene Durchgang fortgesetzt — es entsteht keine zweite halbe Prüfung.
|
||||
|
||||
### Der Abschluss
|
||||
|
||||
Am Ende steht:
|
||||
|
||||
1. **Ergebnis** — vorgeschlagen wird, was sich aus den Antworten ergibt.
|
||||
Übersteuern darf der Prüfer; er trägt die Verantwortung, nicht die Software.
|
||||
2. **Mängel** — aus den beanstandeten Punkten vorgeschlagen, frei ergänzbar.
|
||||
Ein kritischer Mangel sperrt das Gerät.
|
||||
3. **Unterschrift** — auf dem Zeichenfeld, mit Finger, Stift oder Maus. Ohne
|
||||
Unterschrift lässt sich nicht abschließen: ein Protokoll ohne Unterschrift
|
||||
ist kein Nachweis.
|
||||
|
||||
Wurde die Prüfung **extern** durch eine Fachfirma gemacht, lassen sich hier
|
||||
Firma, Kosten und das Fremdprotokoll als PDF anhängen.
|
||||
|
||||
Mit dem Abschluss passiert alles auf einmal: die Prüfung wird festgeschrieben,
|
||||
der Termin gilt als erledigt, der nächste wird geplant, der Gerätestatus zieht
|
||||
nach, und das PDF entsteht im Hintergrund.
|
||||
|
||||
---
|
||||
|
||||
## 14. Prüfprotokolle
|
||||
|
||||

|
||||
|
||||
Jedes abgeschlossene Protokoll bekommt eine laufende Nummer im Format
|
||||
`JJJJ-NNNN` — das ist die Nummer, die man bei einer Rückfrage der Unfallkasse
|
||||
nennt.
|
||||
|
||||
Über **Protokoll als PDF** kommt die Fassung zum Ausdrucken oder Weiterreichen:
|
||||
Kopf mit Wehr, Gerät und Prüfer-Kennung, die Checkliste mit Soll, Ist und
|
||||
Befund, die Fotos, die Unterschriften und eine Fußzeile mit Prüfvorschrift und
|
||||
Prüfdatum. Alles ist im PDF eingebettet — es lädt nichts nach und sieht in zehn
|
||||
Jahren noch genauso aus.
|
||||
|
||||
### Ein Protokoll lässt sich nicht ändern
|
||||
|
||||
Das ist keine Bequemlichkeitsfrage, sondern der Kern der Sache: ein Nachweis,
|
||||
den man nachträglich ändern kann, ist keiner. FLORIAN verhindert das in der
|
||||
Datenbank, nicht bloß in der Oberfläche.
|
||||
|
||||
Wenn etwas falsch ist, legt **Korrektur anlegen** eine neue Prüfung an — mit den
|
||||
bisherigen Antworten vorbelegt und einem Verweis auf das alte Protokoll. Sobald
|
||||
sie abgeschlossen ist, gilt das alte als „ersetzt". **Beide bleiben lesbar**,
|
||||
und im Korrekturprotokoll steht, warum korrigiert wurde.
|
||||
|
||||
---
|
||||
|
||||
## 15. Mängel
|
||||
|
||||

|
||||
|
||||
Der Weg ist immer derselbe:
|
||||
|
||||
```
|
||||
gemeldet → zugewiesen → in Arbeit → behoben
|
||||
```
|
||||
|
||||
**Melden darf jedes Mitglied.** Der Riss im Schlauch fällt dem auf, der ihn in
|
||||
der Hand hat, nicht dem Gerätewart am Schreibtisch. Zum Melden gehören das
|
||||
Gerät, eine Beschreibung, eine Dringlichkeit und auf Wunsch ein Foto.
|
||||
|
||||
Ein Mangel der Stufe **kritisch** sperrt das Gerät sofort. Beim Beheben wird
|
||||
die Sperre wieder aufgehoben — aber nur, wenn kein anderer offener Mangel
|
||||
dasselbe Gerät sperrt. Ein behobener Kratzer gibt kein Gerät frei, das wegen
|
||||
eines Risses gesperrt ist.
|
||||
|
||||
Eine Fehlmeldung wird **verworfen**, nicht gelöscht: dass gemeldet wurde und
|
||||
was, bleibt nachvollziehbar.
|
||||
|
||||
---
|
||||
|
||||
## 16. Rückrufe
|
||||
|
||||

|
||||
|
||||
Kommt ein Sicherheitshinweis des Herstellers, wird er hier erfasst — mit der
|
||||
betroffenen Bauart, wahlweise eingegrenzt über Modell, Seriennummernbereich und
|
||||
Herstellungszeitraum.
|
||||
|
||||
FLORIAN sucht dann im Bestand nach passenden Geräten und zeigt sie als
|
||||
**Vorschlag**. Zugeordnet wird nur, was der Gerätewart bestätigt — eine
|
||||
Chargenangabe des Herstellers passt selten eins zu eins auf die eigenen
|
||||
Seriennummern.
|
||||
|
||||
Zugeordnete Geräte lassen sich in einem Zug sperren. Je Gerät wird
|
||||
fortgeschrieben, wie es steht: offen, nicht betroffen, Maßnahme läuft, erledigt.
|
||||
Mit „erledigt" fällt die Sperre wieder — sofern kein Mangel dasselbe Gerät
|
||||
sperrt. Abschließen lässt sich der Rückruf erst, wenn zu jedem betroffenen Gerät
|
||||
ein Ergebnis steht.
|
||||
|
||||
---
|
||||
|
||||
## 17. Lebensdauer
|
||||
|
||||

|
||||
|
||||
Helme, Seile, Schutzkleidung und Pressluftatmer sind ab einem Stichtag nicht
|
||||
mehr zugelassen — unabhängig davon, wie gut sie aussehen. Diese Seite zeigt,
|
||||
was abgelaufen ist und was in den nächsten Monaten abläuft.
|
||||
|
||||
Ein Gerät mit abgelaufener Nutzungsdauer wird nachts automatisch **gesperrt**.
|
||||
**Ausgesondert** wird es von einem Menschen: das entscheidet, wer weiß, ob
|
||||
Ersatz da ist. Der Knopf dazu steht in der Zeile.
|
||||
|
||||
Voraussetzung ist, dass am Gerätetyp eine Lebensdauer hinterlegt ist
|
||||
(Kapitel 5).
|
||||
|
||||
## 18. Rollen und was sie dürfen
|
||||
|
||||
Neun Rollen, jede mit einem festen Satz Rechte. Die Zuordnung steht zentral in
|
||||
`src/lib/authz.ts` und wird beim Seed in die Datenbank gespiegelt — eine Wehr
|
||||
@@ -395,7 +614,7 @@ Das Terminal selbst ist nur die Tür.
|
||||
|
||||
---
|
||||
|
||||
## 12. Anmeldung über authentik einrichten
|
||||
## 19. Anmeldung über authentik einrichten
|
||||
|
||||
authentik läuft **getrennt** von FLORIAN und ist nicht Teil dieses Stacks.
|
||||
|
||||
@@ -448,7 +667,7 @@ ganze Wehr aus.
|
||||
|
||||
---
|
||||
|
||||
## 13. Terminal-Anmeldung im Gerätehaus
|
||||
## 20. Terminal-Anmeldung im Gerätehaus
|
||||
|
||||
Die Oberfläche dazu kommt in Phase 4; der Anmeldeweg steht bereits.
|
||||
|
||||
@@ -470,7 +689,7 @@ Huber), PIN `471203`.
|
||||
|
||||
---
|
||||
|
||||
## 14. Was protokolliert wird
|
||||
## 21. Was protokolliert wird
|
||||
|
||||
Jede schreibende Änderung erzeugt einen Eintrag mit Zeitpunkt, Person,
|
||||
betroffenem Datensatz und den geänderten Feldern im Vorher-Nachher-Vergleich.
|
||||
@@ -495,7 +714,7 @@ jeweiligen Detailseite sichtbar.
|
||||
|
||||
---
|
||||
|
||||
## 15. Wenn etwas nicht geht
|
||||
## 22. Wenn etwas nicht geht
|
||||
|
||||
| Beobachtung | Wahrscheinliche Ursache | Was hilft |
|
||||
|---|---|---|
|
||||
|
||||
Reference in New Issue
Block a user