Skip to content

Commit 50fdf7d

Browse files
Fix fill function by column J (#1776)
* Fix fill function by column J * Column F -> H:Filter DPBezug = null * update excel template
1 parent 925d262 commit 50fdf7d

File tree

2 files changed

+90
-86
lines changed

2 files changed

+90
-86
lines changed

java/bundles/org.eclipse.set.feature.table.pt1/src/org/eclipse/set/feature/table/pt1/ssza/SszaTransformator.xtend

Lines changed: 90 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import org.eclipse.set.model.planpro.Basisobjekte.Basis_Objekt
3030
import org.eclipse.set.model.planpro.Basisobjekte.Punkt_Objekt
3131
import org.eclipse.set.model.planpro.Fahrstrasse.Markanter_Punkt
3232
import org.eclipse.set.model.planpro.Geodaten.Strecke
33-
import org.eclipse.set.model.planpro.Gleis.Gleis_Bezeichnung
3433
import org.eclipse.set.model.planpro.Ortung.FMA_Anlage
3534
import org.eclipse.set.model.planpro.Ortung.FMA_Komponente
3635
import org.eclipse.set.model.planpro.Ortung.Zugeinwirkung
@@ -53,7 +52,6 @@ import static extension org.eclipse.set.ppmodel.extensions.DatenpunktExtensions.
5352
import static extension org.eclipse.set.ppmodel.extensions.FmaAnlageExtensions.*
5453
import static extension org.eclipse.set.ppmodel.extensions.PunktObjektExtensions.*
5554
import static extension org.eclipse.set.ppmodel.extensions.PunktObjektTopKanteExtensions.*
56-
import static extension org.eclipse.set.ppmodel.extensions.StellBereichExtensions.*
5755
import static extension org.eclipse.set.ppmodel.extensions.TopKanteExtensions.*
5856
import static extension org.eclipse.set.ppmodel.extensions.UrObjectExtensions.*
5957
import static extension org.eclipse.set.ppmodel.extensions.utils.IterableExtensions.*
@@ -150,90 +148,92 @@ class SszaTransformator extends AbstractPlanPro2TableModelTransformator {
150148
return counts.max.toString
151149
]
152150
)
153-
154-
// F: Ssza.Bezugspunkt.Bezeichnung
155-
fillSwitch(
156-
cols.getColumn(Bezugspunkt_Bezeichnung),
157-
dpBezug,
158-
bezugspunktCase(
159-
BUE_Anlage,
160-
[bezeichnung?.bezeichnungTabelle?.wert]
161-
),
162-
bezugspunktCaseIterable(
163-
BUE_Einschaltung,
164-
[
165-
schaltmittelZuordnung.map [
166-
'''«schaltmittelFunktion?.translate» «getSwitchName(IDSchalter?.value)»'''
151+
if (dpBezug !== null) {
152+
// F: Ssza.Bezugspunkt.Bezeichnung
153+
fillSwitch(
154+
cols.getColumn(Bezugspunkt_Bezeichnung),
155+
dpBezug,
156+
bezugspunktCase(
157+
BUE_Anlage,
158+
[bezeichnung?.bezeichnungTabelle?.wert]
159+
),
160+
bezugspunktCaseIterable(
161+
BUE_Einschaltung,
162+
[
163+
schaltmittelZuordnung.map [
164+
'''«schaltmittelFunktion?.translate» «getSwitchName(IDSchalter?.value)»'''
165+
]
167166
]
168-
]
169-
),
170-
bezugspunktCase(
171-
BUE_Kante,
172-
[
173-
val bos = container.bereichObjekt
174-
val relevantBereichs = bos.filter[bo|bo.contains(it)].
175-
filter(Gleis_Bezeichnung).toList
176-
val tracksDesignation = relevantBereichs.filterNull.map [
177-
bezeichnung?.bezGleisBezeichnung?.wert
167+
),
168+
bezugspunktCase(
169+
BUE_Kante,
170+
[
171+
val relevantBereichs = container.gleisBezeichnung.filter [ bo |
172+
bo.contains(it)
173+
].toList
174+
val tracksDesignation = relevantBereichs.filterNull.map [
175+
bezeichnung?.bezGleisBezeichnung?.wert
176+
]
177+
'''BÜ-K «IDBUEAnlage?.value?.bezeichnung?.bezeichnungTabelle?.wert»«
178+
»«IF !tracksDesignation.nullOrEmpty», Gl. «tracksDesignation.join(", ")»«ENDIF»'''
178179
]
179-
'''BÜ-K «IDBUEAnlage?.value?.bezeichnung?.bezeichnungTabelle?.wert», Gl. «tracksDesignation.join(", ")»'''
180-
]
181-
),
182-
bezugspunktCase(
183-
PZB_Element,
184-
[
185-
'''GM «PZBArt?.translate» «IDPZBElementZuordnung?.value?.PZBElementZuordnungBP?.map[fillBezugsElement(IDPZBElementBezugspunkt?.value)].join»'''
186-
]
187-
),
188-
bezugspunktCase(
189-
ZUB_Streckeneigenschaft,
190-
[bezeichnung?.bezeichnungZUBSE?.wert]
191-
),
192-
bezugspunktCase(
193-
Markanter_Punkt,
194-
[bezeichnung?.bezeichnungMarkanterPunkt?.wert]
195-
)
196-
)
197-
var List<Pair<Strecke, String>> dpBezugStreckeAndKm = newLinkedList
198-
try {
199-
dpBezugStreckeAndKm.addAll(datenpunkt.getStreckeAndKm(dpBezug))
200-
} catch (Exception e) {
201-
handleFillingException(e, it,
202-
cols.getColumn(Bezugspunkt_Standort_Strecke))
203-
handleFillingException(e, it,
204-
cols.getColumn(Bezugspunkt_Standort_km))
205-
handleFillingException(e, it, cols.getColumn(Bemerkung))
206-
}
207-
if (!dpBezugStreckeAndKm.nullOrEmpty) {
208-
// G: Ssza.Bezugspunkt.Standort.Strecke
209-
fillIterable(
210-
cols.getColumn(Bezugspunkt_Standort_Strecke),
211-
dpBezugStreckeAndKm,
212-
[map[key?.bezeichnung?.bezeichnungStrecke?.wert].filterNull],
213-
MIXED_STRING_COMPARATOR
214-
)
215-
216-
// H: Ssza.Bezugspunkt.Standort.km
217-
fillIterable(
218-
cols.getColumn(Bezugspunkt_Standort_km),
219-
dpBezugStreckeAndKm,
220-
[map[value]],
221-
MIXED_STRING_COMPARATOR
222-
)
223-
224-
val firstStreckekm = dpBezugStreckeAndKm.firstOrNull?.value
225-
// O: Ssza.Bemerkung
226-
fillConditional(
227-
cols.getColumn(Bemerkung),
228-
datenpunkt,
229-
[
230-
ZUB_Streckeneigenschaft.isInstance(it) &&
231-
(it as ZUB_Streckeneigenschaft).metallteil !== null
232-
],
233-
[
234-
firstStreckekm ?: ""
235-
]
180+
),
181+
bezugspunktCase(
182+
PZB_Element,
183+
[
184+
'''GM «PZBArt?.translate» «IDPZBElementZuordnung?.value?.PZBElementZuordnungBP?.map[fillBezugsElement(IDPZBElementBezugspunkt?.value)].join»'''
185+
]
186+
),
187+
bezugspunktCase(
188+
ZUB_Streckeneigenschaft,
189+
[bezeichnung?.bezeichnungZUBSE?.wert]
190+
),
191+
bezugspunktCase(
192+
Markanter_Punkt,
193+
[bezeichnung?.bezeichnungMarkanterPunkt?.wert]
194+
)
236195
)
196+
var List<Pair<Strecke, String>> dpBezugStreckeAndKm = newLinkedList
197+
try {
198+
dpBezugStreckeAndKm.addAll(datenpunkt.getStreckeAndKm(dpBezug))
199+
} catch (Exception e) {
200+
handleFillingException(e, it,
201+
cols.getColumn(Bezugspunkt_Standort_Strecke))
202+
handleFillingException(e, it,
203+
cols.getColumn(Bezugspunkt_Standort_km))
204+
handleFillingException(e, it, cols.getColumn(Bemerkung))
205+
}
206+
if (!dpBezugStreckeAndKm.nullOrEmpty) {
207+
// G: Ssza.Bezugspunkt.Standort.Strecke
208+
fillIterable(
209+
cols.getColumn(Bezugspunkt_Standort_Strecke),
210+
dpBezugStreckeAndKm,
211+
[map[key?.bezeichnung?.bezeichnungStrecke?.wert].filterNull],
212+
MIXED_STRING_COMPARATOR
213+
)
214+
215+
// H: Ssza.Bezugspunkt.Standort.km
216+
fillIterable(
217+
cols.getColumn(Bezugspunkt_Standort_km),
218+
dpBezugStreckeAndKm,
219+
[map[value]],
220+
MIXED_STRING_COMPARATOR
221+
)
222+
223+
val firstStreckekm = dpBezugStreckeAndKm.firstOrNull?.value
224+
// O: Ssza.Bemerkung
225+
fillConditional(
226+
cols.getColumn(Bemerkung),
227+
datenpunkt,
228+
[
229+
ZUB_Streckeneigenschaft.isInstance(it) &&
230+
(it as ZUB_Streckeneigenschaft).metallteil !== null
231+
],
232+
[
233+
firstStreckekm ?: ""
234+
]
235+
)
236+
}
237237
}
238238

239239
// J: Ssza.DP-Standort.Stellbereich
@@ -425,7 +425,11 @@ class SszaTransformator extends AbstractPlanPro2TableModelTransformator {
425425
]
426426

427427
return new Case<Basis_Objekt>(
428-
[clazz.exists[isInstance(it)]],
428+
[
429+
clazz.exists [ c |
430+
c.isInstance(it)
431+
]
432+
],
429433
action.andThen(filling),
430434
ITERABLE_FILLING_SEPARATOR,
431435
null
@@ -439,9 +443,9 @@ class SszaTransformator extends AbstractPlanPro2TableModelTransformator {
439443
result.add(b.relevantAreaControl)
440444
ZUB_Streckeneigenschaft:
441445
result.add(b.mostOverlapControlArea)
442-
default:
446+
Punkt_Objekt:
443447
result.addAll(b.container.stellBereich.filter [
444-
isInControlArea(b)
448+
contains(b)
445449
])
446450
}
447451
return result.map[stellbereichBezeichnung].filterNull
-888 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)