Mercurial > lada > lada-server
comparison src/main/java/de/intevation/lada/exporter/laf/LafCreator.java @ 1028:1c41c7b8f7c2 schema-update
Updated server application to new database model. THIS IS STILL WIP!!!
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 08 Jul 2016 15:32:36 +0200 |
parents | 092e673cbb8d |
children | d85562f07e3d |
comparison
equal
deleted
inserted
replaced
1027:9971471d562c | 1028:1c41c7b8f7c2 |
---|---|
13 | 13 |
14 import javax.inject.Inject; | 14 import javax.inject.Inject; |
15 import javax.inject.Named; | 15 import javax.inject.Named; |
16 | 16 |
17 import de.intevation.lada.exporter.Creator; | 17 import de.intevation.lada.exporter.Creator; |
18 import de.intevation.lada.model.land.LKommentarM; | 18 import de.intevation.lada.model.land.KommentarM; |
19 import de.intevation.lada.model.land.LKommentarP; | 19 import de.intevation.lada.model.land.KommentarP; |
20 import de.intevation.lada.model.land.LMessung; | 20 import de.intevation.lada.model.land.Messung; |
21 import de.intevation.lada.model.land.LMesswert; | 21 import de.intevation.lada.model.land.Messwert; |
22 import de.intevation.lada.model.land.LOrtszuordnung; | 22 import de.intevation.lada.model.land.Ortszuordnung; |
23 import de.intevation.lada.model.land.LProbe; | 23 import de.intevation.lada.model.land.Probe; |
24 import de.intevation.lada.model.land.LZusatzWert; | 24 import de.intevation.lada.model.land.ZusatzWert; |
25 import de.intevation.lada.model.land.ProbeTranslation; | 25 import de.intevation.lada.model.stammdaten.MessEinheit; |
26 import de.intevation.lada.model.stamm.MessEinheit; | 26 import de.intevation.lada.model.stammdaten.Messgroesse; |
27 import de.intevation.lada.model.stamm.Messgroesse; | 27 import de.intevation.lada.model.stammdaten.ProbenZusatz; |
28 import de.intevation.lada.model.stamm.ProbenZusatz; | 28 import de.intevation.lada.model.stammdaten.Probenart; |
29 import de.intevation.lada.model.stamm.Probenart; | 29 import de.intevation.lada.model.stammdaten.Ort; |
30 import de.intevation.lada.model.stamm.Ort; | |
31 import de.intevation.lada.util.annotation.RepositoryConfig; | 30 import de.intevation.lada.util.annotation.RepositoryConfig; |
32 import de.intevation.lada.util.data.QueryBuilder; | 31 import de.intevation.lada.util.data.QueryBuilder; |
33 import de.intevation.lada.util.data.Repository; | 32 import de.intevation.lada.util.data.Repository; |
34 import de.intevation.lada.util.data.RepositoryType; | 33 import de.intevation.lada.util.data.RepositoryType; |
35 import de.intevation.lada.util.rest.Response; | 34 import de.intevation.lada.util.rest.Response; |
68 * Find the {@link LProbe} object and produce the LAF conform string. | 67 * Find the {@link LProbe} object and produce the LAF conform string. |
69 * @param probeId The {@link LProbe} id. | 68 * @param probeId The {@link LProbe} id. |
70 * @return LAF conform string. | 69 * @return LAF conform string. |
71 */ | 70 */ |
72 private String probeToLAF(String probeId) { | 71 private String probeToLAF(String probeId) { |
73 Response found = repository.getById(LProbe.class, Integer.valueOf(probeId), "land"); | 72 Response found = repository.getById(Probe.class, Integer.valueOf(probeId), "land"); |
74 if (found.getData() == null) { | 73 if (found.getData() == null) { |
75 return null; | 74 return null; |
76 } | 75 } |
77 LProbe aProbe = (LProbe)found.getData(); | 76 Probe aProbe = (Probe)found.getData(); |
78 String lafProbe = writeAttributes(aProbe); | 77 String lafProbe = writeAttributes(aProbe); |
79 return lafProbe; | 78 return lafProbe; |
80 } | 79 } |
81 | 80 |
82 /** | 81 /** |
84 * | 83 * |
85 * @param probe The {@link LProbeInfo} object. | 84 * @param probe The {@link LProbeInfo} object. |
86 * @return LAF conform string. | 85 * @return LAF conform string. |
87 */ | 86 */ |
88 @SuppressWarnings("unchecked") | 87 @SuppressWarnings("unchecked") |
89 private String writeAttributes(LProbe probe) { | 88 private String writeAttributes(Probe probe) { |
90 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); | 89 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); |
91 QueryBuilder<LKommentarP> kommBuilder = | 90 QueryBuilder<KommentarP> kommBuilder = |
92 new QueryBuilder<LKommentarP>( | 91 new QueryBuilder<KommentarP>( |
93 repository.entityManager("land"), LKommentarP.class); | 92 repository.entityManager("land"), KommentarP.class); |
94 kommBuilder.and("probeId", probe.getId()); | 93 kommBuilder.and("probeId", probe.getId()); |
95 Response kommentar = repository.filter(kommBuilder.getQuery(), "land"); | 94 Response kommentar = repository.filter(kommBuilder.getQuery(), "land"); |
96 List<LKommentarP> kommentare = (List<LKommentarP>)kommentar.getData(); | 95 List<KommentarP> kommentare = (List<KommentarP>)kommentar.getData(); |
97 | 96 |
98 QueryBuilder<Probenart> builder = | 97 QueryBuilder<Probenart> builder = |
99 new QueryBuilder<Probenart>( | 98 new QueryBuilder<Probenart>( |
100 repository.entityManager("stamm"), | 99 repository.entityManager("stamm"), |
101 Probenart.class); | 100 Probenart.class); |
104 (List<Probenart>)repository.filter( | 103 (List<Probenart>)repository.filter( |
105 builder.getQuery(), | 104 builder.getQuery(), |
106 "stamm").getData(); | 105 "stamm").getData(); |
107 String probenart = probenarten.get(0).getProbenart(); | 106 String probenart = probenarten.get(0).getProbenart(); |
108 | 107 |
109 QueryBuilder<LZusatzWert> zusatzBuilder = | 108 QueryBuilder<ZusatzWert> zusatzBuilder = |
110 new QueryBuilder<LZusatzWert>( | 109 new QueryBuilder<ZusatzWert>( |
111 repository.entityManager("land"), LZusatzWert.class); | 110 repository.entityManager("land"), ZusatzWert.class); |
112 zusatzBuilder.and("probeId", probe.getId()); | 111 zusatzBuilder.and("probeId", probe.getId()); |
113 Response zusatz = repository.filter(zusatzBuilder.getQuery(), "land"); | 112 Response zusatz = repository.filter(zusatzBuilder.getQuery(), "land"); |
114 List<LZusatzWert> zusatzwerte = (List<LZusatzWert>)zusatz.getData(); | 113 List<ZusatzWert> zusatzwerte = (List<ZusatzWert>)zusatz.getData(); |
115 | 114 |
116 QueryBuilder<ProbeTranslation> transBuilder = | |
117 new QueryBuilder<ProbeTranslation>( | |
118 repository.entityManager("land"), ProbeTranslation.class); | |
119 transBuilder.and("probe", probe.getId()); | |
120 Response trans = repository.filter(transBuilder.getQuery(), "land"); | |
121 List<ProbeTranslation> translation = (List<ProbeTranslation>)trans.getData(); | |
122 String laf = ""; | 115 String laf = ""; |
123 laf += probe.getDatenbasisId() == null ? | 116 laf += probe.getDatenbasisId() == null ? |
124 "": lafLine("DATENBASIS_S", probe.getDatenbasisId().toString()); | 117 "": lafLine("DATENBASIS_S", probe.getDatenbasisId().toString()); |
125 laf += probe.getNetzbetreiberId() == null ? | 118 //laf += probe.getNetzbetreiberId() == null ? |
126 "" : lafLine("NETZKENNUNG", probe.getNetzbetreiberId()); | 119 // "" : lafLine("NETZKENNUNG", probe.getNetzbetreiberId()); |
127 laf += probe.getMstId() == null ? | 120 laf += probe.getMstId() == null ? |
128 "" : lafLine("MESSSTELLE", probe.getMstId()); | 121 "" : lafLine("MESSSTELLE", probe.getMstId()); |
129 laf += lafLine("PROBE_ID", translation.get(0).getProbeIdAlt()); | 122 laf += lafLine("PROBE_ID", probe.getIdAlt()); |
130 laf += lafLine("HAUPTPROBENNUMMER", probe.getHauptprobenNr()); | 123 laf += lafLine("HAUPTPROBENNUMMER", probe.getHauptprobenNr()); |
131 laf += probe.getBaId() == null ? | 124 laf += probe.getBaId() == null ? |
132 "" : lafLine("MESSPROGRAMM_S", "\"" + probe.getBaId() + "\""); | 125 "" : lafLine("MESSPROGRAMM_S", "\"" + probe.getBaId() + "\""); |
133 laf += probe.getProbenartId() == null ? | 126 laf += probe.getProbenartId() == null ? |
134 "" : lafLine("PROBENART", | 127 "" : lafLine("PROBENART", |
151 "" : lafLine("MEDIUM", "\"" + probe.getMedia() + "\""); | 144 "" : lafLine("MEDIUM", "\"" + probe.getMedia() + "\""); |
152 laf += probe.getMediaDesk() == null ? | 145 laf += probe.getMediaDesk() == null ? |
153 "" : lafLine("DESKRIPTOREN", "\"" + probe.getMediaDesk() + "\""); | 146 "" : lafLine("DESKRIPTOREN", "\"" + probe.getMediaDesk() + "\""); |
154 laf += probe.getTest() == Boolean.TRUE ? | 147 laf += probe.getTest() == Boolean.TRUE ? |
155 lafLine("TESTDATEN", "1") : lafLine("TESTDATEN", "0"); | 148 lafLine("TESTDATEN", "1") : lafLine("TESTDATEN", "0"); |
156 for (LZusatzWert zw : zusatzwerte) { | 149 for (ZusatzWert zw : zusatzwerte) { |
157 laf += writeZusatzwert(zw); | 150 laf += writeZusatzwert(zw); |
158 } | 151 } |
159 for (LKommentarP kp : kommentare) { | 152 for (KommentarP kp : kommentare) { |
160 laf += writeKommentar(kp); | 153 laf += writeKommentar(kp); |
161 } | 154 } |
162 laf += writeMessung(probe); | 155 laf += writeMessung(probe); |
163 laf += writeOrt(probe); | 156 laf += writeOrt(probe); |
164 return laf; | 157 return laf; |
169 * | 162 * |
170 * @param zw The {@link LZusatzWert}. | 163 * @param zw The {@link LZusatzWert}. |
171 * @return Single LAF line. | 164 * @return Single LAF line. |
172 */ | 165 */ |
173 @SuppressWarnings("unchecked") | 166 @SuppressWarnings("unchecked") |
174 private String writeZusatzwert(LZusatzWert zw) { | 167 private String writeZusatzwert(ZusatzWert zw) { |
175 QueryBuilder<ProbenZusatz> builder = | 168 QueryBuilder<ProbenZusatz> builder = |
176 new QueryBuilder<ProbenZusatz>( | 169 new QueryBuilder<ProbenZusatz>( |
177 repository.entityManager("stamm"), | 170 repository.entityManager("stamm"), |
178 ProbenZusatz.class); | 171 ProbenZusatz.class); |
179 builder.and("id", zw.getPzsId()); | 172 builder.and("id", zw.getPzsId()); |
182 builder.getQuery(), | 175 builder.getQuery(), |
183 "stamm").getData(); | 176 "stamm").getData(); |
184 | 177 |
185 String value = "\"" + zusatz.get(0).getBeschreibung() + "\""; | 178 String value = "\"" + zusatz.get(0).getBeschreibung() + "\""; |
186 value += " " + zw.getMesswertPzs(); | 179 value += " " + zw.getMesswertPzs(); |
187 value += " " + zusatz.get(0).getMehId(); | 180 value += " " + zusatz.get(0).getMessEinheitId(); |
188 value += " " + zw.getMessfehler(); | 181 value += " " + zw.getMessfehler(); |
189 return lafLine("PZB_S", value); | 182 return lafLine("PZB_S", value); |
190 } | 183 } |
191 | 184 |
192 /** | 185 /** |
194 * | 187 * |
195 * @param probe The {@link LProbeInfo} object. | 188 * @param probe The {@link LProbeInfo} object. |
196 * @return LAF conform string | 189 * @return LAF conform string |
197 */ | 190 */ |
198 @SuppressWarnings("unchecked") | 191 @SuppressWarnings("unchecked") |
199 private String writeOrt(LProbe probe) { | 192 private String writeOrt(Probe probe) { |
200 QueryBuilder<LOrtszuordnung> builder = | 193 QueryBuilder<Ortszuordnung> builder = |
201 new QueryBuilder<LOrtszuordnung>( | 194 new QueryBuilder<Ortszuordnung>( |
202 repository.entityManager("land"), | 195 repository.entityManager("land"), |
203 LOrtszuordnung.class); | 196 Ortszuordnung.class); |
204 builder.and("probeId", probe.getId()); | 197 builder.and("probeId", probe.getId()); |
205 Response objects = repository.filter(builder.getQuery(), "land"); | 198 Response objects = repository.filter(builder.getQuery(), "land"); |
206 List<LOrtszuordnung> orte = | 199 List<Ortszuordnung> orte = |
207 (List<LOrtszuordnung>)objects.getData(); | 200 (List<Ortszuordnung>)objects.getData(); |
208 | 201 |
209 String laf = ""; | 202 String laf = ""; |
210 for(LOrtszuordnung o : orte) { | 203 for(Ortszuordnung o : orte) { |
211 laf += "%ORT%\n"; | 204 laf += "%ORT%\n"; |
212 QueryBuilder<Ort> oBuilder = | 205 QueryBuilder<Ort> oBuilder = |
213 new QueryBuilder<Ort>( | 206 new QueryBuilder<Ort>( |
214 repository.entityManager("stamm"), | 207 repository.entityManager("stamm"), |
215 Ort.class); | 208 Ort.class); |
240 * Write {@link LKommentarP} attributes. | 233 * Write {@link LKommentarP} attributes. |
241 * | 234 * |
242 * @param kp The {@link LKommentarP} object. | 235 * @param kp The {@link LKommentarP} object. |
243 * @return Single LAF line. | 236 * @return Single LAF line. |
244 */ | 237 */ |
245 private String writeKommentar(LKommentarP kp) { | 238 private String writeKommentar(KommentarP kp) { |
246 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); | 239 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); |
247 String value = "\"" + kp.getErzeuger() + "\" " + | 240 String value = "\"" + kp.getMstId() + "\" " + |
248 format.format(kp.getDatum()) + " " + | 241 format.format(kp.getDatum()) + " " + |
249 "\"" + kp.getText() + "\""; | 242 "\"" + kp.getText() + "\""; |
250 return lafLine("PROBENKOMMENTAR", value); | 243 return lafLine("PROBENKOMMENTAR", value); |
251 } | 244 } |
252 | 245 |
255 * | 248 * |
256 * @param probe The {@link LProbeInfo} object. | 249 * @param probe The {@link LProbeInfo} object. |
257 * @return LAF conform string. | 250 * @return LAF conform string. |
258 */ | 251 */ |
259 @SuppressWarnings("unchecked") | 252 @SuppressWarnings("unchecked") |
260 private String writeMessung(LProbe probe) { | 253 private String writeMessung(Probe probe) { |
261 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); | 254 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); |
262 // Get all messungen | 255 // Get all messungen |
263 QueryBuilder<LMessung> builder = | 256 QueryBuilder<Messung> builder = |
264 new QueryBuilder<LMessung>( | 257 new QueryBuilder<Messung>( |
265 repository.entityManager("land"), | 258 repository.entityManager("land"), |
266 LMessung.class); | 259 Messung.class); |
267 builder.and("probeId", probe.getId()); | 260 builder.and("probeId", probe.getId()); |
268 Response objects = repository.filter(builder.getQuery(), "land"); | 261 Response objects = repository.filter(builder.getQuery(), "land"); |
269 List<LMessung> mess = (List<LMessung>)objects.getData(); | 262 List<Messung> mess = (List<Messung>)objects.getData(); |
270 | 263 |
271 String laf = ""; | 264 String laf = ""; |
272 for(LMessung m : mess) { | 265 for(Messung m : mess) { |
273 laf += "%MESSUNG%\n"; | 266 laf += "%MESSUNG%\n"; |
274 QueryBuilder<LMesswert> wertBuilder = | 267 QueryBuilder<Messwert> wertBuilder = |
275 new QueryBuilder<LMesswert>( | 268 new QueryBuilder<Messwert>( |
276 repository.entityManager("land"), LMesswert.class); | 269 repository.entityManager("land"), Messwert.class); |
277 wertBuilder.and("messungsId", m.getId()); | 270 wertBuilder.and("messungsId", m.getId()); |
278 Response messw = repository.filter(wertBuilder.getQuery(), "land"); | 271 Response messw = repository.filter(wertBuilder.getQuery(), "land"); |
279 List<LMesswert> werte = (List<LMesswert>)messw.getData(); | 272 List<Messwert> werte = (List<Messwert>)messw.getData(); |
280 QueryBuilder<LKommentarM> kommBuilder = | 273 QueryBuilder<KommentarM> kommBuilder = |
281 new QueryBuilder<LKommentarM>( | 274 new QueryBuilder<KommentarM>( |
282 repository.entityManager("land"), LKommentarM.class); | 275 repository.entityManager("land"), KommentarM.class); |
283 kommBuilder.and("messungsId", m.getId()); | 276 kommBuilder.and("messungsId", m.getId()); |
284 Response kommentar = repository.filter(kommBuilder.getQuery(), "land"); | 277 Response kommentar = repository.filter(kommBuilder.getQuery(), "land"); |
285 List<LKommentarM> kommentare = (List<LKommentarM>)kommentar.getData(); | 278 List<KommentarM> kommentare = (List<KommentarM>)kommentar.getData(); |
286 laf += lafLine("MESSUNGS_ID", m.getId().toString()); | 279 laf += lafLine("MESSUNGS_ID", m.getId().toString()); |
287 laf += lafLine("NEBENPROBENNUMMER", m.getNebenprobenNr()); | 280 laf += lafLine("NEBENPROBENNUMMER", m.getNebenprobenNr()); |
288 laf += m.getMesszeitpunkt() == null ? | 281 laf += m.getMesszeitpunkt() == null ? |
289 "" : lafLine( | 282 "" : lafLine( |
290 "MESS_DATUM_UHRZEIT", | 283 "MESS_DATUM_UHRZEIT", |
291 format.format(m.getMesszeitpunkt())); | 284 format.format(m.getMesszeitpunkt())); |
292 laf += m.getMessdauer() == null ? | 285 laf += m.getMessdauer() == null ? |
293 "" : lafLine("MESSZEIT_SEKUNDEN", m.getMessdauer().toString()); | 286 "" : lafLine("MESSZEIT_SEKUNDEN", m.getMessdauer().toString()); |
294 laf += m.getMmtId() == null ? | 287 laf += m.getMmtId() == null ? |
295 "" : lafLine("MESSMETHODE_S", m.getMmtId()); | 288 "" : lafLine("MESSMETHODE_S", m.getMmtId()); |
296 for (LMesswert mw : werte) { | 289 for (Messwert mw : werte) { |
297 laf += writeMesswert(mw); | 290 laf += writeMesswert(mw); |
298 } | 291 } |
299 for (LKommentarM mk: kommentare) { | 292 for (KommentarM mk: kommentare) { |
300 laf += writeKommentar(mk); | 293 laf += writeKommentar(mk); |
301 } | 294 } |
302 } | 295 } |
303 return laf; | 296 return laf; |
304 } | 297 } |
306 /** | 299 /** |
307 * Write {@link LKommentarM} attributes. | 300 * Write {@link LKommentarM} attributes. |
308 * @param mk The {@link LKommentarM} object. | 301 * @param mk The {@link LKommentarM} object. |
309 * @return Single LAF line. | 302 * @return Single LAF line. |
310 */ | 303 */ |
311 private String writeKommentar(LKommentarM mk) { | 304 private String writeKommentar(KommentarM mk) { |
312 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); | 305 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); |
313 String value = "\"" + mk.getErzeuger() + "\" " + | 306 String value = "\"" + mk.getMstId() + "\" " + |
314 format.format(mk.getDatum()) + " " + | 307 format.format(mk.getDatum()) + " " + |
315 "\"" + mk.getText() + "\""; | 308 "\"" + mk.getText() + "\""; |
316 return lafLine("KOMMENTAR", value); | 309 return lafLine("KOMMENTAR", value); |
317 } | 310 } |
318 | 311 |
320 * Write {@link LMesswert} attributes. | 313 * Write {@link LMesswert} attributes. |
321 * @param mw The {@link LMesswert} object. | 314 * @param mw The {@link LMesswert} object. |
322 * @return Single LAF line. | 315 * @return Single LAF line. |
323 */ | 316 */ |
324 @SuppressWarnings("unchecked") | 317 @SuppressWarnings("unchecked") |
325 private String writeMesswert(LMesswert mw) { | 318 private String writeMesswert(Messwert mw) { |
326 QueryBuilder<Messgroesse> builder = | 319 QueryBuilder<Messgroesse> builder = |
327 new QueryBuilder<Messgroesse>( | 320 new QueryBuilder<Messgroesse>( |
328 repository.entityManager("stamm"), | 321 repository.entityManager("stamm"), |
329 Messgroesse.class); | 322 Messgroesse.class); |
330 builder.and("id", mw.getMessgroesseId()); | 323 builder.and("id", mw.getMessgroesseId()); |