Validar CPF's, para que nao se repitam

Boa tarde,

Então, estou fazendo um codigo simples pra implementar no ERP da empresa, aonde preciso pegar o CPF presente no banco de dados e fazer a verificação se ele ja existe no sistema ou não, porem no codigo que fiz abaixo, só esta me retornando o mesmo erro, mesmo nao preenchendo o campo CPF, que é o erro “O CPF já existe no sistema”.

Esse é o código:

public class ValidaCpf implements AcaoRotinaJava {
private List listaCPFs = new ArrayList<>();

public void doAction(ContextoAcao contexto) throws Exception {
	JapeSession.SessionHandle hnd = null;

	try {
		hnd = JapeSession.open();
		JapeWrapper cpfDAO = JapeFactory.dao("Curriculo");
		Registro[] linhas = contexto.getLinhas();
		String cpf;
		DynamicVO cpfVO;

		for (Registro linha : linhas) {
		    cpf = (String) linha.getCampo("CPF");

		    if (cpf != null) { 
		        if (listaCPFs.contains(cpf)) {
		            contexto.mostraErro("O CPF " + cpf + " já existe no sistema");
		        } else {
		            cpfVO = cpfDAO.findOne("CPF = ?", new Object[]{cpf});

		            if (cpfVO != null) {
		                contexto.mostraErro("O CPF " + cpf + " já existe no sistema");
		            } else {
		                listaCPFs.add(cpf);
		            }
		        }
		    } else {
		        contexto.mostraErro("O CPF não pode estar vazio");
		    }
		}



	} catch (Exception e) {
		e.printStackTrace();
		contexto.mostraErro(e.getMessage());
	} finally {
		JapeSession.close(hnd);
	}

}

}

Olá,
Me parece que você pega o CPF da lista e pegunta se essa mesma lista contém o CPF que você acabou de pegar.
Sugiro você criar outra lista vazia e ir enchendo, com os CPFs da lista fornecida e antes de incluir na nova lista, fazer a verificação se o CPF já existe.
Boa sorte!
'Eiju

1 curtida