Mercurial > dive4elements > river
diff flys-aft/src/main/java/de/intevation/aft/River.java @ 4085:067341e86375
Separate FLYS gauges to be updated or to create.
flys-aft/trunk@3523 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 22 Dec 2011 12:07:29 +0000 |
parents | 9178beeb7b05 |
children | aad1886ea226 |
line wrap: on
line diff
--- a/flys-aft/src/main/java/de/intevation/aft/River.java Wed Dec 21 15:16:58 2011 +0000 +++ b/flys-aft/src/main/java/de/intevation/aft/River.java Thu Dec 22 12:07:29 2011 +0000 @@ -1,5 +1,8 @@ package de.intevation.aft; +import java.util.List; +import java.util.ArrayList; +import java.util.HashMap; import java.util.Map; import java.sql.ResultSet; @@ -42,6 +45,10 @@ .clearParameters() .setInt("GEWAESSER_NR", id2).executeQuery(); + String riverName = getName(); + + Map<Long, DIPSGauge> aftDIPSGauges = new HashMap<Long, DIPSGauge>(); + while (messstellenRs.next()) { String name = messstellenRs.getString("NAME"); String num = messstellenRs.getString("MESSSTELLE_NR"); @@ -51,14 +58,29 @@ continue; } DIPSGauge dipsGauge = dipsGauges.get(number); - if (dipsGauges == null) { - log.warn("MESSSTELLE '" + name + "' not found in DIPS."); + if (dipsGauge == null) { + log.warn( + "MESSSTELLE '" + name + "' not found in DIPS. " + + "Gauge number used for lookup: " + number); continue; } + String gaugeRiver = dipsGauge.getRiverName(); + if (!gaugeRiver.equalsIgnoreCase(riverName)) { + log.warn( + "MESSSTELLE '" + name + + "' is assigned to river '" + gaugeRiver + + "'. Needs to be on '" + riverName + "'."); + continue; + } + dipsGauge.setAftName(name); + aftDIPSGauges.put(number, dipsGauge); } messstellenRs.close(); + + List<DIPSGauge> updateGauges = new ArrayList<DIPSGauge>(); + ResultSet gaugesRs = flysStatements .getStatement("select.gauges") .clearParameters() @@ -67,10 +89,31 @@ while (gaugesRs.next()) { int gaugeId = gaugesRs.getInt("id"); String name = gaugesRs.getString("name"); + long number = gaugesRs.getLong("official_number"); + if (gaugesRs.wasNull()) { + log.warn("FLYS: Gauge '" + name + + "' has no official number. Ignored."); + continue; + } + Long key = Long.valueOf(number); + DIPSGauge aftDIPSGauge = aftDIPSGauges.remove(key); + if (aftDIPSGauge == null) { + log.warn("FLYS: Gauge '" + name + "' number " + number + + " is not found in AFT/DIPS."); + continue; + } + aftDIPSGauge.setFlysId(gaugeId); + log.info("Gauge '" + name + + "' found in FLYS, AFT and DIPS. -> Update"); + updateGauges.add(aftDIPSGauge); } gaugesRs.close(); + for (DIPSGauge gauge: aftDIPSGauges.values()) { + log.info("Gauge '" + gauge.getAftName() + + "' not in FLYS but in AFT/DIPS. -> Create"); + } } public String toString() {