Mercurial > lada > lada-server
changeset 1157:35e15ff43a3b
Added plaintext attributes to json export.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Tue, 08 Nov 2016 16:55:14 +0100 |
parents | 07631488e9c0 |
children | 3d1b7b1586a8 |
files | src/main/java/de/intevation/lada/exporter/json/JsonExporter.java |
diffstat | 1 files changed, 102 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/exporter/json/JsonExporter.java Tue Nov 08 16:02:00 2016 +0100 +++ b/src/main/java/de/intevation/lada/exporter/json/JsonExporter.java Tue Nov 08 16:55:14 2016 +0100 @@ -32,10 +32,19 @@ import de.intevation.lada.model.land.Probe; import de.intevation.lada.model.land.StatusProtokoll; import de.intevation.lada.model.land.ZusatzWert; +import de.intevation.lada.model.stammdaten.Datenbasis; import de.intevation.lada.model.stammdaten.Deskriptoren; +import de.intevation.lada.model.stammdaten.MessEinheit; +import de.intevation.lada.model.stammdaten.MessMethode; import de.intevation.lada.model.stammdaten.MessStelle; +import de.intevation.lada.model.stammdaten.Messgroesse; +import de.intevation.lada.model.stammdaten.MessprogrammKategorie; import de.intevation.lada.model.stammdaten.Ort; +import de.intevation.lada.model.stammdaten.Probenart; +import de.intevation.lada.model.stammdaten.Staat; import de.intevation.lada.model.stammdaten.StatusKombi; +import de.intevation.lada.model.stammdaten.Umwelt; +import de.intevation.lada.model.stammdaten.Verwaltungseinheit; import de.intevation.lada.util.annotation.RepositoryConfig; import de.intevation.lada.util.auth.UserInfo; import de.intevation.lada.util.data.QueryBuilder; @@ -96,6 +105,29 @@ private JsonNode addSubObjects(JsonNode proben) { for (int i = 0; i < proben.size(); i++) { + ObjectNode probe = (ObjectNode)proben.get(i); + Probenart art = repository.getByIdPlain( + Probenart.class, + probe.get("probenartId").asInt(), + "stamm"); + Datenbasis datenbasis = repository.getByIdPlain( + Datenbasis.class, + probe.get("datenbasisId").asInt(), + "stamm"); + MessprogrammKategorie mpl = repository.getByIdPlain( + MessprogrammKategorie.class, + probe.get("mplId").asInt(), + "stamm"); + Umwelt umw = repository.getByIdPlain( + Umwelt.class, + probe.get("umwId").asText(), + "stamm"); + probe.put("probenart", + art == null ? "" : art.getProbenart()); + probe.put("datenbasis", + datenbasis == null ? "" : datenbasis.getDatenbasis()); + probe.put("mpl", mpl == null ? "" : mpl.getCode()); + probe.put("umw", umw == null ? "" : umw.getUmweltBereich()); addMessungen(proben.get(i)); addKommentare(proben.get(i)); addZusatzwerte(proben.get(i)); @@ -111,11 +143,18 @@ MessStelle.class, node.get("mstId").asText(), "stamm"); + MessStelle laborMessstelle = repository.getByIdPlain( + MessStelle.class, + node.get("laborMstId").asText(), + "stamm"); final ObjectMapper mapper = new ObjectMapper(); try { String tmp = mapper.writeValueAsString(messstelle); + String tmp2 = mapper.writeValueAsString(laborMessstelle); JsonNode nodes = mapper.readTree(tmp); + JsonNode nodes2 = mapper.readTree(tmp2); ((ObjectNode)node).set("messstelle", nodes); + ((ObjectNode)node).set("labormessstelle", nodes2); } catch (IOException e) { logger.debug("Could not export Messstelle for Probe " + node.get("idAlt").asText()); @@ -134,6 +173,12 @@ String tmp = mapper.writeValueAsString(messungen); JsonNode nodes = mapper.readTree(tmp); for (int i = 0; i < nodes.size(); i++) { + MessMethode mmt = repository.getByIdPlain( + MessMethode.class, + nodes.get(i).get("mmtId").asText(), + "stamm"); + ((ObjectNode)nodes.get(i)).put("mmt", + mmt == null ? "" : mmt.getMessmethode()); addMesswerte(nodes.get(i)); addMessungsKommentare(nodes.get(i)); addStatusProtokoll(nodes.get(i)); @@ -157,6 +202,15 @@ try { String tmp = mapper.writeValueAsString(kommentare); JsonNode nodes = mapper.readTree(tmp); + for (int i = 0; i < nodes.size(); i++) { + MessStelle mst = repository.getByIdPlain( + MessStelle.class, + nodes.get(i).get("mstId").asText(), + "stamm"); + ((ObjectNode)nodes.get(i)).put( + "mst", + mst.getMessStelle()); + } ((ObjectNode)probe).set("kommentare", nodes); } catch (IOException e) { logger.debug("Could not export Kommentare for Probe " @@ -228,6 +282,20 @@ try { String tmp = mapper.writeValueAsString(messwerte); JsonNode nodes = mapper.readTree(tmp); + for (int i = 0; i < nodes.size(); i++) { + MessEinheit meh = repository.getByIdPlain( + MessEinheit.class, + nodes.get(i).get("mehId").asInt(), + "stamm"); + ((ObjectNode)nodes.get(i)).put("meh", + meh == null ? "" : meh.getEinheit()); + Messgroesse mg = repository.getByIdPlain( + Messgroesse.class, + nodes.get(i).get("messgroesseId").asInt(), + "stamm"); + ((ObjectNode)nodes.get(i)).put("messgroesse", + mg == null ? "" : mg.getMessgroesse()); + } ((ObjectNode)node).set("messwerte", nodes); } catch (IOException e) { logger.debug("Could not export Messwerte for Messung " @@ -247,6 +315,15 @@ try { String tmp = mapper.writeValueAsString(kommentare); JsonNode nodes = mapper.readTree(tmp); + for (int i = 0; i < nodes.size(); i++) { + MessStelle mst = repository.getByIdPlain( + MessStelle.class, + nodes.get(i).get("mstId").asText(), + "stamm"); + ((ObjectNode)nodes.get(i)).put( + "mst", + mst.getMessStelle()); + } ((ObjectNode)node).set("kommentare", nodes); } catch (IOException e) { logger.debug("Could not export Kommentare for Messung " @@ -277,6 +354,13 @@ ((ObjectNode)nodes.get(i)).put( "statusWert", kombi.getStatusWert().getWert()); + MessStelle mst = repository.getByIdPlain( + MessStelle.class, + nodes.get(i).get("mstId").asText(), + "stamm"); + ((ObjectNode)nodes.get(i)).put( + "mst", + mst.getMessStelle()); } ((ObjectNode)node).set("statusprotokoll", nodes); } catch (IOException e) { @@ -308,18 +392,27 @@ } private void addOrt(JsonNode node) { - QueryBuilder<Ort> builder = new QueryBuilder<Ort>( - repository.entityManager("stamm"), - Ort.class - ); - builder.and("id", node.get("ortId").asInt()); - List<Ort> ort= - repository.filterPlain(builder.getQuery(), "stamm"); + Ort ort = repository.getByIdPlain( + Ort.class, + node.get("ortId").asInt(), + "stamm"); final ObjectMapper mapper = new ObjectMapper(); try { String tmp = mapper.writeValueAsString(ort); - JsonNode nodes = mapper.readTree(tmp); - ((ObjectNode)node).set("ort", nodes); + JsonNode oNode = mapper.readTree(tmp); + Verwaltungseinheit ve = repository.getByIdPlain( + Verwaltungseinheit.class, + oNode.get("gemId").asText(), + "stamm"); + ((ObjectNode)oNode).put("gem", + ve == null ? "" : ve.getBezeichnung()); + Staat staat = repository.getByIdPlain( + Staat.class, + oNode.get("staatId").asInt(), + "stamm"); + ((ObjectNode)oNode).put("staat", + staat == null ? "" : staat.getStaat()); + ((ObjectNode)node).set("ort", oNode); } catch (IOException e) { logger.debug("Could not export Ort for Ortszuordnung " + node.get("id").asText());