Skip to content

Implementação do CRUD salvando em um CSV #8

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
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
6 changes: 6 additions & 0 deletions funcionarios.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
PLENO, Ana,Desenvolvedora,2000.0,321654987
SENIOR, José,Designer,7000.0,456789123
DIRETOR, João,Consultor de Finanças,10000.0,123456789
PLENO, Maria,QA,5000.0,987654321
DIRETOR, Michael,Diretor Regional,99999.99,0000000000
ESTAGIARIO, Pedro,Full-Stack,1000.0,789123456
2 changes: 1 addition & 1 deletion src/funcionariosStarlabs/ArvoreCTO.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package funcionariosStarlabs;

public class ArvoreCTO extends ArvoreDeFuncionarios<CTO> {
public class ArvoreCTO extends ArvoreDeFuncionarios<CTO> implements java.io.Serializable{

@Override
public void adicionar(CTO funcionario) {
Expand Down
6 changes: 5 additions & 1 deletion src/funcionariosStarlabs/ArvoreDeFuncionarios.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package funcionariosStarlabs;
import java.util.TreeSet;

public class ArvoreDeFuncionarios<T extends FuncionarioBase> {
public class ArvoreDeFuncionarios<T extends FuncionarioBase>{

private TreeSet<T> funcionarios;

Expand Down Expand Up @@ -52,4 +52,8 @@ public void atualizarDados(String nome, double novoSalario, String novoCargo) {
System.out.println("Pessoa não encontrada em nossa base!");
}
}

public TreeSet<T> getFuncionarios() {
return funcionarios;
}
}
3 changes: 2 additions & 1 deletion src/funcionariosStarlabs/CTO.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package funcionariosStarlabs;
import java.io.Serializable;

public class CTO extends FuncionarioBase {
public class CTO extends FuncionarioBase implements Serializable{

public CTO(String nome, String cargo, double salario, String cpf) {
super(nome, cargo, salario, cpf);
Expand Down
2 changes: 1 addition & 1 deletion src/funcionariosStarlabs/FuncionarioBase.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package funcionariosStarlabs;

public abstract class FuncionarioBase implements FuncionarioBaseInterface {
public abstract class FuncionarioBase implements FuncionarioBaseInterface{
protected String nome;
protected String cargo;
protected double salario;
Expand Down
2 changes: 1 addition & 1 deletion src/funcionariosStarlabs/FuncionarioBaseNode.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package funcionariosStarlabs;

public class FuncionarioBaseNode {
public class FuncionarioBaseNode implements java.io.Serializable{
FuncionarioBase funcionario;
FuncionarioBaseNode leftChild;
FuncionarioBaseNode rightChild;
Expand Down
10 changes: 10 additions & 0 deletions src/funcionariosStarlabs/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package funcionariosStarlabs;

public class Main {

public static void main(String[] args) {
CTO cto = new CTO("Victor", "CTO", 10000, "123.456.789-00");
System.out.println(cto.getNome());
}

}
180 changes: 180 additions & 0 deletions src/placeholderCompany/ArvoreDeFuncionarios.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
package placeholderCompany;
import java.util.TreeSet;
import java.util.Scanner;
import utils.*;

public class ArvoreDeFuncionarios<T extends FuncionarioBase>{

private TreeSet<T> funcionarios;

public ArvoreDeFuncionarios() {
funcionarios = new TreeSet<>((f1, f2) -> f1.getNome().compareTo(f2.getNome()));
}

public void adicionar(T funcionario) {
String cpf = funcionario.getCpf();
if (buscarCpf(cpf)) {
System.out.println("Funcionário já existe na nossa base de dados");
return;
}
funcionarios.add(funcionario);
System.out.println("Funcionário adicionado com sucesso!");
}

public void adicionar(T funcionario, boolean flag) {

String cpf = funcionario.getCpf();
if (buscarCpf(cpf)) {
if (flag) {
System.out.println("Funcionário já existe na nossa base de dados");
return;
}
return;
}
funcionarios.add(funcionario);
if (flag){
System.out.println("Funcionário adicionado com sucesso!");
}
}

public T buscar(String cpf) {

for (T funcionarioBase : funcionarios) {
if (funcionarioBase.getCpf().equals(cpf)) {
return funcionarioBase; // retorno o funcionário encontrado
}
}
System.out.println("Funcionário não existe na nossa base de dados");
return null;
}
public boolean buscarCpf(String cpf) {
for (T funcionarioBase : funcionarios) {
if (funcionarioBase.getCpf().equals(cpf)) {
return true;
}
}
return false;
}

public void remover(String cpf) {
T funcionarioParaRemover = buscar(cpf);
if (funcionarioParaRemover != null) {
funcionarios.remove(funcionarioParaRemover);
System.out.println("Funcionário " + funcionarioParaRemover.getNome() + " removido com sucesso!");
} else {
System.out.println(cpf + "Não foi encontrado na nossa base de dados");
}
}

public void mostrarTodos() {
System.out.println("\n=== Todos os Funcionários ===");
for (T funcionarioBase : funcionarios) {
System.out.println(funcionarioBase.getNome() + " - " + funcionarioBase.getCargo() + " - " + funcionarioBase.getSalario() + " - " + funcionarioBase.getCpf());
}
}

// public void atualizarDados(String nome, double novoSalario, String novoCargo) {
// T funcionarioParaAtualizar = buscar(nome);
// if (funcionarioParaAtualizar != null) {
// funcionarioParaAtualizar.setSalario(novoSalario);
// funcionarioParaAtualizar.setCargo(novoCargo);
// System.out.println("Dados da pessoa funcionária atulizados com sucesso!");
// } else {
// System.out.println("Pessoa não encontrada em nossa base!");
// }
// }

public void atualizarDados(String cpf){
T funcionarioParaAtualizar = buscar(cpf);
if (funcionarioParaAtualizar != null) {
System.out.println("Funcionário encontrado! Dados atuais: " + funcionarioParaAtualizar);
System.out.println("O que deseja atualizar?");
System.out.println("1 - Salário");
System.out.println("2 - Cargo");
System.out.println("3 - Salário e Cargo");
System.out.println("4 - Tipo de Funcionário");
Scanner scanner = new Scanner(System.in);
int opcao = scanner.nextInt();
scanner.nextLine();
while (opcao < 1 || opcao > 4) {
System.out.println("Opção inválida! Digite novamente: ");
opcao = scanner.nextInt();
}
switch (opcao) {
case 1:
System.out.println("Digite o novo salário: ");
double novoSalario = scanner.nextDouble();
funcionarioParaAtualizar.setSalario(novoSalario);
break;
case 2:
System.out.println("Digite o novo cargo: ");
String novoCargo = scanner.nextLine();
funcionarioParaAtualizar.setCargo(novoCargo);
break;
case 3:
System.out.println("Digite o novo salário: ");
double novoSalario2 = scanner.nextDouble();
scanner.nextLine();
funcionarioParaAtualizar.setSalario(novoSalario2);
System.out.println("Digite o novo cargo: ");
String novoCargo2 = scanner.nextLine();
funcionarioParaAtualizar.setCargo(novoCargo2);
break;
case 4:
System.out.println("Qual o novo tipo de funcionário?");
System.out.println("1 - Estagiário");
System.out.println("2 - Júnior");
System.out.println("3 - Pleno");
System.out.println("4 - Sênior");
System.out.println("5 - Lead");
System.out.println("6 - Diretor");
int tipo = scanner.nextInt();
scanner.nextLine();
while (tipo < 1 || tipo > 6) {
System.out.println("Tipo inválido! Digite novamente: ");
tipo = scanner.nextInt();
}
switch (tipo) {
case 1:
Estagiario estagiario = new Estagiario(funcionarioParaAtualizar.getNome(), funcionarioParaAtualizar.getCargo(), funcionarioParaAtualizar.getSalario(), funcionarioParaAtualizar.getCpf());
funcionarios.remove(funcionarioParaAtualizar);
funcionarios.add((T) estagiario);
break;
case 2:
Junior junior = new Junior(funcionarioParaAtualizar.getNome(), funcionarioParaAtualizar.getCargo(), funcionarioParaAtualizar.getSalario(), funcionarioParaAtualizar.getCpf());
funcionarios.remove(funcionarioParaAtualizar);
funcionarios.add((T) junior);
break;
case 3:
Pleno pleno = new Pleno(funcionarioParaAtualizar.getNome(), funcionarioParaAtualizar.getCargo(), funcionarioParaAtualizar.getSalario(), funcionarioParaAtualizar.getCpf());
funcionarios.remove(funcionarioParaAtualizar);
funcionarios.add((T) pleno);
break;
case 4:
Senior senior = new Senior(funcionarioParaAtualizar.getNome(), funcionarioParaAtualizar.getCargo(), funcionarioParaAtualizar.getSalario(), funcionarioParaAtualizar.getCpf());
funcionarios.remove(funcionarioParaAtualizar);
funcionarios.add((T) senior);
break;
case 5:
Lead lead = new Lead(funcionarioParaAtualizar.getNome(), funcionarioParaAtualizar.getCargo(), funcionarioParaAtualizar.getSalario(), funcionarioParaAtualizar.getCpf());
funcionarios.remove(funcionarioParaAtualizar);
System.out.println("Lead: " + lead);
funcionarios.add((T) lead);
break;
case 6:
Diretor diretor = new Diretor(funcionarioParaAtualizar.getNome(), funcionarioParaAtualizar.getCargo(), funcionarioParaAtualizar.getSalario(), funcionarioParaAtualizar.getCpf());
funcionarios.remove(funcionarioParaAtualizar);
funcionarios.add((T) diretor);
break;
}
}
System.out.println("Dados atualizados com sucesso!");
} else {
System.out.println("Pessoa não encontrada em nossa base!");
}
}

public TreeSet<T> getFuncionarios() {
return funcionarios;
}
}
18 changes: 18 additions & 0 deletions src/placeholderCompany/Diretor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package placeholderCompany;

public class Diretor extends FuncionarioBase{

public Diretor(String nome, String cargo, double salario, String cpf) {
super(nome, cargo, salario, cpf);
}

public void ganharBonus() {
this.salario *= 1.5;
}

@Override
public String toString() {
return super.toString() + " - Diretor";
}

}
24 changes: 24 additions & 0 deletions src/placeholderCompany/Estagiario.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package placeholderCompany;

public class Estagiario extends FuncionarioBase {
private double horasSemanais;

public Estagiario(String nome, String cargo, double salario, String cpf) {
super(nome, cargo, salario, cpf);
this.horasSemanais = 60;
}

public double getHorasSemanais() {
return horasSemanais;
}

public void setHorasSemanais(double horasSemanais) {
this.horasSemanais = horasSemanais;
}

@Override
public String toString() {
return super.toString() + " - Estagiário com " + horasSemanais + " horas semanais";
}

}
62 changes: 62 additions & 0 deletions src/placeholderCompany/FuncionarioBase.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package placeholderCompany;

public abstract class FuncionarioBase implements FuncionarioBaseInterface{
protected String nome;
protected String cargo;
protected double salario;
protected String cpf;

public FuncionarioBase(String nome, String cargo, double salario, String cpf) {
this.nome = nome;
this.cargo = cargo;
this.salario = salario;
this.cpf = cpf;
}

@Override
public String getNome() {
return nome;
}
@Override
public void setNome(String nome) {
this.nome = nome;
}
@Override
public String getCargo() {
return cargo;
}
@Override
public void setCargo(String cargo) {
this.cargo = cargo;
}
@Override
public double getSalario() {
return salario;
}
@Override
public void setSalario(double salario) {
this.salario = salario;
}
@Override
public String getCpf() {
return cpf;
}
@Override
public void setCpf(String cpf) {
this.cpf = cpf;
}

@Override
public String toString() {
return "Nome: " + nome + ", Cargo: " + cargo + ", Salário: R$" + salario + ", CPF: " + cpf;
}

@Override
public boolean equals(Object obj) {
if (obj instanceof FuncionarioBase) {
FuncionarioBase funcionario = (FuncionarioBase) obj;
return this.cpf.equals(funcionario.getCpf());
}
return false;
}
}
12 changes: 12 additions & 0 deletions src/placeholderCompany/FuncionarioBaseInterface.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package placeholderCompany;

public interface FuncionarioBaseInterface {
String getNome();
void setNome(String nome);
String getCargo();
void setCargo(String cargo);
double getSalario();
void setSalario(double salario);
String getCpf();
void setCpf(String cpf);
}
13 changes: 13 additions & 0 deletions src/placeholderCompany/Junior.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package placeholderCompany;

public class Junior extends FuncionarioBase{

public Junior(String nome, String cargo, double salario, String cpf) {
super(nome, cargo, salario, cpf);
}

@Override
public String toString() {
return super.toString() + " - Junior";
}
}
Loading