Search in sources :

Example 6 with Group

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

the class Route method getExcel.

public static void getExcel(OutputStream outputStream, long userId, Collection<Long> deviceIds, Collection<Long> groupIds, Date from, Date to) throws SQLException, IOException {
    ReportUtils.checkPeriodLimit(from, to);
    ArrayList<DeviceReport> devicesRoutes = new ArrayList<>();
    ArrayList<String> sheetNames = new ArrayList<>();
    for (long deviceId : ReportUtils.getDeviceList(deviceIds, groupIds)) {
        Context.getPermissionsManager().checkDevice(userId, deviceId);
        Collection<Position> positions = Context.getDataManager().getPositions(deviceId, from, to);
        DeviceReport deviceRoutes = new DeviceReport();
        Device device = Context.getIdentityManager().getById(deviceId);
        deviceRoutes.setDeviceName(device.getName());
        sheetNames.add(WorkbookUtil.createSafeSheetName(deviceRoutes.getDeviceName()));
        if (device.getGroupId() != 0) {
            Group group = Context.getGroupsManager().getById(device.getGroupId());
            if (group != null) {
                deviceRoutes.setGroupName(group.getName());
            }
        }
        deviceRoutes.setObjects(positions);
        devicesRoutes.add(deviceRoutes);
    }
    String templatePath = Context.getConfig().getString("report.templatesPath", "templates/export/");
    try (InputStream inputStream = new FileInputStream(templatePath + "/route.xlsx")) {
        org.jxls.common.Context jxlsContext = ReportUtils.initializeContext(userId);
        jxlsContext.putVar("devices", devicesRoutes);
        jxlsContext.putVar("sheetNames", sheetNames);
        jxlsContext.putVar("from", from);
        jxlsContext.putVar("to", to);
        ReportUtils.processTemplateWithSheets(inputStream, outputStream, jxlsContext);
    }
}
Also used : Group(org.traccar.model.Group) Position(org.traccar.model.Position) Device(org.traccar.model.Device) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) ArrayList(java.util.ArrayList) FileInputStream(java.io.FileInputStream) DeviceReport(org.traccar.reports.model.DeviceReport)

Example 7 with Group

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

the class Trips method getExcel.

public static void getExcel(OutputStream outputStream, long userId, Collection<Long> deviceIds, Collection<Long> groupIds, Date from, Date to) throws SQLException, IOException {
    ReportUtils.checkPeriodLimit(from, to);
    ArrayList<DeviceReport> devicesTrips = new ArrayList<>();
    ArrayList<String> sheetNames = new ArrayList<>();
    for (long deviceId : ReportUtils.getDeviceList(deviceIds, groupIds)) {
        Context.getPermissionsManager().checkDevice(userId, deviceId);
        Collection<TripReport> trips = detectTrips(deviceId, from, to);
        DeviceReport deviceTrips = new DeviceReport();
        Device device = Context.getIdentityManager().getById(deviceId);
        deviceTrips.setDeviceName(device.getName());
        sheetNames.add(WorkbookUtil.createSafeSheetName(deviceTrips.getDeviceName()));
        if (device.getGroupId() != 0) {
            Group group = Context.getGroupsManager().getById(device.getGroupId());
            if (group != null) {
                deviceTrips.setGroupName(group.getName());
            }
        }
        deviceTrips.setObjects(trips);
        devicesTrips.add(deviceTrips);
    }
    String templatePath = Context.getConfig().getString("report.templatesPath", "templates/export/");
    try (InputStream inputStream = new FileInputStream(templatePath + "/trips.xlsx")) {
        org.jxls.common.Context jxlsContext = ReportUtils.initializeContext(userId);
        jxlsContext.putVar("devices", devicesTrips);
        jxlsContext.putVar("sheetNames", sheetNames);
        jxlsContext.putVar("from", from);
        jxlsContext.putVar("to", to);
        ReportUtils.processTemplateWithSheets(inputStream, outputStream, jxlsContext);
    }
}
Also used : TripReport(org.traccar.reports.model.TripReport) Group(org.traccar.model.Group) Device(org.traccar.model.Device) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) ArrayList(java.util.ArrayList) FileInputStream(java.io.FileInputStream) DeviceReport(org.traccar.reports.model.DeviceReport)

Example 8 with Group

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

the class GroupTreeTest method createGroup.

private static Group createGroup(long id, String name, long parent) {
    Group group = new Group();
    group.setId(id);
    group.setName(name);
    group.setGroupId(parent);
    return group;
}
Also used : Group(org.traccar.model.Group)

Aggregations

Group (org.traccar.model.Group)8 Device (org.traccar.model.Device)7 FileInputStream (java.io.FileInputStream)4 InputStream (java.io.InputStream)4 ArrayList (java.util.ArrayList)4 DeviceReport (org.traccar.reports.model.DeviceReport)4 SQLException (java.sql.SQLException)2 HashMap (java.util.HashMap)2 Permission (org.traccar.model.Permission)2 HashSet (java.util.HashSet)1 Map (java.util.Map)1 Set (java.util.Set)1 Event (org.traccar.model.Event)1 Geofence (org.traccar.model.Geofence)1 Position (org.traccar.model.Position)1 Server (org.traccar.model.Server)1 StopReport (org.traccar.reports.model.StopReport)1 TripReport (org.traccar.reports.model.TripReport)1