Mercurial > dive4elements > river
annotate etl/src/main/java/org/dive4elements/river/etl/aft/River.java @ 9801:1d7a72a50183 3.2.x tip
Assume Compose V2, consistently
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 23 Nov 2023 10:14:13 +0100 |
parents | 0a5239a1e46e |
children |
rev | line source |
---|---|
5841
8bd9b551456c
Added header to Java files in ETL process.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
8bd9b551456c
Added header to Java files in ETL process.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
8bd9b551456c
Added header to Java files in ETL process.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5991
6f80d5f375fd
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5990
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5841
8bd9b551456c
Added header to Java files in ETL process.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5991
6f80d5f375fd
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5990
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5841
8bd9b551456c
Added header to Java files in ETL process.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
8bd9b551456c
Added header to Java files in ETL process.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5826
9438e9259213
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5825
diff
changeset
|
9 package org.dive4elements.river.etl.aft; |
4075
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 |
5826
9438e9259213
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5825
diff
changeset
|
11 import org.dive4elements.river.etl.db.ConnectedStatements; |
9438e9259213
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5825
diff
changeset
|
12 import org.dive4elements.river.etl.db.SymbolicStatement; |
4078
0944cdd2ee90
Load DIPS XML
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4077
diff
changeset
|
13 |
4076
039413d7e394
Load gauges from both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4075
diff
changeset
|
14 import java.sql.ResultSet; |
4075
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
15 import java.sql.SQLException; |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
16 |
4772
f939e1e6cfa4
Sorted imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4754
diff
changeset
|
17 import java.util.ArrayList; |
6895
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
18 import java.util.Comparator; |
4772
f939e1e6cfa4
Sorted imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4754
diff
changeset
|
19 import java.util.HashMap; |
f939e1e6cfa4
Sorted imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4754
diff
changeset
|
20 import java.util.List; |
f939e1e6cfa4
Sorted imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4754
diff
changeset
|
21 import java.util.Map; |
6895
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
22 import java.util.TreeMap; |
4075
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 |
9726 | 24 import org.apache.logging.log4j.Logger; |
25 import org.apache.logging.log4j.LogManager; | |
4075
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
27 public class River |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 extends IdPair |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
29 { |
9726 | 30 private static Logger log = LogManager.getLogger(River.class); |
4075
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
31 |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 protected String name; |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
33 |
4753
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
34 protected double from; |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
35 protected double to; |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
36 |
4075
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
37 public River() { |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
38 } |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
39 |
4753
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
40 public River(int id1, String name, double from, double to) { |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
41 super(id1); |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
42 this.name = name; |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
43 this.from = from; |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
44 this.to = to; |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
45 } |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
46 |
4075
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
47 public River(int id1, int id2, String name) { |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
48 super(id1, id2); |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
49 this.name = name; |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
50 } |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
51 |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 public String getName() { |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
53 return name; |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
54 } |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
55 |
4753
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
56 public double getFrom() { |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
57 return from; |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
58 } |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
59 |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
60 public void setFrom(double from) { |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
61 this.from = from; |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
62 } |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
63 |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
64 public double getTo() { |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
65 return to; |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
66 } |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
67 |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
68 public void setTo(double to) { |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
69 this.to = to; |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
70 } |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
71 |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
72 public boolean inside(double x) { |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
73 return x >= from && x <= to; |
a310aceb2e51
Fetch calculation range (Berechnungsstrecke) for FLYS rivers, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4736
diff
changeset
|
74 } |
4078
0944cdd2ee90
Load DIPS XML
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4077
diff
changeset
|
75 |
4094
b20b710aa86f
Bubble up modifications up to main().
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4093
diff
changeset
|
76 public boolean sync(SyncContext context) throws SQLException { |
4075
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
77 log.info("sync river: " + this); |
4077
97de7a552b79
Load DIPS XML
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4076
diff
changeset
|
78 |
5188
2b7f44c80857
Stations are now filtered by DiPS not AFT.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4775
diff
changeset
|
79 // Only take relevant gauges into account. |
2b7f44c80857
Stations are now filtered by DiPS not AFT.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4775
diff
changeset
|
80 Map<Long, DIPSGauge> dipsGauges = context.getDIPSGauges(name, from, to); |
4081
7a7b0f0cb653
Check if AFT gauges are in DIPS, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4079
diff
changeset
|
81 |
4077
97de7a552b79
Load DIPS XML
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4076
diff
changeset
|
82 ConnectedStatements flysStatements = context.getFlysStatements(); |
97de7a552b79
Load DIPS XML
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4076
diff
changeset
|
83 ConnectedStatements aftStatements = context.getAftStatements(); |
97de7a552b79
Load DIPS XML
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4076
diff
changeset
|
84 |
4754
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
85 String riverName = getName(); |
7009
60c894b71fed
Another tweak for flys/issue1353: Be more tolerant about river names.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6895
diff
changeset
|
86 String lowerRiverName = riverName.toLowerCase(); |
4754
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
87 |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
88 Map<Long, DIPSGauge> aftDIPSGauges = new HashMap<Long, DIPSGauge>(); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
89 |
4076
039413d7e394
Load gauges from both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4075
diff
changeset
|
90 ResultSet messstellenRs = aftStatements |
039413d7e394
Load gauges from both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4075
diff
changeset
|
91 .getStatement("select.messstelle") |
039413d7e394
Load gauges from both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4075
diff
changeset
|
92 .clearParameters() |
4774
9dcc32fc5167
Moved check for calculation range intersection to SQL statement.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4772
diff
changeset
|
93 .setInt("GEWAESSER_NR", id2) |
9dcc32fc5167
Moved check for calculation range intersection to SQL statement.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4772
diff
changeset
|
94 .executeQuery(); |
4076
039413d7e394
Load gauges from both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4075
diff
changeset
|
95 |
4754
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
96 try { |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
97 while (messstellenRs.next()) { |
4774
9dcc32fc5167
Moved check for calculation range intersection to SQL statement.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4772
diff
changeset
|
98 String name = messstellenRs.getString("NAME"); |
9dcc32fc5167
Moved check for calculation range intersection to SQL statement.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4772
diff
changeset
|
99 String num = messstellenRs.getString("MESSSTELLE_NR"); |
5188
2b7f44c80857
Stations are now filtered by DiPS not AFT.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4775
diff
changeset
|
100 double station = messstellenRs.getDouble("STATIONIERUNG"); |
2b7f44c80857
Stations are now filtered by DiPS not AFT.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4775
diff
changeset
|
101 |
5258
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
102 if (!messstellenRs.wasNull() && !inside(station)) { |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
103 log.warn("Station found in AFT but in not range: " + station); |
5188
2b7f44c80857
Stations are now filtered by DiPS not AFT.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4775
diff
changeset
|
104 continue; |
2b7f44c80857
Stations are now filtered by DiPS not AFT.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4775
diff
changeset
|
105 } |
4754
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
106 |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
107 Long number = SyncContext.numberToLong(num); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
108 if (number == null) { |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
109 log.warn("AFT: Invalid MESSSTELLE_NR for MESSSTELLE '"+name+"'"); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
110 continue; |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
111 } |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
112 DIPSGauge dipsGauge = dipsGauges.get(number); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
113 if (dipsGauge == null) { |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
114 log.warn( |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
115 "DIPS: MESSSTELLE '" + name + "' not found in DIPS. " + |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
116 "Gauge number used for lookup: " + number); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
117 continue; |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
118 } |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
119 String gaugeRiver = dipsGauge.getRiverName(); |
7010 | 120 if (!lowerRiverName.contains(gaugeRiver.toLowerCase())) { |
4754
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
121 log.warn( |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
122 "DIPS: MESSSTELLE '" + name + |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
123 "' is assigned to river '" + gaugeRiver + |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
124 "'. Needs to be on '" + riverName + "'."); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
125 continue; |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
126 } |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
127 dipsGauge.setAftName(name); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
128 dipsGauge.setOfficialNumber(number); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
129 aftDIPSGauges.put(number, dipsGauge); |
4081
7a7b0f0cb653
Check if AFT gauges are in DIPS, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4079
diff
changeset
|
130 } |
4076
039413d7e394
Load gauges from both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4075
diff
changeset
|
131 } |
4754
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
132 finally { |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
133 messstellenRs.close(); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
134 } |
4076
039413d7e394
Load gauges from both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4075
diff
changeset
|
135 |
4085
067341e86375
Separate FLYS gauges to be updated or to create.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4084
diff
changeset
|
136 List<DIPSGauge> updateGauges = new ArrayList<DIPSGauge>(); |
067341e86375
Separate FLYS gauges to be updated or to create.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4084
diff
changeset
|
137 |
4076
039413d7e394
Load gauges from both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4075
diff
changeset
|
138 ResultSet gaugesRs = flysStatements |
039413d7e394
Load gauges from both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4075
diff
changeset
|
139 .getStatement("select.gauges") |
039413d7e394
Load gauges from both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4075
diff
changeset
|
140 .clearParameters() |
039413d7e394
Load gauges from both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4075
diff
changeset
|
141 .setInt("river_id", id1).executeQuery(); |
039413d7e394
Load gauges from both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4075
diff
changeset
|
142 |
6895
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
143 TreeMap<Double, String> station2gaugeName = new TreeMap<Double, String>( |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
144 new Comparator<Double>() { |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
145 @Override |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
146 public int compare(Double a, Double b) { |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
147 double diff = a - b; |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
148 if (diff < -0.0001) return -1; |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
149 if (diff > 0.0001) return +1; |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
150 return 0; |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
151 } |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
152 }); |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
153 |
4754
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
154 try { |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
155 while (gaugesRs.next()) { |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
156 int gaugeId = gaugesRs.getInt("id"); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
157 String name = gaugesRs.getString("name"); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
158 long number = gaugesRs.getLong("official_number"); |
6895
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
159 double station = gaugesRs.getDouble("station"); |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
160 station2gaugeName.put(station, name); |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
161 |
4754
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
162 if (gaugesRs.wasNull()) { |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
163 log.warn("FLYS: Gauge '" + name + |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
164 "' has no official number. Ignored."); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
165 continue; |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
166 } |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
167 Long key = Long.valueOf(number); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
168 DIPSGauge aftDIPSGauge = aftDIPSGauges.remove(key); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
169 if (aftDIPSGauge == null) { |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
170 log.warn("FLYS: Gauge '" + name + "' number " + number + |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
171 " is not found in AFT/DIPS."); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
172 continue; |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
173 } |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
174 aftDIPSGauge.setFlysId(gaugeId); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
175 log.info("Gauge '" + name + |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
176 "' found in FLYS, AFT and DIPS. -> Update"); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
177 updateGauges.add(aftDIPSGauge); |
4085
067341e86375
Separate FLYS gauges to be updated or to create.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4084
diff
changeset
|
178 } |
4076
039413d7e394
Load gauges from both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4075
diff
changeset
|
179 } |
4754
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
180 finally { |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
181 gaugesRs.close(); |
04377ccef10a
AFT: Reject AFT gauges which are not inside the calculation range of the corresponding FLYS river.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4753
diff
changeset
|
182 } |
4076
039413d7e394
Load gauges from both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4075
diff
changeset
|
183 |
6895
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
184 boolean modified = createGauges( |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
185 context, aftDIPSGauges, station2gaugeName); |
4087
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
186 |
4097
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
187 modified |= updateGauges(context, updateGauges); |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
188 |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
189 return modified; |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
190 } |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
191 |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
192 protected boolean updateGauges( |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
193 SyncContext context, |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
194 List<DIPSGauge> gauges |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
195 ) |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
196 throws SQLException |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
197 { |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
198 boolean modified = false; |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
199 |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
200 for (DIPSGauge gauge: gauges) { |
5616
14de791bd8f7
AFT/DIPS/SGM: Do _not_ update current discharge table from AFT.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5480
diff
changeset
|
201 // XXX: Do dont modify the master AT. |
14de791bd8f7
AFT/DIPS/SGM: Do _not_ update current discharge table from AFT.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5480
diff
changeset
|
202 // modified |= updateBfGIdOnMasterDischargeTable(context, gauge); |
4097
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
203 modified |= updateGauge(context, gauge); |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
204 } |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
205 |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
206 return modified; |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
207 } |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
208 |
5258
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
209 protected boolean updateBfGIdOnMasterDischargeTable( |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
210 SyncContext context, |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
211 DIPSGauge gauge |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
212 ) throws SQLException { |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
213 log.info( |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
214 "FLYS: Updating master discharge table bfg_id for '" + |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
215 gauge.getAftName() + "'"); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
216 ConnectedStatements flysStatements = context.getFlysStatements(); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
217 |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
218 ResultSet rs = flysStatements |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
219 .getStatement("select.gauge.master.discharge.table") |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
220 .clearParameters() |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
221 .setInt("gauge_id", gauge.getFlysId()) |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
222 .executeQuery(); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
223 |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
224 int flysId; |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
225 |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
226 try { |
5480
7a68967ca72a
AFT/DIPS: Small fixes and workarounds for Oracle DB problems.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5258
diff
changeset
|
227 if (!rs.next()) { |
5258
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
228 log.error( |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
229 "FLYS: No master discharge table found for gauge '" + |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
230 gauge.getAftName() + "'"); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
231 return false; |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
232 } |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
233 String bfgId = rs.getString("bfg_id"); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
234 if (!rs.wasNull()) { // already has BFG_ID |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
235 return false; |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
236 } |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
237 flysId = rs.getInt("id"); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
238 } finally { |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
239 rs.close(); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
240 } |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
241 |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
242 // We need to find out the BFG_ID of the current discharge table |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
243 // for this gauge in AFT. |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
244 |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
245 ConnectedStatements aftStatements = context.getAftStatements(); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
246 |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
247 rs = aftStatements |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
248 .getStatement("select.bfg.id.current") |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
249 .clearParameters() |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
250 .setString("number", "%" + gauge.getOfficialNumber()) |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
251 .executeQuery(); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
252 |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
253 String bfgId = null; |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
254 |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
255 try { |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
256 if (rs.next()) { |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
257 bfgId = rs.getString("BFG_ID"); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
258 } |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
259 } finally { |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
260 rs.close(); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
261 } |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
262 |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
263 if (bfgId == null) { |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
264 log.warn( |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
265 "No BFG_ID found for current discharge table of gauge '" + |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
266 gauge + "'"); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
267 return false; |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
268 } |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
269 |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
270 // Set the BFG_ID in FLYS. |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
271 flysStatements.beginTransaction(); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
272 try { |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
273 flysStatements |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
274 .getStatement("update.bfg.id.discharge.table") |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
275 .clearParameters() |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
276 .setInt("id", flysId) |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
277 .setString("bfg_id", bfgId) |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
278 .executeUpdate(); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
279 flysStatements.commitTransaction(); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
280 } catch (SQLException sqle) { |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
281 flysStatements.rollbackTransaction(); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
282 log.error(sqle, sqle); |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
283 return false; |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
284 } |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
285 |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
286 return true; |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
287 } |
da1e897c7224
Set the BFG_ID for current discharge tables in FLYS.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5188
diff
changeset
|
288 |
4097
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
289 protected boolean updateGauge( |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
290 SyncContext context, |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
291 DIPSGauge gauge |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
292 ) |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
293 throws SQLException |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
294 { |
4102
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
295 log.info("FLYS: Updating gauge '" + gauge.getAftName() + "'."); |
4775
d9f1202cef78
Do the pairing of FLYS and AFT discharge tables by the field 'ABFLUSSTAFEL.BFG_ID' in
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4774
diff
changeset
|
296 // We need to load all discharge tables from both databases |
d9f1202cef78
Do the pairing of FLYS and AFT discharge tables by the field 'ABFLUSSTAFEL.BFG_ID' in
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4774
diff
changeset
|
297 // of the gauge and do some pairing based on their bfg_id. |
4097
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
298 |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
299 boolean modified = false; |
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
300 |
4104
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
301 ConnectedStatements flysStatements = context.getFlysStatements(); |
4098
9215253ad0be
Do the FLYS/AFT description pairing of discharge tables in case a gauge needs updates.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4097
diff
changeset
|
302 |
4104
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
303 flysStatements.beginTransaction(); |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
304 try { |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
305 List<DischargeTable> flysDTs = |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
306 DischargeTable.loadFlysDischargeTables( |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
307 context, gauge.getFlysId()); |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
308 |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
309 List<DischargeTable> aftDTs = |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
310 DischargeTable.loadAftDischargeTables( |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
311 context, gauge.getOfficialNumber()); |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
312 |
4775
d9f1202cef78
Do the pairing of FLYS and AFT discharge tables by the field 'ABFLUSSTAFEL.BFG_ID' in
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4774
diff
changeset
|
313 Map<String, DischargeTable> bfgId2FlysDT = |
4104
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
314 new HashMap<String, DischargeTable>(); |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
315 |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
316 for (DischargeTable dt: flysDTs) { |
4775
d9f1202cef78
Do the pairing of FLYS and AFT discharge tables by the field 'ABFLUSSTAFEL.BFG_ID' in
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4774
diff
changeset
|
317 String bfgId = dt.getBfgId(); |
d9f1202cef78
Do the pairing of FLYS and AFT discharge tables by the field 'ABFLUSSTAFEL.BFG_ID' in
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4774
diff
changeset
|
318 if (bfgId == null) { |
4736
b195fede1c3b
Remove trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4477
diff
changeset
|
319 log.warn("FLYS: discharge table " + dt.getId() |
4775
d9f1202cef78
Do the pairing of FLYS and AFT discharge tables by the field 'ABFLUSSTAFEL.BFG_ID' in
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4774
diff
changeset
|
320 + " has no bfg_id. Ignored."); |
4104
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
321 continue; |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
322 } |
4775
d9f1202cef78
Do the pairing of FLYS and AFT discharge tables by the field 'ABFLUSSTAFEL.BFG_ID' in
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4774
diff
changeset
|
323 bfgId2FlysDT.put(bfgId, dt); |
4098
9215253ad0be
Do the FLYS/AFT description pairing of discharge tables in case a gauge needs updates.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4097
diff
changeset
|
324 } |
4104
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
325 |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
326 List<DischargeTable> createDTs = new ArrayList<DischargeTable>(); |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
327 |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
328 for (DischargeTable aftDT: aftDTs) { |
4775
d9f1202cef78
Do the pairing of FLYS and AFT discharge tables by the field 'ABFLUSSTAFEL.BFG_ID' in
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4774
diff
changeset
|
329 String bfgId = aftDT.getBfgId(); |
d9f1202cef78
Do the pairing of FLYS and AFT discharge tables by the field 'ABFLUSSTAFEL.BFG_ID' in
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4774
diff
changeset
|
330 DischargeTable flysDT = bfgId2FlysDT.remove(bfgId); |
4104
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
331 if (flysDT != null) { |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
332 // Found in AFT and FLYS. |
4775
d9f1202cef78
Do the pairing of FLYS and AFT discharge tables by the field 'ABFLUSSTAFEL.BFG_ID' in
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4774
diff
changeset
|
333 log.info("FLYS: Discharge table '" + bfgId |
4104
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
334 + "' found in AFT and FLYS. -> update"); |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
335 // Create the W/Q diff. |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
336 modified |= writeWQChanges(context, flysDT, aftDT); |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
337 } |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
338 else { |
4775
d9f1202cef78
Do the pairing of FLYS and AFT discharge tables by the field 'ABFLUSSTAFEL.BFG_ID' in
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4774
diff
changeset
|
339 log.info("FLYS: Discharge table '" + bfgId |
4104
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
340 + "' not found in FLYS. -> create"); |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
341 createDTs.add(aftDT); |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
342 } |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
343 } |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
344 |
5930
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
345 modified |= deleteDischargeTables(context, bfgId2FlysDT); |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
346 |
4104
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
347 log.info("FLYS: Copy " + createDTs.size() + |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
348 " discharge tables over from AFT."); |
4098
9215253ad0be
Do the FLYS/AFT description pairing of discharge tables in case a gauge needs updates.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4097
diff
changeset
|
349 |
4104
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
350 // Create the new discharge tables. |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
351 for (DischargeTable aftDT: createDTs) { |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
352 createDischargeTable(context, aftDT, gauge.getFlysId()); |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
353 modified = true; |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
354 } |
4102
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
355 |
4104
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
356 flysStatements.commitTransaction(); |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
357 } |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
358 catch (SQLException sqle) { |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
359 flysStatements.rollbackTransaction(); |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
360 log.error(sqle, sqle); |
cdcf98245e36
Commit/rollback changes if a gauge is only updated.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4102
diff
changeset
|
361 modified = false; |
4100
981de0b77c6b
If gauges exist in FLYS and AFT store the discharge tables in FLYS that are only in AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4099
diff
changeset
|
362 } |
4097
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
363 |
4094
b20b710aa86f
Bubble up modifications up to main().
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4093
diff
changeset
|
364 return modified; |
4087
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
365 } |
4079
42094f01afa6
Added model for DIPS gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4078
diff
changeset
|
366 |
4099
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
367 protected boolean writeWQChanges( |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
368 SyncContext context, |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
369 DischargeTable flysDT, |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
370 DischargeTable aftDT |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
371 ) |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
372 throws SQLException |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
373 { |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
374 flysDT.loadFlysValues(context); |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
375 aftDT.loadAftValues(context); |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
376 WQDiff diff = new WQDiff(flysDT.getValues(), aftDT.getValues()); |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
377 if (diff.hasChanges()) { |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
378 diff.writeChanges(context, flysDT.getId()); |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
379 return true; |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
380 } |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
381 return false; |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
382 } |
006e99437fb9
Store the W/Q differences o existing discharge tables to FLYS database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4098
diff
changeset
|
383 |
4094
b20b710aa86f
Bubble up modifications up to main().
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4093
diff
changeset
|
384 protected boolean createGauges( |
4087
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
385 SyncContext context, |
6895
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
386 Map<Long, DIPSGauge> gauges, |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
387 Map<Double, String> station2gaugeName |
4087
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
388 ) |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
389 throws SQLException |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
390 { |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
391 ConnectedStatements flysStatements = context.getFlysStatements(); |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
392 |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
393 SymbolicStatement.Instance nextId = |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
394 flysStatements.getStatement("next.gauge.id"); |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
395 |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
396 SymbolicStatement.Instance insertStmnt = |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
397 flysStatements.getStatement("insert.gauge"); |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
398 |
4094
b20b710aa86f
Bubble up modifications up to main().
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4093
diff
changeset
|
399 boolean modified = false; |
b20b710aa86f
Bubble up modifications up to main().
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4093
diff
changeset
|
400 |
4087
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
401 for (Map.Entry<Long, DIPSGauge> entry: gauges.entrySet()) { |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
402 Long officialNumber = entry.getKey(); |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
403 DIPSGauge gauge = entry.getValue(); |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
404 |
4085
067341e86375
Separate FLYS gauges to be updated or to create.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4084
diff
changeset
|
405 log.info("Gauge '" + gauge.getAftName() + |
067341e86375
Separate FLYS gauges to be updated or to create.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4084
diff
changeset
|
406 "' not in FLYS but in AFT/DIPS. -> Create"); |
4087
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
407 |
6895
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
408 String flysGaugeName = station2gaugeName.get(gauge.getStation()); |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
409 if (flysGaugeName != null) { |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
410 log.warn("FLYS: AFT gauge " + gauge.getName() + |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
411 " has same station as FLYS gauge " + flysGaugeName + |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
412 " -> ignored."); |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
413 continue; |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
414 } |
e5675e85ac38
Potential fix for flys/1453.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6894
diff
changeset
|
415 |
4087
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
416 if (!gauge.hasDatums()) { |
4736
b195fede1c3b
Remove trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4477
diff
changeset
|
417 log.warn("DIPS: Gauge '" + |
4087
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
418 gauge.getAftName() + "' has no datum. Ignored."); |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
419 continue; |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
420 } |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
421 |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
422 ResultSet rs = null; |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
423 flysStatements.beginTransaction(); |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
424 try { |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
425 (rs = nextId.executeQuery()).next(); |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
426 int gaugeId = rs.getInt("gauge_id"); |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
427 rs.close(); rs = null; |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
428 |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
429 insertStmnt |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
430 .clearParameters() |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
431 .setInt("id", gaugeId) |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
432 .setString("name", gauge.getAftName()) |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
433 .setInt("river_id", id1) |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
434 .setDouble("station", gauge.getStation()) |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
435 .setDouble("aeo", gauge.getAeo()) |
4100
981de0b77c6b
If gauges exist in FLYS and AFT store the discharge tables in FLYS that are only in AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4099
diff
changeset
|
436 .setLong("official_number", officialNumber) |
4087
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
437 .setDouble("datum", gauge.getLatestDatum().getValue()); |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
438 |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
439 insertStmnt.execute(); |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
440 |
4736
b195fede1c3b
Remove trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
4477
diff
changeset
|
441 log.info("FLYS: Created gauge '" + gauge.getAftName() + |
4087
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
442 "' with id " + gaugeId + "."); |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
443 |
4088
52cde7fe742a
Fetch discharge table infos from AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4087
diff
changeset
|
444 gauge.setFlysId(gaugeId); |
4100
981de0b77c6b
If gauges exist in FLYS and AFT store the discharge tables in FLYS that are only in AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4099
diff
changeset
|
445 createDischargeTables(context, gauge); |
4087
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
446 flysStatements.commitTransaction(); |
4094
b20b710aa86f
Bubble up modifications up to main().
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4093
diff
changeset
|
447 modified = true; |
4087
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
448 } |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
449 catch (SQLException sqle) { |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
450 flysStatements.rollbackTransaction(); |
4094
b20b710aa86f
Bubble up modifications up to main().
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4093
diff
changeset
|
451 log.error(sqle, sqle); |
4087
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
452 } |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
453 finally { |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
454 if (rs != null) { |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
455 rs.close(); |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
456 } |
aad1886ea226
Store new gauges in FLYS db.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4085
diff
changeset
|
457 } |
4085
067341e86375
Separate FLYS gauges to be updated or to create.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4084
diff
changeset
|
458 } |
4094
b20b710aa86f
Bubble up modifications up to main().
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4093
diff
changeset
|
459 |
b20b710aa86f
Bubble up modifications up to main().
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4093
diff
changeset
|
460 return modified; |
4075
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
461 } |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
462 |
4102
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
463 protected void createDischargeTable( |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
464 SyncContext context, |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
465 DischargeTable aftDT, |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
466 int flysGaugeId |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
467 ) |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
468 throws SQLException |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
469 { |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
470 aftDT.persistFlysTimeInterval(context); |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
471 int flysId = aftDT.persistFlysDischargeTable(context, flysGaugeId); |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
472 |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
473 aftDT.loadAftValues(context); |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
474 aftDT.storeFlysValues(context, flysId); |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
475 } |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
476 |
5930
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
477 protected boolean deleteDischargeTables( |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
478 SyncContext context, |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
479 Map<String, DischargeTable> tables |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
480 ) |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
481 throws SQLException |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
482 { |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
483 ConnectedStatements flysStatements = context.getFlysStatements(); |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
484 |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
485 SymbolicStatement.Instance deleteDischargeTableValues = |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
486 flysStatements.getStatement("delete.discharge.table.values"); |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
487 |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
488 SymbolicStatement.Instance deleteDischargeTable = |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
489 flysStatements.getStatement("delete.discharge.table"); |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
490 |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
491 boolean modified = false; |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
492 |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
493 for (Map.Entry<String, DischargeTable> entry: tables.entrySet()) { |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
494 log.info("FLYS: Discharge table '" + entry.getKey() |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
495 + "' found in FLYS but not in AFT. -> delete"); |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
496 int id = entry.getValue().getId(); |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
497 |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
498 deleteDischargeTableValues |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
499 .clearParameters() |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
500 .setInt("id", id); |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
501 deleteDischargeTableValues.execute(); |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
502 |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
503 deleteDischargeTable |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
504 .clearParameters() |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
505 .setInt("id", id); |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
506 deleteDischargeTable.execute(); |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
507 |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
508 modified = true; |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
509 } |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
510 return modified; |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
511 } |
33e514a0c6b7
Delete discharge tables which are in AFT but not in FLYS. Fixed Oracle specific pom.xml
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5841
diff
changeset
|
512 |
4088
52cde7fe742a
Fetch discharge table infos from AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4087
diff
changeset
|
513 protected void createDischargeTables( |
52cde7fe742a
Fetch discharge table infos from AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4087
diff
changeset
|
514 SyncContext context, |
52cde7fe742a
Fetch discharge table infos from AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4087
diff
changeset
|
515 DIPSGauge gauge |
52cde7fe742a
Fetch discharge table infos from AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4087
diff
changeset
|
516 ) |
52cde7fe742a
Fetch discharge table infos from AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4087
diff
changeset
|
517 throws SQLException |
52cde7fe742a
Fetch discharge table infos from AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4087
diff
changeset
|
518 { |
4102
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
519 log.info("FLYS: Create discharge tables for '" + |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
520 gauge.getAftName() + "'."); |
4088
52cde7fe742a
Fetch discharge table infos from AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4087
diff
changeset
|
521 |
4093
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
522 // Load the discharge tables from AFT. |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
523 List<DischargeTable> dts = loadAftDischargeTables( |
4100
981de0b77c6b
If gauges exist in FLYS and AFT store the discharge tables in FLYS that are only in AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4099
diff
changeset
|
524 context, gauge); |
4088
52cde7fe742a
Fetch discharge table infos from AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4087
diff
changeset
|
525 |
4093
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
526 // Persist the time intervals. |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
527 persistFlysTimeIntervals(context, dts); |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
528 |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
529 // Persist the discharge tables |
4102
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
530 int [] flysDTIds = persistFlysDischargeTables( |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
531 context, dts, gauge.getFlysId()); |
4093
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
532 |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
533 // Copy over the W/Q values |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
534 copyWQsFromAftToFlys(context, dts, flysDTIds); |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
535 } |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
536 |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
537 protected List<DischargeTable> loadAftDischargeTables( |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
538 SyncContext context, |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
539 DIPSGauge gauge |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
540 ) |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
541 throws SQLException |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
542 { |
4097
83c72bc07591
Load all discharge tables from AFT and FLYS of a gauge which needs updating.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4094
diff
changeset
|
543 return DischargeTable.loadAftDischargeTables( |
4100
981de0b77c6b
If gauges exist in FLYS and AFT store the discharge tables in FLYS that are only in AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4099
diff
changeset
|
544 context, gauge.getOfficialNumber(), gauge.getFlysId()); |
4093
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
545 } |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
546 |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
547 protected void persistFlysTimeIntervals( |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
548 SyncContext context, |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
549 List<DischargeTable> dts |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
550 ) |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
551 throws SQLException |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
552 { |
4090
d556e29592f5
Create new discharge tables if needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4088
diff
changeset
|
553 for (DischargeTable dt: dts) { |
4102
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
554 dt.persistFlysTimeInterval(context); |
4090
d556e29592f5
Create new discharge tables if needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4088
diff
changeset
|
555 } |
4093
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
556 } |
4090
d556e29592f5
Create new discharge tables if needed.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4088
diff
changeset
|
557 |
4093
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
558 protected int [] persistFlysDischargeTables( |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
559 SyncContext context, |
4102
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
560 List<DischargeTable> dts, |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
561 int flysGaugeId |
4093
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
562 ) |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
563 throws SQLException |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
564 { |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
565 int [] flysDTIds = new int[dts.size()]; |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
566 |
4102
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
567 for (int i = 0; i < flysDTIds.length; ++i) { |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
568 flysDTIds[i] = dts.get(i) |
e8967ee1cb05
Fixed logic bug when writing discharge tables of an gauge existing in both dbs.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4100
diff
changeset
|
569 .persistFlysDischargeTable(context, flysGaugeId); |
4088
52cde7fe742a
Fetch discharge table infos from AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4087
diff
changeset
|
570 } |
4093
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
571 |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
572 return flysDTIds; |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
573 } |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
574 |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
575 protected void copyWQsFromAftToFlys( |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
576 SyncContext context, |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
577 List<DischargeTable> dts, |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
578 int [] flysDTIds |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
579 ) |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
580 throws SQLException |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
581 { |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
582 for (int i = 0; i < flysDTIds.length; ++i) { |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
583 DischargeTable dt = dts.get(i); |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
584 dt.loadAftValues(context); |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
585 dt.storeFlysValues(context, flysDTIds[i]); |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
586 dt.clearValues(); // To save memory. |
7bddd4601707
Copy over W/Q values from AFT to FLYS for new discharge tables.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4090
diff
changeset
|
587 } |
4088
52cde7fe742a
Fetch discharge table infos from AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4087
diff
changeset
|
588 } |
52cde7fe742a
Fetch discharge table infos from AFT.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
4087
diff
changeset
|
589 |
4075
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
590 public String toString() { |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
591 return "[River: name=" + name + ", " + super.toString() + "]"; |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
592 } |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
593 } |
dbd0b3b1b8b8
Sync each river.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
594 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |