diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..b9b3f55 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +Lab4 \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..1ade91a --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1.xml b/.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1.xml new file mode 100644 index 0000000..ea70fe1 --- /dev/null +++ b/.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_io_commons_io_2_5.xml b/.idea/libraries/Maven__commons_io_commons_io_2_5.xml new file mode 100644 index 0000000..67c2ad2 --- /dev/null +++ b/.idea/libraries/Maven__commons_io_commons_io_2_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__junit_junit_4_11.xml b/.idea/libraries/Maven__junit_junit_4_11.xml new file mode 100644 index 0000000..f33320d --- /dev/null +++ b/.idea/libraries/Maven__junit_junit_4_11.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml new file mode 100644 index 0000000..f58bbc1 --- /dev/null +++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..7193838 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..ffcf9a6 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..296a2fc --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1593613729364 + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/DevelopCompany.jar b/DevelopCompany.jar new file mode 100644 index 0000000..9ccc9c9 Binary files /dev/null and b/DevelopCompany.jar differ diff --git a/Lab4.iml b/Lab4.iml new file mode 100644 index 0000000..0e46fa0 --- /dev/null +++ b/Lab4.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..56006fa --- /dev/null +++ b/pom.xml @@ -0,0 +1,42 @@ + + + 4.0.0 + + org.example + Lab4 + 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 7 + 7 + + + + + + + com.googlecode.json-simple + json-simple + 1.1 + + + commons-io + commons-io + 2.5 + + + junit + junit + 4.11 + test + + + + + \ No newline at end of file diff --git a/src/main/java/Lab4.java b/src/main/java/Lab4.java new file mode 100644 index 0000000..beebff3 --- /dev/null +++ b/src/main/java/Lab4.java @@ -0,0 +1,13 @@ +import Staff.DeveloperCompany; +public class Lab4 { + public static void main(String[] args) { + DeveloperCompany geeks = new DeveloperCompany("Geeks", 180); + geeks.companyCreation("/stuff.json"); + geeks.addProjects("/projects.json"); + geeks.assignPerformers(); + geeks.prepareForPayment(); + geeks.accrualOfSalary(); + geeks.printAll(); + geeks.saveStuff("stuff.json"); + } +} diff --git a/src/main/java/Staff/Ancestors.java b/src/main/java/Staff/Ancestors.java new file mode 100644 index 0000000..3d67f5d --- /dev/null +++ b/src/main/java/Staff/Ancestors.java @@ -0,0 +1,151 @@ +package Staff; + +abstract class Employee { + + //fields + protected int id; + protected String fio; + protected int workTime; + protected double payment; + protected int baseRate; + protected DeveloperCompany company; + protected String position; + //--------------------------------------------------------- + + //constructor + public Employee(int id, String fio, DeveloperCompany company) { + this.id = id; + this.fio = fio; + this.company = company; + } + //--------------------------------------------------------- + + //methods + abstract double salaryCalculator(); + @Override + public String toString() { + return id+" - "+workTime+" - "+position+" - "+fio+" - "+payment; + } + //--------------------------------------------------------- + + //setters + public void setId(int id) { + this.id = id; + } + public void setFio(String fio) { + this.fio = fio; + } + public void setWorkTime(int workTime) { + this.workTime = workTime; + } + public void setPayment() { + int buf = (int)(salaryCalculator()*10); + this.payment = (double)buf/10; + } + //--------------------------------------------------------- + + //getters + public int getId() { + return id; + } + public String getFio() { + return fio; + } + public int getWorkTime() { + return workTime; + } + public double getPayment() { + return payment; + } + public String getPosition(){return position;} + //--------------------------------------------------------- +} + +abstract class Personal extends Employee implements WorkTime{ + + //constructor + public Personal(int id, String fio, int workTime, DeveloperCompany company) { + super(id, fio, company); + this.workTime = workTime; + baseRate = company.getBaseRate(); + } + //--------------------------------------------------------- + + //methods + public double hourlyPay() { + return baseRate*workTime; + } + public double salaryCalculator() { + return hourlyPay(); + } + //--------------------------------------------------------- + + //setters + public void setBaseRate(int baseRate) { + this.baseRate = baseRate; + } + //--------------------------------------------------------- + + //getters + public int getBaseRate() { + return baseRate; + } + //--------------------------------------------------------- +} + +abstract class Engineer extends Employee implements Project, WorkTime{ + + //fields + protected DevelopProjects project; + //--------------------------------------------------------- + + //constructor + public Engineer(int id, String fio, int workTime, DeveloperCompany company) { + super(id, fio, company); + this.workTime = workTime; + baseRate = company.getBaseRate(); + } + //--------------------------------------------------------- + + //methods + public double salaryCalculator() { + return hourlyPay()+projectPayment(); + } + + public double hourlyPay() { + double skillRating= 1.8; + return baseRate*skillRating*workTime; + } + + public double projectPayment() { + if (project!=null && project.isItPossibleToPay()) + return (project.getBudget()*0.35)/(project.getEngineers().size()); + else + return 0; + } + //--------------------------------------------------------- + + //setters + public void setProject(DevelopProjects project) { + this.project = project; + } + //--------------------------------------------------------- + + //getters + public DevelopProjects getProject() { + return project; + } + //--------------------------------------------------------- +} + +interface WorkTime{ + double hourlyPay(); +} + +interface Project{ + double projectPayment(); +} + +interface Heading{ + double managementFee(DevelopProjects project); +} \ No newline at end of file diff --git a/src/main/java/Staff/Cleaner.java b/src/main/java/Staff/Cleaner.java new file mode 100644 index 0000000..2e4bec2 --- /dev/null +++ b/src/main/java/Staff/Cleaner.java @@ -0,0 +1,12 @@ +package Staff; + +public class Cleaner extends Personal { + + //constructor + public Cleaner(int id, String fio, int workTime, DeveloperCompany company) { + super(id, fio, workTime, company); + position = "Cleaner"; + } + //--------------------------------------------------------- + +} diff --git a/src/main/java/Staff/DevelopProjects.java b/src/main/java/Staff/DevelopProjects.java new file mode 100644 index 0000000..1f1ea10 --- /dev/null +++ b/src/main/java/Staff/DevelopProjects.java @@ -0,0 +1,126 @@ +package Staff; + +import java.util.ArrayList; + +public class DevelopProjects { + + //fields + private int id; + private String title; + private double budget; + private ArrayList managers = new ArrayList<>(); + private ProjectManager projectManager; + private SeniorManager seniorManager; + private ArrayList engineers = new ArrayList<>(); + private TeamLeader teamLeader; + private enum States {AWAIT, INWORK, FINISHED, CLOSED}; + private States status; + //--------------------------------------------------------- + + //constructor + public DevelopProjects(int id, String title, double budget, SeniorManager seniorManager) { + this.id = id; + this.title = title; + this.budget = budget; + status = States.AWAIT; + this.seniorManager = seniorManager; + seniorManager.setProject(this); + } + //--------------------------------------------------------- + + //methods + public boolean completeTheProject(){ + if (status == States.INWORK) { + status = States.FINISHED; + return true; + } + else + return false; + } + public boolean closeTheProject(){ + if (status == States.FINISHED) { + status = States.CLOSED; + return true; + } + else + return false; + } + public boolean isItPossibleToPay() { + if (status == States.FINISHED) + return true; + else + return false; + } + @Override + public String toString() { + return title; + } + //--------------------------------------------------------- + + //setters + public boolean setProjectManager(ProjectManager projectManager) { + if (projectManager.getProjects().size() == 0){ + projectManager.setProject(this); + this.projectManager = projectManager; + return true; + } + else { + return false; + } + } + public boolean setTeamLeader(TeamLeader teamLeader) { + if (teamLeader.getProject() == null) { + this.teamLeader = teamLeader; + teamLeader.setProject(this); + status = States.INWORK; + return true; + } + else + return false; + } + public boolean setManager(Manager manager) { + if (status == States.INWORK && manager.getProject() ==null){ + this.managers.add(manager); + manager.setProject(this); + return true; + } + else + return false; + } + public boolean setEngineer(Engineer engineer) { + if (status == States.INWORK && engineer.getProject() == null){ + this.engineers.add(engineer); + engineer.setProject(this); + return true; + } + else + return false; + } + //--------------------------------------------------------- + + //getters + public ProjectManager getProjectManager() { + return projectManager; + } + public ArrayList getManagers() { + return managers; + } + public int getId() { + return id; + } + public String getTitle() { + return title; + } + public double getBudget() { + return budget; + } + public SeniorManager getSeniorManager() { + return seniorManager; + } + public TeamLeader getTeamLeader() { + return teamLeader; + } + public ArrayList getEngineers() { + return engineers; + } +} diff --git a/src/main/java/Staff/DeveloperCompany.java b/src/main/java/Staff/DeveloperCompany.java new file mode 100644 index 0000000..abf26f3 --- /dev/null +++ b/src/main/java/Staff/DeveloperCompany.java @@ -0,0 +1,241 @@ +package Staff; + +import org.apache.commons.io.IOUtils; + +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; + +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.nio.charset.StandardCharsets; +import java.io.IOException; +import java.io.InputStream; + +import java.util.ArrayList; +import java.util.Iterator; + +public class DeveloperCompany { + + //fields + private String title; + private int baseRate; + private SeniorManager seniorManager; + private ArrayList projectManagers = new ArrayList<>(); + private ArrayList managers = new ArrayList<>(); + private ArrayList cleaners = new ArrayList<>(); + private ArrayList drivers = new ArrayList<>(); + private ArrayList programmers = new ArrayList<>(); + private ArrayList testers = new ArrayList<>(); + private ArrayList teamLeaders = new ArrayList<>(); + private ArrayList employees = new ArrayList<>(); + private ArrayList projects = new ArrayList<>(); + //--------------------------------------------------------- + + //construcor + public DeveloperCompany(String title, int baseRate) { + this.title = title; + this.baseRate = baseRate; + } + //--------------------------------------------------------- + + //methods + public void companyCreation(String jasonFile){ + JSONParser parser = new JSONParser(); + try { + + InputStream inputStream = getClass().getResourceAsStream(jasonFile); + String inputFile = IOUtils.toString(inputStream, StandardCharsets.UTF_8); + JSONArray empArr = (JSONArray) parser.parse(inputFile); + Iterator studIter = empArr.iterator(); + while (studIter.hasNext()) { + JSONObject employee = (JSONObject) studIter.next(); + int id = Integer.parseInt(employee.get("id").toString()); + String fio = employee.get("fio").toString(); + int workTime = Integer.parseInt(employee.get("workTime").toString()); + String position = employee.get("position").toString(); + switch (position){ + case "cleaner": + cleaners.add(new Cleaner(id, fio, workTime, this)); + employees.add(cleaners.get(cleaners.size()-1)); + break; + case "driver": + drivers.add(new Driver(id, fio, workTime, this)); + employees.add(drivers.get(drivers.size()-1)); + break; + case "programmer": + programmers.add(new Programmer(id, fio, workTime, this)); + employees.add(programmers.get(programmers.size()-1)); + break; + case "tester": + testers.add(new Tester(id, fio, workTime, this)); + employees.add(testers.get(testers.size()-1)); + break; + case "teamLeader": + teamLeaders.add(new TeamLeader(id, fio, workTime, this)); + employees.add(teamLeaders.get(teamLeaders.size()-1)); + break; + case "manager": + managers.add(new Manager(id, fio, workTime,this)); + employees.add(managers.get(managers.size()-1)); + break; + case "projectManager": + projectManagers.add(new ProjectManager(id, fio, workTime, this)); + employees.add(projectManagers.get(projectManagers.size()-1)); + break; + case "seniorManager": + seniorManager = new SeniorManager(id, fio, workTime,this); + employees.add(seniorManager); + break; + } + } + parser.reset(); + empArr.clear(); + } catch (RuntimeException | ParseException | IOException e) { + e.printStackTrace(); + } + } + public void addProjects(String jasonFile){ + JSONParser parser = new JSONParser(); + try { + + InputStream inputStream = getClass().getResourceAsStream(jasonFile); + String inputFile = IOUtils.toString(inputStream, StandardCharsets.UTF_8); + JSONArray projArr = (JSONArray) parser.parse(inputFile); + Iterator projIter = projArr.iterator(); + while (projIter.hasNext()) { + JSONObject project = (JSONObject) projIter.next(); + int id = Integer.parseInt(project.get("id").toString()); + String title = project.get("title").toString(); + int budget = Integer.parseInt(project.get("budget").toString()); + projects.add(new DevelopProjects(id, title, budget, seniorManager)); + } + parser.reset(); + projArr.clear(); + } catch (RuntimeException | ParseException | IOException e) { + e.printStackTrace(); + } + } + public void assignPerformers(){ + for (DevelopProjects project: projects){ + int i = 0; + while (!project.setTeamLeader(teamLeaders.get(i++)) && i getProjectManagers() { + return projectManagers; + } + public ArrayList getManagers() { + return managers; + } + public ArrayList getCleaners() { + return cleaners; + } + public ArrayList getDrivers() { + return drivers; + } + public ArrayList getProgrammers() { + return programmers; + } + public ArrayList getTesters() { + return testers; + } + public ArrayList getTeamLeaders() { + return teamLeaders; + } + public ArrayList getDevelopProjects() { + return projects; + } + public int getNumberOfEmployee(){ return employees.size();} + //--------------------------------------------------------- +} diff --git a/src/main/java/Staff/Driver.java b/src/main/java/Staff/Driver.java new file mode 100644 index 0000000..8f04b03 --- /dev/null +++ b/src/main/java/Staff/Driver.java @@ -0,0 +1,29 @@ +package Staff; + +public class Driver extends Personal { + + //fields + private double raisingFactor = 1.2; + //--------------------------------------------------------- + + //constructor + public Driver(int id, String fio, int workTime, DeveloperCompany company) { + super(id, fio, workTime, company); + position = "Driver"; + } + //--------------------------------------------------------- + + //methods + @Override + public double hourlyPay() { + if (workTime >= 160){ + return ((160+(workTime-160)*2)*baseRate*raisingFactor); + } + else + return super.hourlyPay()*raisingFactor; + } + public void changeRaisingFactor(double raisingFactor){ + this.raisingFactor = raisingFactor; + } + //--------------------------------------------------------- +} \ No newline at end of file diff --git a/src/main/java/Staff/Manager.java b/src/main/java/Staff/Manager.java new file mode 100644 index 0000000..3b852c8 --- /dev/null +++ b/src/main/java/Staff/Manager.java @@ -0,0 +1,43 @@ +package Staff; + +public class Manager extends Employee implements Project{ + + //fields + private DevelopProjects project; + //--------------------------------------------------------- + + //constructor + + public Manager(int id, String fio, int workTime, DeveloperCompany company) { + super(id, fio, company); + this.workTime = workTime; + position = "Manager"; + } + //--------------------------------------------------------- + + //methods + public double salaryCalculator() { + return projectPayment(); + } + + public double projectPayment() { + if (project!=null && project.isItPossibleToPay()) + return (project.getBudget()*0.6)/(project.getManagers().size()+1); + else + return 0; + } + //--------------------------------------------------------- + + //setters + public boolean setProject(DevelopProjects project) { + this.project = project; + return true; + } + //--------------------------------------------------------- + + //getters + public DevelopProjects getProject() { + return project; + } + //--------------------------------------------------------- +} diff --git a/src/main/java/Staff/Programmer.java b/src/main/java/Staff/Programmer.java new file mode 100644 index 0000000..7090ba0 --- /dev/null +++ b/src/main/java/Staff/Programmer.java @@ -0,0 +1,11 @@ +package Staff; + +class Programmer extends Engineer { + + //constructor + public Programmer(int id, String fio, int workTime, DeveloperCompany company) { + super(id, fio, workTime, company); + position = "Programmer"; + } + //--------------------------------------------------------- +} diff --git a/src/main/java/Staff/ProjectManager.java b/src/main/java/Staff/ProjectManager.java new file mode 100644 index 0000000..b3c3024 --- /dev/null +++ b/src/main/java/Staff/ProjectManager.java @@ -0,0 +1,62 @@ +package Staff; + +import java.util.ArrayList; + +public class ProjectManager extends Manager implements Heading{ + + //fields + protected ArrayList projects = new ArrayList<>(); + //--------------------------------------------------------- + + //constructor + + public ProjectManager(int id, String fio, int workTime, DeveloperCompany company) { + super(id, fio, workTime, company); + position = "Project Manager"; + } + //--------------------------------------------------------- + + //methods + @Override + public double salaryCalculator() { + double salary = 0; + if (!projects.isEmpty()) { + for (DevelopProjects project : projects) { + salary += projectPayment(project) * managementFee(project); + } + } + return salary; + } + public double projectPayment(DevelopProjects project) { + if (project.isItPossibleToPay()) + return (project.getBudget()*0.6)/(project.getManagers().size()+1); + else + return 0; + } + public double managementFee(DevelopProjects project) { + double surcharge = 1 + ((double)project.getManagers().size() * 15)/100; + if (surcharge >= 1.5) + surcharge=1.5; + return surcharge; + } + //--------------------------------------------------------- + + //setters + public boolean setProject(DevelopProjects project) { + if (project.getProjectManager() == null) { + this.projects.add(project); + return true; + } + else{ + System.out.println("This project already has the project manager"); + return false; + } + } + //--------------------------------------------------------- + + //getters + public ArrayList getProjects() { + return projects; + } + //--------------------------------------------------------- +} diff --git a/src/main/java/Staff/SeniorManager.java b/src/main/java/Staff/SeniorManager.java new file mode 100644 index 0000000..e625e16 --- /dev/null +++ b/src/main/java/Staff/SeniorManager.java @@ -0,0 +1,47 @@ +package Staff; + +import java.util.ArrayList; + +public class SeniorManager extends ProjectManager { + + //fields + private ArrayList projectManagers; + //--------------------------------------------------------- + + //constructor + + public SeniorManager(int id, String fio, int workTime, DeveloperCompany company) { + super(id, fio, workTime, company); + position = "Senior Manager"; + } + //--------------------------------------------------------- + + //methods + @Override + public double projectPayment(DevelopProjects project) { + if (project.isItPossibleToPay()) + return project.getBudget()*0.05; + else + return 0; + } + @Override + public double managementFee(DevelopProjects project) { + double surcharge = 1 + (((double)company.getProjectManagers().size() * 3)/100); + if (surcharge >= 1.2) + surcharge=1.2; + return surcharge; + } + //--------------------------------------------------------- + + //setters + public void setProjectManagers(ArrayList projectManagers) { + this.projectManagers = projectManagers; + } + //--------------------------------------------------------- + + //getters + public ArrayList getProjectManagers() { + return projectManagers; + } + //--------------------------------------------------------- +} diff --git a/src/main/java/Staff/TeamLeader.java b/src/main/java/Staff/TeamLeader.java new file mode 100644 index 0000000..9f0c595 --- /dev/null +++ b/src/main/java/Staff/TeamLeader.java @@ -0,0 +1,33 @@ +package Staff; + +class TeamLeader extends Engineer implements Heading{ + + //constructor + public TeamLeader(int id, String fio, int workTime, DeveloperCompany company) { + super(id, fio, workTime, company); + position = "Team Leader"; + } + //--------------------------------------------------------- + + //methods + @Override + public double salaryCalculator() { + return hourlyPay()+projectPayment()*managementFee(project); + } + @Override + public double hourlyPay() { + double skillRating= 2; + return baseRate*skillRating*workTime; + } + public double managementFee(DevelopProjects project) { + if (project != null) { + double surcharge = 1 + (project.getEngineers().size() * 5) / 100; + if (surcharge >= 1.5) + surcharge = 1.5; + return surcharge; + } + else + return 1; + } + //--------------------------------------------------------- +} \ No newline at end of file diff --git a/src/main/java/Staff/Tester.java b/src/main/java/Staff/Tester.java new file mode 100644 index 0000000..3acfbbe --- /dev/null +++ b/src/main/java/Staff/Tester.java @@ -0,0 +1,19 @@ +package Staff; + +class Tester extends Engineer{ + + //constructor + public Tester(int id, String fio, int workTime, DeveloperCompany company) { + super(id, fio, workTime, company); + position = "Tester"; + } + //--------------------------------------------------------- + + //methods + @Override + public double hourlyPay() { + double skillRating= 1.7; + return baseRate*skillRating*workTime; + } + //--------------------------------------------------------- +} diff --git a/src/main/resources/projects.json b/src/main/resources/projects.json new file mode 100644 index 0000000..078b558 --- /dev/null +++ b/src/main/resources/projects.json @@ -0,0 +1,62 @@ +[ + { + "id": 1, + "title": "Root Insurance", + "budget": 140000 + }, + { + "id": 2, + "title": "StockX", + "budget": 160000 + }, + { + "id": 3, + "title": "PlayVS", + "budget": 186000 + }, + { + "id": 4, + "title": "ShipBob", + "budget": 166000 + }, + { + "id": 5, + "title": "K4Connect", + "budget": 170000 + }, + { + "id": 6, + "title": "ExemptMeNow", + "budget": 190000 + }, + { + "id": 7, + "title": "Goodr", + "budget": 160000 + }, + { + "id": 8, + "title": "Understory Weather", + "budget": 200000 + }, + { + "id": 9, + "title": "MetaCX", + "budget": 185000 + }, + { + "id": 10, + "title": "Scale AI", + "budget": 170000 + }, + { + "id": 11, + "title": "UiPath", + "budget": 180000 + }, + { + "id": 12, + "title": "The Travel Line", + "budget": 200000 + } +] \ No newline at end of file diff --git a/src/main/resources/stuff.json b/src/main/resources/stuff.json new file mode 100644 index 0000000..1482fde --- /dev/null +++ b/src/main/resources/stuff.json @@ -0,0 +1,885 @@ +[ + + { + "id": 1032, + "position": "driver", + "fio": "Погребнова Оксана Тимуровна", + "workTime": 140 + }, + { + "id": 1033, + "position": "driver", + "fio": "Репин Викентий Якубович", + "workTime": 160 + }, + { + "id": 1034, + "position": "driver", + "fio": "Холод Игнатий Агапович", + "workTime": 186 + }, + { + "id": 1035, + "position": "driver", + "fio": "Аронова Валентина Вячеславовна", + "workTime": 166 + }, + { + "id": 1036, + "position": "cleaner", + "fio": "Сапалёв Андрон Денисович", + "workTime": 80 + }, + { + "id": 1037, + "position": "cleaner", + "fio": "Шаньгина Агафья Фомевна", + "workTime": 80 + }, + { + "id": 1038, + "position": "cleaner", + "fio": "Ильясов Валентин Всеволодович", + "workTime": 160 + }, + { + "id": 1039, + "position": "cleaner", + "fio": "Лапухина Христина Анатолиевна", + "workTime": 80 + }, + { + "id": 1040, + "position": "cleaner", + "fio": "Ягутян Самсон Фомевич", + "workTime": 80 + }, + { + "id": 1041, + "position": "cleaner", + "fio": "Лямин Данила Панкратиевич", + "workTime": 80 + }, + { + "id": 1042, + "position": "cleaner", + "fio": "Тяпичева Евгения Трофимовна", + "workTime": 80 + }, + { + "id": 1043, + "position": "cleaner", + "fio": "Яшуков Вацлав Никонович", + "workTime": 80 + }, + { + "id": 1044, + "position": "cleaner", + "fio": "Кружкова Христина Афанасиевна", + "workTime": 160 + }, + { + "id": 1045, + "position": "cleaner", + "fio": "Каверин Евсей Ульянович", + "workTime": 80 + }, + { + "id": 1046, + "position": "programmer", + "fio": "Мячин Чеслав Карлович", + "workTime": 160 + }, + { + "id": 1047, + "position": "programmer", + "fio": "Эмских Герасим Евграфович", + "workTime": 160 + }, + { + "id": 1048, + "position": "programmer", + "fio": "Нюхтилин Степан Ефремович", + "workTime": 160 + }, + { + "id": 1049, + "position": "programmer", + "fio": "Степнов Викентий Сигизмундович", + "workTime": 160 + }, + { + "id": 1050, + "position": "programmer", + "fio": "Делов Прохор Кондратович", + "workTime": 160 + }, + { + "id": 1051, + "position": "programmer", + "fio": "Котов Всеволод Игоревич", + "workTime": 160 + }, + { + "id": 1052, + "position": "programmer", + "fio": "Львов Архип Всеволодович", + "workTime": 160 + }, + { + "id": 1053, + "position": "programmer", + "fio": "Гибазова Ксения Вячеславовна", + "workTime": 160 + }, + { + "id": 1054, + "position": "programmer", + "fio": "Александрова Зинаида Александровна", + "workTime": 160 + }, + { + "id": 1055, + "position": "programmer", + "fio": "Экземплярский Самуил Изяславович", + "workTime": 160 + }, + { + "id": 1056, + "position": "programmer", + "fio": "Щередина Екатерина Павеловна", + "workTime": 160 + }, + { + "id": 1057, + "position": "programmer", + "fio": "Макушев Гавриил Григориевич", + "workTime": 160 + }, + { + "id": 1058, + "position": "programmer", + "fio": "Стрельников Руслан Давыдович", + "workTime": 160 + }, + { + "id": 1059, + "position": "programmer", + "fio": "Колтышев Вячеслав Игоревич", + "workTime": 160 + }, + { + "id": 1060, + "position": "programmer", + "fio": "Жвиков Емельян Самсонович", + "workTime": 160 + }, + { + "id": 1061, + "position": "programmer", + "fio": "Гайдученко Агап Миронович", + "workTime": 160 + }, + { + "id": 1062, + "position": "programmer", + "fio": "Янушкене Богдан Елисеевич", + "workTime": 160 + }, + { + "id": 1063, + "position": "programmer", + "fio": "Соломахина Лариса Родионовна", + "workTime": 160 + }, + { + "id": 1064, + "position": "programmer", + "fio": "Невшупа Екатерина Георгиевна", + "workTime": 160 + }, + { + "id": 1065, + "position": "programmer", + "fio": "Цызырева Влада Елизаровна", + "workTime": 160 + }, + { + "id": 1066, + "position": "programmer", + "fio": "Ерохин Назар Артемиевич", + "workTime": 160 + }, + { + "id": 1067, + "position": "programmer", + "fio": "Савинков Фома Моисеевич", + "workTime": 160 + }, + { + "id": 1068, + "position": "programmer", + "fio": "Дмитриев Вадим Андроникович", + "workTime": 160 + }, + { + "id": 1069, + "position": "programmer", + "fio": "Богачёв Гавриил Карлович", + "workTime": 160 + }, + { + "id": 1070, + "position": "programmer", + "fio": "Чибисова Диана Захаровна", + "workTime": 160 + }, + { + "id": 1071, + "position": "programmer", + "fio": "Ямов Виктор Валерьянович", + "workTime": 160 + }, + { + "id": 1072, + "position": "programmer", + "fio": "Косинова Полина Кузьмевна", + "workTime": 160 + }, + { + "id": 1073, + "position": "programmer", + "fio": "Ханцев Федор Георгиевич", + "workTime": 160 + }, + { + "id": 1074, + "position": "programmer", + "fio": "Ящин Мефодий Никифорович", + "workTime": 160 + }, + { + "id": 1075, + "position": "programmer", + "fio": "Чиркаш Давид Несторович", + "workTime": 160 + }, + { + "id": 1076, + "position": "programmer", + "fio": "Яманов Кузьма Захарович", + "workTime": 160 + }, + { + "id": 1077, + "position": "programmer", + "fio": "Викаш Александр Кондратович", + "workTime": 160 + }, + { + "id": 1078, + "position": "programmer", + "fio": "Эсаулова Мирослава Андрияновна", + "workTime": 160 + }, + { + "id": 1079, + "position": "programmer", + "fio": "Сидоров Иннокентий Юриевич", + "workTime": 160 + }, + { + "id": 1080, + "position": "programmer", + "fio": "Королёва Милена Борисовна", + "workTime": 160 + }, + { + "id": 1081, + "position": "programmer", + "fio": "Ларичев Венедикт Проклович", + "workTime": 160 + }, + { + "id": 1082, + "position": "programmer", + "fio": "Рыбакова Евдокия Станиславовна", + "workTime": 160 + }, + { + "id": 1083, + "position": "programmer", + "fio": "Белоусова Пелагея Владиленовна", + "workTime": 160 + }, + { + "id": 1084, + "position": "programmer", + "fio": "Кондучалова Ефросинья Алексеевна", + "workTime": 160 + }, + { + "id": 1085, + "position": "programmer", + "fio": "Торсунова Эвелина Тимофеевна", + "workTime": 160 + }, + { + "id": 1086, + "position": "programmer", + "fio": "Карпенцев Герасим Демьянович", + "workTime": 160 + }, + { + "id": 1087, + "position": "programmer", + "fio": "Якубова Регина Феликсовна", + "workTime": 160 + }, + { + "id": 1088, + "position": "programmer", + "fio": "Ягфаров Андрей Самуилович", + "workTime": 160 + }, + { + "id": 1089, + "position": "programmer", + "fio": "Ожегова Ксения Данилевна", + "workTime": 160 + }, + { + "id": 1090, + "position": "programmer", + "fio": "Карданова Агния Анатолиевна", + "workTime": 160 + }, + { + "id": 1091, + "position": "programmer", + "fio": "Сиянскиха Екатерина Елизаровна", + "workTime": 160 + }, + { + "id": 1092, + "position": "programmer", + "fio": "Усов Олег Евграфович", + "workTime": 160 + }, + { + "id": 1093, + "position": "programmer", + "fio": "Каменева Лариса Давидовна", + "workTime": 160 + }, + { + "id": 1094, + "position": "tester", + "fio": "Жжёнова Эльвира Геннадиевна", + "workTime": 160 + }, + { + "id": 1095, + "position": "tester", + "fio": "Валуева Ирина Анатолиевна", + "workTime": 160 + }, + { + "id": 1096, + "position": "tester", + "fio": "Дудченко Ульяна Георгиевна", + "workTime": 160 + }, + { + "id": 1097, + "position": "tester", + "fio": "Якушин Валерьян Эрнестович", + "workTime": 160 + }, + { + "id": 1098, + "position": "tester", + "fio": "Эмануиль Гавриил Григориевич", + "workTime": 160 + }, + { + "id": 1099, + "position": "tester", + "fio": "Игнатова Оксана Филипповна", + "workTime": 160 + }, + { + "id": 1100, + "position": "tester", + "fio": "Ясинова Раиса Ивановна", + "workTime": 160 + }, + { + "id": 1101, + "position": "tester", + "fio": "Ажикелямова Владислава Филипповна", + "workTime": 160 + }, + { + "id": 1102, + "position": "tester", + "fio": "Ермишина Ярослава Степановна", + "workTime": 160 + }, + { + "id": 1103, + "position": "tester", + "fio": "Пичугина Инесса Святославовна", + "workTime": 160 + }, + { + "id": 1104, + "position": "tester", + "fio": "Тамахин Дмитрий Григориевич", + "workTime": 160 + }, + { + "id": 1105, + "position": "tester", + "fio": "Толбоева Зоя Яновна", + "workTime": 160 + }, + { + "id": 1106, + "position": "tester", + "fio": "Зёмина Владлена Федоровна", + "workTime": 160 + }, + { + "id": 1107, + "position": "tester", + "fio": "Глоба Стела Борисовна", + "workTime": 160 + }, + { + "id": 1108, + "position": "tester", + "fio": "Буданов Юлий Викентиевич", + "workTime": 160 + }, + { + "id": 1109, + "position": "tester", + "fio": "Бородин Виталий Вячеславович", + "workTime": 160 + }, + { + "id": 1110, + "position": "tester", + "fio": "Разбойникова Виктория Никитевна", + "workTime": 160 + }, + { + "id": 1111, + "position": "tester", + "fio": "Миронова Жанна Несторовна", + "workTime": 160 + }, + { + "id": 1112, + "position": "tester", + "fio": "Землякова Агата Ильевна", + "workTime": 160 + }, + { + "id": 1113, + "position": "tester", + "fio": "Скуратов Бронислав Онисимович", + "workTime": 160 + }, + { + "id": 1114, + "position": "tester", + "fio": "Толбанов Евдоким Прокофиевич", + "workTime": 160 + }, + { + "id": 1115, + "position": "tester", + "fio": "Ерзова Берта Трофимовна", + "workTime": 160 + }, + { + "id": 1116, + "position": "tester", + "fio": "Михайличенко Зиновий Натанович", + "workTime": 160 + }, + { + "id": 1117, + "position": "tester", + "fio": "Столярова Ираида Владленовна", + "workTime": 160 + }, + { + "id": 1118, + "position": "tester", + "fio": "Халипова Владлена Елизаровна", + "workTime": 160 + }, + { + "id": 1119, + "position": "tester", + "fio": "Муравей Евграф Мартьянович", + "workTime": 160 + }, + { + "id": 1120, + "position": "tester", + "fio": "Языкина Лада Ильевна", + "workTime": 160 + }, + { + "id": 1121, + "position": "tester", + "fio": "Арзамасцева Анисья Потаповна", + "workTime": 160 + }, + { + "id": 1122, + "position": "tester", + "fio": "Неделяев Ипполит Богданович", + "workTime": 160 + }, + { + "id": 1123, + "position": "tester", + "fio": "Мозговой Татьяна Степановна", + "workTime": 160 + }, + { + "id": 1124, + "position": "tester", + "fio": "Дешевых Изяслав Ипатович", + "workTime": 160 + }, + { + "id": 1125, + "position": "tester", + "fio": "Плюхина Алиса Ефимовна", + "workTime": 160 + }, + { + "id": 1126, + "position": "tester", + "fio": "Ямбаев Александр Мартьянович", + "workTime": 160 + }, + { + "id": 1127, + "position": "tester", + "fio": "Веденина Ульяна Алексеевна", + "workTime": 160 + }, + { + "id": 1128, + "position": "tester", + "fio": "Павлова Маргарита Семеновна", + "workTime": 160 + }, + { + "id": 1129, + "position": "tester", + "fio": "Сабитова Светлана Игнатиевна", + "workTime": 160 + }, + { + "id": 1130, + "position": "teamLeader", + "fio": "Ярмолинский Тимур Богданович", + "workTime": 160 + }, + { + "id": 1131, + "position": "teamLeader", + "fio": "Поздова Дарья Василиевна", + "workTime": 160 + }, + { + "id": 1132, + "position": "teamLeader", + "fio": "Завьялова Лидия Тимофеевна", + "workTime": 160 + }, + { + "id": 1133, + "position": "teamLeader", + "fio": "Нырко Данила Никифорович", + "workTime": 160 + }, + { + "id": 1134, + "position": "teamLeader", + "fio": "Плахтюрин Геннадий Платонович", + "workTime": 160 + }, + { + "id": 1135, + "position": "teamLeader", + "fio": "Тамило Кузьма Ираклиевич", + "workTime": 160 + }, + { + "id": 1136, + "position": "teamLeader", + "fio": "Лукина Варвара Давидовна", + "workTime": 160 + }, + { + "id": 1137, + "position": "teamLeader", + "fio": "Сьянова Виктория Филипповна", + "workTime": 160 + }, + { + "id": 1138, + "position": "teamLeader", + "fio": "Мохов Андрон Маркович", + "workTime": 160 + }, + { + "id": 1139, + "position": "teamLeader", + "fio": "Осин Аким Федосиевич", + "workTime": 160 + }, + { + "id": 1140, + "position": "teamLeader", + "fio": "Сорокина Альбина Никитевна", + "workTime": 160 + }, + { + "id": 1141, + "position": "teamLeader", + "fio": "Тетерина Людмила Фомевна", + "workTime": 160 + }, + { + "id": 1142, + "position": "manager", + "fio": "Вольпов Владилен Еремеевич", + "workTime": 160 + }, + { + "id": 1143, + "position": "manager", + "fio": "Абдулов Семен Вячеславович", + "workTime": 160 + }, + { + "id": 1144, + "position": "manager", + "fio": "Чебыкина Мирослава Федотовна", + "workTime": 160 + }, + { + "id": 1145, + "position": "manager", + "fio": "Кобелева Александра Фомевна", + "workTime": 160 + }, + { + "id": 1146, + "position": "manager", + "fio": "Киреев Петр Измаилович", + "workTime": 160 + }, + { + "id": 1147, + "position": "manager", + "fio": "Осипова Эльвира Якововна", + "workTime": 160 + }, + { + "id": 1148, + "position": "manager", + "fio": "Мальцев Даниил Якубович", + "workTime": 160 + }, + { + "id": 1149, + "position": "manager", + "fio": "Абоимова Нина Ефимовна", + "workTime": 160 + }, + { + "id": 1150, + "position": "manager", + "fio": "Мадулин Кузьма Проклович", + "workTime": 160 + }, + { + "id": 1151, + "position": "manager", + "fio": "Ковалев Рубен Филиппович", + "workTime": 160 + }, + { + "id": 1152, + "position": "manager", + "fio": "Львов Артур Карлович", + "workTime": 160 + }, + { + "id": 1153, + "position": "manager", + "fio": "Ефремова Галина Елизаровна", + "workTime": 160 + }, + { + "id": 1154, + "position": "manager", + "fio": "Разуваева Виктория Николаевна", + "workTime": 160 + }, + { + "id": 1155, + "position": "manager", + "fio": "Таттар Игнатий Филимонович", + "workTime": 160 + }, + { + "id": 1156, + "position": "manager", + "fio": "Жичкина Юлия Германовна", + "workTime": 160 + }, + { + "id": 1157, + "position": "manager", + "fio": "Салтанова Агата Никитевна", + "workTime": 160 + }, + { + "id": 1158, + "position": "manager", + "fio": "Смелоч Казимир Дмитриевич", + "workTime": 160 + }, + { + "id": 1159, + "position": "manager", + "fio": "Кутяков Чеслав Ростиславович", + "workTime": 160 + }, + { + "id": 1160, + "position": "manager", + "fio": "Невьянцев Ипполит Маркович", + "workTime": 160 + }, + { + "id": 1161, + "position": "manager", + "fio": "Николаева Галина Давидовна", + "workTime": 160 + }, + { + "id": 1162, + "position": "manager", + "fio": "Венедиктов Мстислав Сидорович", + "workTime": 160 + }, + { + "id": 1163, + "position": "manager", + "fio": "Дубов Бронислав Семенович", + "workTime": 160 + }, + { + "id": 1164, + "position": "manager", + "fio": "Букова Василиса Петровна", + "workTime": 160 + }, + { + "id": 1165, + "position": "manager", + "fio": "Ягемана Алиса Петровна", + "workTime": 160 + }, + { + "id": 1166, + "position": "projectManager", + "fio": "Куксюка Эльвира Виталиевна", + "workTime": 160 + }, + { + "id": 1167, + "position": "projectManager", + "fio": "Лашкина Ульяна Серафимовна", + "workTime": 160 + }, + { + "id": 1168, + "position": "projectManager", + "fio": "Рясной Бронислав Герасимович", + "workTime": 160 + }, + { + "id": 1169, + "position": "projectManager", + "fio": "Акимова Алиса Ростиславовна", + "workTime": 160 + }, + { + "id": 1170, + "position": "projectManager", + "fio": "Пашин Станислав Никифорович", + "workTime": 160 + }, + { + "id": 1171, + "position": "projectManager", + "fio": "Кузьмова Фаина Кузьмевна", + "workTime": 160 + }, + { + "id": 1172, + "position": "projectManager", + "fio": "Сластников Степан Гаврилевич", + "workTime": 160 + }, + { + "id": 1173, + "position": "projectManager", + "fio": "Масмех Казимир Анатолиевич", + "workTime": 160 + }, + { + "id": 1174, + "position": "projectManager", + "fio": "Агеев Афанасий Георгиевич", + "workTime": 160 + }, + { + "id": 1175, + "position": "projectManager", + "fio": "Прилуцкий Вячеслав Гордеевич", + "workTime": 160 + }, + { + "id": 1176, + "position": "projectManager", + "fio": "Бабкин Аким Евграфович", + "workTime": 160 + }, + { + "id": 1177, + "position": "projectManager", + "fio": "Курневича Галина Захаровна", + "workTime": 160 + }, + { + "id": 1178, + "position": "seniorManager", + "fio": "Энгельгардт Пимен Артемиевич", + "workTime": 160 + } +] \ No newline at end of file diff --git a/src/main/resources/testProject.json b/src/main/resources/testProject.json new file mode 100644 index 0000000..8000340 --- /dev/null +++ b/src/main/resources/testProject.json @@ -0,0 +1,7 @@ +[ + { + "id": 1, + "title": "Root Insurance", + "budget": 300000 + } +] \ No newline at end of file diff --git a/src/main/resources/testStuff.json b/src/main/resources/testStuff.json new file mode 100644 index 0000000..89d5401 --- /dev/null +++ b/src/main/resources/testStuff.json @@ -0,0 +1,51 @@ +[ + + { + "id": 1, + "position": "driver", + "fio": "Погребнова Оксана Тимуровна", + "workTime": 160 + }, + { + "id": 2, + "position": "cleaner", + "fio": "Сапалёв Андрон Денисович", + "workTime": 160 + }, + { + "id": 3, + "position": "programmer", + "fio": "Мячин Чеслав Карлович", + "workTime": 160 + }, + { + "id": 4, + "position": "tester", + "fio": "Валуева Ирина Анатолиевна", + "workTime": 160 + }, + { + "id": 5, + "position": "teamLeader", + "fio": "Тамило Кузьма Ираклиевич", + "workTime": 160 + }, + { + "id": 6, + "position": "manager", + "fio": "Киреев Петр Измаилович", + "workTime": 160 + }, + { + "id": 7, + "position": "projectManager", + "fio": "Рясной Бронислав Герасимович", + "workTime": 160 + }, + { + "id": 8, + "position": "seniorManager", + "fio": "Энгельгардт Пимен Артемиевич", + "workTime": 160 + } +] \ No newline at end of file diff --git a/src/test/java/Staff/DeveloperCompanyTest.java b/src/test/java/Staff/DeveloperCompanyTest.java new file mode 100644 index 0000000..a923532 --- /dev/null +++ b/src/test/java/Staff/DeveloperCompanyTest.java @@ -0,0 +1,39 @@ +package Staff; + +import static org.junit.Assert.*; +import org.junit.FixMethodOrder; +import org.junit.Test; +import org.junit.runners.MethodSorters; + +@FixMethodOrder(MethodSorters.NAME_ASCENDING) + +public class DeveloperCompanyTest { + DeveloperCompany geeks = new DeveloperCompany("Geeks", 180); + + + @Test + public void aTest() { + geeks.companyCreation("/testStuff.json"); + geeks.addProjects("/testProject.json"); + assertEquals(180,geeks.getBaseRate()); + assertEquals(8, geeks.getNumberOfEmployee()); + geeks.accrualOfSalary(); + assertEquals(0, geeks.getManagers().get(0).getPayment(), 0.1); + } + + @Test + public void bTest(){ + geeks.companyCreation("/testStuff.json"); + geeks.addProjects("/testProject.json"); + geeks.assignPerformers(); + geeks.prepareForPayment(); + assertEquals(geeks.getDevelopProjects().get(0).getBudget()*0.05, geeks.getSeniorManager().projectPayment(geeks.getDevelopProjects().get(0)), 0.1); + assertEquals(geeks.getProgrammers().get(0).projectPayment(), geeks.getTesters().get(0).projectPayment(), 0.1); + geeks.accrualOfSalary(); + assertEquals(geeks.getCleaners().get(0).getPayment()*1.2, geeks.getDrivers().get(0).getPayment(), 0.1); + assertEquals(geeks.getDevelopProjects().get(0), geeks.getManagers().get(0).getProject()); + assertEquals(1.15, geeks.getProjectManagers().get(0).managementFee(geeks.getDevelopProjects().get(0)),0.1); + + } + +} \ No newline at end of file diff --git a/stuff.json b/stuff.json new file mode 100644 index 0000000..de84a6f --- /dev/null +++ b/stuff.json @@ -0,0 +1 @@ +[{"payment":30240.0,"id":1032,"position":"Driver","fio":"Погребнова Оксана Тимуровна","workTime":140},{"payment":34560.0,"id":1033,"position":"Driver","fio":"Репин Викентий Якубович","workTime":160},{"payment":45792.0,"id":1034,"position":"Driver","fio":"Холод Игнатий Агапович","workTime":186},{"payment":37152.0,"id":1035,"position":"Driver","fio":"Аронова Валентина Вячеславовна","workTime":166},{"payment":14400.0,"id":1036,"position":"Cleaner","fio":"Сапалёв Андрон Денисович","workTime":80},{"payment":14400.0,"id":1037,"position":"Cleaner","fio":"Шаньгина Агафья Фомевна","workTime":80},{"payment":28800.0,"id":1038,"position":"Cleaner","fio":"Ильясов Валентин Всеволодович","workTime":160},{"payment":14400.0,"id":1039,"position":"Cleaner","fio":"Лапухина Христина Анатолиевна","workTime":80},{"payment":14400.0,"id":1040,"position":"Cleaner","fio":"Ягутян Самсон Фомевич","workTime":80},{"payment":14400.0,"id":1041,"position":"Cleaner","fio":"Лямин Данила Панкратиевич","workTime":80},{"payment":14400.0,"id":1042,"position":"Cleaner","fio":"Тяпичева Евгения Трофимовна","workTime":80},{"payment":14400.0,"id":1043,"position":"Cleaner","fio":"Яшуков Вацлав Никонович","workTime":80},{"payment":28800.0,"id":1044,"position":"Cleaner","fio":"Кружкова Христина Афанасиевна","workTime":160},{"payment":14400.0,"id":1045,"position":"Cleaner","fio":"Каверин Евсей Ульянович","workTime":80},{"payment":58840.0,"id":1046,"position":"Programmer","fio":"Мячин Чеслав Карлович","workTime":160},{"payment":58840.0,"id":1047,"position":"Programmer","fio":"Эмских Герасим Евграфович","workTime":160},{"payment":58840.0,"id":1048,"position":"Programmer","fio":"Нюхтилин Степан Ефремович","workTime":160},{"payment":58840.0,"id":1049,"position":"Programmer","fio":"Степнов Викентий Сигизмундович","workTime":160},{"payment":59840.0,"id":1050,"position":"Programmer","fio":"Делов Прохор Кондратович","workTime":160},{"payment":59840.0,"id":1051,"position":"Programmer","fio":"Котов Всеволод Игоревич","workTime":160},{"payment":59840.0,"id":1052,"position":"Programmer","fio":"Львов Архип Всеволодович","workTime":160},{"payment":59840.0,"id":1053,"position":"Programmer","fio":"Гибазова Ксения Вячеславовна","workTime":160},{"payment":61140.0,"id":1054,"position":"Programmer","fio":"Александрова Зинаида Александровна","workTime":160},{"payment":61140.0,"id":1055,"position":"Programmer","fio":"Экземплярский Самуил Изяславович","workTime":160},{"payment":61140.0,"id":1056,"position":"Programmer","fio":"Щередина Екатерина Павеловна","workTime":160},{"payment":61140.0,"id":1057,"position":"Programmer","fio":"Макушев Гавриил Григориевич","workTime":160},{"payment":60140.0,"id":1058,"position":"Programmer","fio":"Стрельников Руслан Давыдович","workTime":160},{"payment":60140.0,"id":1059,"position":"Programmer","fio":"Колтышев Вячеслав Игоревич","workTime":160},{"payment":60140.0,"id":1060,"position":"Programmer","fio":"Жвиков Емельян Самсонович","workTime":160},{"payment":60140.0,"id":1061,"position":"Programmer","fio":"Гайдученко Агап Миронович","workTime":160},{"payment":60340.0,"id":1062,"position":"Programmer","fio":"Янушкене Богдан Елисеевич","workTime":160},{"payment":60340.0,"id":1063,"position":"Programmer","fio":"Соломахина Лариса Родионовна","workTime":160},{"payment":60340.0,"id":1064,"position":"Programmer","fio":"Невшупа Екатерина Георгиевна","workTime":160},{"payment":60340.0,"id":1065,"position":"Programmer","fio":"Цызырева Влада Елизаровна","workTime":160},{"payment":61340.0,"id":1066,"position":"Programmer","fio":"Ерохин Назар Артемиевич","workTime":160},{"payment":61340.0,"id":1067,"position":"Programmer","fio":"Савинков Фома Моисеевич","workTime":160},{"payment":61340.0,"id":1068,"position":"Programmer","fio":"Дмитриев Вадим Андроникович","workTime":160},{"payment":61340.0,"id":1069,"position":"Programmer","fio":"Богачёв Гавриил Карлович","workTime":160},{"payment":59840.0,"id":1070,"position":"Programmer","fio":"Чибисова Диана Захаровна","workTime":160},{"payment":59840.0,"id":1071,"position":"Programmer","fio":"Ямов Виктор Валерьянович","workTime":160},{"payment":59840.0,"id":1072,"position":"Programmer","fio":"Косинова Полина Кузьмевна","workTime":160},{"payment":59840.0,"id":1073,"position":"Programmer","fio":"Ханцев Федор Георгиевич","workTime":160},{"payment":61840.0,"id":1074,"position":"Programmer","fio":"Ящин Мефодий Никифорович","workTime":160},{"payment":61840.0,"id":1075,"position":"Programmer","fio":"Чиркаш Давид Несторович","workTime":160},{"payment":61840.0,"id":1076,"position":"Programmer","fio":"Яманов Кузьма Захарович","workTime":160},{"payment":61840.0,"id":1077,"position":"Programmer","fio":"Викаш Александр Кондратович","workTime":160},{"payment":61090.0,"id":1078,"position":"Programmer","fio":"Эсаулова Мирослава Андрияновна","workTime":160},{"payment":61090.0,"id":1079,"position":"Programmer","fio":"Сидоров Иннокентий Юриевич","workTime":160},{"payment":61090.0,"id":1080,"position":"Programmer","fio":"Королёва Милена Борисовна","workTime":160},{"payment":61090.0,"id":1081,"position":"Programmer","fio":"Ларичев Венедикт Проклович","workTime":160},{"payment":60340.0,"id":1082,"position":"Programmer","fio":"Рыбакова Евдокия Станиславовна","workTime":160},{"payment":60340.0,"id":1083,"position":"Programmer","fio":"Белоусова Пелагея Владиленовна","workTime":160},{"payment":60340.0,"id":1084,"position":"Programmer","fio":"Кондучалова Ефросинья Алексеевна","workTime":160},{"payment":60340.0,"id":1085,"position":"Programmer","fio":"Торсунова Эвелина Тимофеевна","workTime":160},{"payment":60840.0,"id":1086,"position":"Programmer","fio":"Карпенцев Герасим Демьянович","workTime":160},{"payment":60840.0,"id":1087,"position":"Programmer","fio":"Якубова Регина Феликсовна","workTime":160},{"payment":60840.0,"id":1088,"position":"Programmer","fio":"Ягфаров Андрей Самуилович","workTime":160},{"payment":60840.0,"id":1089,"position":"Programmer","fio":"Ожегова Ксения Данилевна","workTime":160},{"payment":61840.0,"id":1090,"position":"Programmer","fio":"Карданова Агния Анатолиевна","workTime":160},{"payment":61840.0,"id":1091,"position":"Programmer","fio":"Сиянскиха Екатерина Елизаровна","workTime":160},{"payment":61840.0,"id":1092,"position":"Programmer","fio":"Усов Олег Евграфович","workTime":160},{"payment":61840.0,"id":1093,"position":"Programmer","fio":"Каменева Лариса Давидовна","workTime":160},{"payment":55960.0,"id":1094,"position":"Tester","fio":"Жжёнова Эльвира Геннадиевна","workTime":160},{"payment":55960.0,"id":1095,"position":"Tester","fio":"Валуева Ирина Анатолиевна","workTime":160},{"payment":55960.0,"id":1096,"position":"Tester","fio":"Дудченко Ульяна Георгиевна","workTime":160},{"payment":56960.0,"id":1097,"position":"Tester","fio":"Якушин Валерьян Эрнестович","workTime":160},{"payment":56960.0,"id":1098,"position":"Tester","fio":"Эмануиль Гавриил Григориевич","workTime":160},{"payment":56960.0,"id":1099,"position":"Tester","fio":"Игнатова Оксана Филипповна","workTime":160},{"payment":58260.0,"id":1100,"position":"Tester","fio":"Ясинова Раиса Ивановна","workTime":160},{"payment":58260.0,"id":1101,"position":"Tester","fio":"Ажикелямова Владислава Филипповна","workTime":160},{"payment":58260.0,"id":1102,"position":"Tester","fio":"Ермишина Ярослава Степановна","workTime":160},{"payment":57260.0,"id":1103,"position":"Tester","fio":"Пичугина Инесса Святославовна","workTime":160},{"payment":57260.0,"id":1104,"position":"Tester","fio":"Тамахин Дмитрий Григориевич","workTime":160},{"payment":57260.0,"id":1105,"position":"Tester","fio":"Толбоева Зоя Яновна","workTime":160},{"payment":57460.0,"id":1106,"position":"Tester","fio":"Зёмина Владлена Федоровна","workTime":160},{"payment":57460.0,"id":1107,"position":"Tester","fio":"Глоба Стела Борисовна","workTime":160},{"payment":57460.0,"id":1108,"position":"Tester","fio":"Буданов Юлий Викентиевич","workTime":160},{"payment":58460.0,"id":1109,"position":"Tester","fio":"Бородин Виталий Вячеславович","workTime":160},{"payment":58460.0,"id":1110,"position":"Tester","fio":"Разбойникова Виктория Никитевна","workTime":160},{"payment":58460.0,"id":1111,"position":"Tester","fio":"Миронова Жанна Несторовна","workTime":160},{"payment":56960.0,"id":1112,"position":"Tester","fio":"Землякова Агата Ильевна","workTime":160},{"payment":56960.0,"id":1113,"position":"Tester","fio":"Скуратов Бронислав Онисимович","workTime":160},{"payment":56960.0,"id":1114,"position":"Tester","fio":"Толбанов Евдоким Прокофиевич","workTime":160},{"payment":58960.0,"id":1115,"position":"Tester","fio":"Ерзова Берта Трофимовна","workTime":160},{"payment":58960.0,"id":1116,"position":"Tester","fio":"Михайличенко Зиновий Натанович","workTime":160},{"payment":58960.0,"id":1117,"position":"Tester","fio":"Столярова Ираида Владленовна","workTime":160},{"payment":58210.0,"id":1118,"position":"Tester","fio":"Халипова Владлена Елизаровна","workTime":160},{"payment":58210.0,"id":1119,"position":"Tester","fio":"Муравей Евграф Мартьянович","workTime":160},{"payment":58210.0,"id":1120,"position":"Tester","fio":"Языкина Лада Ильевна","workTime":160},{"payment":57460.0,"id":1121,"position":"Tester","fio":"Арзамасцева Анисья Потаповна","workTime":160},{"payment":57460.0,"id":1122,"position":"Tester","fio":"Неделяев Ипполит Богданович","workTime":160},{"payment":57460.0,"id":1123,"position":"Tester","fio":"Мозговой Татьяна Степановна","workTime":160},{"payment":57960.0,"id":1124,"position":"Tester","fio":"Дешевых Изяслав Ипатович","workTime":160},{"payment":57960.0,"id":1125,"position":"Tester","fio":"Плюхина Алиса Ефимовна","workTime":160},{"payment":57960.0,"id":1126,"position":"Tester","fio":"Ямбаев Александр Мартьянович","workTime":160},{"payment":58960.0,"id":1127,"position":"Tester","fio":"Веденина Ульяна Алексеевна","workTime":160},{"payment":58960.0,"id":1128,"position":"Tester","fio":"Павлова Маргарита Семеновна","workTime":160},{"payment":58960.0,"id":1129,"position":"Tester","fio":"Сабитова Светлана Игнатиевна","workTime":160},{"payment":64600.0,"id":1130,"position":"Team Leader","fio":"Ярмолинский Тимур Богданович","workTime":160},{"payment":65600.0,"id":1131,"position":"Team Leader","fio":"Поздова Дарья Василиевна","workTime":160},{"payment":66900.0,"id":1132,"position":"Team Leader","fio":"Завьялова Лидия Тимофеевна","workTime":160},{"payment":65900.0,"id":1133,"position":"Team Leader","fio":"Нырко Данила Никифорович","workTime":160},{"payment":66100.0,"id":1134,"position":"Team Leader","fio":"Плахтюрин Геннадий Платонович","workTime":160},{"payment":67100.0,"id":1135,"position":"Team Leader","fio":"Тамило Кузьма Ираклиевич","workTime":160},{"payment":65600.0,"id":1136,"position":"Team Leader","fio":"Лукина Варвара Давидовна","workTime":160},{"payment":67600.0,"id":1137,"position":"Team Leader","fio":"Сьянова Виктория Филипповна","workTime":160},{"payment":66850.0,"id":1138,"position":"Team Leader","fio":"Мохов Андрон Маркович","workTime":160},{"payment":66100.0,"id":1139,"position":"Team Leader","fio":"Осин Аким Федосиевич","workTime":160},{"payment":66600.0,"id":1140,"position":"Team Leader","fio":"Сорокина Альбина Никитевна","workTime":160},{"payment":67600.0,"id":1141,"position":"Team Leader","fio":"Тетерина Людмила Фомевна","workTime":160},{"payment":28000.0,"id":1142,"position":"Manager","fio":"Вольпов Владилен Еремеевич","workTime":160},{"payment":28000.0,"id":1143,"position":"Manager","fio":"Абдулов Семен Вячеславович","workTime":160},{"payment":32000.0,"id":1144,"position":"Manager","fio":"Чебыкина Мирослава Федотовна","workTime":160},{"payment":32000.0,"id":1145,"position":"Manager","fio":"Кобелева Александра Фомевна","workTime":160},{"payment":37200.0,"id":1146,"position":"Manager","fio":"Киреев Петр Измаилович","workTime":160},{"payment":37200.0,"id":1147,"position":"Manager","fio":"Осипова Эльвира Якововна","workTime":160},{"payment":33200.0,"id":1148,"position":"Manager","fio":"Мальцев Даниил Якубович","workTime":160},{"payment":33200.0,"id":1149,"position":"Manager","fio":"Абоимова Нина Ефимовна","workTime":160},{"payment":34000.0,"id":1150,"position":"Manager","fio":"Мадулин Кузьма Проклович","workTime":160},{"payment":34000.0,"id":1151,"position":"Manager","fio":"Ковалев Рубен Филиппович","workTime":160},{"payment":38000.0,"id":1152,"position":"Manager","fio":"Львов Артур Карлович","workTime":160},{"payment":38000.0,"id":1153,"position":"Manager","fio":"Ефремова Галина Елизаровна","workTime":160},{"payment":32000.0,"id":1154,"position":"Manager","fio":"Разуваева Виктория Николаевна","workTime":160},{"payment":32000.0,"id":1155,"position":"Manager","fio":"Таттар Игнатий Филимонович","workTime":160},{"payment":40000.0,"id":1156,"position":"Manager","fio":"Жичкина Юлия Германовна","workTime":160},{"payment":40000.0,"id":1157,"position":"Manager","fio":"Салтанова Агата Никитевна","workTime":160},{"payment":37000.0,"id":1158,"position":"Manager","fio":"Смелоч Казимир Дмитриевич","workTime":160},{"payment":37000.0,"id":1159,"position":"Manager","fio":"Кутяков Чеслав Ростиславович","workTime":160},{"payment":34000.0,"id":1160,"position":"Manager","fio":"Невьянцев Ипполит Маркович","workTime":160},{"payment":34000.0,"id":1161,"position":"Manager","fio":"Николаева Галина Давидовна","workTime":160},{"payment":36000.0,"id":1162,"position":"Manager","fio":"Венедиктов Мстислав Сидорович","workTime":160},{"payment":36000.0,"id":1163,"position":"Manager","fio":"Дубов Бронислав Семенович","workTime":160},{"payment":40000.0,"id":1164,"position":"Manager","fio":"Букова Василиса Петровна","workTime":160},{"payment":40000.0,"id":1165,"position":"Manager","fio":"Ягемана Алиса Петровна","workTime":160},{"payment":36400.0,"id":1166,"position":"Project Manager","fio":"Куксюка Эльвира Виталиевна","workTime":160},{"payment":41600.0,"id":1167,"position":"Project Manager","fio":"Лашкина Ульяна Серафимовна","workTime":160},{"payment":48360.0,"id":1168,"position":"Project Manager","fio":"Рясной Бронислав Герасимович","workTime":160},{"payment":43160.0,"id":1169,"position":"Project Manager","fio":"Акимова Алиса Ростиславовна","workTime":160},{"payment":44200.0,"id":1170,"position":"Project Manager","fio":"Пашин Станислав Никифорович","workTime":160},{"payment":49400.0,"id":1171,"position":"Project Manager","fio":"Кузьмова Фаина Кузьмевна","workTime":160},{"payment":41600.0,"id":1172,"position":"Project Manager","fio":"Сластников Степан Гаврилевич","workTime":160},{"payment":52000.0,"id":1173,"position":"Project Manager","fio":"Масмех Казимир Анатолиевич","workTime":160},{"payment":48100.0,"id":1174,"position":"Project Manager","fio":"Агеев Афанасий Георгиевич","workTime":160},{"payment":44200.0,"id":1175,"position":"Project Manager","fio":"Прилуцкий Вячеслав Гордеевич","workTime":160},{"payment":46800.0,"id":1176,"position":"Project Manager","fio":"Бабкин Аким Евграфович","workTime":160},{"payment":52000.0,"id":1177,"position":"Project Manager","fio":"Курневича Галина Захаровна","workTime":160},{"payment":126420.0,"id":1178,"position":"Senior Manager","fio":"Энгельгардт Пимен Артемиевич","workTime":160}] \ No newline at end of file diff --git a/target/classes/Lab4.class b/target/classes/Lab4.class new file mode 100644 index 0000000..9619888 Binary files /dev/null and b/target/classes/Lab4.class differ diff --git a/target/classes/Staff/Cleaner.class b/target/classes/Staff/Cleaner.class new file mode 100644 index 0000000..80bbe3f Binary files /dev/null and b/target/classes/Staff/Cleaner.class differ diff --git a/target/classes/Staff/DevelopProjects$States.class b/target/classes/Staff/DevelopProjects$States.class new file mode 100644 index 0000000..915ab0c Binary files /dev/null and b/target/classes/Staff/DevelopProjects$States.class differ diff --git a/target/classes/Staff/DevelopProjects.class b/target/classes/Staff/DevelopProjects.class new file mode 100644 index 0000000..021827e Binary files /dev/null and b/target/classes/Staff/DevelopProjects.class differ diff --git a/target/classes/Staff/DeveloperCompany.class b/target/classes/Staff/DeveloperCompany.class new file mode 100644 index 0000000..25491d2 Binary files /dev/null and b/target/classes/Staff/DeveloperCompany.class differ diff --git a/target/classes/Staff/Driver.class b/target/classes/Staff/Driver.class new file mode 100644 index 0000000..5c520c6 Binary files /dev/null and b/target/classes/Staff/Driver.class differ diff --git a/target/classes/Staff/Employee.class b/target/classes/Staff/Employee.class new file mode 100644 index 0000000..b9196aa Binary files /dev/null and b/target/classes/Staff/Employee.class differ diff --git a/target/classes/Staff/Engineer.class b/target/classes/Staff/Engineer.class new file mode 100644 index 0000000..13295d3 Binary files /dev/null and b/target/classes/Staff/Engineer.class differ diff --git a/target/classes/Staff/Heading.class b/target/classes/Staff/Heading.class new file mode 100644 index 0000000..980767d Binary files /dev/null and b/target/classes/Staff/Heading.class differ diff --git a/target/classes/Staff/Manager.class b/target/classes/Staff/Manager.class new file mode 100644 index 0000000..846c1df Binary files /dev/null and b/target/classes/Staff/Manager.class differ diff --git a/target/classes/Staff/Personal.class b/target/classes/Staff/Personal.class new file mode 100644 index 0000000..ec67001 Binary files /dev/null and b/target/classes/Staff/Personal.class differ diff --git a/target/classes/Staff/Programmer.class b/target/classes/Staff/Programmer.class new file mode 100644 index 0000000..b3efc93 Binary files /dev/null and b/target/classes/Staff/Programmer.class differ diff --git a/target/classes/Staff/Project.class b/target/classes/Staff/Project.class new file mode 100644 index 0000000..b7c80b9 Binary files /dev/null and b/target/classes/Staff/Project.class differ diff --git a/target/classes/Staff/ProjectManager.class b/target/classes/Staff/ProjectManager.class new file mode 100644 index 0000000..352e60a Binary files /dev/null and b/target/classes/Staff/ProjectManager.class differ diff --git a/target/classes/Staff/SeniorManager.class b/target/classes/Staff/SeniorManager.class new file mode 100644 index 0000000..fe44b9b Binary files /dev/null and b/target/classes/Staff/SeniorManager.class differ diff --git a/target/classes/Staff/TeamLeader.class b/target/classes/Staff/TeamLeader.class new file mode 100644 index 0000000..8f9e969 Binary files /dev/null and b/target/classes/Staff/TeamLeader.class differ diff --git a/target/classes/Staff/Tester.class b/target/classes/Staff/Tester.class new file mode 100644 index 0000000..024f4d1 Binary files /dev/null and b/target/classes/Staff/Tester.class differ diff --git a/target/classes/Staff/WorkTime.class b/target/classes/Staff/WorkTime.class new file mode 100644 index 0000000..0e8aa99 Binary files /dev/null and b/target/classes/Staff/WorkTime.class differ diff --git a/target/classes/projects.json b/target/classes/projects.json new file mode 100644 index 0000000..078b558 --- /dev/null +++ b/target/classes/projects.json @@ -0,0 +1,62 @@ +[ + { + "id": 1, + "title": "Root Insurance", + "budget": 140000 + }, + { + "id": 2, + "title": "StockX", + "budget": 160000 + }, + { + "id": 3, + "title": "PlayVS", + "budget": 186000 + }, + { + "id": 4, + "title": "ShipBob", + "budget": 166000 + }, + { + "id": 5, + "title": "K4Connect", + "budget": 170000 + }, + { + "id": 6, + "title": "ExemptMeNow", + "budget": 190000 + }, + { + "id": 7, + "title": "Goodr", + "budget": 160000 + }, + { + "id": 8, + "title": "Understory Weather", + "budget": 200000 + }, + { + "id": 9, + "title": "MetaCX", + "budget": 185000 + }, + { + "id": 10, + "title": "Scale AI", + "budget": 170000 + }, + { + "id": 11, + "title": "UiPath", + "budget": 180000 + }, + { + "id": 12, + "title": "The Travel Line", + "budget": 200000 + } +] \ No newline at end of file diff --git a/target/classes/stuff.json b/target/classes/stuff.json new file mode 100644 index 0000000..1482fde --- /dev/null +++ b/target/classes/stuff.json @@ -0,0 +1,885 @@ +[ + + { + "id": 1032, + "position": "driver", + "fio": "Погребнова Оксана Тимуровна", + "workTime": 140 + }, + { + "id": 1033, + "position": "driver", + "fio": "Репин Викентий Якубович", + "workTime": 160 + }, + { + "id": 1034, + "position": "driver", + "fio": "Холод Игнатий Агапович", + "workTime": 186 + }, + { + "id": 1035, + "position": "driver", + "fio": "Аронова Валентина Вячеславовна", + "workTime": 166 + }, + { + "id": 1036, + "position": "cleaner", + "fio": "Сапалёв Андрон Денисович", + "workTime": 80 + }, + { + "id": 1037, + "position": "cleaner", + "fio": "Шаньгина Агафья Фомевна", + "workTime": 80 + }, + { + "id": 1038, + "position": "cleaner", + "fio": "Ильясов Валентин Всеволодович", + "workTime": 160 + }, + { + "id": 1039, + "position": "cleaner", + "fio": "Лапухина Христина Анатолиевна", + "workTime": 80 + }, + { + "id": 1040, + "position": "cleaner", + "fio": "Ягутян Самсон Фомевич", + "workTime": 80 + }, + { + "id": 1041, + "position": "cleaner", + "fio": "Лямин Данила Панкратиевич", + "workTime": 80 + }, + { + "id": 1042, + "position": "cleaner", + "fio": "Тяпичева Евгения Трофимовна", + "workTime": 80 + }, + { + "id": 1043, + "position": "cleaner", + "fio": "Яшуков Вацлав Никонович", + "workTime": 80 + }, + { + "id": 1044, + "position": "cleaner", + "fio": "Кружкова Христина Афанасиевна", + "workTime": 160 + }, + { + "id": 1045, + "position": "cleaner", + "fio": "Каверин Евсей Ульянович", + "workTime": 80 + }, + { + "id": 1046, + "position": "programmer", + "fio": "Мячин Чеслав Карлович", + "workTime": 160 + }, + { + "id": 1047, + "position": "programmer", + "fio": "Эмских Герасим Евграфович", + "workTime": 160 + }, + { + "id": 1048, + "position": "programmer", + "fio": "Нюхтилин Степан Ефремович", + "workTime": 160 + }, + { + "id": 1049, + "position": "programmer", + "fio": "Степнов Викентий Сигизмундович", + "workTime": 160 + }, + { + "id": 1050, + "position": "programmer", + "fio": "Делов Прохор Кондратович", + "workTime": 160 + }, + { + "id": 1051, + "position": "programmer", + "fio": "Котов Всеволод Игоревич", + "workTime": 160 + }, + { + "id": 1052, + "position": "programmer", + "fio": "Львов Архип Всеволодович", + "workTime": 160 + }, + { + "id": 1053, + "position": "programmer", + "fio": "Гибазова Ксения Вячеславовна", + "workTime": 160 + }, + { + "id": 1054, + "position": "programmer", + "fio": "Александрова Зинаида Александровна", + "workTime": 160 + }, + { + "id": 1055, + "position": "programmer", + "fio": "Экземплярский Самуил Изяславович", + "workTime": 160 + }, + { + "id": 1056, + "position": "programmer", + "fio": "Щередина Екатерина Павеловна", + "workTime": 160 + }, + { + "id": 1057, + "position": "programmer", + "fio": "Макушев Гавриил Григориевич", + "workTime": 160 + }, + { + "id": 1058, + "position": "programmer", + "fio": "Стрельников Руслан Давыдович", + "workTime": 160 + }, + { + "id": 1059, + "position": "programmer", + "fio": "Колтышев Вячеслав Игоревич", + "workTime": 160 + }, + { + "id": 1060, + "position": "programmer", + "fio": "Жвиков Емельян Самсонович", + "workTime": 160 + }, + { + "id": 1061, + "position": "programmer", + "fio": "Гайдученко Агап Миронович", + "workTime": 160 + }, + { + "id": 1062, + "position": "programmer", + "fio": "Янушкене Богдан Елисеевич", + "workTime": 160 + }, + { + "id": 1063, + "position": "programmer", + "fio": "Соломахина Лариса Родионовна", + "workTime": 160 + }, + { + "id": 1064, + "position": "programmer", + "fio": "Невшупа Екатерина Георгиевна", + "workTime": 160 + }, + { + "id": 1065, + "position": "programmer", + "fio": "Цызырева Влада Елизаровна", + "workTime": 160 + }, + { + "id": 1066, + "position": "programmer", + "fio": "Ерохин Назар Артемиевич", + "workTime": 160 + }, + { + "id": 1067, + "position": "programmer", + "fio": "Савинков Фома Моисеевич", + "workTime": 160 + }, + { + "id": 1068, + "position": "programmer", + "fio": "Дмитриев Вадим Андроникович", + "workTime": 160 + }, + { + "id": 1069, + "position": "programmer", + "fio": "Богачёв Гавриил Карлович", + "workTime": 160 + }, + { + "id": 1070, + "position": "programmer", + "fio": "Чибисова Диана Захаровна", + "workTime": 160 + }, + { + "id": 1071, + "position": "programmer", + "fio": "Ямов Виктор Валерьянович", + "workTime": 160 + }, + { + "id": 1072, + "position": "programmer", + "fio": "Косинова Полина Кузьмевна", + "workTime": 160 + }, + { + "id": 1073, + "position": "programmer", + "fio": "Ханцев Федор Георгиевич", + "workTime": 160 + }, + { + "id": 1074, + "position": "programmer", + "fio": "Ящин Мефодий Никифорович", + "workTime": 160 + }, + { + "id": 1075, + "position": "programmer", + "fio": "Чиркаш Давид Несторович", + "workTime": 160 + }, + { + "id": 1076, + "position": "programmer", + "fio": "Яманов Кузьма Захарович", + "workTime": 160 + }, + { + "id": 1077, + "position": "programmer", + "fio": "Викаш Александр Кондратович", + "workTime": 160 + }, + { + "id": 1078, + "position": "programmer", + "fio": "Эсаулова Мирослава Андрияновна", + "workTime": 160 + }, + { + "id": 1079, + "position": "programmer", + "fio": "Сидоров Иннокентий Юриевич", + "workTime": 160 + }, + { + "id": 1080, + "position": "programmer", + "fio": "Королёва Милена Борисовна", + "workTime": 160 + }, + { + "id": 1081, + "position": "programmer", + "fio": "Ларичев Венедикт Проклович", + "workTime": 160 + }, + { + "id": 1082, + "position": "programmer", + "fio": "Рыбакова Евдокия Станиславовна", + "workTime": 160 + }, + { + "id": 1083, + "position": "programmer", + "fio": "Белоусова Пелагея Владиленовна", + "workTime": 160 + }, + { + "id": 1084, + "position": "programmer", + "fio": "Кондучалова Ефросинья Алексеевна", + "workTime": 160 + }, + { + "id": 1085, + "position": "programmer", + "fio": "Торсунова Эвелина Тимофеевна", + "workTime": 160 + }, + { + "id": 1086, + "position": "programmer", + "fio": "Карпенцев Герасим Демьянович", + "workTime": 160 + }, + { + "id": 1087, + "position": "programmer", + "fio": "Якубова Регина Феликсовна", + "workTime": 160 + }, + { + "id": 1088, + "position": "programmer", + "fio": "Ягфаров Андрей Самуилович", + "workTime": 160 + }, + { + "id": 1089, + "position": "programmer", + "fio": "Ожегова Ксения Данилевна", + "workTime": 160 + }, + { + "id": 1090, + "position": "programmer", + "fio": "Карданова Агния Анатолиевна", + "workTime": 160 + }, + { + "id": 1091, + "position": "programmer", + "fio": "Сиянскиха Екатерина Елизаровна", + "workTime": 160 + }, + { + "id": 1092, + "position": "programmer", + "fio": "Усов Олег Евграфович", + "workTime": 160 + }, + { + "id": 1093, + "position": "programmer", + "fio": "Каменева Лариса Давидовна", + "workTime": 160 + }, + { + "id": 1094, + "position": "tester", + "fio": "Жжёнова Эльвира Геннадиевна", + "workTime": 160 + }, + { + "id": 1095, + "position": "tester", + "fio": "Валуева Ирина Анатолиевна", + "workTime": 160 + }, + { + "id": 1096, + "position": "tester", + "fio": "Дудченко Ульяна Георгиевна", + "workTime": 160 + }, + { + "id": 1097, + "position": "tester", + "fio": "Якушин Валерьян Эрнестович", + "workTime": 160 + }, + { + "id": 1098, + "position": "tester", + "fio": "Эмануиль Гавриил Григориевич", + "workTime": 160 + }, + { + "id": 1099, + "position": "tester", + "fio": "Игнатова Оксана Филипповна", + "workTime": 160 + }, + { + "id": 1100, + "position": "tester", + "fio": "Ясинова Раиса Ивановна", + "workTime": 160 + }, + { + "id": 1101, + "position": "tester", + "fio": "Ажикелямова Владислава Филипповна", + "workTime": 160 + }, + { + "id": 1102, + "position": "tester", + "fio": "Ермишина Ярослава Степановна", + "workTime": 160 + }, + { + "id": 1103, + "position": "tester", + "fio": "Пичугина Инесса Святославовна", + "workTime": 160 + }, + { + "id": 1104, + "position": "tester", + "fio": "Тамахин Дмитрий Григориевич", + "workTime": 160 + }, + { + "id": 1105, + "position": "tester", + "fio": "Толбоева Зоя Яновна", + "workTime": 160 + }, + { + "id": 1106, + "position": "tester", + "fio": "Зёмина Владлена Федоровна", + "workTime": 160 + }, + { + "id": 1107, + "position": "tester", + "fio": "Глоба Стела Борисовна", + "workTime": 160 + }, + { + "id": 1108, + "position": "tester", + "fio": "Буданов Юлий Викентиевич", + "workTime": 160 + }, + { + "id": 1109, + "position": "tester", + "fio": "Бородин Виталий Вячеславович", + "workTime": 160 + }, + { + "id": 1110, + "position": "tester", + "fio": "Разбойникова Виктория Никитевна", + "workTime": 160 + }, + { + "id": 1111, + "position": "tester", + "fio": "Миронова Жанна Несторовна", + "workTime": 160 + }, + { + "id": 1112, + "position": "tester", + "fio": "Землякова Агата Ильевна", + "workTime": 160 + }, + { + "id": 1113, + "position": "tester", + "fio": "Скуратов Бронислав Онисимович", + "workTime": 160 + }, + { + "id": 1114, + "position": "tester", + "fio": "Толбанов Евдоким Прокофиевич", + "workTime": 160 + }, + { + "id": 1115, + "position": "tester", + "fio": "Ерзова Берта Трофимовна", + "workTime": 160 + }, + { + "id": 1116, + "position": "tester", + "fio": "Михайличенко Зиновий Натанович", + "workTime": 160 + }, + { + "id": 1117, + "position": "tester", + "fio": "Столярова Ираида Владленовна", + "workTime": 160 + }, + { + "id": 1118, + "position": "tester", + "fio": "Халипова Владлена Елизаровна", + "workTime": 160 + }, + { + "id": 1119, + "position": "tester", + "fio": "Муравей Евграф Мартьянович", + "workTime": 160 + }, + { + "id": 1120, + "position": "tester", + "fio": "Языкина Лада Ильевна", + "workTime": 160 + }, + { + "id": 1121, + "position": "tester", + "fio": "Арзамасцева Анисья Потаповна", + "workTime": 160 + }, + { + "id": 1122, + "position": "tester", + "fio": "Неделяев Ипполит Богданович", + "workTime": 160 + }, + { + "id": 1123, + "position": "tester", + "fio": "Мозговой Татьяна Степановна", + "workTime": 160 + }, + { + "id": 1124, + "position": "tester", + "fio": "Дешевых Изяслав Ипатович", + "workTime": 160 + }, + { + "id": 1125, + "position": "tester", + "fio": "Плюхина Алиса Ефимовна", + "workTime": 160 + }, + { + "id": 1126, + "position": "tester", + "fio": "Ямбаев Александр Мартьянович", + "workTime": 160 + }, + { + "id": 1127, + "position": "tester", + "fio": "Веденина Ульяна Алексеевна", + "workTime": 160 + }, + { + "id": 1128, + "position": "tester", + "fio": "Павлова Маргарита Семеновна", + "workTime": 160 + }, + { + "id": 1129, + "position": "tester", + "fio": "Сабитова Светлана Игнатиевна", + "workTime": 160 + }, + { + "id": 1130, + "position": "teamLeader", + "fio": "Ярмолинский Тимур Богданович", + "workTime": 160 + }, + { + "id": 1131, + "position": "teamLeader", + "fio": "Поздова Дарья Василиевна", + "workTime": 160 + }, + { + "id": 1132, + "position": "teamLeader", + "fio": "Завьялова Лидия Тимофеевна", + "workTime": 160 + }, + { + "id": 1133, + "position": "teamLeader", + "fio": "Нырко Данила Никифорович", + "workTime": 160 + }, + { + "id": 1134, + "position": "teamLeader", + "fio": "Плахтюрин Геннадий Платонович", + "workTime": 160 + }, + { + "id": 1135, + "position": "teamLeader", + "fio": "Тамило Кузьма Ираклиевич", + "workTime": 160 + }, + { + "id": 1136, + "position": "teamLeader", + "fio": "Лукина Варвара Давидовна", + "workTime": 160 + }, + { + "id": 1137, + "position": "teamLeader", + "fio": "Сьянова Виктория Филипповна", + "workTime": 160 + }, + { + "id": 1138, + "position": "teamLeader", + "fio": "Мохов Андрон Маркович", + "workTime": 160 + }, + { + "id": 1139, + "position": "teamLeader", + "fio": "Осин Аким Федосиевич", + "workTime": 160 + }, + { + "id": 1140, + "position": "teamLeader", + "fio": "Сорокина Альбина Никитевна", + "workTime": 160 + }, + { + "id": 1141, + "position": "teamLeader", + "fio": "Тетерина Людмила Фомевна", + "workTime": 160 + }, + { + "id": 1142, + "position": "manager", + "fio": "Вольпов Владилен Еремеевич", + "workTime": 160 + }, + { + "id": 1143, + "position": "manager", + "fio": "Абдулов Семен Вячеславович", + "workTime": 160 + }, + { + "id": 1144, + "position": "manager", + "fio": "Чебыкина Мирослава Федотовна", + "workTime": 160 + }, + { + "id": 1145, + "position": "manager", + "fio": "Кобелева Александра Фомевна", + "workTime": 160 + }, + { + "id": 1146, + "position": "manager", + "fio": "Киреев Петр Измаилович", + "workTime": 160 + }, + { + "id": 1147, + "position": "manager", + "fio": "Осипова Эльвира Якововна", + "workTime": 160 + }, + { + "id": 1148, + "position": "manager", + "fio": "Мальцев Даниил Якубович", + "workTime": 160 + }, + { + "id": 1149, + "position": "manager", + "fio": "Абоимова Нина Ефимовна", + "workTime": 160 + }, + { + "id": 1150, + "position": "manager", + "fio": "Мадулин Кузьма Проклович", + "workTime": 160 + }, + { + "id": 1151, + "position": "manager", + "fio": "Ковалев Рубен Филиппович", + "workTime": 160 + }, + { + "id": 1152, + "position": "manager", + "fio": "Львов Артур Карлович", + "workTime": 160 + }, + { + "id": 1153, + "position": "manager", + "fio": "Ефремова Галина Елизаровна", + "workTime": 160 + }, + { + "id": 1154, + "position": "manager", + "fio": "Разуваева Виктория Николаевна", + "workTime": 160 + }, + { + "id": 1155, + "position": "manager", + "fio": "Таттар Игнатий Филимонович", + "workTime": 160 + }, + { + "id": 1156, + "position": "manager", + "fio": "Жичкина Юлия Германовна", + "workTime": 160 + }, + { + "id": 1157, + "position": "manager", + "fio": "Салтанова Агата Никитевна", + "workTime": 160 + }, + { + "id": 1158, + "position": "manager", + "fio": "Смелоч Казимир Дмитриевич", + "workTime": 160 + }, + { + "id": 1159, + "position": "manager", + "fio": "Кутяков Чеслав Ростиславович", + "workTime": 160 + }, + { + "id": 1160, + "position": "manager", + "fio": "Невьянцев Ипполит Маркович", + "workTime": 160 + }, + { + "id": 1161, + "position": "manager", + "fio": "Николаева Галина Давидовна", + "workTime": 160 + }, + { + "id": 1162, + "position": "manager", + "fio": "Венедиктов Мстислав Сидорович", + "workTime": 160 + }, + { + "id": 1163, + "position": "manager", + "fio": "Дубов Бронислав Семенович", + "workTime": 160 + }, + { + "id": 1164, + "position": "manager", + "fio": "Букова Василиса Петровна", + "workTime": 160 + }, + { + "id": 1165, + "position": "manager", + "fio": "Ягемана Алиса Петровна", + "workTime": 160 + }, + { + "id": 1166, + "position": "projectManager", + "fio": "Куксюка Эльвира Виталиевна", + "workTime": 160 + }, + { + "id": 1167, + "position": "projectManager", + "fio": "Лашкина Ульяна Серафимовна", + "workTime": 160 + }, + { + "id": 1168, + "position": "projectManager", + "fio": "Рясной Бронислав Герасимович", + "workTime": 160 + }, + { + "id": 1169, + "position": "projectManager", + "fio": "Акимова Алиса Ростиславовна", + "workTime": 160 + }, + { + "id": 1170, + "position": "projectManager", + "fio": "Пашин Станислав Никифорович", + "workTime": 160 + }, + { + "id": 1171, + "position": "projectManager", + "fio": "Кузьмова Фаина Кузьмевна", + "workTime": 160 + }, + { + "id": 1172, + "position": "projectManager", + "fio": "Сластников Степан Гаврилевич", + "workTime": 160 + }, + { + "id": 1173, + "position": "projectManager", + "fio": "Масмех Казимир Анатолиевич", + "workTime": 160 + }, + { + "id": 1174, + "position": "projectManager", + "fio": "Агеев Афанасий Георгиевич", + "workTime": 160 + }, + { + "id": 1175, + "position": "projectManager", + "fio": "Прилуцкий Вячеслав Гордеевич", + "workTime": 160 + }, + { + "id": 1176, + "position": "projectManager", + "fio": "Бабкин Аким Евграфович", + "workTime": 160 + }, + { + "id": 1177, + "position": "projectManager", + "fio": "Курневича Галина Захаровна", + "workTime": 160 + }, + { + "id": 1178, + "position": "seniorManager", + "fio": "Энгельгардт Пимен Артемиевич", + "workTime": 160 + } +] \ No newline at end of file diff --git a/target/classes/testProject.json b/target/classes/testProject.json new file mode 100644 index 0000000..8000340 --- /dev/null +++ b/target/classes/testProject.json @@ -0,0 +1,7 @@ +[ + { + "id": 1, + "title": "Root Insurance", + "budget": 300000 + } +] \ No newline at end of file diff --git a/target/classes/testStuff.json b/target/classes/testStuff.json new file mode 100644 index 0000000..89d5401 --- /dev/null +++ b/target/classes/testStuff.json @@ -0,0 +1,51 @@ +[ + + { + "id": 1, + "position": "driver", + "fio": "Погребнова Оксана Тимуровна", + "workTime": 160 + }, + { + "id": 2, + "position": "cleaner", + "fio": "Сапалёв Андрон Денисович", + "workTime": 160 + }, + { + "id": 3, + "position": "programmer", + "fio": "Мячин Чеслав Карлович", + "workTime": 160 + }, + { + "id": 4, + "position": "tester", + "fio": "Валуева Ирина Анатолиевна", + "workTime": 160 + }, + { + "id": 5, + "position": "teamLeader", + "fio": "Тамило Кузьма Ираклиевич", + "workTime": 160 + }, + { + "id": 6, + "position": "manager", + "fio": "Киреев Петр Измаилович", + "workTime": 160 + }, + { + "id": 7, + "position": "projectManager", + "fio": "Рясной Бронислав Герасимович", + "workTime": 160 + }, + { + "id": 8, + "position": "seniorManager", + "fio": "Энгельгардт Пимен Артемиевич", + "workTime": 160 + } +] \ No newline at end of file diff --git a/target/test-classes/Staff/DeveloperCompanyTest.class b/target/test-classes/Staff/DeveloperCompanyTest.class new file mode 100644 index 0000000..7ee7fc8 Binary files /dev/null and b/target/test-classes/Staff/DeveloperCompanyTest.class differ