valdevir 2017-10-04 20:51:29 +00:00
parent 33238d3186
commit 26a5b44a8f
2 changed files with 24 additions and 20 deletions

View File

@ -8,5 +8,5 @@ import com.rjconsultores.ventaboletos.entidad.Empresa;
public interface ImportacaoClientesService { public interface ImportacaoClientesService {
public String[] lerArquivo(Reader reader, List<Empresa> empresas); public String[] lerArquivo(Reader reader, List<Empresa> empresas);
public Integer[] salvarClientes(String[] cliente, List<Empresa> empresas); public Integer[] salvarClientes(String[] cliente, List<Empresa> empresas) throws Exception;
} }

View File

@ -24,17 +24,17 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService
@Autowired @Autowired
private ClienteService clienteService; private ClienteService clienteService;
private static Logger log = Logger.getLogger(ImportacaoClientesServiceImpl.class); private static Logger log = Logger.getLogger(ImportacaoClientesServiceImpl.class);
@Override @Override
public String[] lerArquivo(Reader reader, List<Empresa> empresas) { public String[] lerArquivo(Reader reader, List<Empresa> empresas) {
String linha = null; String linha = null;
Integer index = 0; Integer index = 0;
StringBuilder qtdeGravados = new StringBuilder(); StringBuilder qtdeGravados = new StringBuilder();
StringBuilder erros = new StringBuilder(); StringBuilder erros = new StringBuilder();
Integer inseridos = 0; Integer inseridos = 0;
Integer atualizados = 0; Integer atualizados = 0;
try { try {
BufferedReader leitor = new BufferedReader(reader); BufferedReader leitor = new BufferedReader(reader);
@ -47,17 +47,22 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService
} }
leitor.close(); leitor.close();
qtdeGravados.append("Gravados ").append(inseridos + atualizados).append(" clientes de ").append(index).append(" importados.\n"); qtdeGravados.append("Gravados ").append(inseridos + atualizados).append(" clientes de ").append(index).append(" importados.\n");
qtdeGravados.append("Atualizados ").append(atualizados).append(" clientes.\n"); qtdeGravados.append("Atualizados ").append(atualizados).append(" clientes.\n");
qtdeGravados.append("Inseridos ").append(inseridos).append(" novos clientes."); qtdeGravados.append("Inseridos ").append(inseridos).append(" novos clientes.");
String[] resultado = { qtdeGravados.toString(), erros.toString() }; String[] resultado = { qtdeGravados.toString(), erros.toString() };
return resultado; 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) { } catch (Exception e) {
erros.append("Linha ").append(index).append(" do arquivo de clientes, erro: ").append(e.getCause().getCause()).append("\n"); erros.append("Linha ").append(index).append(" do arquivo de clientes, erro: ").append(e.getCause().getCause()).append("\n");
log.error(e); log.error(e);
String[] resultado = { e.toString() }; String[] resultado = { e.toString() };
return resultado; return resultado;
@ -65,50 +70,49 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService
} }
@Override @Override
public Integer[] salvarClientes(String[] cliente, List<Empresa> empresas) { public Integer[] salvarClientes(String[] cliente, List<Empresa> empresas) throws Exception {
String nomeCliente = cliente[1].replace("\"", "").toUpperCase(); String nomeCliente = cliente[1].replace("\"", "").toUpperCase();
Integer inseridos = new Integer(0); Integer inseridos = new Integer(0);
Integer atualizados = 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); Cliente clienteGravar = clienteService.buscarPorNumeroFidelidade(Integer.parseInt(cliente[0]), e);
if (clienteGravar == null) { if (clienteGravar == null) {
clienteGravar = new Cliente(); clienteGravar = new Cliente();
clienteGravar.setNombcliente(nomeCliente); clienteGravar.setNombcliente(nomeCliente);
clienteGravar.setNumIdentificaUno(cliente[3]); clienteGravar.setNumIdentificaUno(cliente[3]);
TarjetaFidelidad tarjetaFidelidad = new TarjetaFidelidad(); TarjetaFidelidad tarjetaFidelidad = new TarjetaFidelidad();
tarjetaFidelidad.setActivo(Boolean.TRUE); tarjetaFidelidad.setActivo(Boolean.TRUE);
tarjetaFidelidad.setFecmodif(Calendar.getInstance().getTime()); tarjetaFidelidad.setFecmodif(Calendar.getInstance().getTime());
tarjetaFidelidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); tarjetaFidelidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
// cast para Integer para remover 0 a esquerda: // cast para Integer para remover 0 a esquerda:
tarjetaFidelidad.setNumTarjeta(Long.parseLong(cliente[0])); tarjetaFidelidad.setNumTarjeta(Long.parseLong(cliente[0]));
List<ClienteFidelidad> ls = new ArrayList<ClienteFidelidad>(); List<ClienteFidelidad> ls = new ArrayList<ClienteFidelidad>();
ClienteFidelidad clienteFidelidad = new ClienteFidelidad(); ClienteFidelidad clienteFidelidad = new ClienteFidelidad();
clienteFidelidad.setTarjetaFidelidad(tarjetaFidelidad); clienteFidelidad.setTarjetaFidelidad(tarjetaFidelidad);
clienteFidelidad.setActivo(Boolean.TRUE); clienteFidelidad.setActivo(Boolean.TRUE);
clienteFidelidad.setFecmodif(Calendar.getInstance().getTime()); clienteFidelidad.setFecmodif(Calendar.getInstance().getTime());
clienteFidelidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); clienteFidelidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
clienteFidelidad.setCliente(clienteGravar); clienteFidelidad.setCliente(clienteGravar);
clienteFidelidad.setEmpresa(e); clienteFidelidad.setEmpresa(e);
ls.add(clienteFidelidad); ls.add(clienteFidelidad);
clienteGravar.setListClienteFidelidad(ls); clienteGravar.setListClienteFidelidad(ls);
clienteService.suscribir(clienteGravar); clienteService.suscribir(clienteGravar);
inseridos = inseridos + 1; inseridos = inseridos + 1;
gravados[0] =gravados[0] + inseridos; gravados[0] = gravados[0] + inseridos;
} else { } else {
clienteGravar.setNombcliente(nomeCliente); clienteGravar.setNombcliente(nomeCliente);
clienteGravar.setNumIdentificaUno(cliente[3]); clienteGravar.setNumIdentificaUno(cliente[3]);
clienteService.actualizacion(clienteGravar); clienteService.actualizacion(clienteGravar);
atualizados = atualizados + 1; atualizados = atualizados + 1;
gravados[1] =gravados[1] + atualizados; gravados[1] = gravados[1] + atualizados;
} }
} }
return gravados; return gravados;