Problema com tratar arquivos CSV em JSF

0 respostas
programação
G

Basicamente eu estou fazendo um leitor de arquivos CSV para fazer um cadastro, ele faz uma busca no banco de dados verifica se o cadastro ja existe, se já ele apenas faz alterações nos dados e adiciona as disciplinas a mais - é um cadastro de professores - porem se os primeiros dois professores forem iguais (o que deveria gerar uma atualização de dados e adição das disciplinas ) ele simplesmente adiciona os dois como dois professores diferentes. Isso só acontece com os dois primeiros se o mesmo caso se repete na quarta e quinta posição por exemplo isso é tratado normalmente estou utilizando JSF.

//Tratamento de aruqivo para inclusão via CSV

public void tratarArquivo() {

int atividade;

try {

Scanner scanner = new Scanner(getFile().getInputstream(), UTF-8);

while (scanner.hasNext()) {

String linha = scanner.nextLine();

if (linha != null && !linha.trim().isEmpty()) {

String[] dados = linha.split("[,]");

servidor = new Servidor();

atividade = Integer.parseInt(dados[2]);

if (service.buscarDocente(dados[0], atividade) != null) {

servidor = service.buscarDocente(dados[0], atividade);

servidor.setNome(dados[1]);

servidor.setAtividadeDesenvolve(atividade);

servidor.setOrigem(origem);

if (!dados[3].isEmpty()) {

servidor.setEmail(dados[3]);

}

if (!dados[4].isEmpty()) {

servidor.setTelefones(dados[4]);

}

if (!dados[5].isEmpty()) {

servidor.setTitulacao(dados[5]);

}

if (!dados[6].isEmpty()) {

servidor.setAreaConhecimento(dados[6]);

}

if (!dados[7].isEmpty()) {

servidor.setLotacao(dados[7]);

}
disciplina = Disciplina.novaInstancia();
                    disciplina.setCampus(dados[8]);
                    disciplina.setCurso(dados[9]);
                    disciplina.setDisciplina(dados[10]);
                    disciplina.setNumeroInscricao(servidor.getNumeroInscricao());
                    salvarDisciplina();

                    alterar();
                } else {

                    servidor.setCpf(dados[0]);
                    servidor.setOrigem(origem);
                    servidor.setNome(dados[1]);
                    servidor.setAtividadeDesenvolve(atividade);
                    servidor.setEmail(dados[3]);
                    servidor.setTelefones(dados[4]);
                    servidor.setTitulacao(dados[5]);
                    servidor.setAreaConhecimento(dados[6]);
                    servidor.setLotacao(dados[7]);
                    servidor.setObservacao("");
                    servidor.setAnoSemestre(Util.getAnoSemestre());
                    service.cadastrar(servidor);

                    String numeroInscricao = service.buscaNumeroInscricaoDocente(dados[0], atividade);

                    disciplina = Disciplina.novaInstancia();
                    disciplina.setCampus(dados[8]);
                    disciplina.setCurso(dados[9]);
                    disciplina.setDisciplina(dados[10]);
                    disciplina.setNumeroInscricao(numeroInscricao);
                    salvarDisciplina();
                    

                }

            }

        }
    } catch (Exception e) {
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(
                FacesMessage.SEVERITY_FATAL, "Erro", "Houve um erro ao tratar o CSV"));
    }

}
Criado 6 de junho de 2018
Respostas 0
Participantes 1