Issue #1781 - Constrain the tabular TS query by time.
Change-Id: I648913c157585283cdc96793d18d36933589b3e9 Former-commit-id:afd0de8b5b
[formerly 027807d7e4ac171498f267759a4e34f75e1e4d46] Former-commit-id:88e75f4a90
This commit is contained in:
parent
fc41aa82ca
commit
b517ce9a9f
1 changed files with 1332 additions and 1320 deletions
|
@ -70,6 +70,7 @@ import com.raytheon.viz.hydrocommon.util.DbUtils;
|
|||
* July 25 2011 10082 djingtao modify edit()
|
||||
* May 30 2012 14967 wkwock overload insertRejectedData method
|
||||
* Feb 22 2013 14676 lbousaidi check when producttime is null
|
||||
* Mar 25, 2013 1781 mpduff Constrain time series table query with a start time.
|
||||
* </pre>
|
||||
*
|
||||
* @author dhladky
|
||||
|
@ -234,7 +235,7 @@ public class TimeSeriesDataManager extends HydroDataManager {
|
|||
public List<SiteInfo> getTabularPEData(String lid) throws VizException {
|
||||
StringBuilder sql = new StringBuilder("select ");
|
||||
sql.append("lid, pe, dur, ts, extremum from Ingestfilter ");
|
||||
sql.append("where lid = '" + lid + "' and ingest = 'T' ");
|
||||
sql.append("where lid = '").append(lid).append("' and ingest = 'T' ");
|
||||
sql.append("order by pe, dur, ts, extremum asc");
|
||||
|
||||
ArrayList<Object[]> results = (ArrayList<Object[]>) DirectDbQuery
|
||||
|
@ -337,14 +338,15 @@ public class TimeSeriesDataManager extends HydroDataManager {
|
|||
* @throws ClassNotFoundException
|
||||
*/
|
||||
public ArrayList<Object[]> getGraphData(String tablename, String lid,
|
||||
String pe, String ts, String dur, String extremum, Date startTime, Date endTime)
|
||||
throws VizException, ClassNotFoundException {
|
||||
String pe, String ts, String dur, String extremum, Date startTime,
|
||||
Date endTime) throws VizException, ClassNotFoundException {
|
||||
|
||||
StringBuilder graphQuery = new StringBuilder(
|
||||
"select lid,obstime,value,product_id from ");
|
||||
graphQuery.append(tablename + " where lid = '" + lid + "' and pe = '"
|
||||
+ pe + "' " + "and dur = '" + dur + "' ");
|
||||
graphQuery.append("and ts = '" + ts + "' and extremum = '" + extremum.toUpperCase() + "' and obstime ");
|
||||
graphQuery.append("and ts = '" + ts + "' and extremum = '"
|
||||
+ extremum.toUpperCase() + "' and obstime ");
|
||||
graphQuery.append("between '"
|
||||
+ HydroConstants.DATE_FORMAT.format(startTime) + "' ");
|
||||
graphQuery.append("and '" + HydroConstants.DATE_FORMAT.format(endTime)
|
||||
|
@ -507,27 +509,31 @@ public class TimeSeriesDataManager extends HydroDataManager {
|
|||
sql.append("lid, validtime, value, revision, shef_qual_code, ");
|
||||
sql.append("quality_code, product_id, producttime, postingtime, ");
|
||||
sql.append("basistime, probability ");
|
||||
sql.append("from " + tablename);
|
||||
sql.append(" where lid = '" + lid + "'");
|
||||
sql.append(" and pe = '" + pe + "'");
|
||||
sql.append(" and ts = '" + ts + "'");
|
||||
sql.append(" and dur = " + dur);
|
||||
sql.append(" and extremum = '" + ext + "'");
|
||||
sql.append(" and validtime > '" + dateFormat.format(startTime)
|
||||
+ "'");
|
||||
sql.append(" and validtime < '" + dateFormat.format(endTime) + "'");
|
||||
sql.append(" and basistime = '" + basisTime + "'");
|
||||
sql.append("from ").append(tablename);
|
||||
sql.append(" where lid = '").append(lid).append("'");
|
||||
sql.append(" and pe = '").append(pe).append("'");
|
||||
sql.append(" and ts = '").append(ts).append("'");
|
||||
sql.append(" and dur = ").append(dur);
|
||||
sql.append(" and extremum = '").append(ext).append("'");
|
||||
sql.append(" and validtime > '")
|
||||
.append(dateFormat.format(startTime)).append("'");
|
||||
sql.append(" and validtime < '").append(dateFormat.format(endTime))
|
||||
.append("'");
|
||||
sql.append(" and basistime = '").append(basisTime).append("'");
|
||||
sql.append(" order by validtime desc");
|
||||
} else {
|
||||
sql.append("lid, obstime, value, revision, shef_qual_code, ");
|
||||
sql.append("quality_code, product_id, producttime, postingtime ");
|
||||
sql.append("from " + tablename);
|
||||
sql.append(" where lid = '" + lid + "'");
|
||||
sql.append(" and pe = '" + pe + "'");
|
||||
sql.append(" and ts = '" + ts + "'");
|
||||
sql.append(" and dur = " + dur);
|
||||
sql.append(" and extremum = '" + ext + "'");
|
||||
sql.append(" and obstime < '" + dateFormat.format(endTime) + "'");
|
||||
sql.append("from ").append(tablename);
|
||||
sql.append(" where lid = '").append(lid).append("'");
|
||||
sql.append(" and pe = '").append(pe).append("'");
|
||||
sql.append(" and ts = '").append(ts).append("'");
|
||||
sql.append(" and dur = ").append(dur);
|
||||
sql.append(" and extremum = '").append(ext).append("'");
|
||||
sql.append(" and obstime > '").append(dateFormat.format(startTime))
|
||||
.append("'");
|
||||
sql.append(" and obstime < '").append(dateFormat.format(endTime))
|
||||
.append("'");
|
||||
sql.append(" order by obstime desc");
|
||||
}
|
||||
|
||||
|
@ -907,7 +913,8 @@ public class TimeSeriesDataManager extends HydroDataManager {
|
|||
sql.append("and dur =" + dr.getDur() + " ");
|
||||
sql.append("and ts = '" + dr.getTs().toUpperCase() + "' ");
|
||||
sql.append("and extremum = '" + dr.getExtremum().toUpperCase() + "' ");
|
||||
if (dr.getTs().toUpperCase().startsWith("F") || dr.getTs().toUpperCase().startsWith("C")){
|
||||
if (dr.getTs().toUpperCase().startsWith("F")
|
||||
|| dr.getTs().toUpperCase().startsWith("C")) {
|
||||
sql.append("and validtime = '" + dr.getValidTime() + "' ");
|
||||
sql.append("and basistime = '" + dr.getBasisTime() + "';");
|
||||
} else {// obs data
|
||||
|
@ -915,8 +922,10 @@ public class TimeSeriesDataManager extends HydroDataManager {
|
|||
}
|
||||
List<Object[]> sqlResult;
|
||||
try {
|
||||
sqlResult = (DirectDbQuery.executeQuery(sql.toString(), HydroConstants.IHFS, QueryLanguage.SQL));
|
||||
if (sqlResult !=null && sqlResult.size()>0 && sqlResult.get(0)[0]!=null) {
|
||||
sqlResult = (DirectDbQuery.executeQuery(sql.toString(),
|
||||
HydroConstants.IHFS, QueryLanguage.SQL));
|
||||
if (sqlResult != null && sqlResult.size() > 0
|
||||
&& sqlResult.get(0)[0] != null) {
|
||||
return sqlResult.get(0)[0];
|
||||
}
|
||||
} catch (VizException e) {
|
||||
|
@ -927,15 +936,18 @@ public class TimeSeriesDataManager extends HydroDataManager {
|
|||
return null;
|
||||
}
|
||||
|
||||
public int insertRejectedData(List<ForecastData> deleteList) throws VizException {
|
||||
public int insertRejectedData(List<ForecastData> deleteList)
|
||||
throws VizException {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
Date currentTime = Calendar.getInstance(TimeZone.getTimeZone("GMT")).getTime();
|
||||
Date currentTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"))
|
||||
.getTime();
|
||||
for (ForecastData dr : deleteList) {
|
||||
|
||||
int probability = -1;
|
||||
int revision = 0;
|
||||
if (dr.getTs().toUpperCase().startsWith("F") || dr.getTs().toUpperCase().startsWith("C")) {
|
||||
if (dr.getTs().toUpperCase().startsWith("F")
|
||||
|| dr.getTs().toUpperCase().startsWith("C")) {
|
||||
probability = 0;
|
||||
revision = 1;
|
||||
}
|
||||
|
@ -979,21 +991,20 @@ public class TimeSeriesDataManager extends HydroDataManager {
|
|||
}
|
||||
|
||||
if (dr.getBasisTime() != null) {
|
||||
sb.append("'"
|
||||
+ (dr.getBasisTime()) + "', ");
|
||||
sb.append("'" + (dr.getBasisTime()) + "', ");
|
||||
} else {
|
||||
sb.append("'"
|
||||
+ (HydroConstants.DATE_FORMAT.format(dr.getObsTime()))
|
||||
+ "', ");
|
||||
}
|
||||
|
||||
sb.append("'" + HydroConstants.DATE_FORMAT.format(currentTime) + "', ");
|
||||
sb.append("'" + HydroConstants.DATE_FORMAT.format(currentTime)
|
||||
+ "', ");
|
||||
sb.append(dr.getValue() + ", ");
|
||||
sb.append(revision + ", ");
|
||||
sb.append("'M', ");// shef_qual_code always M
|
||||
sb.append("'" + productID + "', ");
|
||||
sb.append("'"
|
||||
+ HydroConstants.DATE_FORMAT.format(productTime)
|
||||
sb.append("'" + HydroConstants.DATE_FORMAT.format(productTime)
|
||||
+ "', ");
|
||||
sb.append(qualityCode + ", ");
|
||||
sb.append("'M', ");
|
||||
|
@ -1158,7 +1169,8 @@ public class TimeSeriesDataManager extends HydroDataManager {
|
|||
sql.addDouble("value", data.getValue());
|
||||
sql.addString("postingTime", HydroConstants.DATE_FORMAT.format(now));
|
||||
if (data.getProductTime() == null) {
|
||||
sql.addString("producttime",
|
||||
sql.addString(
|
||||
"producttime",
|
||||
HydroConstants.DATE_FORMAT.format(Calendar.getInstance(
|
||||
TimeZone.getTimeZone("GMT")).getTime()));
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue