Zum Hauptinhalt springen

Betriebsmittel-Sets

Zweck

Betriebsmittel-Sets buendeln mehrere Betriebsmittel zu einer logischen Einheit — z. B. ein „Pruefkoffer BMA" mit Multimeter, Programmer, Pruefgeraet, Schraubendreher. Aufträge koennen so ein Set als Gesamtpaket erhalten, anstatt jedes Werkzeug einzeln zuzuweisen.

Voraussetzungen

- Mindestens ein Betriebsmittel ist angelegt (siehe [Betriebsmittel](/operating-equipments)). - Berechtigung `create:OperatingEquipmentSet`.

Berechtigungen (CASL)

ActionSubjectKeycloak-Rolle
viewFE_OperatingEquipmentSet, OperatingEquipmentSet
create/update/deleteOperatingEquipmentSetAPP_SPEAMCORE_CREATE/UPDATE/DELETE_OPERATING_EQUIPMENT_SET
viewOperatingEquipmentSetOperatingEquipmentAPP_SPEAMCORE_VIEW_OPERATING_EQUIPMENT_SET_OPERATING_EQUIPMENT

Schritt-für-Schritt-Anleitung

Set anlegen

  1. Betriebsmittel-Sets (/operating-equipment-sets) → + Neu.
  2. Name vergeben (z. B. „Pruefkoffer BMA").
  3. Im Sub-Tab Betriebsmittel die Set-Mitglieder ergaenzen.

Betriebsmittel-Sets-Liste — leerer DataGrid mit Spalten Name und Betriebsmittel

Set-Detail Tab Allgemeine Daten — nur ein Name-Feld, dazu Bild-Upload und QR-Code mit auto-vergebener Nummer EQPS-2026-00001

Set-Detail Tab Betriebsmittel — Sub-DataGrid mit Spalten Betriebsmittel-Nr., Name, Seriennummer und Button „+ Betriebsmittel hinzufuegen“. Keine sortOrder-Spalte und kein Drag-Handle.

Toolbar (Detail-Seite)

Schlanke Toolbar oben rechts:

IconAktion (aria-label)CASLWirkung
ZurückgehenZurück zur Liste.
🏠Zur Startseite gehenSpringt auf das Dashboard / /.
⏮/◀/▶/⏭PaginationNavigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung.

Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:

  • KAL. (Mini-Kalender)
  • ZEIT (Persoenliche Wochen-Arbeitszeit)
  • ARBEIT (Eigene bevorstehende Aufträge)

Felder und Eingaben

FeldnamePflichtDatentypBeschreibungWirkung beim AusfuellenVoraussetzung
namejaStringBezeichnung des Sets.Erscheint in Workorder-Auswahllisten und Reports.

Sub-Felder pro OperatingEquipmentSetOperatingEquipment

FeldnameDatentypWirkung
operatingEquipmentSetIdUUIDSet-Referenz.
operatingEquipmentIdUUIDSet-Mitglied.
sortOrderIntegerReihenfolge im Set — derzeit nicht UI-editierbar.

Im Live-Walkthrough bestätigt: Der Sub-Tab „Betriebsmittel" enthält keine sortOrder-Spalte und keinen Drag-HandlesortOrder kann ausschliesslich über die API gesetzt werden. Wer das fachlich braucht, muss das UI um eine Sortier-Spalte erweitern (z. B. dnd-kit oder MUI-DataGrid Drag-Reorder).

Auch fehlt im Backend ein UNIQUE-Constraint auf (operatingEquipmentSetId, operatingEquipmentId) — derselbe Equipment-Eintrag kann theoretisch mehrfach im selben Set vorkommen. Wenn das fachlich nicht erwuenscht ist, sollte ein Constraint per Migration ergaenzt werden.

Anlege-Pattern (Bewegungs-Logik)

Betriebsmittel-Bewegungen folgen einem strikten Audit-Trail-Modell:

  • Jede OperatingEquipmentMovement haelt fest wer wann welches Betriebsmittel wohin bewegt hat.
  • fromAssigneeType/fromAssigneeId und toAssigneeType/toAssigneeId (polymorph: Employee, Vehicle, Warehouse).
  • movedAt — Zeitstempel der Bewegung.

Zustand des Betriebsmittels wird durch die juengste Bewegung bestimmt — keine Direkt-Zuweisung.

**Storno** einer Bewegung erzeugt eine Gegen-Bewegung (`type = 'reversal'`) — keine echte Loeschung, weil der Audit-Trail erhalten bleiben muss.

Wiederverwendbare Konzepte

Verknuepfungen zu anderen Modulen

  • Betriebsmittel (/operating-equipments) — Set-Mitglieder.
  • Aufträge — koennen Sets als Werkzeug-Bundle zuordnen.

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/operating-equipment-setsListeview OperatingEquipmentSet
GET/api/operating-equipment-sets/:idDetailview OperatingEquipmentSet
POST/api/operating-equipment-setsAnlegencreate OperatingEquipmentSet
PATCH/api/operating-equipment-sets/:idÄndernupdate OperatingEquipmentSet
DELETE/api/operating-equipment-sets/:idSoft-Deletedelete OperatingEquipmentSet
GET/api/operating-equipment-sets/:id/operating-equipmentsMitglieder-Sub-Listeview OperatingEquipmentSetOperatingEquipment

Versionshinweise

  • 2026-04-29: Initiale Veroeffentlichung.