Merge von Personalverwaltung und Reservierungs-Management

master
Aliuy 2025-01-11 19:00:32 +01:00
parent e47c05ecd8
commit 4afcd67145
7 changed files with 302 additions and 2 deletions

View File

@ -0,0 +1,32 @@
class Absence {
private String username;
private String date;
private String reason;
public Absence(String username, String date, String reason) {
this.username = username;
this.date = date;
this.reason = reason;
}
public String getUsername() {
return username;
}
public String getDate() {
return date;
}
public String getReason() {
return reason;
}
public String toFileFormat() {
return username + ";" + date + ";" + reason;
}
@Override
public String toString() {
return "Mitarbeiter: " + username + ", Datum: " + date + ", Grund: " + reason;
}
}

View File

@ -0,0 +1,26 @@
class Feedback {
private String employeeUsername;
private String feedbackText;
public Feedback(String employeeUsername, String feedbackText) {
this.employeeUsername = employeeUsername;
this.feedbackText = feedbackText;
}
public String getEmployeeUsername() {
return employeeUsername;
}
public String getFeedbackText() {
return feedbackText;
}
public String toFileFormat() {
return employeeUsername + ";" + feedbackText;
}
@Override
public String toString() {
return "Kunde gibt Feedback zu " + employeeUsername + ": " + feedbackText;
}
}

View File

@ -0,0 +1,35 @@
import java.util.*;
import java.io.*;
class Shift {
private String username;
private String shiftDate;
private String shiftTime;
public Shift(String username, String shiftDate, String shiftTime) {
this.username = username;
this.shiftDate = shiftDate;
this.shiftTime = shiftTime;
}
public String getUsername() {
return username;
}
public String getShiftDate() {
return shiftDate;
}
public String getShiftTime() {
return shiftTime;
}
public String toFileFormat() {
return username + ";" + shiftDate + ";" + shiftTime;
}
@Override
public String toString() {
return "Mitarbeiter: " + username + ", Datum: " + shiftDate + ", Uhrzeit: " + shiftTime;
}
}

View File

@ -9,9 +9,18 @@ class SystemController {
private Menu menu = new Menu();
private FinancialManager financialManager = new FinancialManager();
private ReservationManager reservationManager = new ReservationManager();
private List<Shift> shifts = new ArrayList<>();
private List<Absence> absences = new ArrayList<>();
private List<Feedback> feedbacks = new ArrayList<>();
private final String SHIFT_FILE = "src/shifts.txt";
private final String ABSENCE_FILE = "src/absences.txt";
private final String FEEDBACK_FILE = "src/feedback.txt";
public SystemController() {
loadUsersFromFile();
loadShiftsFromFile();
loadAbsencesFromFile();
loadFeedbacksFromFile();
}
public void startSystem() {
@ -49,7 +58,8 @@ class SystemController {
System.out.println("4. Bestellungen verwalten");
System.out.println("5. Finanzbericht anzeigen");
System.out.println("6. Reservierungen verwalten");
System.out.println("7. Beenden");
System.out.println("7. Mitarbeiter verwalten");
System.out.println("8. Beenden");
System.out.print("Bitte wähle eine Option: ");
int choice = scanner.nextInt();
scanner.nextLine();
@ -60,7 +70,8 @@ class SystemController {
case 4 -> manageOrders();
case 5 -> showFinancialReports();
case 6 -> manageReservations(user);
case 7 -> { running = false; System.out.println("System wird beendet. Auf Wiedersehen!"); }
case 7 -> manageEmployees(user);
case 8 -> { running = false; System.out.println("System wird beendet. Auf Wiedersehen!"); }
default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut.");
}
}
@ -189,6 +200,50 @@ class SystemController {
}
}
}
public void manageEmployees(User user) {
boolean managingEmployees = true;
while (managingEmployees) {
System.out.println("\n--- Mitarbeiter verwalten ---");
System.out.println("1. Schichtplan anzeigen");
System.out.println("2. Abwesenheit eintragen");
System.out.println("3. Abwesenheit anzeigen");
System.out.println("4. Feedback geben");
System.out.println("5. Feedback anzeigen");
System.out.println("6. Zurück zum Hauptmenü");
System.out.print("Bitte wähle eine Option: ");
int choice = scanner.nextInt();
scanner.nextLine(); // Eingabepuffer leeren
switch (choice) {
case 1 -> showShiftPlan(user.username); // Schichtplan für den eingeloggten Mitarbeiter anzeigen
case 2 -> {
if (user.role == Role.MANAGER) {
createAbsence(user.username); // Abwesenheit für Mitarbeiter erstellen
} else {
System.out.println("Keine Rechte, um neue Nutzer zu erstellen.");
}
}
case 3 -> {
if (user.role == Role.MANAGER) {
showAbsences(); // Abwesenheiten zeigen
} else {
System.out.println("Keine Rechte, um neue Nutzer zu erstellen.");
}
}
case 4 -> giveFeedback(); // Feedback geben
case 5 -> {
if (user.role == Role.MANAGER) {
showFeedback(); // Feedbacks zeigen
} else {
System.out.println("Keine Rechte, um neue Nutzer zu erstellen.");
}
}
case 6 -> managingEmployees = false; // Zurück zum Hauptmenü
default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut.");
}
}
}
private void createUser() {
String username = "";
@ -239,6 +294,143 @@ class SystemController {
System.out.println("Fehler beim Lesen der Benutzerdatenbank: " + e.getMessage());
}
}
private void loadShiftsFromFile() {
try (BufferedReader reader = new BufferedReader(new FileReader("src/shifts.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
String[] parts = line.split(";");
String username = parts[0];
String shiftDate = parts[1];
String shiftTime = parts[2];
// Erstelle neuen Shift-Objekt und füge es der Liste hinzu
Shift shift = new Shift(username, shiftDate, shiftTime);
shifts.add(shift);
}
} catch (IOException e) {
System.out.println("Fehler beim Laden der Schichtpläne: " + e.getMessage());
}
}
private void loadAbsencesFromFile() {
try (BufferedReader reader = new BufferedReader(new FileReader("src/absences.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
String[] parts = line.split(";");
String username = parts[0];
String date = parts[1];
String reason = parts[2];
// Erstelle neues Absence-Objekt und füge es der Liste hinzu
Absence absence = new Absence(username, date, reason);
absences.add(absence);
}
} catch (IOException e) {
System.out.println("Fehler beim Laden der Abwesenheiten: " + e.getMessage());
}
}
private void loadFeedbacksFromFile() {
try (BufferedReader reader = new BufferedReader(new FileReader("src/feedback.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
String[] parts = line.split(";");
String username = parts[0];
String feedback = parts[1];
// Erstelle neues Feedback-Objekt und füge es der Liste hinzu
Feedback feedbackObj = new Feedback(username, feedback);
feedbacks.add(feedbackObj);
}
} catch (IOException e) {
System.out.println("Fehler beim Laden der Feedbacks: " + e.getMessage());
}
}
public void showShiftPlan(String username) {
System.out.println("\n--- Dein Schichtplan ---");
for (Shift shift : shifts) {
if (shift.getUsername().equals(username)) {
System.out.println(shift);
}
}
}
public void createAbsence(String username) {
System.out.println("Gib Den Namen des Mitarbeiters ein:");
String name = scanner.nextLine();
System.out.print("Gib das Datum der Abwesenheit ein: ");
String date = scanner.nextLine();
System.out.print("Gib den Grund der Abwesenheit ein: ");
String reason = scanner.nextLine();
Absence absence = new Absence(name, date, reason);
absences.add(absence);
saveAbsencesToFile();
System.out.println("Abwesenheit wurde erfolgreich eingetragen.");
}
public void saveShiftToFile(String shift) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("src/shifts.txt", true))) {
writer.write(shift); // Schicht als String speichern
writer.newLine();
} catch (IOException e) {
System.out.println("Fehler beim Speichern der Schicht: " + e.getMessage());
}
}
public void showAbsences() {
System.out.println("\n--- Abwesenheiten ---");
for (Absence absence : absences) {
System.out.println(absence);
}
}
public void giveFeedback() {
System.out.print("Gib den Benutzernamen des Mitarbeiters ein: ");
String employeeUsername = scanner.nextLine();
System.out.print("Gib das Feedback ein: ");
String feedbackText = scanner.nextLine();
Feedback feedback = new Feedback(employeeUsername, feedbackText);
feedbacks.add(feedback);
saveFeedbackToFile();
System.out.println("Feedback wurde erfolgreich gespeichert.");
}
public void showFeedback() {
if (feedbacks.isEmpty()) {
System.out.println("Keine Feedbacks vorhanden.");
} else {
System.out.println("\n--- Feedbacks ---");
for (Feedback feedback : feedbacks) {
System.out.println(feedback.toString());
}
}
}
private void saveAbsencesToFile() {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(ABSENCE_FILE, true))) {
for (Absence absence : absences) {
writer.write(absence.toFileFormat());
writer.newLine();
}
} catch (IOException e) {
System.out.println("Fehler beim Speichern der Abwesenheiten: " + e.getMessage());
}
}
private void saveFeedbackToFile() {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(FEEDBACK_FILE, false))) {
for (Feedback feedback : feedbacks) {
writer.write(feedback.toFileFormat());
writer.newLine();
}
} catch (IOException e) {
System.out.println("Fehler beim Speichern des Feedbacks: " + e.getMessage());
}
}
private void saveUserToFile(User user) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(USERS_FILE, true))) {

View File

@ -0,0 +1,7 @@
Arim;22.02.2025;Krank
Arim;22.02.2025;Krank
Dimitry ;25.04.2025;Krankheit
Arim;22.02.2025;Krank
Arim;22.02.2025;Krank
Dimitry ;25.04.2025;Krankheit
Abbas;26.03.2025;Krankheit

View File

@ -0,0 +1,5 @@
Abbas;Abbas hat den Tisch nicht gewaschen und beim Abrechnen aggressiv trinkgeld verlangt
Abbas;Schlecht
Arim;Gut
Dimitry;Gut arbeit
Abbas;Guter man

View File

@ -0,0 +1,3 @@
Ali;25.03.2024;13 Uhr
Abbas;22.01.2024;14 Uhr
Dimitry;15.01.2024; 15 Uhr