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());
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)