diff --git a/src/main/java/masonbrown/Main.java b/src/main/java/masonbrown/Main.java new file mode 100644 index 0000000..83c19ec --- /dev/null +++ b/src/main/java/masonbrown/Main.java @@ -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 requests = new ArrayList<>(); + requests.add(maintenanceRequest1); + requests.add(maintenanceRequest2); + requests.add(maintenanceRequest3); + ArrayList 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(); + } +} + diff --git a/src/main/java/masonbrown/MaintenanceOffice.java b/src/main/java/masonbrown/MaintenanceOffice.java new file mode 100644 index 0000000..e1f88e0 --- /dev/null +++ b/src/main/java/masonbrown/MaintenanceOffice.java @@ -0,0 +1,140 @@ +package masonbrown; + +import java.util.ArrayList; + +public class MaintenanceOffice { + private ArrayList requests = new ArrayList<>(); + ArrayList 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 getTechs() { + return techs; + } + + public ArrayList getRequests() { + return requests; + } + + public void setRequests(ArrayList requests) { + this.requests = requests; + } + + public void setTechs(String Techs) { + this.techs=techs; + } +} diff --git a/src/main/java/masonbrown/MaintenanceRequest.java b/src/main/java/masonbrown/MaintenanceRequest.java new file mode 100644 index 0000000..73be04f --- /dev/null +++ b/src/main/java/masonbrown/MaintenanceRequest.java @@ -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; + } +} + diff --git a/src/main/java/org/codedifferently/Main.java b/src/main/java/org/codedifferently/Main.java index 435139b..df45543 100644 --- a/src/main/java/org/codedifferently/Main.java +++ b/src/main/java/org/codedifferently/Main.java @@ -1,17 +1,18 @@ package org.codedifferently; +import java.util.Scanner; //TIP To Run code, press or // click the icon in the gutter. public class Main { public static void main(String[] args) { - //TIP Press 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 to start debugging your code. We have set one breakpoint - // for you, but you can always add more by pressing . - System.out.println("i = " + i); - } } } \ No newline at end of file