diff options
author | Dominic Rogetzer <e1627756@student.tuwien.ac.at> | 2018-06-19 21:06:12 +0200 |
---|---|---|
committer | Dominic Rogetzer <e01627756@student.tuwien.ac.at> | 2018-06-19 21:06:12 +0200 |
commit | fffb6c7bbc2a68fb824309616d3d278b39f4e824 (patch) | |
tree | 36ebf29bdb28dd3e5c60f457f235feb8039e2ac4 | |
parent | b09d0a97367e12fc9aab54809bcb3e6ee5de9ca7 (diff) | |
download | sepm-groupproject-fffb6c7bbc2a68fb824309616d3d278b39f4e824.tar.gz sepm-groupproject-fffb6c7bbc2a68fb824309616d3d278b39f4e824.tar.xz sepm-groupproject-fffb6c7bbc2a68fb824309616d3d278b39f4e824.zip |
Display registrations in archive which are in timeframe only [#25963]
E.g. one group of people registers to from 10-12. If the group of people is registered on a car which is sent to the operation within the time it is listed in archive. Otherwise, they are not shown. This restriction is necessary as otherwise, all employees that have been registered to this vehicle would be listed, regardless of the time of their registration
3 files changed, 36 insertions, 15 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/ArchiveOperationController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/ArchiveOperationController.java index 5b1f975..3c3a005 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/ArchiveOperationController.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/ArchiveOperationController.java @@ -177,7 +177,7 @@ public class ArchiveOperationController { controller = DetailArchiveOperationController.create(fxmlLoader); - controller.set(vehicle); + controller.set(vehicle, detailOperation); fpVehicles.getChildren().add(controller.getRoot()); } } catch (IOException e) { diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/DetailArchiveOperationController.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/DetailArchiveOperationController.java index 32630a5..a866653 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/DetailArchiveOperationController.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/DetailArchiveOperationController.java @@ -3,11 +3,15 @@ package at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.controller; import static at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.controller.Helper.showServiceExceptionAlertAndWait; import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Employee; +import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Operation; +import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Registration; import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Vehicle; import at.ac.tuwien.sepm.assignment.groupphase.util.SpringFXMLLoader; import at.ac.tuwien.sepm.assignment.groupphase.util.SpringFXMLLoader.FXMLWrapper; import java.io.IOException; +import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; import javafx.fxml.FXML; import javafx.scene.Node; import javafx.scene.layout.VBox; @@ -47,7 +51,7 @@ public class DetailArchiveOperationController { private Node rootElement; - public void set(Vehicle vehicle) { + public void set(Vehicle vehicle, Operation operation) { VehiclePaneController controller; try { controller = VehiclePaneController.createVehiclePane(); @@ -59,10 +63,25 @@ public class DetailArchiveOperationController { "Ein interner Fehler ist aufgetreten. Bitte wenden Sie sich an den/die SystemadministratorIn."); } try { - for (int i = 0; i < Objects.requireNonNull(vehicle.registrations()).size(); i++) { - Employee employee = - Objects.requireNonNull(vehicle.registrations()).get(i).employee(); + List<Registration> registrations = + Objects.requireNonNull(vehicle.registrations()) + .stream() + .filter( + registration -> + registration + .start() + .isBefore( + Objects.requireNonNull( + operation.created())) + && registration + .end() + .isAfter( + Objects.requireNonNull( + operation.created()))) + .collect(Collectors.toList()); + for (Registration registration : registrations) { + Employee employee = registration.employee(); EmployeeListItemController employeeListItemController = EmployeeListItemController.createEmployeeListItemController( fxmlLoader, employee); diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/RegistrationDatabaseDAO.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/RegistrationDatabaseDAO.java index 90fbc2c..9f182c2 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/RegistrationDatabaseDAO.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/RegistrationDatabaseDAO.java @@ -39,11 +39,12 @@ public class RegistrationDatabaseDAO implements RegistrationDAO { try (PreparedStatement stmt = jdbcConnectionManager.getConnection().prepareStatement(sqlGetVehicleVersionId)) { stmt.setLong(1, vehicleId); - ResultSet rs = stmt.executeQuery(); - if (rs.next()) { - return rs.getLong("version"); - } else { - throw new PersistenceException("vehicle id not found"); + try (ResultSet rs = stmt.executeQuery()) { + if (rs.next()) { + return rs.getLong("version"); + } else { + throw new PersistenceException("vehicle id not found"); + } } } catch (SQLException e) { throw new PersistenceException(e); @@ -55,11 +56,12 @@ public class RegistrationDatabaseDAO implements RegistrationDAO { try (PreparedStatement stmt = jdbcConnectionManager.getConnection().prepareStatement(sqlGetEmployeeVersionId)) { stmt.setLong(1, employeeId); - ResultSet rs = stmt.executeQuery(); - if (rs.next()) { - return rs.getLong("version"); - } else { - throw new PersistenceException("employee id not found"); + try (ResultSet rs = stmt.executeQuery()) { + if (rs.next()) { + return rs.getLong("version"); + } else { + throw new PersistenceException("employee id not found"); + } } } catch (SQLException e) { throw new PersistenceException(e); |