package br.com.centralit.citcorpore.negocio;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.List;
import br.com.centralit.citcorpore.bean.CargaParametroCorporeDTO;
import br.com.centralit.citcorpore.bean.ParametroCorporeDTO;
import br.com.centralit.citcorpore.integracao.ParametroCorporeDAO;
import br.com.centralit.citcorpore.util.Util;
import br.com.citframework.excecao.ServiceException;
import br.com.citframework.integracao.CrudDAO;
import br.com.citframework.integracao.TransactionControler;
import br.com.citframework.integracao.TransactionControlerImpl;
import br.com.citframework.service.CrudServiceImpl;
public class CargaParametroCorporeServiceEjb extends CrudServiceImpl implements CargaParametroCorporeService {
@Override
protected CrudDAO getDao() {
return null;
}
@Override
public List<CargaParametroCorporeDTO> gerarCarga(final File carga, final Integer idEmpresa) throws ServiceException, Exception {
final ParametroCorporeDAO parametroCorporeDAO = new ParametroCorporeDAO();
final TransactionControler tc = new TransactionControlerImpl(parametroCorporeDAO.getAliasDB());
parametroCorporeDAO.setTransactionControler(tc);
tc.start();
BufferedReader arq = new BufferedReader(new InputStreamReader(new FileInputStream(carga), "WINDOWS-1252"));
boolean primeiraLinha = true;
while (arq.ready()) {
ParametroCorporeDTO parametroCorporeDTO = new ParametroCorporeDTO();
final String linhaAux = arq.readLine();
String linha = null;
if (linhaAux != null) {
linha = new String(linhaAux);
linha = linha.trim();
}
ParametroCorporeDTO beanParametroCorporeDTO = null;
String[] linhaQuebrada = null;
if (linha != null) {
linhaQuebrada = linha.split("\n");
}
if (linhaQuebrada != null && linhaQuebrada.length > 0) {
for (final String string : linhaQuebrada) {
final String[] colunasArray = string.split(";");
if (colunasArray.length > 0) {
if (primeiraLinha) {
primeiraLinha = false;
break;
}
int j = 0;
for (final String coluna : colunasArray) {
if (j == 0 && coluna.equalsIgnoreCase("")) {
j++;
} else if (j == 0) {
beanParametroCorporeDTO = new ParametroCorporeDTO();
beanParametroCorporeDTO = this.existeParametroPorId(Integer.parseInt(coluna), parametroCorporeDAO);
if (beanParametroCorporeDTO.getId() == null) {
/*
* beanParametroCorporeDTO.setId(Integer.parseInt(coluna));
* beanParametroCorporeDTO.setIdEmpresa(idEmpresa);
* beanParametroCorporeDTO.setDataInicio(Util.getSqlDataAtual());
*/
parametroCorporeDTO = beanParametroCorporeDTO;
} else {
beanParametroCorporeDTO.setId(Integer.parseInt(coluna));
beanParametroCorporeDTO.setIdEmpresa(idEmpresa);
beanParametroCorporeDTO.setDataInicio(Util.getSqlDataAtual());
parametroCorporeDTO = beanParametroCorporeDTO;
}
j++;
} else if (j == 1) {
parametroCorporeDTO.setNome(coluna);
j++;
} else if (j == 2) {
parametroCorporeDTO.setValor(coluna);
j++;
}
}
if (parametroCorporeDTO.getId() != null) {
if (parametroCorporeDTO.getValor() == null) {
parametroCorporeDTO.setValor("");
}
parametroCorporeDAO.update(parametroCorporeDTO);
}
}
}
}
}
arq.close();
arq = null;
tc.commit();
tc.close();
return null;
}
private ParametroCorporeDTO existeParametroPorId(final Integer coluna, final ParametroCorporeDAO parametroCorporeDAO) throws Exception {
final ParametroCorporeDTO parametroCorporeDTO = new ParametroCorporeDTO();
parametroCorporeDTO.setId(coluna);
if (parametroCorporeDAO.findByID(parametroCorporeDTO) == null) {
parametroCorporeDTO.setId(null);
return parametroCorporeDTO;
}
return parametroCorporeDTO;
}
}