Importação Clientes - Número fidelidade por empresa (fixed bug #5011)

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@34368 d1611594-4594-4d17-8e1d-87c2c4800839
master
leonardo 2014-03-27 21:08:33 +00:00
parent bf5bd7f559
commit bb664b6f46
2 changed files with 87 additions and 76 deletions

View File

@ -6,7 +6,7 @@ import java.util.List;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
public interface ImportacaoClientesService { public interface ImportacaoClientesService {
public List<String[]> lerArquivo(Reader reader); public String[] lerArquivo(Reader reader, List<Empresa> empresas);
public String[] salvarClientes(List<String[]> clientes, List<Empresa> empresa); public void salvarClientes(String[] cliente);
} }

View File

@ -28,35 +28,55 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService
private TarjetaFidelidadService tarjetaFidelidadService; private TarjetaFidelidadService tarjetaFidelidadService;
private static Logger log = Logger.getLogger(ImportacaoClientesServiceImpl.class); private static Logger log = Logger.getLogger(ImportacaoClientesServiceImpl.class);
private Integer index;
private StringBuilder qtdeGravados;
private StringBuilder erros;
private Integer inseridos;
private Integer atualizados;
private List<Empresa> empresas;
@Override @Override
public List<String[]> lerArquivo(Reader reader) { public String[] lerArquivo(Reader reader, List<Empresa> empresas) {
String linha = null; String linha = null;
index = 0;
qtdeGravados = new StringBuilder();
erros = new StringBuilder();
inseridos = 0;
atualizados = 0;
this.empresas = empresas;
List<String[]> listaClientes = new ArrayList<String[]>(); List<String[]> listaClientes = new ArrayList<String[]>();
try { try {
BufferedReader leitor = new BufferedReader(reader); BufferedReader leitor = new BufferedReader(reader);
while ((linha = leitor.readLine()) != null) { while ((linha = leitor.readLine()) != null) {
String[] dados = linha.split(","); String[] dados = linha.replace("\"", "").split(",");
listaClientes.add(dados); salvarClientes(dados);
index++;
} }
leitor.close(); 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 (Exception e) { } catch (Exception e) {
log.error(e); log.error(e);
String[] resultado = { e.toString() };
return resultado;
} }
return listaClientes;
} }
@Override @Override
public String[] salvarClientes(List<String[]> clientes, List<Empresa> empresas) { public void salvarClientes(String[] cliente) {
StringBuilder qtdeGravados = new StringBuilder();
StringBuilder erros = new StringBuilder();
Integer inseridos = 0;
Integer atualizados = 0;
for (int i = 0; i < clientes.size(); i++) {
String[] cliente = clientes.get(i);
try { try {
String nomeCliente = cliente[1].replace("\"", "").toUpperCase(); String nomeCliente = cliente[1].replace("\"", "").toUpperCase();
@ -120,18 +140,9 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService
atualizados = atualizados + 1; atualizados = atualizados + 1;
} }
}catch (Exception e) { }catch (Exception e) {
erros.append("Linha ").append(i).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);
} }
} }
qtdeGravados.append("Gravados ").append(inseridos + atualizados).append(" clientes de ").append(clientes.size()).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;
}
} }