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 Menu menu = new Menu();
|
||||||
private FinancialManager financialManager = new FinancialManager();
|
private FinancialManager financialManager = new FinancialManager();
|
||||||
private ReservationManager reservationManager = new ReservationManager();
|
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() {
|
public SystemController() {
|
||||||
loadUsersFromFile();
|
loadUsersFromFile();
|
||||||
|
loadShiftsFromFile();
|
||||||
|
loadAbsencesFromFile();
|
||||||
|
loadFeedbacksFromFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startSystem() {
|
public void startSystem() {
|
||||||
|
|
@ -49,7 +58,8 @@ class SystemController {
|
||||||
System.out.println("4. Bestellungen verwalten");
|
System.out.println("4. Bestellungen verwalten");
|
||||||
System.out.println("5. Finanzbericht anzeigen");
|
System.out.println("5. Finanzbericht anzeigen");
|
||||||
System.out.println("6. Reservierungen verwalten");
|
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: ");
|
System.out.print("Bitte wähle eine Option: ");
|
||||||
int choice = scanner.nextInt();
|
int choice = scanner.nextInt();
|
||||||
scanner.nextLine();
|
scanner.nextLine();
|
||||||
|
|
@ -60,7 +70,8 @@ class SystemController {
|
||||||
case 4 -> manageOrders();
|
case 4 -> manageOrders();
|
||||||
case 5 -> showFinancialReports();
|
case 5 -> showFinancialReports();
|
||||||
case 6 -> manageReservations(user);
|
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.");
|
default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -190,6 +201,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() {
|
private void createUser() {
|
||||||
String username = "";
|
String username = "";
|
||||||
String password = "";
|
String password = "";
|
||||||
|
|
@ -240,6 +295,143 @@ class SystemController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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) {
|
private void saveUserToFile(User user) {
|
||||||
try (BufferedWriter writer = new BufferedWriter(new FileWriter(USERS_FILE, true))) {
|
try (BufferedWriter writer = new BufferedWriter(new FileWriter(USERS_FILE, true))) {
|
||||||
writer.write(user.username + ":" + user.password + ":" + user.role.name());
|
writer.write(user.username + ":" + user.password + ":" + user.role.name());
|
||||||
|
|
|
||||||
|
|
@ -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