# HG changeset patch # User Raimund Renkert # Date 1430153442 -7200 # Node ID cdcb7a141529a7a0161f5490adf883fad8881b8b # Parent 93076cf1af9736e6703eea3209e73283b200353a Added new query config for messprogramme and serve it via QueryService. diff -r 93076cf1af97 -r cdcb7a141529 src/main/java/de/intevation/lada/query/QueryTools.java --- a/src/main/java/de/intevation/lada/query/QueryTools.java Mon Apr 27 18:48:59 2015 +0200 +++ b/src/main/java/de/intevation/lada/query/QueryTools.java Mon Apr 27 18:50:42 2015 +0200 @@ -32,16 +32,17 @@ */ public class QueryTools { - private static String FILE = "/queryconf.json"; + private static String PROBE_CONFIG = "/probequery.json"; + private static String MESSPROGRAMM_CONFIG = "/messprogrammquery.json"; /** * Read the config file using the system property * "de.intevation.lada.sqlconfig". * * @return The file content. */ - public static String readConfigFile() { + public static String readConfigFile(String file) { try { - InputStream inputStream = QueryConfig.class.getResourceAsStream(FILE); + InputStream inputStream = QueryConfig.class.getResourceAsStream(file); int ch; StringBuilder builder = new StringBuilder(); while((ch = inputStream.read()) != -1) { @@ -62,8 +63,8 @@ * * @return List of {@link QueryConfig} objects. */ - public static List getConfig() { - String content = readConfigFile(); + private static List getConfig(String file) { + String content = readConfigFile(file); if (content == null) { return null; } @@ -111,6 +112,14 @@ return configs; } + public static List getProbeConfig() { + return getConfig(PROBE_CONFIG); + } + + public static List getMessprogrammConfig() { + return getConfig(MESSPROGRAMM_CONFIG); + } + /** * Get a query by id. * First reads the config file and returns the {@link QueryConfig} @@ -121,7 +130,7 @@ */ public static JsonObject getQueryById(String id) { try { - String content = readConfigFile(); + String content = readConfigFile(PROBE_CONFIG); if (content != null) { JsonReader reader = Json.createReader(new StringReader(content)); JsonArray queries = reader.readArray(); @@ -171,4 +180,24 @@ } return ret; } + + public static JsonObject getMpQueryById(String id) { + try { + String content = readConfigFile(MESSPROGRAMM_CONFIG); + if (content != null) { + JsonReader reader = Json.createReader(new StringReader(content)); + JsonArray queries = reader.readArray(); + for (int i = 0; i < queries.size(); i++) { + JsonObject query = queries.getJsonObject(i); + if (query.getString("id").equals(id)) { + return query; + } + } + } + return null; + } + catch (JsonException e) { + return null; + } + } } diff -r 93076cf1af97 -r cdcb7a141529 src/main/java/de/intevation/lada/rest/QueryService.java --- a/src/main/java/de/intevation/lada/rest/QueryService.java Mon Apr 27 18:48:59 2015 +0200 +++ b/src/main/java/de/intevation/lada/rest/QueryService.java Mon Apr 27 18:50:42 2015 +0200 @@ -51,11 +51,22 @@ public class QueryService { /** - * Request all configured queries. + * Request all configured probe queries. */ @GET + @Path("/probe") @Produces("application/json") - public Response get() { - return new Response(true, 200, QueryTools.getConfig()); + public Response getProbe() { + return new Response(true, 200, QueryTools.getProbeConfig()); + } + + /** + * Request all configured messprogramm queries. + */ + @GET + @Path("/messprogramm") + @Produces("application/json") + public Response getMessprogramm() { + return new Response(true, 200, QueryTools.getMessprogrammConfig()); } } diff -r 93076cf1af97 -r cdcb7a141529 src/main/resources/messprogrammquery.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/resources/messprogrammquery.json Mon Apr 27 18:50:42 2015 +0200 @@ -0,0 +1,14 @@ +[ +{ "id": "1", + "name": "Kein Filter", + "description": "Abfrage der Messprogramme ohne Filter", + "sql": "select m.id as id, m.name as name, m.mst_id as mstId, m.umw_id as umwId from land.messprogramm m", + "result": [ + {"dataIndex": "name", "header": "Name", "width": 100}, + {"dataIndex": "mstId", "header": "MST", "width": 100}, + {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100} + ], + "filters": [ + ] +} +] diff -r 93076cf1af97 -r cdcb7a141529 src/main/resources/probequery.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/resources/probequery.json Mon Apr 27 18:50:42 2015 +0200 @@ -0,0 +1,80 @@ +[ +{ "id": "1", + "name": "Kein Filter", + "description": "Abfrage der Proben ohne Filter", + "sql": "select p.id as id, pt.probe_id_alt as probeId, p.mst_id as mstId, p.umw_id as umwId from land.probe p join land.probe_translation pt on p.id = pt.probe_id", + "result": [ + {"dataIndex": "probeId", "header": "ProbeId", "width": 100}, + {"dataIndex": "mstId", "header": "MST", "width": 100}, + {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100} + ], + "filters": [ + ] +}, +{ "id": "2", + "name": "MST und UMW", + "description": "Abfrage der Proben gefiltert nach Messtellen ID und ID des Umweltbereichs", + "sql": "select p.id as id, pt.probe_id_alt as probeId, p.mst_id as mstId, p.umw_id as umwId from land.probe p join land.probe_translation pt on p.id = pt.probe_id where (p.mst_id = :mst_id OR '' = :mst_id) and (p.umw_id = :umw_id OR '' = :umw_id)", + "result": [ + {"dataIndex": "probeId", "header": "ProbeId", "width": 100}, + {"dataIndex": "mstId", "header": "MST", "width": 100}, + {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100} + ], + "filters": [ + {"dataIndex": "mst_id", "type": "listmst", "label": "Messstelle"}, + {"dataIndex": "umw_id", "type": "listumw", "label": "Umweltbereich"} + ] +}, +{ "id": "3", + "name": "Proben pro Land", + "description": "Proben gefiltert nach Ländern", + "sql": "select p.id as id, pt.probe_id_alt as probeId, p.netzbetreiber_id as netzbetreiberId, p.mst_id as mstId, p.umw_id as umwId, p.hauptproben_nr as hauptprobenNr from land.probe p join land.probe_translation pt on p.id = pt.probe_id where (netzbetreiber_id = :netz OR '' = :netz)", + "result": [ + {"dataIndex": "probeId", "header": "ProbeId", "width": 100}, + {"dataIndex": "netzbetreiberId", "header": "Land", "width": 100}, + {"dataIndex": "mstId", "header": "MST", "width": 100}, + {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100}, + {"dataIndex": "hauptprobenNr", "header": "Proben-Nr", "width": 100} + ], + "filters": [ + {"dataIndex": "netz", "type": "listnetz", "label": "Land"} + ] +}, +{ "id": "4", + "name": "alle Proben mit Ort", + "description": "alle Proben mit Entnahmeort", + "sql": "select p.id as id, p.netzbetreiber_id as netzbetreiberId, p.mst_id as mstId, p.umw_id as umwId, p.hauptproben_nr as hauptprobenNr, so.gem_id as gemId, v.bezeichnung as bezeichnung from land.probe p left outer join land.ort o on (p.id = o.probe_id) left outer join stammdaten.ort so on (o.ort_id = so.id) left outer join stammdaten.verwaltungseinheit v on (so.gem_id = v.id) where o.orts_typ = 'E' or o.orts_typ is null", + "result": [ + {"dataIndex": "probeId", "header": "ProbeId", "width": 100}, + {"dataIndex": "netzbetreiberId", "header": "Land", "width": 50}, + {"dataIndex": "mstId", "header": "MST", "width": 60}, + {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100}, + {"dataIndex": "hauptprobenNr", "header": "Proben-Nr", "width": 100}, + {"dataIndex": "gemId", "header": "Gem-ID", "width": 100}, + {"dataIndex": "bezeichnung", "header": "Gemeinde", "flex": 1} + ], + "filters": [ + ] +}, +{ "id": "5", + "name": "Proben pro Land und UMW (Multiselect)", + "description": "Abfrage aller Proben gefiltert pro Land und Umweltbereich (mit Mehrfachauswahl)", + "sql": "select p.id as id, pt.probe_id_alt as probeId, p.netzbetreiber_id as netzbetreiberId, p.mst_id as mstId, to_char(p.probeentnahme_beginn,'YYYY-mm-dd HH24:MI') entnahmeVon, to_char(p.probeentnahme_ende,'YYYY-mm-dd HH24:MI') entnahmeBis, p.umw_id as umwId, p.hauptproben_nr as hauptprobenNr, o.orts_typ as ortsTyp, so.gem_id as gemId, v.bezeichnung as bezeichnung from land.probe p join land.probe_translation pt on p.id = pt.probe_id left outer join land.ort o on (p.id = o.probe_id) left outer join stammdaten.ort so on (o.ort_id = so.id) left outer join stammdaten.verwaltungseinheit v on (so.gem_id = v.id) where (o.orts_typ = 'E' or o.orts_typ is null) and (p.netzbetreiber_id = :netz OR '' =:netz) and (p.umw_id similar to (:umw_id) OR '' = :umw_id)", + "result": [ + {"dataIndex": "probeId", "header": "ProbeId", "width": 100}, + {"dataIndex": "netzbetreiberId", "header": "Land", "width": 50}, + {"dataIndex": "mstId", "header": "MST", "width": 50}, + {"dataIndex": "entnahmeVon", "header": "Entnahme von", "width": 120}, + {"dataIndex": "entnahmeBis", "header": "Entnahme bis", "width": 120}, + {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100}, + {"dataIndex": "hauptprobenNr", "header": "Proben-Nr", "width": 100}, + {"dataIndex": "ortsTyp", "header": "Ortstyp", "width": 50}, + {"dataIndex": "genId", "header": "Gemeinde-ID", "width": 100}, + {"dataIndex": "bezeichnung", "header": "Gemeinde", "flex": 1} + ], + "filters": [ + {"dataIndex": "netz", "type": "listnetz", "label": "Land"}, + {"dataIndex": "umw_id", "type": "listumw", "label": "Umweltbereich", "multiselect":true} + ] +} +] diff -r 93076cf1af97 -r cdcb7a141529 src/main/resources/queryconf.json --- a/src/main/resources/queryconf.json Mon Apr 27 18:48:59 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -[ -{ "id": "1", - "name": "Kein Filter", - "description": "Abfrage der Proben ohne Filter", - "sql": "select p.id as id, pt.probe_id_alt as probeId, p.mst_id as mstId, p.umw_id as umwId from land.probe p join land.probe_translation pt on p.id = pt.probe_id", - "result": [ - {"dataIndex": "probeId", "header": "ProbeId", "width": 100}, - {"dataIndex": "mstId", "header": "MST", "width": 100}, - {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100} - ], - "filters": [ - ] -}, -{ "id": "2", - "name": "MST und UMW", - "description": "Abfrage der Proben gefiltert nach Messtellen ID und ID des Umweltbereichs", - "sql": "select p.id as id, pt.probe_id_alt as probeId, p.mst_id as mstId, p.umw_id as umwId from land.probe p join land.probe_translation pt on p.id = pt.probe_id where (p.mst_id = :mst_id OR '' = :mst_id) and (p.umw_id = :umw_id OR '' = :umw_id)", - "result": [ - {"dataIndex": "probeId", "header": "ProbeId", "width": 100}, - {"dataIndex": "mstId", "header": "MST", "width": 100}, - {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100} - ], - "filters": [ - {"dataIndex": "mst_id", "type": "listmst", "label": "Messstelle"}, - {"dataIndex": "umw_id", "type": "listumw", "label": "Umweltbereich"} - ] -}, -{ "id": "3", - "name": "Proben pro Land", - "description": "Proben gefiltert nach Ländern", - "sql": "select p.id as id, pt.probe_id_alt as probeId, p.netzbetreiber_id as netzbetreiberId, p.mst_id as mstId, p.umw_id as umwId, p.hauptproben_nr as hauptprobenNr from land.probe p join land.probe_translation pt on p.id = pt.probe_id where (netzbetreiber_id = :netz OR '' = :netz)", - "result": [ - {"dataIndex": "probeId", "header": "ProbeId", "width": 100}, - {"dataIndex": "netzbetreiberId", "header": "Land", "width": 100}, - {"dataIndex": "mstId", "header": "MST", "width": 100}, - {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100}, - {"dataIndex": "hauptprobenNr", "header": "Proben-Nr", "width": 100} - ], - "filters": [ - {"dataIndex": "netz", "type": "listnetz", "label": "Land"} - ] -}, -{ "id": "4", - "name": "alle Proben mit Ort", - "description": "alle Proben mit Entnahmeort", - "sql": "select p.id as id, p.netzbetreiber_id as netzbetreiberId, p.mst_id as mstId, p.umw_id as umwId, p.hauptproben_nr as hauptprobenNr, so.gem_id as gemId, v.bezeichnung as bezeichnung from land.probe p left outer join land.ort o on (p.id = o.probe_id) left outer join stammdaten.ort so on (o.ort_id = so.id) left outer join stammdaten.verwaltungseinheit v on (so.gem_id = v.id) where o.orts_typ = 'E' or o.orts_typ is null", - "result": [ - {"dataIndex": "probeId", "header": "ProbeId", "width": 100}, - {"dataIndex": "netzbetreiberId", "header": "Land", "width": 50}, - {"dataIndex": "mstId", "header": "MST", "width": 60}, - {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100}, - {"dataIndex": "hauptprobenNr", "header": "Proben-Nr", "width": 100}, - {"dataIndex": "gemId", "header": "Gem-ID", "width": 100}, - {"dataIndex": "bezeichnung", "header": "Gemeinde", "flex": 1} - ], - "filters": [ - ] -}, -{ "id": "5", - "name": "Proben pro Land und UMW (Multiselect)", - "description": "Abfrage aller Proben gefiltert pro Land und Umweltbereich (mit Mehrfachauswahl)", - "sql": "select p.id as id, pt.probe_id_alt as probeId, p.netzbetreiber_id as netzbetreiberId, p.mst_id as mstId, to_char(p.probeentnahme_beginn,'YYYY-mm-dd HH24:MI') entnahmeVon, to_char(p.probeentnahme_ende,'YYYY-mm-dd HH24:MI') entnahmeBis, p.umw_id as umwId, p.hauptproben_nr as hauptprobenNr, o.orts_typ as ortsTyp, so.gem_id as gemId, v.bezeichnung as bezeichnung from land.probe p join land.probe_translation pt on p.id = pt.probe_id left outer join land.ort o on (p.id = o.probe_id) left outer join stammdaten.ort so on (o.ort_id = so.id) left outer join stammdaten.verwaltungseinheit v on (so.gem_id = v.id) where (o.orts_typ = 'E' or o.orts_typ is null) and (p.netzbetreiber_id = :netz OR '' =:netz) and (p.umw_id similar to (:umw_id) OR '' = :umw_id)", - "result": [ - {"dataIndex": "probeId", "header": "ProbeId", "width": 100}, - {"dataIndex": "netzbetreiberId", "header": "Land", "width": 50}, - {"dataIndex": "mstId", "header": "MST", "width": 50}, - {"dataIndex": "entnahmeVon", "header": "Entnahme von", "width": 120}, - {"dataIndex": "entnahmeBis", "header": "Entnahme bis", "width": 120}, - {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100}, - {"dataIndex": "hauptprobenNr", "header": "Proben-Nr", "width": 100}, - {"dataIndex": "ortsTyp", "header": "Ortstyp", "width": 50}, - {"dataIndex": "genId", "header": "Gemeinde-ID", "width": 100}, - {"dataIndex": "bezeichnung", "header": "Gemeinde", "flex": 1} - ], - "filters": [ - {"dataIndex": "netz", "type": "listnetz", "label": "Land"}, - {"dataIndex": "umw_id", "type": "listumw", "label": "Umweltbereich", "multiselect":true} - ] -} -]