Prechádzať zdrojové kódy

Fix of services GetAllSensorTypes, GetAllPhenomenons

Michal Kepka 4 rokov pred
rodič
commit
ca95b71807

+ 0 - 8
pom.xml

@@ -188,14 +188,12 @@
             <artifactId>jackson-core</artifactId>
             <version>2.9.7</version>
             <!-- <version>2.11.1</version> -->
-            <scope>provided</scope>
         </dependency>
 
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-annotations</artifactId>
             <version>2.9.7</version>
-            <scope>provided</scope>
         </dependency>
 
 <!-- JERSEY -->
@@ -229,12 +227,6 @@
     </dependency>
 
         <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-core</artifactId>
-            <version>2.12.3</version>
-        </dependency>
-
-        <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
             <version>2.7</version>

+ 2 - 1
src/main/java/cz/hsrs/db/model/Sensor.java

@@ -37,8 +37,9 @@ public class Sensor implements DBObject {
     /**
      * Constructor for SensorType lists
      */
-    public Sensor(String sensorType){
+    public Sensor(long sensorId, String sensorType){
     	this.sensorType = sensorType;
+    	this.sensorId = sensorId;
     }
     
     /**

+ 16 - 15
src/main/java/cz/hsrs/db/util/SensorUtil.java

@@ -65,7 +65,7 @@ public class SensorUtil extends TrackUtil {
      * @throws SQLException
      */
     @SuppressWarnings("unchecked")
-	public List<Sensor> getSensors() throws SQLException {
+    public List<Sensor> getSensors() throws SQLException {
         String queryObservations = "SELECT * FROM sensors ORDER BY sensors.sensor_id;";
         ResultSet res = stmt.executeQuery(queryObservations);
         return (List<Sensor>) generateObjectList(new Sensor(), res);
@@ -73,19 +73,20 @@ public class SensorUtil extends TrackUtil {
     
     /**
      * Method selects list of sensor types stored in DB
-     * @return
+     * @return List of Sensors with sensor_type and category of sensor_id (pattern YYXXX0000)
      * @throws SQLException
      */
     public List<Sensor> getSensorTypes() throws SQLException{
-    	String query = "select distinct(sensor_type) sensor_type from sensors order by sensor_type;";
-    	ResultSet res = stmt.executeQuery(query);
-    	List<Sensor> senTypeList = new LinkedList<Sensor>();
-    	if(res != null) {
-    		while(res.next()) {
-    			senTypeList.add(new Sensor(res.getString("sensor_type")));
-    		}
-    	}
-    	return senTypeList;
+        String query = "SELECT distinct on(sensor_type) sensor_type, (sensor_id/10000)*10000 as sensor_id"
+        		+ " FROM sensors ORDER BY sensor_type;";
+        ResultSet res = stmt.executeQuery(query);
+        List<Sensor> senTypeList = new LinkedList<Sensor>();
+        if(res != null) {
+            while(res.next()) {
+                senTypeList.add(new Sensor(res.getLong("sensor_id"), res.getString("sensor_type")));
+            }
+        }
+        return senTypeList;
     }
 
     /**
@@ -306,14 +307,14 @@ public class SensorUtil extends TrackUtil {
     
     /**
      * Method gets all Phenomenons in DB
-     * @return
+     * @return List of Phenomenon
      * @throws SQLException
      */
     @SuppressWarnings("unchecked")
-	public List<Phenomenon> getPhenomenons() throws SQLException {
+    public List<Phenomenon> getPhenomenons() throws SQLException {
         String queryObservations = "SELECT * FROM phenomenons ORDER BY phenomenon_id;";
         ResultSet res = stmt.executeQuery(queryObservations);
-        if (res.next()) {
+        if (res!= null) {
             return (List<Phenomenon>) generateObjectList(new Phenomenon(), res);
         } else
             return null;
@@ -528,7 +529,7 @@ public class SensorUtil extends TrackUtil {
      * @throws SQLException
      */
     @SuppressWarnings("unchecked")
-	public List<ObservationValue> getSensorLastObservation(long unitId, long sensorId) throws SQLException {
+    public List<ObservationValue> getSensorLastObservation(long unitId, long sensorId) throws SQLException {
         String query = "SELECT time_stamp, gid, observed_value"
                     + " FROM units_to_sensors uts"
                     + " LEFT JOIN observations o ON uts.last_obs = o.time_stamp"

+ 3 - 0
src/main/java/cz/hsrs/servlet/provider/SensorService.java

@@ -68,6 +68,9 @@ public class SensorService extends DBServlet {
          * /SensorService?Operation=GetLastObservations&user=meteor&unit_id=104200002
          * /SensorService?Operation=GetLastObservations&user=meteor&group=meteo2
          * /SensorService?Operation=GetLastObservations&user=meteor&group=meteo2&sensor_id=690020001
+         * /SensorService?Operation=GetAllPhenomenons
+         * /SensorService?Operation=GetAllSensors
+         * /SensorService?Operation=GetAllSensorTypes
          */
         PrintWriter out = response.getWriter();
         try {