|
37 | 37 | import cwms.cda.api.enums.VersionType; |
38 | 38 | import cwms.cda.api.errors.NotFoundException; |
39 | 39 | import cwms.cda.data.dto.CwmsDTOPaginated; |
| 40 | +import cwms.cda.data.dto.TimeSeries; |
40 | 41 | import cwms.cda.data.dto.catalog.LocationAlias; |
41 | 42 | import cwms.cda.data.dto.locationlevel.ConstantLocationLevel; |
42 | 43 | import cwms.cda.data.dto.locationlevel.LocationLevel; |
43 | 44 | import cwms.cda.data.dto.locationlevel.LocationLevels; |
44 | 45 | import cwms.cda.data.dto.locationlevel.SeasonalLocationLevel; |
45 | 46 | import cwms.cda.data.dto.locationlevel.SeasonalValueBean; |
46 | | -import cwms.cda.data.dto.TimeSeries; |
| 47 | +import cwms.cda.data.dto.locationlevel.TimeSeriesLocationLevel; |
| 48 | +import cwms.cda.data.dto.locationlevel.VirtualLocationLevel; |
| 49 | +import cwms.cda.formatters.UnsupportedFormatException; |
47 | 50 | import hec.data.Duration; |
48 | 51 | import hec.data.Parameter; |
49 | 52 | import hec.data.ParameterType; |
|
73 | 76 | import java.util.logging.Level; |
74 | 77 | import java.util.logging.Logger; |
75 | 78 | import java.util.regex.Pattern; |
76 | | -import cwms.cda.data.dto.locationlevel.TimeSeriesLocationLevel; |
77 | | -import cwms.cda.data.dto.locationlevel.VirtualLocationLevel; |
78 | | -import cwms.cda.formatters.UnsupportedFormatException; |
79 | 79 | import mil.army.usace.hec.metadata.Interval; |
80 | 80 | import mil.army.usace.hec.metadata.IntervalFactory; |
81 | 81 | import mil.army.usace.hec.metadata.constants.NumericalConstants; |
@@ -783,25 +783,31 @@ private void parseLevels(Record r, Map<LevelLookup, LocationLevel.Builder> build |
783 | 783 |
|
784 | 784 | JDomSeasonalIntervalImpl newSeasonalOffset = buildSeasonalOffset(calOffset, timeOffset); |
785 | 785 | SeasonalValueBean seasonalValue = buildSeasonalValueBean(seasonalLevel, newSeasonalOffset); |
786 | | - SeasonalLocationLevel.Builder seasonalBuilder = new SeasonalLocationLevel.Builder(locLevelId, levelZdt); |
787 | | - seasonalBuilder.withSeasonalValue(seasonalValue); |
788 | | - seasonalBuilder.withInterpolateString(interp); |
789 | | - if (timeInterval != null) { |
790 | | - seasonalBuilder.withIntervalMinutes(timeInterval.getMinutes()); |
| 786 | + if (builderMap.containsKey(levelLookup)) { |
| 787 | + SeasonalLocationLevel.Builder existingBuilder = (SeasonalLocationLevel.Builder) builderMap.get(levelLookup); |
| 788 | + existingBuilder.withSeasonalValue(seasonalValue); |
| 789 | + builderMap.put(levelLookup, existingBuilder); |
| 790 | + } else { |
| 791 | + SeasonalLocationLevel.Builder seasonalBuilder = new SeasonalLocationLevel.Builder(locLevelId, levelZdt); |
| 792 | + seasonalBuilder.withSeasonalValue(seasonalValue); |
| 793 | + seasonalBuilder.withInterpolateString(interp); |
| 794 | + if (timeInterval != null) { |
| 795 | + seasonalBuilder.withIntervalMinutes(timeInterval.getMinutes()); |
| 796 | + } |
| 797 | + seasonalBuilder.withAttributeParameterId(attrId); |
| 798 | + seasonalBuilder.withAttributeUnitsId(attrUnit); |
| 799 | + seasonalBuilder.withLevelUnitsId(levelUnit); |
| 800 | + seasonalBuilder.withLevelComment(levelComment); |
| 801 | + seasonalBuilder.withAttributeComment(attributeComment); |
| 802 | + seasonalBuilder = withLocationLevelRef(seasonalBuilder, locationLevelRef); |
| 803 | + JDomSeasonalIntervalImpl offset = new JDomSeasonalIntervalImpl(); |
| 804 | + offset.setYearMonthString(calendarInterval); |
| 805 | + seasonalBuilder.withIntervalMonths(offset.getMonths()); |
| 806 | + seasonalBuilder.withIntervalOrigin(intervalOrigin, levelZdt); |
| 807 | + seasonalBuilder.withAliases(aliases); |
| 808 | + seasonalBuilder.withExpirationDate(expireDate); |
| 809 | + builderMap.put(levelLookup, seasonalBuilder); |
791 | 810 | } |
792 | | - seasonalBuilder.withAttributeParameterId(attrId); |
793 | | - seasonalBuilder.withAttributeUnitsId(attrUnit); |
794 | | - seasonalBuilder.withLevelUnitsId(levelUnit); |
795 | | - seasonalBuilder.withLevelComment(levelComment); |
796 | | - seasonalBuilder.withAttributeComment(attributeComment); |
797 | | - seasonalBuilder = withLocationLevelRef(seasonalBuilder, locationLevelRef); |
798 | | - JDomSeasonalIntervalImpl offset = new JDomSeasonalIntervalImpl(); |
799 | | - offset.setYearMonthString(calendarInterval); |
800 | | - seasonalBuilder.withIntervalMonths(offset.getMonths()); |
801 | | - seasonalBuilder.withIntervalOrigin(intervalOrigin, levelZdt); |
802 | | - seasonalBuilder.withAliases(aliases); |
803 | | - seasonalBuilder.withExpirationDate(expireDate); |
804 | | - builderMap.put(levelLookup, seasonalBuilder); |
805 | 811 | } else if (tsId != null) { |
806 | 812 | TimeSeriesLocationLevel.Builder timeSeriesBuilder = new TimeSeriesLocationLevel.Builder(locLevelId, levelZdt, tsId); |
807 | 813 | timeSeriesBuilder.withAttributeParameterId(attrId); |
@@ -1172,7 +1178,7 @@ public Field<String> getConnections() { |
1172 | 1178 |
|
1173 | 1179 | @Override |
1174 | 1180 | public Field<Timestamp> getExpirationDate() { |
1175 | | - return AV_VIRTUAL_LOCATION_LEVEL.EXPIRATION_DATE_UTC; |
| 1181 | + return AV_LOCATION_LEVEL.EXPIRATION_DATE; |
1176 | 1182 | } |
1177 | 1183 |
|
1178 | 1184 | @Override |
@@ -1314,7 +1320,7 @@ public Field<String> getConnections() { |
1314 | 1320 |
|
1315 | 1321 | @Override |
1316 | 1322 | public Field<Timestamp> getExpirationDate() { |
1317 | | - return DSL.field(DSL.name(TABLE_ALIAS2, "EXPIRATION_DATE_UTC"), Timestamp.class); |
| 1323 | + return DSL.field(DSL.name(TABLE_ALIAS2, "EXPIRATION_DATE"), Timestamp.class); |
1318 | 1324 | } |
1319 | 1325 |
|
1320 | 1326 | @Override |
@@ -1403,13 +1409,13 @@ private static void buildLocationLevelSelectFields() { |
1403 | 1409 | LOCATION_LEVEL_FIELDS.add(virtView.EFFECTIVE_DATE_UTC); |
1404 | 1410 | LOCATION_LEVEL_FIELDS.add(virtView.CONNECTIONS); |
1405 | 1411 | LOCATION_LEVEL_FIELDS.add(virtView.DURATION_ID); |
1406 | | - LOCATION_LEVEL_FIELDS.add(virtView.EXPIRATION_DATE_UTC); |
1407 | 1412 | LOCATION_LEVEL_FIELDS.add(virtView.ATTR_UNIT_EN); |
1408 | 1413 | LOCATION_LEVEL_FIELDS.add(virtView.ATTR_VALUE_EN); |
1409 | 1414 | LOCATION_LEVEL_FIELDS.add(virtView.ATTR_UNIT_SI); |
1410 | 1415 | LOCATION_LEVEL_FIELDS.add(virtView.ATTR_VALUE_SI); |
1411 | 1416 | LOCATION_LEVEL_FIELDS.add(view.OFFICE_ID); |
1412 | 1417 | LOCATION_LEVEL_FIELDS.add(view.LOCATION_LEVEL_ID); |
| 1418 | + LOCATION_LEVEL_FIELDS.add(view.EXPIRATION_DATE); |
1413 | 1419 | LOCATION_LEVEL_FIELDS.add(view.LEVEL_DATE); |
1414 | 1420 | LOCATION_LEVEL_FIELDS.add(view.TSID); |
1415 | 1421 | LOCATION_LEVEL_FIELDS.add(view.CONSTANT_LEVEL); |
@@ -1440,12 +1446,12 @@ private static void buildAliasedLocationLevelSelectFields() { |
1440 | 1446 | LOCATION_ALIAS_FIELDS.add(field(virtView.EFFECTIVE_DATE_UTC.getUnqualifiedName())); |
1441 | 1447 | LOCATION_ALIAS_FIELDS.add(field(virtView.CONNECTIONS.getUnqualifiedName())); |
1442 | 1448 | LOCATION_ALIAS_FIELDS.add(field(DSL.name(TABLE_ALIAS1, "DURATION_ID"))); |
1443 | | - LOCATION_ALIAS_FIELDS.add(field(virtView.EXPIRATION_DATE_UTC.getUnqualifiedName())); |
1444 | 1449 | LOCATION_ALIAS_FIELDS.add(field(virtView.ATTR_UNIT_EN.getUnqualifiedName())); |
1445 | 1450 | LOCATION_ALIAS_FIELDS.add(field(virtView.ATTR_VALUE_EN.getUnqualifiedName())); |
1446 | 1451 | LOCATION_ALIAS_FIELDS.add(field(virtView.ATTR_UNIT_SI.getUnqualifiedName())); |
1447 | 1452 | LOCATION_ALIAS_FIELDS.add(field(virtView.ATTR_VALUE_SI.getUnqualifiedName())); |
1448 | 1453 | LOCATION_ALIAS_FIELDS.add(field(view.LEVEL_DATE.getUnqualifiedName())); |
| 1454 | + LOCATION_ALIAS_FIELDS.add(field(view.EXPIRATION_DATE.getUnqualifiedName())); |
1449 | 1455 | LOCATION_ALIAS_FIELDS.add(field(view.TSID.getUnqualifiedName())); |
1450 | 1456 | LOCATION_ALIAS_FIELDS.add(field(view.CONSTANT_LEVEL.getUnqualifiedName())); |
1451 | 1457 | LOCATION_ALIAS_FIELDS.add(field(view.INTERVAL_ORIGIN.getUnqualifiedName())); |
|
0 commit comments