|
|
@@ -143,29 +143,53 @@ public class MapLogRepository implements SensLogRepository {
|
|
|
row.getString("sensor_name"),
|
|
|
row.getString("sensor_type"),
|
|
|
row.getInteger("io_id"),
|
|
|
- row.getInteger("phenomenon_id")
|
|
|
+ Phenomenon.of(
|
|
|
+ row.getInteger("phenomenon_id"),
|
|
|
+ row.getString("phenomenon_name")
|
|
|
+ ),
|
|
|
+ row.getString("description")
|
|
|
+ );
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Future<Sensor> findSensorById(long sensorId) {
|
|
|
+ return client.preparedQuery("SELECT s.sensor_id, s.sensor_name, s.sensor_type, s.io_id, s.description, p.id AS phenomenon_id, p.name AS phenomenon_name, p.uom, p.uom_link " +
|
|
|
+ "FROM maplog.sensor AS s " +
|
|
|
+ "JOIN maplog.phenomenon p on p.id = s.phenomenon_id " +
|
|
|
+ "WHERE s.sensor_id = $1")
|
|
|
+ .execute(Tuple.of(sensorId))
|
|
|
+ .map(RowSet::iterator)
|
|
|
+ .map(iterator -> iterator.hasNext() ? ROW_TO_SENSOR.apply(iterator.next()) : null);
|
|
|
+ }
|
|
|
+
|
|
|
+ private static final Function<Row, Sensor> ROW_TO_BASIC_SENSOR = (row) -> Sensor.of(
|
|
|
+ row.getLong("sensor_id"),
|
|
|
+ row.getString("sensor_name"),
|
|
|
+ row.getString("sensor_type"),
|
|
|
+ row.getInteger("io_id"),
|
|
|
+ Phenomenon.of(row.getInteger("phenomenon_id"), null),
|
|
|
+ row.getString("description")
|
|
|
);
|
|
|
|
|
|
@Override
|
|
|
public Future<Sensor> findSensorByIOAndUnitId(int ioID, long unitId) {
|
|
|
- return client.preparedQuery("SELECT s.sensor_id, s.sensor_name, s.sensor_type, s.io_id, s.phenomenon_id " +
|
|
|
+ return client.preparedQuery("SELECT s.sensor_id, s.sensor_name, s.sensor_type, s.io_id, s.phenomenon_id, s.description " +
|
|
|
"FROM maplog.sensor AS s " +
|
|
|
"JOIN maplog.unit_to_sensor uts ON s.sensor_id = uts.sensor_id " +
|
|
|
"WHERE s.io_id = $1 AND uts.unit_id = $2")
|
|
|
.execute(Tuple.of(ioID, unitId))
|
|
|
.map(RowSet::iterator)
|
|
|
- .map(iterator -> iterator.hasNext() ? ROW_TO_SENSOR.apply(iterator.next()) : null);
|
|
|
+ .map(iterator -> iterator.hasNext() ? ROW_TO_BASIC_SENSOR.apply(iterator.next()) : null);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public Future<List<Sensor>> findSensorsByUnitId(long unitId) {
|
|
|
- return client.preparedQuery("SELECT s.sensor_id, s.sensor_name, s.sensor_type, s.io_id, s.phenomenon_id " +
|
|
|
+ return client.preparedQuery("SELECT s.sensor_id, s.sensor_name, s.sensor_type, s.io_id, s.phenomenon_id, s.description " +
|
|
|
"FROM maplog.unit_to_sensor AS uts " +
|
|
|
"JOIN maplog.sensor s on s.sensor_id = uts.sensor_id " +
|
|
|
"WHERE UTS.unit_id = $1")
|
|
|
.execute(Tuple.of(unitId))
|
|
|
.map(rs -> StreamSupport.stream(rs.spliterator(), false)
|
|
|
- .map(ROW_TO_SENSOR).collect(Collectors.toList())
|
|
|
+ .map(ROW_TO_BASIC_SENSOR).collect(Collectors.toList())
|
|
|
);
|
|
|
}
|
|
|
|