diff options
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); |