Merge von Personalverwaltung und Reservierungs-Management
parent
e47c05ecd8
commit
4afcd67145
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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))) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
Ali;25.03.2024;13 Uhr
|
||||
Abbas;22.01.2024;14 Uhr
|
||||
Dimitry;15.01.2024; 15 Uhr
|
||||
Loading…
Reference in New Issue