Mercurial > dive4elements > river
changeset 6893:60f39ee19473
ETL: Potential fix for flys/1453.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Wed, 21 Aug 2013 16:13:36 +0200 |
parents | e97e710ecf3f |
children | 389bf6b7d371 |
files | etl/src/main/java/org/dive4elements/river/etl/aft/River.java etl/src/main/resources/sql/flys-common.properties gwt-client/src/main/java/org/dive4elements/river/client/server/filter/GGInAFilter.java |
diffstat | 3 files changed, 34 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/etl/src/main/java/org/dive4elements/river/etl/aft/River.java Wed Aug 21 15:46:39 2013 +0200 +++ b/etl/src/main/java/org/dive4elements/river/etl/aft/River.java Wed Aug 21 16:13:36 2013 +0200 @@ -15,9 +15,11 @@ import java.sql.SQLException; import java.util.ArrayList; +import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.TreeMap; import org.apache.log4j.Logger; @@ -136,11 +138,25 @@ .clearParameters() .setInt("river_id", id1).executeQuery(); + TreeMap<Double, String> station2gaugeName = new TreeMap<Double, String>( + new Comparator<Double>() { + @Override + public int compare(Double a, Double b) { + double diff = a - b; + if (diff < -0.0001) return -1; + if (diff > 0.0001) return +1; + return 0; + } + }); + try { while (gaugesRs.next()) { int gaugeId = gaugesRs.getInt("id"); String name = gaugesRs.getString("name"); long number = gaugesRs.getLong("official_number"); + double station = gaugesRs.getDouble("station"); + station2gaugeName.put(station, name); + if (gaugesRs.wasNull()) { log.warn("FLYS: Gauge '" + name + "' has no official number. Ignored."); @@ -163,7 +179,8 @@ gaugesRs.close(); } - boolean modified = createGauges(context, aftDIPSGauges); + boolean modified = createGauges( + context, aftDIPSGauges, station2gaugeName); modified |= updateGauges(context, updateGauges); @@ -364,7 +381,8 @@ protected boolean createGauges( SyncContext context, - Map<Long, DIPSGauge> gauges + Map<Long, DIPSGauge> gauges, + Map<Double, String> station2gaugeName ) throws SQLException { @@ -385,6 +403,14 @@ log.info("Gauge '" + gauge.getAftName() + "' not in FLYS but in AFT/DIPS. -> Create"); + String flysGaugeName = station2gaugeName.get(gauge.getStation()); + if (flysGaugeName != null) { + log.warn("FLYS: AFT gauge " + gauge.getName() + + " has same station as FLYS gauge " + flysGaugeName + + " -> ignored."); + continue; + } + if (!gauge.hasDatums()) { log.warn("DIPS: Gauge '" + gauge.getAftName() + "' has no datum. Ignored.");
--- a/etl/src/main/resources/sql/flys-common.properties Wed Aug 21 15:46:39 2013 +0200 +++ b/etl/src/main/resources/sql/flys-common.properties Wed Aug 21 16:13:36 2013 +0200 @@ -7,7 +7,7 @@ WHERE w.kind = 0 \ GROUP BY r.id, r.name select.gauges = \ - SELECT id, name, official_number \ + SELECT id, name, official_number, station \ FROM gauges \ WHERE river_id = :river_id next.gauge.id = \
--- a/gwt-client/src/main/java/org/dive4elements/river/client/server/filter/GGInAFilter.java Wed Aug 21 15:46:39 2013 +0200 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/server/filter/GGInAFilter.java Wed Aug 21 16:13:36 2013 +0200 @@ -99,11 +99,11 @@ logger.debug("Request for: " + requesturi); // Allow access to localhost - if (isLocalAddress(req)) { - logger.debug("Request to localhost"); - chain.doFilter(req, resp); - return; - } + //if (isLocalAddress(req)) { + // logger.debug("Request to localhost"); + // chain.doFilter(req, resp); + // return; + //} // Allow access to login pages String path = this.sc.getContextPath();