From 9e07a009a3da41cd3cdd21809e9588e1ed133d6f Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Tue, 28 Jun 2022 07:39:33 -0700 Subject: Fix device name in reports --- .../org/traccar/reports/common/ReportUtils.java | 27 ++++++++-------------- 1 file changed, 10 insertions(+), 17 deletions(-) (limited to 'src/main/java/org/traccar/reports/common/ReportUtils.java') diff --git a/src/main/java/org/traccar/reports/common/ReportUtils.java b/src/main/java/org/traccar/reports/common/ReportUtils.java index f5f2cd3df..cd6b6ffd5 100644 --- a/src/main/java/org/traccar/reports/common/ReportUtils.java +++ b/src/main/java/org/traccar/reports/common/ReportUtils.java @@ -99,12 +99,6 @@ public class ReportUtils { new Condition.Permission(User.class, userId, clazz)))); } - public Device getDevice(long deviceId) throws StorageException { - return storage.getObject(Device.class, new Request( - new Columns.Include("id"), - new Condition.Equals("id", "id", deviceId))); - } - public void checkPeriodLimit(Date from, Date to) { long limit = config.getLong(Keys.REPORT_PERIOD_LIMIT) * 1000; if (limit > 0 && to.getTime() - from.getTime() > limit) { @@ -211,7 +205,7 @@ public class ReportUtils { } private TripReportItem calculateTrip( - ArrayList positions, int startIndex, int endIndex, + Device device, ArrayList positions, int startIndex, int endIndex, boolean ignoreOdometer) throws StorageException { Position startTrip = positions.get(startIndex); @@ -230,7 +224,7 @@ public class ReportUtils { long tripDuration = endTrip.getFixTime().getTime() - startTrip.getFixTime().getTime(); long deviceId = startTrip.getDeviceId(); trip.setDeviceId(deviceId); - trip.setDeviceName(getDevice(deviceId).getName()); + trip.setDeviceName(device.getName()); trip.setStartPositionId(startTrip.getId()); trip.setStartLat(startTrip.getLatitude()); @@ -277,8 +271,7 @@ public class ReportUtils { } private StopReportItem calculateStop( - ArrayList positions, int startIndex, int endIndex, - boolean ignoreOdometer) throws StorageException { + Device device, ArrayList positions, int startIndex, int endIndex, boolean ignoreOdometer) { Position startStop = positions.get(startIndex); Position endStop = positions.get(endIndex); @@ -287,7 +280,7 @@ public class ReportUtils { long deviceId = startStop.getDeviceId(); stop.setDeviceId(deviceId); - stop.setDeviceName(getDevice(deviceId).getName()); + stop.setDeviceName(device.getName()); stop.setPositionId(startStop.getId()); stop.setLatitude(startStop.getLatitude()); @@ -326,13 +319,13 @@ public class ReportUtils { @SuppressWarnings("unchecked") private T calculateTripOrStop( - ArrayList positions, int startIndex, int endIndex, + Device device, ArrayList positions, int startIndex, int endIndex, boolean ignoreOdometer, Class reportClass) throws StorageException { if (reportClass.equals(TripReportItem.class)) { - return (T) calculateTrip(positions, startIndex, endIndex, ignoreOdometer); + return (T) calculateTrip(device, positions, startIndex, endIndex, ignoreOdometer); } else { - return (T) calculateStop(positions, startIndex, endIndex, ignoreOdometer); + return (T) calculateStop(device, positions, startIndex, endIndex, ignoreOdometer); } } @@ -357,7 +350,7 @@ public class ReportUtils { } public Collection detectTripsAndStops( - Collection positionCollection, boolean ignoreOdometer, + Device device, Collection positionCollection, boolean ignoreOdometer, Class reportClass) throws StorageException { Collection result = new ArrayList<>(); @@ -392,14 +385,14 @@ public class ReportUtils { if (startEventIndex != -1 && startNoEventIndex != -1 && event != null && trips != deviceState.getMotionState()) { result.add(calculateTripOrStop( - positions, startEventIndex, startNoEventIndex, ignoreOdometer, reportClass)); + device, positions, startEventIndex, startNoEventIndex, ignoreOdometer, reportClass)); startEventIndex = -1; } } if (startEventIndex != -1 && (startNoEventIndex != -1 || !trips)) { int endIndex = startNoEventIndex != -1 ? startNoEventIndex : positions.size() - 1; result.add(calculateTripOrStop( - positions, startEventIndex, endIndex, ignoreOdometer, reportClass)); + device, positions, startEventIndex, endIndex, ignoreOdometer, reportClass)); } } -- cgit v1.2.3