From 26a5b44a8fb4151b2763476015a9a876ff143f73 Mon Sep 17 00:00:00 2001 From: valdevir Date: Wed, 4 Oct 2017 20:51:29 +0000 Subject: [PATCH] fixes bug #9910 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@74495 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../service/ImportacaoClientesService.java | 2 +- .../impl/ImportacaoClientesServiceImpl.java | 42 ++++++++++--------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/service/ImportacaoClientesService.java b/src/com/rjconsultores/ventaboletos/service/ImportacaoClientesService.java index 3fb599839..33ee9b487 100644 --- a/src/com/rjconsultores/ventaboletos/service/ImportacaoClientesService.java +++ b/src/com/rjconsultores/ventaboletos/service/ImportacaoClientesService.java @@ -8,5 +8,5 @@ import com.rjconsultores.ventaboletos.entidad.Empresa; public interface ImportacaoClientesService { public String[] lerArquivo(Reader reader, List empresas); - public Integer[] salvarClientes(String[] cliente, List empresas); + public Integer[] salvarClientes(String[] cliente, List empresas) throws Exception; } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ImportacaoClientesServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ImportacaoClientesServiceImpl.java index 8684e4418..ed7dffe5b 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ImportacaoClientesServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ImportacaoClientesServiceImpl.java @@ -24,17 +24,17 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService @Autowired private ClienteService clienteService; private static Logger log = Logger.getLogger(ImportacaoClientesServiceImpl.class); - + @Override - public String[] lerArquivo(Reader reader, List empresas) { + public String[] lerArquivo(Reader reader, List empresas) { String linha = null; Integer index = 0; StringBuilder qtdeGravados = new StringBuilder(); StringBuilder erros = new StringBuilder(); - + Integer inseridos = 0; Integer atualizados = 0; - + try { BufferedReader leitor = new BufferedReader(reader); @@ -47,17 +47,22 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService } leitor.close(); - + qtdeGravados.append("Gravados ").append(inseridos + atualizados).append(" clientes de ").append(index).append(" importados.\n"); qtdeGravados.append("Atualizados ").append(atualizados).append(" clientes.\n"); qtdeGravados.append("Inseridos ").append(inseridos).append(" novos clientes."); String[] resultado = { qtdeGravados.toString(), erros.toString() }; return resultado; - + + } catch (ArrayIndexOutOfBoundsException e) { + log.error(e); + String msg = "Erro ao gravar cliente na linha " + (index + 1) + " do arquivo."; + erros.append(msg); + String[] resultado = { "Houve erro ao gravar os clientes, consulte o arquivo de erros.", erros.toString() }; + return resultado; } catch (Exception e) { erros.append("Linha ").append(index).append(" do arquivo de clientes, erro: ").append(e.getCause().getCause()).append("\n"); - log.error(e); String[] resultado = { e.toString() }; return resultado; @@ -65,50 +70,49 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService } @Override - public Integer[] salvarClientes(String[] cliente, List empresas) { + public Integer[] salvarClientes(String[] cliente, List empresas) throws Exception { String nomeCliente = cliente[1].replace("\"", "").toUpperCase(); Integer inseridos = new Integer(0); Integer atualizados = new Integer(0); - Integer[] gravados = {0,0}; + Integer[] gravados = { 0, 0 }; + + for (Empresa e : empresas) { - for (Empresa e : empresas){ - Cliente clienteGravar = clienteService.buscarPorNumeroFidelidade(Integer.parseInt(cliente[0]), e); if (clienteGravar == null) { clienteGravar = new Cliente(); clienteGravar.setNombcliente(nomeCliente); clienteGravar.setNumIdentificaUno(cliente[3]); - TarjetaFidelidad tarjetaFidelidad = new TarjetaFidelidad(); tarjetaFidelidad.setActivo(Boolean.TRUE); tarjetaFidelidad.setFecmodif(Calendar.getInstance().getTime()); tarjetaFidelidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); // cast para Integer para remover 0 a esquerda: tarjetaFidelidad.setNumTarjeta(Long.parseLong(cliente[0])); - + List ls = new ArrayList(); - + ClienteFidelidad clienteFidelidad = new ClienteFidelidad(); clienteFidelidad.setTarjetaFidelidad(tarjetaFidelidad); clienteFidelidad.setActivo(Boolean.TRUE); clienteFidelidad.setFecmodif(Calendar.getInstance().getTime()); clienteFidelidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); clienteFidelidad.setCliente(clienteGravar); - clienteFidelidad.setEmpresa(e); + clienteFidelidad.setEmpresa(e); ls.add(clienteFidelidad); - + clienteGravar.setListClienteFidelidad(ls); clienteService.suscribir(clienteGravar); inseridos = inseridos + 1; - gravados[0] =gravados[0] + inseridos; - } else { + gravados[0] = gravados[0] + inseridos; + } else { clienteGravar.setNombcliente(nomeCliente); clienteGravar.setNumIdentificaUno(cliente[3]); clienteService.actualizacion(clienteGravar); atualizados = atualizados + 1; - gravados[1] =gravados[1] + atualizados; + gravados[1] = gravados[1] + atualizados; } } return gravados;