Search in sources :

Example 11 with Event

use of org.traccar.model.Event in project traccar by tananaev.

the class Events method getExcel.

public static void getExcel(OutputStream outputStream, long userId, Collection<Long> deviceIds, Collection<Long> groupIds, Collection<String> types, Date from, Date to) throws SQLException, IOException {
    ReportUtils.checkPeriodLimit(from, to);
    ArrayList<DeviceReport> devicesEvents = new ArrayList<>();
    ArrayList<String> sheetNames = new ArrayList<>();
    HashMap<Long, String> geofenceNames = new HashMap<>();
    for (long deviceId : ReportUtils.getDeviceList(deviceIds, groupIds)) {
        Context.getPermissionsManager().checkDevice(userId, deviceId);
        Collection<Event> events = Context.getDataManager().getEvents(deviceId, from, to);
        boolean all = types.isEmpty() || types.contains(Event.ALL_EVENTS);
        for (Iterator<Event> iterator = events.iterator(); iterator.hasNext(); ) {
            Event event = iterator.next();
            if (all || types.contains(event.getType())) {
                long geofenceId = event.getGeofenceId();
                if (geofenceId != 0) {
                    if (Context.getGeofenceManager().checkItemPermission(userId, geofenceId)) {
                        Geofence geofence = Context.getGeofenceManager().getById(geofenceId);
                        if (geofence != null) {
                            geofenceNames.put(geofenceId, geofence.getName());
                        }
                    } else {
                        iterator.remove();
                    }
                }
            } else {
                iterator.remove();
            }
        }
        DeviceReport deviceEvents = new DeviceReport();
        Device device = Context.getIdentityManager().getById(deviceId);
        deviceEvents.setDeviceName(device.getName());
        sheetNames.add(WorkbookUtil.createSafeSheetName(deviceEvents.getDeviceName()));
        if (device.getGroupId() != 0) {
            Group group = Context.getGroupsManager().getById(device.getGroupId());
            if (group != null) {
                deviceEvents.setGroupName(group.getName());
            }
        }
        deviceEvents.setObjects(events);
        devicesEvents.add(deviceEvents);
    }
    String templatePath = Context.getConfig().getString("report.templatesPath", "templates/export/");
    try (InputStream inputStream = new FileInputStream(templatePath + "/events.xlsx")) {
        org.jxls.common.Context jxlsContext = ReportUtils.initializeContext(userId);
        jxlsContext.putVar("devices", devicesEvents);
        jxlsContext.putVar("sheetNames", sheetNames);
        jxlsContext.putVar("geofenceNames", geofenceNames);
        jxlsContext.putVar("from", from);
        jxlsContext.putVar("to", to);
        ReportUtils.processTemplateWithSheets(inputStream, outputStream, jxlsContext);
    }
}
Also used : Group(org.traccar.model.Group) HashMap(java.util.HashMap) Device(org.traccar.model.Device) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) ArrayList(java.util.ArrayList) FileInputStream(java.io.FileInputStream) Event(org.traccar.model.Event) DeviceReport(org.traccar.reports.model.DeviceReport) Geofence(org.traccar.model.Geofence)

Example 12 with Event

use of org.traccar.model.Event in project traccar by tananaev.

the class CommandResultEventHandlerTest method testCommandResultEventHandler.

@Test
public void testCommandResultEventHandler() throws Exception {
    CommandResultEventHandler commandResultEventHandler = new CommandResultEventHandler();
    Position position = new Position();
    position.set(Position.KEY_RESULT, "Test Result");
    Map<Event, Position> events = commandResultEventHandler.analyzePosition(position);
    assertNotNull(events);
    Event event = events.keySet().iterator().next();
    assertEquals(Event.TYPE_COMMAND_RESULT, event.getType());
}
Also used : Position(org.traccar.model.Position) Event(org.traccar.model.Event) BaseTest(org.traccar.BaseTest) Test(org.junit.Test)

Example 13 with Event

use of org.traccar.model.Event in project traccar by tananaev.

the class IgnitionEventHandlerTest method testIgnitionEventHandler.

@Test
public void testIgnitionEventHandler() throws Exception {
    IgnitionEventHandler ignitionEventHandler = new IgnitionEventHandler();
    Position position = new Position();
    position.set(Position.KEY_IGNITION, true);
    position.setValid(true);
    Map<Event, Position> events = ignitionEventHandler.analyzePosition(position);
    assertEquals(events, null);
}
Also used : Position(org.traccar.model.Position) Event(org.traccar.model.Event) BaseTest(org.traccar.BaseTest) Test(org.junit.Test)

Example 14 with Event

use of org.traccar.model.Event in project traccar by tananaev.

the class MotionEventHandlerTest method testStopWithPositionIgnition.

@Test
public void testStopWithPositionIgnition() throws Exception {
    MotionEventHandler motionEventHandler = new MotionEventHandler(new TripsConfig(500, 300 * 1000, 300 * 1000, 0, true, false, 0.01));
    Position position = new Position();
    position.setTime(date("2017-01-01 00:00:00"));
    position.set(Position.KEY_MOTION, false);
    position.set(Position.KEY_IGNITION, true);
    DeviceState deviceState = new DeviceState();
    deviceState.setMotionState(true);
    deviceState.setMotionPosition(position);
    Position nextPosition = new Position();
    nextPosition.setTime(date("2017-01-01 00:02:00"));
    nextPosition.set(Position.KEY_MOTION, false);
    nextPosition.set(Position.KEY_IGNITION, false);
    Map<Event, Position> events = motionEventHandler.updateMotionState(deviceState, nextPosition);
    assertNotNull(events);
    Event event = events.keySet().iterator().next();
    assertEquals(Event.TYPE_DEVICE_STOPPED, event.getType());
    assertFalse(deviceState.getMotionState());
    assertNull(deviceState.getMotionPosition());
}
Also used : DeviceState(org.traccar.model.DeviceState) TripsConfig(org.traccar.reports.model.TripsConfig) Position(org.traccar.model.Position) Event(org.traccar.model.Event) Test(org.junit.Test) BaseTest(org.traccar.BaseTest)

Example 15 with Event

use of org.traccar.model.Event in project traccar by tananaev.

the class OverspeedEventHandlerTest method testOverspeedWithStatus.

private void testOverspeedWithStatus(boolean notRepeat) throws Exception {
    OverspeedEventHandler overspeedEventHandler = new OverspeedEventHandler(15000, notRepeat);
    Position position = new Position();
    position.setTime(new Date(System.currentTimeMillis() - 30000));
    position.setSpeed(50);
    DeviceState deviceState = new DeviceState();
    deviceState.setOverspeedState(false);
    deviceState.setOverspeedPosition(position);
    Map<Event, Position> events = overspeedEventHandler.updateOverspeedState(deviceState, 40);
    assertNotNull(events);
    Event event = events.keySet().iterator().next();
    assertEquals(Event.TYPE_DEVICE_OVERSPEED, event.getType());
    assertEquals(notRepeat, deviceState.getOverspeedState());
}
Also used : DeviceState(org.traccar.model.DeviceState) Position(org.traccar.model.Position) Event(org.traccar.model.Event) Date(java.util.Date)

Aggregations

Event (org.traccar.model.Event)31 Position (org.traccar.model.Position)25 Device (org.traccar.model.Device)9 DeviceState (org.traccar.model.DeviceState)9 Test (org.junit.Test)6 BaseTest (org.traccar.BaseTest)6 ArrayList (java.util.ArrayList)4 HashMap (java.util.HashMap)4 TripsConfig (org.traccar.reports.model.TripsConfig)3 Date (java.util.Date)2 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)2 Path (javax.ws.rs.Path)2 FileInputStream (java.io.FileInputStream)1 InputStream (java.io.InputStream)1 SQLException (java.sql.SQLException)1 GET (javax.ws.rs.GET)1 POST (javax.ws.rs.POST)1 Timeout (org.jboss.netty.util.Timeout)1 TimerTask (org.jboss.netty.util.TimerTask)1 MotionEventHandler (org.traccar.events.MotionEventHandler)1