Importação NumFidelidade diferenciado por empresa (bug #5162)

Retirada dos atributos da classe ImportacaoClientesServiceImpl

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@34625 d1611594-4594-4d17-8e1d-87c2c4800839
master
leonardo 2014-04-08 13:07:55 +00:00
parent 693d4a2a42
commit 423a7ba628
2 changed files with 46 additions and 61 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 void salvarClientes(String[] cliente); public void salvarClientes(String[] cliente, List<Empresa> empresas, Integer inseridos, Integer atualizados);
} }

View File

@ -26,36 +26,25 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService
private ClienteService clienteService; private ClienteService clienteService;
@Autowired @Autowired
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 String[] lerArquivo(Reader reader, List<Empresa> empresas) { public String[] lerArquivo(Reader reader, List<Empresa> empresas) {
String linha = null; String linha = null;
index = 0; Integer index = 0;
qtdeGravados = new StringBuilder(); StringBuilder qtdeGravados = new StringBuilder();
erros = new StringBuilder(); StringBuilder erros = new StringBuilder();
inseridos = 0; Integer inseridos = 0;
atualizados = 0; Integer atualizados = 0;
this.empresas = empresas;
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.replace("\"", "").split(","); String[] dados = linha.replace("\"", "").split(",");
salvarClientes(dados); salvarClientes(dados, empresas, inseridos, atualizados);
index++; index++;
} }
@ -69,6 +58,8 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService
return resultado; 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");
log.error(e); log.error(e);
String[] resultado = { e.toString() }; String[] resultado = { e.toString() };
return resultado; return resultado;
@ -76,52 +67,46 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService
} }
@Override @Override
public void salvarClientes(String[] cliente) { public void salvarClientes(String[] cliente, List<Empresa> empresas, Integer inseridos, Integer atualizados) {
try { String nomeCliente = cliente[1].replace("\"", "").toUpperCase();
String nomeCliente = cliente[1].replace("\"", "").toUpperCase();
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(Integer.parseInt(cliente[0]));
Cliente clienteGravar = clienteService.buscarPorNumeroFidelidade(Integer.parseInt(cliente[0]), e); List<ClienteFidelidad> ls = new ArrayList<ClienteFidelidad>();
if (clienteGravar == null) {
clienteGravar = new Cliente(); ClienteFidelidad clienteFidelidad = new ClienteFidelidad();
clienteGravar.setNombcliente(nomeCliente); clienteFidelidad.setTarjetaFidelidad(tarjetaFidelidad);
clienteGravar.setNumIdentificaUno(cliente[3]); clienteFidelidad.setActivo(Boolean.TRUE);
clienteFidelidad.setFecmodif(Calendar.getInstance().getTime());
TarjetaFidelidad tarjetaFidelidad = new TarjetaFidelidad(); clienteFidelidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
tarjetaFidelidad.setActivo(Boolean.TRUE); clienteFidelidad.setCliente(clienteGravar);
tarjetaFidelidad.setFecmodif(Calendar.getInstance().getTime()); clienteFidelidad.setEmpresa(e);
tarjetaFidelidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); ls.add(clienteFidelidad);
// cast para Integer para remover 0 a esquerda:
tarjetaFidelidad.setNumTarjeta(Integer.parseInt(cliente[0])); clienteGravar.setListClienteFidelidad(ls);
List<ClienteFidelidad> ls = new ArrayList<ClienteFidelidad>();
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);
ls.add(clienteFidelidad);
clienteGravar.setListClienteFidelidad(ls);
clienteService.suscribir(clienteGravar); clienteService.suscribir(clienteGravar);
inseridos = inseridos + 1; inseridos = inseridos + 1;
} 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;
}
} }
}catch (Exception e) {
erros.append("Linha ").append(index).append(" do arquivo de clientes, erro: ").append(e.getCause().getCause()).append("\n");
log.error(e);
} }
} }
} }