-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathMaintenanceOffice.java
More file actions
88 lines (70 loc) · 2.89 KB
/
MaintenanceOffice.java
File metadata and controls
88 lines (70 loc) · 2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package org.codedifferently.michaelmoss;
import java.util.ArrayList;
public class MaintenanceOffice {
private ArrayList<MaintenanceRequest> requests;
public MaintenanceOffice() {
requests = new ArrayList<>();
}
public void addRequest(MaintenanceRequest request) {
requests.add(request);
}
// Assign tech based on severity
public void assignTech(MaintenanceRequest request) {
if (request.getSeverity() >= 4) {
System.out.println("Assigned Senior Technician to Apt " + request.getApartmentNumber());
} else {
System.out.println("Assigned General Technician to Apt " + request.getApartmentNumber());
}
request.setStatus("IN_PROGRESS");
}
// Close request only if DONE
public void closeRequest(MaintenanceRequest request) {
if (request.getStatus().equals("DONE")) {
System.out.println("Request for Apt " + request.getApartmentNumber() + " is now CLOSED.");
} else {
System.out.println("Cannot close. Request is not marked DONE.");
}
}
// Daily Report (Level 4)
public void printDailyReport() {
int total = requests.size();
int open = 0;
int closed = 0;
int low = 0, medium = 0, high = 0;
java.util.HashMap<String, Integer> issueCount = new java.util.HashMap<>();
for (MaintenanceRequest r : requests) {
if (r.getStatus().equals("DONE"))
closed++;
else
open++;
if (r.getSeverity() <= 2)
low++;
else if (r.getSeverity() == 3)
medium++;
else
high++;
issueCount.put(r.getIssueType(),
issueCount.getOrDefault(r.getIssueType(), 0) + 1);
}
// Find most common issue
String commonIssue = "None";
int max = 0;
for (String issue : issueCount.keySet()) {
if (issueCount.get(issue) > max) {
max = issueCount.get(issue);
commonIssue = issue;
}
}
System.out.println("\n--- Daily Maintenance Report ---");
System.out.println("Total Requests: " + total);
System.out.println("Open: " + open + " | Closed: " + closed);
System.out.println("Low: " + low + " | Medium: " + medium + " | High: " + high);
System.out.println("Most Common Issue: " + commonIssue);
if (high > 3) {
System.out.println("WARNING: High priority overload!");
}
}
public ArrayList<MaintenanceRequest> getRequests() {
return requests;
}
}