Services
Zweck
Services sind Stammdaten für Wartungs- und Pruefdienstleistungen — z. B. „BMA-Wartung jaehrlich", „RWA-Funktionspruefung". Pro Service definieren Sie:
- Checklisten (Master-Default und Komponenten-Checklisten),
- Mangel-Typen-Listen (welche Mangel-Klassen sind bei diesem Service erwartbar),
- Produkt-Zuordnungen (welche Produkte fallen unter diesen Service),
- Hersteller-Zuordnungen (welche Hersteller bieten diesen Service).
Services bilden die Grundlage für alle Aufträge und Anlagen-Prüfungen.
Voraussetzungen
Berechtigungen (CASL)
| Action | Subject | Keycloak-Rolle |
|---|---|---|
view | FE_Service, Service | — |
create/update/delete | Service | APP_SPEAMCORE_CREATE/UPDATE/DELETE_SERVICE |
Tab-Subjects:
| Tab | Subject |
|---|---|
| Checklisten | ServiceChecklist:view |
| Komponenten | ServiceChecklist:view (mit checklistType=MasterComponentChecklist) |
| Defect-Type-Lists | ServiceDefectTypeList:view |
| Produkt-Zuordnungen | ProductAssignment:view |
| Hersteller | ServiceAssignment:view |
Schritt-für-Schritt-Anleitung
Service anlegen
- Services (
/services) → + Neu. - Name vergeben (z. B. „BMA-Wartung jaehrlich").
- Tabs nutzen, um Checklisten, Komponenten, Defect-Type-Listen, Produkte und Hersteller zu verknuepfen.
- Änderungen werden automatisch gespeichert.
Service-Sub-Tabs (Detail-Seite)
Pro Service stehen folgende Sub-Routen zur Verfuegung — jede definiert was bei Auswahl dieses Services im Auftrag oder im Prüf-Workflow automatisch mitkommt:
| Sub-Route | Inhalt | Anlege-Pattern |
|---|---|---|
/services/:id/checklists | Verknuepfte Checklisten — werden bei Prüf-Aufträgen mit diesem Service automatisch instanziiert. | „+ Checkliste hinzufuegen" → Modal mit Master-Checklisten-Auswahl. Mehrfach-Verknuepfung möglich (z. B. „Sichtpruefung" + „Funktionstest"). |
/services/:id/components | Anlagen-Komponenten-Definitionen, die bei Anlagen mit diesem Service vorhanden sein muessen. | „+ Komponente hinzufuegen" → wird beim Auftrag in WorkorderSystemComponent instanziiert (Pflichtkomponente, ohne die der Service nicht abgeschlossen werden kann). |
/services/:id/defect-type-lists | Mangel-Listen (DefectList) die bei diesem Service erfasst werden duerfen. | Eingrenzung der vorgeschlagenen Mangel-Typen im DEFECT-Quick-Button-Modal — z. B. nur Brandschutz-spezifische Mängel, keine Heizungs-Mängel. |
/services/:id/product-assignments | Vorgeschlagene Produkte/Verbrauchsmaterialien für diesen Service. | Beim MATERIAL-Quick-Button werden die hier verknuepften Produkte vorgeschlagen (gefiltert) — schnellerer Vor-Ort-Workflow. |
/services/:id/manufacturer-services | Hersteller-spezifische Variante des Services (ManufacturerService) — z. B. „Bosch BMA-Wartung" mit Hersteller-spezifischen Pruefschritten. | Verknuepfung Service ↔ Hersteller, kann unterschiedliche Checklisten pro Hersteller haben. |

Toolbar (Detail-Seite)
Schlanke Toolbar oben rechts:
| Icon | Aktion (aria-label) | CASL | Wirkung |
|---|---|---|---|
| ← | Zurückgehen | — | Zurück zur Liste. |
| 🏠 | Zur Startseite gehen | — | Springt auf das Dashboard / /. |
| ⏮/◀/▶/⏭ | Pagination | — | Navigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung. |
Globale Floating-Drawer (links)
Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:
- KAL. (Mini-Kalender)
- ZEIT (Persoenliche Wochen-Arbeitszeit)
- ARBEIT (Eigene bevorstehende Aufträge)
UI-Elemente
Button: „+ Neu"
Listenseite. Erfordert create:Service.
Felder und Eingaben
| Feldname | Pflicht | Datentyp | Beschreibung | Wirkung beim Ausfuellen | Voraussetzung |
|---|---|---|---|---|---|
name | ja | String | Service-Bezeichnung. | Erscheint in Auftrag- und Workorder-Auswahl-Listen. | — |
Sub-Entitaeten (Checklisten, Komponenten etc.) werden in den jeweiligen Tabs gepflegt — kein Standard-Form-Feld.
Wiederverwendbare Konzepte
- Pruef-Checklisten — Master- und Komponenten-Checklisten haengen an Services.
- Berechtigungen verstehen (CASL)
Verknuepfungen zu anderen Modulen
- ServiceChecklist — Master- und Komponenten-Checklisten pro Service.
- ServiceDefectTypeList — Mangel-Klassen für den Service.
- ServiceAssignment — N:M Hersteller ↔ Service.
- ProductAssignment — N:M Produkt ↔ Service.
- Workorder —
Workorder.services(N:M). - Location —
Location.services(N:M).
Häufige Fehler und Lösungen
| Fehler | Lösung |
|---|---|
| Service nicht in Auftrag-Auswahl | Service:view fehlt oder Service ist paranoid soft-deleted. |
| Checkliste fehlt im Auftrag | ServiceChecklist-Verknuepfung prüfen — beim Anlegen des Auftrags wird die Checkliste aus dem Service übernommen. |
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/services | Liste | view Service |
GET | /api/services/:id | Detail | view Service |
POST | /api/services | Anlegen | create Service |
PUT | /api/services/:id | Ändern | update Service |
DELETE | /api/services/:id | Soft-Delete | delete Service |
Versionshinweise
- 2026-04-29: Initiale Veroeffentlichung mit FE-Tiefen-Standard.