Public class Application implements CommandLineRunner {
private Boolean system = true;
private final CrudCargoService cargoService;
private final CrudFuncionarioService funcionarioService;
private final CrudUnidadeTrabalhoService unidadeTrabalhoService;
public Application(CrudCargoService cargoService, CrudFuncionarioService funcionarioService, CrudUnidadeTrabalhoService unidadeTrabalhoService) {
this.cargoService = cargoService;
this.funcionarioService = funcionarioService;
this.unidadeTrabalhoService = unidadeTrabalhoService;
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... args) throws Exception {
Scanner sc = new Scanner(System.in);
while (system) {
Integer function = menu(sc);
sc.nextLine();
switch (function) {
case 1 -> cargoService.start();
case 2 -> funcionarioService.start();
case 3 -> unidadeTrabalhoService.start();
case 4 -> cargoService.start();
case 5 -> cargoService.start();
case 6 -> {
System.out.println("Finalizando");
sc.close();
system = false;
System.exit(0);
}
default -> System.out.println("Opcão invalida. Por favor escolha uma opção valida.");
}
}
}
private Integer menu(Scanner sc){
System.out.println("Qual função deseja executar?");
System.out.println("1 - Cargo");
System.out.println("2 - Funcionario");
System.out.println("3 - Unidade");
System.out.println("4 - Relatorios");
System.out.println("5 - Relatorio dinamico");
System.out.println("6 - Sair");
return sc.nextInt();
}
}
Esse é o main Seguindo para o menu do cargoService.Start();
public class CrudCargoService {
private Boolean system = true;
private final CargoRepository repository;
public CrudCargoService(CargoRepository cargoRepository) {
this.repository = cargoRepository;
}
public void start(){
Scanner sc = new Scanner(System.in);
while (system){
System.out.println("Qual acao de cargo deseja executar");
System.out.println("1 - Salvar");
System.out.println("2 - Atualizar");
System.out.println("3 - Visualizar");
System.out.println("4 - Deletar");
System.out.println("5 - Sair");
int action = sc.nextInt();
sc.nextLine();
switch (action) {
case 1 -> salvar(sc);
case 2 -> atualizar(sc);
case 3 -> visualizar();
case 4 -> deletar(sc);
case 5 -> {
sc.close();
system = false;
}
default -> System.out.println("Opcão invalida. Por favor escolha uma opção valida.");
}
}
}
private void salvar(Scanner sc){
System.out.println("Digite o cargo que deseja salvar: ");
String nome = sc.nextLine();
repository.save(new Cargo(nome));
System.out.println("Salvo");
}
private void atualizar(Scanner sc){
System.out.println("Id");
int id = sc.nextInt();
sc.nextLine();
System.out.println("Nome do Cargo");
String nome = sc.nextLine();
Cargo cargo = new Cargo(nome);
cargo.setId(id);
repository.save(cargo);
System.out.println("Atualizado");
}
private void visualizar() {
Iterable<Cargo> cargos = repository.findAll();
cargos.forEach(cargo -> System.out.println(cargo));
}
private void deletar(Scanner sc) {
System.out.println("Id");
int id = sc.nextInt();
sc.nextLine();
repository.deleteById(id);
System.out.println("Deletado");
}
}
apos escolher a opcao 5, na minha opniao ele deveria voltar para o menu principal da classe application, mas ele encerra o sistema todo. Como Resolver? e depois ainda tem o problema de voltando ao menur principal qd charma cargoService.start(), ele funcionar já que a boolean em CrudCargoService vai ta como false ne?