Link Funktionaer to Reiter via reiter_id, implement findByName in ReiterRepository, optimize ZNS import for functionary-reiter matching, remove redundant fields from FunktionaerTable, and add database migration V011.
This commit is contained in:
+13
-1
@@ -259,7 +259,18 @@ class ZnsImportService(
|
||||
var aktualisiert = 0
|
||||
zeilen.forEachIndexed { index, zeile ->
|
||||
runCatching {
|
||||
val funktionaer = ZnsFunktionaerParser.parse(zeile) ?: return@forEachIndexed
|
||||
val funktionaerRaw = ZnsFunktionaerParser.parse(zeile) ?: return@forEachIndexed
|
||||
|
||||
// Versuch, den Reiter anhand des Namens (Nachname, Vorname) zu finden
|
||||
val nameParts = funktionaerRaw.name?.split(",")?.map { it.trim() }
|
||||
val reiterId = if (nameParts != null && nameParts.size >= 2) {
|
||||
val nachname = nameParts[0]
|
||||
val vorname = nameParts[1]
|
||||
reiterRepository.findByName(vorname, nachname).firstOrNull()?.reiterId
|
||||
} else null
|
||||
|
||||
val funktionaer = funktionaerRaw.copy(reiterId = reiterId)
|
||||
|
||||
val satzID = funktionaer.satzId
|
||||
val satzNummer = funktionaer.satzNummer
|
||||
val vorhanden = funktionaerRepository.findBySatz(satzID, satzNummer)
|
||||
@@ -269,6 +280,7 @@ class ZnsImportService(
|
||||
} else {
|
||||
funktionaerRepository.save(
|
||||
vorhanden.copy(
|
||||
reiterId = funktionaer.reiterId,
|
||||
name = funktionaer.name,
|
||||
qualifikationen = funktionaer.qualifikationen,
|
||||
istAktiv = funktionaer.istAktiv,
|
||||
|
||||
Reference in New Issue
Block a user