comparison artifacts/src/main/java/org/dive4elements/river/artifacts/services/DynamicMainValuesTimeRangeDeterminationService.java @ 9405:34cd4faf43f4

minMax queries
author gernotbelger
date Wed, 15 Aug 2018 14:34:23 +0200
parents bc9a45d2b1fa
children 38201f5b0dd9
comparison
equal deleted inserted replaced
9404:bc9a45d2b1fa 9405:34cd4faf43f4
23 import org.dive4elements.river.artifacts.resources.Resources; 23 import org.dive4elements.river.artifacts.resources.Resources;
24 import org.dive4elements.river.artifacts.services.AbstractMainValuesService.MainValuesServiceException; 24 import org.dive4elements.river.artifacts.services.AbstractMainValuesService.MainValuesServiceException;
25 import org.dive4elements.river.model.Gauge; 25 import org.dive4elements.river.model.Gauge;
26 import org.dive4elements.river.model.River; 26 import org.dive4elements.river.model.River;
27 import org.dive4elements.river.model.sinfo.DailyDischargeValue; 27 import org.dive4elements.river.model.sinfo.DailyDischargeValue;
28 import org.dive4elements.river.model.sinfo.DailyDischargeValue.MinMax;
28 import org.w3c.dom.Document; 29 import org.w3c.dom.Document;
29 import org.w3c.dom.Element; 30 import org.w3c.dom.Element;
30 import org.w3c.dom.NodeList; 31 import org.w3c.dom.NodeList;
31 32
32 /** 33 /**
90 Date min = startTime; 91 Date min = startTime;
91 Date max = endTime; 92 Date max = endTime;
92 93
93 for (final Gauge gauge : gauges) { 94 for (final Gauge gauge : gauges) {
94 95
95 final List<DailyDischargeValue> qdvsGlobal = DailyDischargeValue.getGlobalMinMax(gauge); 96 final Date minGlobalForGauge = DailyDischargeValue.getGlobalMinMax(gauge, MinMax.min);
96 if (qdvsGlobal == null) { 97 final Date maxGlobalForGauge = DailyDischargeValue.getGlobalMinMax(gauge, MinMax.max);
97 98 if (minGlobalForGauge == null || maxGlobalForGauge == null) { // der Fall, dass nur eins von beiden null ist, kann eigentlich nciht vorkommen
98 gaugeResults.add(new GaugeInfoResult.GaugeInfo(getMsg(meta, "bundu.wst_no_data_at_all"), gauge, null, null)); 99 gaugeResults.add(new GaugeInfoResult.GaugeInfo(getMsg(meta, "bundu.wst_no_data_at_all"), gauge, null, null));
99 // TODO : wenn der Workflow abgebrochen werden soll, GlobalErrorMsg setzen, dass mind. ein Pegel überhaupt keine Daten 100 // TODO : wenn der Workflow abgebrochen werden soll, GlobalErrorMsg setzen, dass mind. ein Pegel überhaupt keine Daten
100 // hat (der Mechnismus auf Client-Seite ist schon implementiert) 101 // hat (der Mechnismus auf Client-Seite ist schon implementiert)
101 102
102 continue; 103 continue;
103 } 104 }
104 assert qdvsGlobal.size() == 2;
105 final Date minGlobalForGauge = qdvsGlobal.get(0).getDay();
106 final Date maxGlobalForGauge = qdvsGlobal.get(1).getDay();
107 105
108 if (minGlobalForGauge.getTime() > startTime.getTime()) 106 if (minGlobalForGauge.getTime() > startTime.getTime())
109 min = minGlobalForGauge; 107 min = minGlobalForGauge;
110 108
111 if (maxGlobalForGauge.getTime() < endTime.getTime()) 109 if (maxGlobalForGauge.getTime() < endTime.getTime())

http://dive4elements.wald.intevation.org