From 1c7437d6de01fffbe3f69853717808b1790413fd Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Fri, 19 Aug 2016 10:45:33 +0500 Subject: - Added trips report - Refactored reports models - Added tests for ReportUtils - Added speed to test-generator.py - Other changes --- src/org/traccar/reports/model/BaseReport.java | 70 +++++++++++++++++++ src/org/traccar/reports/model/SummaryReport.java | 50 +------------- src/org/traccar/reports/model/TripReport.java | 87 ++++++++++++++++++++++++ 3 files changed, 159 insertions(+), 48 deletions(-) create mode 100644 src/org/traccar/reports/model/BaseReport.java create mode 100644 src/org/traccar/reports/model/TripReport.java (limited to 'src/org/traccar/reports/model') diff --git a/src/org/traccar/reports/model/BaseReport.java b/src/org/traccar/reports/model/BaseReport.java new file mode 100644 index 000000000..bcbed29fe --- /dev/null +++ b/src/org/traccar/reports/model/BaseReport.java @@ -0,0 +1,70 @@ +/* + * Copyright 2016 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2016 Andrey Kunitsyn (abyss@fox5.ru) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.traccar.reports.model; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +public class BaseReport { + + private long deviceId; + public long getDeviceId() { + return deviceId; + } + public void setDeviceId(long deviceId) { + this.deviceId = deviceId; + } + + private String deviceName; + public String getDeviceName() { + return deviceName; + } + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + private double distance; // meters + public double getDistance() { + return distance; + } + public void setDistance(double distance) { + this.distance = distance; + } + + public void addDistance(double distance) { + this.distance += distance; + } + + private double averageSpeed; // knots + public double getAverageSpeed() { + return averageSpeed; + } + public void setAverageSpeed(Double averageSpeed) { + this.averageSpeed = new BigDecimal(averageSpeed.toString()).setScale(3, RoundingMode.HALF_EVEN).doubleValue(); + } + + private double maxSpeed; //knots + public double getMaxSpeed() { + return maxSpeed; + } + public void setMaxSpeed(double maxSpeed) { + if (maxSpeed > this.maxSpeed) { + this.maxSpeed = maxSpeed; + } + } + +} diff --git a/src/org/traccar/reports/model/SummaryReport.java b/src/org/traccar/reports/model/SummaryReport.java index 271d0c7c2..1e6655904 100644 --- a/src/org/traccar/reports/model/SummaryReport.java +++ b/src/org/traccar/reports/model/SummaryReport.java @@ -16,55 +16,9 @@ */ package org.traccar.reports.model; -public class SummaryReport { +public class SummaryReport extends BaseReport { - private long deviceId; - public long getDeviceId() { - return deviceId; - } - public void setDeviceId(long deviceId) { - this.deviceId = deviceId; - } - - private String deviceName; - public String getDeviceName() { - return deviceName; - } - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - private double distance; - public double getDistance() { - return distance; - } - public void setDistance(double distance) { - this.distance = distance; - } - - public void addDistance(double distance) { - this.distance += distance; - } - - private double averageSpeed; - public double getAverageSpeed() { - return averageSpeed; - } - public void setAverageSpeed(double averageSpeed) { - this.averageSpeed = averageSpeed; - } - - private double maxSpeed; - public double getMaxSpeed() { - return maxSpeed; - } - public void setMaxSpeed(double maxSpeed) { - if (maxSpeed > this.maxSpeed) { - this.maxSpeed = maxSpeed; - } - } - - private long engineHours; + private long engineHours; // milliseconds public long getEngineHours() { return engineHours; } diff --git a/src/org/traccar/reports/model/TripReport.java b/src/org/traccar/reports/model/TripReport.java new file mode 100644 index 000000000..3a77b02ca --- /dev/null +++ b/src/org/traccar/reports/model/TripReport.java @@ -0,0 +1,87 @@ +package org.traccar.reports.model; + +import java.util.Date; + +public class TripReport extends BaseReport { + + private long startPositionId; + public long getStartPositionId() { + return startPositionId; + } + public void setStartPositionId(long startPositionId) { + this.startPositionId = startPositionId; + } + + private long endPositionId; + public long getEndPositionId() { + return endPositionId; + } + public void setEndPositionId(long endPositionId) { + this.endPositionId = endPositionId; + } + + private Date startTime; + public Date getStartTime() { + if (startTime != null) { + return new Date(startTime.getTime()); + } else { + return null; + } + } + public void setStartTime(Date startTime) { + if (startTime != null) { + this.startTime = new Date(startTime.getTime()); + } else { + this.startTime = null; + } + } + + private String startAddress; + public String getStartAddress() { + return startAddress; + } + public void setStartAddress(String address) { + this.startAddress = address; + } + + private Date endTime; + public Date getEndTime() { + if (endTime != null) { + return new Date(endTime.getTime()); + } else { + return null; + } + } + public void setEndTime(Date endTime) { + if (endTime != null) { + this.endTime = new Date(endTime.getTime()); + } else { + this.endTime = null; + } + } + + private String endAddress; + public String getEndAddress() { + return endAddress; + } + public void setEndAddress(String address) { + this.endAddress = address; + } + + private long duration; + public long getDuration() { + return duration; + } + public void setDuration(long duration) { + this.duration = duration; + } + + private String spentFuel; + public String getSpentFuel() { + return spentFuel; + } + public void setSpentFuel(String spentFuel) { + this.spentFuel = spentFuel; + } + +} -- cgit v1.2.3