aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominic Rogetzer <e1627756@student.tuwien.ac.at>2018-06-19 21:06:12 +0200
committerDominic Rogetzer <e01627756@student.tuwien.ac.at>2018-06-19 21:06:12 +0200
commitfffb6c7bbc2a68fb824309616d3d278b39f4e824 (patch)
tree36ebf29bdb28dd3e5c60f457f235feb8039e2ac4
parentb09d0a97367e12fc9aab54809bcb3e6ee5de9ca7 (diff)
downloadsepm-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
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/ArchiveOperationController.java2
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/DetailArchiveOperationController.java27
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/dao/RegistrationDatabaseDAO.java22
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);