# HG changeset patch # User Raimund Renkert # Date 1478620514 -3600 # Node ID 35e15ff43a3b55e8baf62f4b2e8e672c7a1901f9 # Parent 07631488e9c00c371fbbd810694f98993d176013 Added plaintext attributes to json export. diff -r 07631488e9c0 -r 35e15ff43a3b src/main/java/de/intevation/lada/exporter/json/JsonExporter.java --- 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 builder = new QueryBuilder( - repository.entityManager("stamm"), - Ort.class - ); - builder.and("id", node.get("ortId").asInt()); - List 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());