diff options
author | Iván Ávalos <avalos@disroot.org> | 2024-03-07 22:59:12 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2024-03-07 22:59:12 -0600 |
commit | 00d3ddf7b5e335a5112a28a547c4c9ec2c3bd1d2 (patch) | |
tree | a02ecb75a8533194314d32c0c667520bff5e919d /src/main/java/org/traccar/handler/events/MaintenanceEventHandler.java | |
parent | 8e1bc703227a875c20e453704d774ce5772f2621 (diff) | |
parent | 75b404db5c790bf37c05fabf1cbbd2027ad1db25 (diff) | |
download | trackermap-server-00d3ddf7b5e335a5112a28a547c4c9ec2c3bd1d2.tar.gz trackermap-server-00d3ddf7b5e335a5112a28a547c4c9ec2c3bd1d2.tar.bz2 trackermap-server-00d3ddf7b5e335a5112a28a547c4c9ec2c3bd1d2.zip |
Merge branch 'master' of https://github.com/traccar/traccar
Diffstat (limited to 'src/main/java/org/traccar/handler/events/MaintenanceEventHandler.java')
-rw-r--r-- | src/main/java/org/traccar/handler/events/MaintenanceEventHandler.java | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/main/java/org/traccar/handler/events/MaintenanceEventHandler.java b/src/main/java/org/traccar/handler/events/MaintenanceEventHandler.java index 909950acf..2fa2e8869 100644 --- a/src/main/java/org/traccar/handler/events/MaintenanceEventHandler.java +++ b/src/main/java/org/traccar/handler/events/MaintenanceEventHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 - 2022 Anton Tananaev (anton@traccar.org) + * Copyright 2016 - 2024 Anton Tananaev (anton@traccar.org) * Copyright 2016 - 2018 Andrey Kunitsyn (andrey@traccar.org) * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -25,8 +25,8 @@ import org.traccar.model.Maintenance; import org.traccar.model.Position; import org.traccar.session.cache.CacheManager; -import javax.inject.Inject; -import javax.inject.Singleton; +import jakarta.inject.Inject; +import jakarta.inject.Singleton; @Singleton @ChannelHandler.Sharable @@ -49,8 +49,8 @@ public class MaintenanceEventHandler extends BaseEventHandler { Map<Event, Position> events = new HashMap<>(); for (Maintenance maintenance : cacheManager.getDeviceObjects(position.getDeviceId(), Maintenance.class)) { if (maintenance.getPeriod() != 0) { - double oldValue = lastPosition.getDouble(maintenance.getType()); - double newValue = position.getDouble(maintenance.getType()); + double oldValue = getValue(lastPosition, maintenance.getType()); + double newValue = getValue(position, maintenance.getType()); if (oldValue != 0.0 && newValue != 0.0 && newValue >= maintenance.getStart()) { if (oldValue < maintenance.getStart() || (long) ((oldValue - maintenance.getStart()) / maintenance.getPeriod()) @@ -67,4 +67,17 @@ public class MaintenanceEventHandler extends BaseEventHandler { return events; } + private double getValue(Position position, String type) { + switch (type) { + case "serverTime": + return position.getServerTime().getTime(); + case "deviceTime": + return position.getDeviceTime().getTime(); + case "fixTime": + return position.getFixTime().getTime(); + default: + return position.getDouble(type); + } + } + } |