Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 91 additions & 0 deletions src/main/java/masonbrown/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
package masonbrown;
import java.util.ArrayList;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {

MaintenanceRequest maintenanceRequest1 = new MaintenanceRequest("larry",
"bird", 301, "ELECTRICAL", 4, "NEW");
MaintenanceRequest maintenanceRequest2 = new MaintenanceRequest("joanne",
"lork", 191, "HVAC", 4, "NEW");
MaintenanceRequest maintenanceRequest3 = new MaintenanceRequest("horace",
"grant", 601, "PLUMBING", 5, "NEW");

ArrayList<MaintenanceRequest> requests = new ArrayList<>();
requests.add(maintenanceRequest1);
requests.add(maintenanceRequest2);
requests.add(maintenanceRequest3);
ArrayList<String> techs = new ArrayList<>();
techs.add("Alice");
techs.add("Bob");
techs.add("Charlie");


MaintenanceOffice office = new MaintenanceOffice(requests, techs);
office.assigntech();
for (MaintenanceRequest i : requests) {
if (i.getSeverity() > 3) {
i.severitycheck();
System.out.println(i);
} else {
System.out.println(i);
}
}

boolean done = false;
Scanner scanner = new Scanner(System.in);

while (!done) {

System.out.println("Welcome to the Maintenance Request System");

System.out.println("Enter your first name (or type done to quit)");
String firstna = scanner.nextLine();

if (firstna.equalsIgnoreCase("done")) {
done = true;
break;
}

System.out.println("Enter your last name");
String lastna = scanner.nextLine();

System.out.println("Enter your Apartment number");
int apartnum = scanner.nextInt();
scanner.nextLine();

System.out.println("Enter your issuetype: " + "\n" + "1. Electrical" + "\n"
+ "2. Plumbing" + "\n" + "3. HVAC" + "\n" + "4. Structural" + "\n" + "\n"
+ "***Please type the name of the issue you are dealing with, field is not case sensitive");

String issuetypeselect = scanner.nextLine();

System.out.println("On a scale of 1-5, what would you rate the severity?");
int severityselect = scanner.nextInt();
scanner.nextLine();

MaintenanceRequest newrequest =
new MaintenanceRequest(firstna, lastna, apartnum, issuetypeselect, severityselect, "NEW");

newrequest.severitycheck();

requests.add(newrequest);
office.assigntech();
System.out.println("\n" + "=====Maintenance Request Successfully added=====");
System.out.println(newrequest);
System.out.println("\n" + "================================================");


}



for (MaintenanceRequest i : requests) {
System.out.println(i);
}

office.report();
}
}

140 changes: 140 additions & 0 deletions src/main/java/masonbrown/MaintenanceOffice.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
package masonbrown;

import java.util.ArrayList;

public class MaintenanceOffice {
private ArrayList<MaintenanceRequest> requests = new ArrayList<>();
ArrayList<String> techs = new ArrayList<>();

public MaintenanceOffice(ArrayList requests, ArrayList techs){
this.requests = requests;
this.techs = techs;
}
public void report() {

int total = requests.size();
int open = 0;
int closed = 0;

int low = 0;
int medium = 0;
int high = 0;

int electricalCount = 0;
int plumbingCount = 0;
int hvacCount = 0;
int structuralCount = 0;

for (MaintenanceRequest r : requests) {


if (r.getStatus().equalsIgnoreCase("DONE")) {
closed++;
} else {
open++;
}

// Severity counts
if (r.getSeverity() <= 2) {
low++;
} else if (r.getSeverity() == 3) {
medium++;
} else {
high++;
}

// Issue type counts
if (r.getIssuetype().equalsIgnoreCase("Electrical")) {
electricalCount++;
} else if (r.getIssuetype().equalsIgnoreCase("Plumbing")) {
plumbingCount++;
} else if (r.getIssuetype().equalsIgnoreCase("HVAC")) {
hvacCount++;
} else if (r.getIssuetype().equalsIgnoreCase("Structural")) {
structuralCount++;
}
}

System.out.println("\n===== DAILY MAINTENANCE REPORT =====");
System.out.println("Total Requests: " + total);
System.out.println("Open Requests: " + open);
System.out.println("Closed Requests: " + closed);

System.out.println("\nSeverity Breakdown:");
System.out.println("Low: " + low);
System.out.println("Medium: " + medium);
System.out.println("High: " + high);

// Determine most common issue
String mostCommon;
int max = electricalCount;

mostCommon = "Electrical";

if (plumbingCount > max) {
max = plumbingCount;
mostCommon = "Plumbing";
}
if (hvacCount > max) {
max = hvacCount;
mostCommon = "HVAC";
}
if (structuralCount > max) {
max = structuralCount;
mostCommon = "Structural";
}

System.out.println("\nMost Common Issue Type: " + mostCommon);

if (high > 3) {
System.out.println("\n*** OVERLOAD WARNING: Too many high priority requests! ***");
}

System.out.println("=====================================\n");
}

public void assigntech(){
for (MaintenanceRequest r : requests) {
if (r.getSeverity() == 5) {
r.setAssignedTech(techs.get(0));
} else if (r.getSeverity() >= 4) {
r.setAssignedTech(techs.get(1));
} else {
r.setAssignedTech(techs.get(2));
}
}
}

public void updatestatus(MaintenanceRequest request, String newstatus){
String toUpper = newstatus.toUpperCase();
if(toUpper.equals("NEW") || toUpper.equals("IN_PROGRESS") || toUpper.equals("DONE")){
request.setStatus(toUpper);
} else {
System.out.println("Invalid status. Only NEW, IN_PROGRESS, or DONE are allowed.");
}
}

public void closeRequest(MaintenanceRequest request){
if(request.getStatus().equals("DONE")){
requests.remove(request);
} else {
System.out.println("Cannot close request unless it is DONE.");
}
}

public ArrayList<String> getTechs() {
return techs;
}

public ArrayList<MaintenanceRequest> getRequests() {
return requests;
}

public void setRequests(ArrayList<MaintenanceRequest> requests) {
this.requests = requests;
}

public void setTechs(String Techs) {
this.techs=techs;
}
}
101 changes: 101 additions & 0 deletions src/main/java/masonbrown/MaintenanceRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
package masonbrown;

public class MaintenanceRequest {
private String tenantFirstName;
private String tenantLastName;
private int apartmentNumber;
private String issuetype;
private int severity;
private String status;
private String assignedTech;

public MaintenanceRequest(String tenantFirstName, String tenantLastName, int apartmentNumber,
String issuetype, int severity, String status) {
this.tenantFirstName = tenantFirstName;
this.tenantLastName = tenantLastName;
this.apartmentNumber = apartmentNumber;
this.issuetype = issuetype;
this.severity = severity;
this.status = "NEW";
}

public void severitycheck() {
if (severity == 5) {
status = "DISPATCH IMMEDIATELY";
} else if (issuetype.equalsIgnoreCase("electrical") && severity >= 4) {
status = "WARNING";
} else if (severity >= 4) {
status = "HIGH PRIORITY";
} else {
status = "NEW";
}
}

@Override
public String toString() {
return "Tenant:" + " " + tenantFirstName + " " + tenantLastName +
"\n" + "Apartment number:" + " " + apartmentNumber + "\n"
+ "Issue Type:" + " " + issuetype + "\n" +
"Severity:" + " " + severity + "\n" +
"Status:" + " " + status + "\n" +
"Assigned Tech:" + " " + (assignedTech == null ? "None" : assignedTech) + "\n";
}

public void setTenantLastName(String tenantLastName) {
this.tenantLastName = tenantLastName;
}

public void setTenantFirstName(String tenantFirstName) {
this.tenantFirstName = tenantFirstName;
}

public void setStatus(String status) {
this.status = status;
}

public void setSeverity(int severity) {
this.severity = severity;
}

public void setIssuetype(String issuetype) {
this.issuetype = issuetype;
}

public void setApartmentNumber(int apartmentNumber) {
this.apartmentNumber = apartmentNumber;
}

public String getTenantLastName() {
return tenantLastName;
}

public String getTenantFirstName() {
return tenantFirstName;
}

public String getStatus() {
return status;
}

public String getIssuetype() {
return issuetype;
}

public int getSeverity() {
return severity;
}

public int getApartmentNumber() {
return apartmentNumber;
}


public void setAssignedTech(String techName) {
this.assignedTech = techName;
}

public String getAssignedTech() {
return assignedTech;
}
}

17 changes: 9 additions & 8 deletions src/main/java/org/codedifferently/Main.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
package org.codedifferently;
import java.util.Scanner;

//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
public static void main(String[] args) {
//TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
// to see how IntelliJ IDEA suggests fixing it.
System.out.printf("Hello and welcome!");
boolean done = false;
Scanner scanner = new Scanner(System.in);

do {



} while (!done);

for (int i = 1; i <= 5; i++) {
//TIP Press <shortcut actionId="Debug"/> to start debugging your code. We have set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint
// for you, but you can always add more by pressing <shortcut actionId="ToggleLineBreakpoint"/>.
System.out.println("i = " + i);
}
}
}