package gcom.micromedicao; import gcom.atendimentopublico.ligacaoagua.LigacaoAgua; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao; import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao; import gcom.batch.UnidadeProcessamento; import gcom.cadastro.empresa.Empresa; import gcom.cadastro.endereco.Logradouro; import gcom.cadastro.endereco.LogradouroBairro; import gcom.cadastro.geografico.Bairro; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.imovel.ImovelPerfil; import gcom.cadastro.localidade.GerenciaRegional; import gcom.cadastro.localidade.Localidade; import gcom.cadastro.localidade.Quadra; import gcom.cadastro.localidade.SetorComercial; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.faturamento.FaturamentoGrupo; import gcom.faturamento.FaturamentoSituacaoTipo; import gcom.gui.micromedicao.DadosMovimentacao; import gcom.micromedicao.hidrometro.HidrometroInstalacaoHistorico; import gcom.micromedicao.leitura.LeituraTipo; import gcom.micromedicao.medicao.MedicaoTipo; import gcom.util.ControladorException; import gcom.util.ErroRepositorioException; import gcom.util.Util; import java.io.BufferedReader; import java.io.IOException; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; import java.util.GregorianCalendar; import java.util.Iterator; import java.util.StringTokenizer; import java.util.Vector; import javax.ejb.SessionBean; /** * Controlador Faturamento CAEMA * * @author S�vio Luiz * @date 25/07/2006 */ public class ControladorMicromedicaoCAEMASEJB extends ControladorMicromedicao implements SessionBean { private static final long serialVersionUID = 1L; // valida anoMes para caso de uso anlise excecoes leituras public boolean validaDataFaturamentoIncompativel(String anoMesReferencia, String anoMesAtual) { boolean retorno = true; String anoMesReferenciaMaisUmMes = "" + Util.somarData(new Integer(anoMesReferencia)); String anoMesReferenciaMenosUmMes = "" + Util.subtrairMesDoAnoMes(new Integer(anoMesReferencia), 1); if (!((Util.compararAnoMesReferencia(new Integer(anoMesReferencia), new Integer(anoMesAtual), "=")) || (Util.compararAnoMesReferencia(new Integer( anoMesReferenciaMaisUmMes), new Integer(anoMesAtual), "=")) || (Util.compararAnoMesReferencia(new Integer( anoMesReferenciaMenosUmMes), new Integer(anoMesAtual), "=")))) { retorno = false; } return retorno; } // valida anoMes para caso de uso anlise excecoes leituras public boolean validaDataFaturamentoIncompativelInferior( String anoMesReferencia, String anoMesAnterior) { boolean retorno = true; String anoMesReferenciaMenosUmMes = "" + Util.subtrairMesDoAnoMes(new Integer(anoMesReferencia), 2); // Comparando a data anterior faturada no form com o ano // m�s // refer�ncia e com o ano m�s anterior if (!((Util.compararAnoMesReferencia(new Integer(anoMesReferencia), new Integer(anoMesAnterior), "=")) || (Util.compararAnoMesReferencia(new Integer( anoMesReferenciaMenosUmMes), new Integer(anoMesAnterior), "=")) || (Util .compararAnoMesReferencia(new Integer(anoMesReferencia), new Integer(Util.somaMesAnoMesReferencia(new Integer( anoMesAnterior), 1)), "=")))) { retorno = false; } return retorno; } /** * Gerar o vetor para registrar as leituras e anormalidades * * @data 28/07/2008 * @return * @throws ControladorException */ public Vector<DadosMovimentacao> gerarVetorDadosParaLeitura(BufferedReader buffer) throws ControladorException { Vector<DadosMovimentacao> dados = new Vector<DadosMovimentacao>(); String linha = null; String primeiraLinha = null; boolean bufferLido = false; try { primeiraLinha = buffer.readLine(); while (buffer.ready()) { if (primeiraLinha.substring(173, 179) != null) { if (bufferLido == false) { dados.add(gerarDadosMovimentacao(primeiraLinha)); bufferLido = true; } else { linha = buffer.readLine(); dados.add(gerarDadosMovimentacao(linha)); } } } } catch (Exception e) { try { while (buffer.ready()) { if (bufferLido == false) { dados.add(gerarDadosMovimentacaoColetor(primeiraLinha)); bufferLido = true; } else { linha = buffer.readLine(); dados.add(gerarDadosMovimentacaoColetor(linha)); } } } catch (IOException e1) { e1.printStackTrace(); throw new ControladorException("erro.sistema"); } } return dados; } public DadosMovimentacao gerarDadosMovimentacaoColetor(String linha) throws ControladorException { DadosMovimentacao retorno = new DadosMovimentacao(); retorno.setMatriculaOperador(new Integer(linha.substring(2, 8))); retorno.setDataLeituraCampo(Util.converteStringSemBarraParaDate(linha .substring(8, 16))); retorno.setMatriculaImovel(new Integer(linha.substring(16, 24))); // Alterado por S�vio Luiz para a Implanta��o // Data:29/10/2008 // retorno.setLocalidade(new Integer(linha.substring(24, 27))); // retorno.setSetorComercial(new Integer(linha.substring(27, 30))); // retorno.setNumeroQuadra(new Integer(linha.substring(30, 33))); // retorno.setNumeroLote(new Integer(linha.substring (33, 37))); // retorno.setNumeroSubLote(new Integer(linha.substring(37, 40))); try { Object[] dadosImovel = repositorioImovel .pesquisarInscricaoImovel(retorno.getMatriculaImovel()); if (dadosImovel != null) { if (dadosImovel[0] != null) { retorno.setLocalidade((Integer) dadosImovel[0]); } if (dadosImovel[1] != null) { retorno.setSetorComercial((Integer) dadosImovel[1]); } if (dadosImovel[2] != null) { retorno.setNumeroQuadra((Integer) dadosImovel[2]); } if (dadosImovel[3] != null) { retorno.setNumeroLote(((Short) dadosImovel[3]).intValue()); } if (dadosImovel[4] != null) { retorno.setNumeroSubLote(((Short) dadosImovel[4]) .intValue()); } } } catch (ErroRepositorioException ex) { ex.printStackTrace(); throw new ControladorException("erro.sistema", ex); } retorno.setTipoMedicao(new Integer(linha.substring(40, 41))); retorno.setLeituraHidrometro(new Integer(linha.substring(41, 47))); retorno.setCodigoAnormalidade(new Integer(linha.substring(47, 49))); retorno .setIndicadorConfirmacaoLeitura(new Byte(linha .substring(49, 50))); String rotaSequencialRota = this .obterRotaESequencialRotaDoImovel(retorno.getMatriculaImovel()); StringTokenizer dadosRota = new StringTokenizer(rotaSequencialRota, "."); String codigoRota = dadosRota.nextToken(); String sequencialRota = dadosRota.nextToken(); // Alterado por S�vio Luiz para a Implanta��o // Data:29/10/2008 // FiltroQuadra filtroQuadra = new FiltroQuadra(); // filtroQuadra.adicionarCaminhoParaCarregamentoEntidade("rota"); // filtroQuadra.adicionarParametro(new // ParametroSimples(FiltroQuadra.ID_LOCALIDADE, // retorno.getLocalidade())); // filtroQuadra.adicionarParametro(new // ParametroSimples(FiltroQuadra.CODIGO_SETORCOMERCIAL, // retorno.getSetorComercial())); // filtroQuadra.adicionarParametro(new // ParametroSimples(FiltroQuadra.NUMERO_QUADRA, // retorno.getNumeroQuadra())); // filtroQuadra.adicionarParametro(new ParametroSimples(FiltroQuadra.ID, // "0")); // // Collection colecaoQuadra = // getControladorUtil().pesquisar(filtroQuadra, Quadra.class.getName()); // // Quadra quadra = (Quadra) Util.retonarObjetoDeColecao(colecaoQuadra); FaturamentoGrupo faturamentoGrupo = getControladorImovel() .pesquisarGrupoImovel(retorno.getMatriculaImovel()); if (faturamentoGrupo != null && !faturamentoGrupo.equals("")) { retorno.setGrupoFaturamento(faturamentoGrupo.getId()); } retorno.setCodigoRota(new Integer(codigoRota)); retorno.setNumeroSequencialRota(new Integer(sequencialRota)); retorno.setHoraLeituraCampo("000000"); return retorno; } // ============================================================================================================== // M�TODOS EXCLUSIVOS DA CAEMA // ============================================================================================================== /** * [UC0105] Obter Consumo M�nimo da Liga��o por Subcategoria * * @author Raphael Rossiter * @date 11/04/2007 * * @return imovel, colecaoSubcategoria * @throws ControladorException *//* public int obterConsumoMinimoLigacao(Imovel imovel, Collection colecaoSubcategoria) throws ControladorException { int consumoMinimoLigacao = 0; Collection colecaoDataVigencia = null; Integer consumoMinimo = null; // Obt�m o id do consumo tarifa vig�ncia da maior data de vig�ncia da // tarifa do im�vel try { colecaoDataVigencia = repositorioMicromedicao .pesquisarMaiorDataVigenciaConsumoTarifaImovel(new Date(), imovel); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); new ControladorException("erro.sistema", ex); } // Obt�m o id do array e atribui na vari�vel Object[] consumoTarifaVigenciaIdArray = (Object[]) Util .retonarObjetoDeColecaoArray(colecaoDataVigencia); Integer consumoTarifaVigenciaId = null; if (consumoTarifaVigenciaIdArray == null) { throw new ControladorException( "erro.nao_cadastrada_consumo_tarifa_vigencia", null, String .valueOf(imovel.getId())); } if (consumoTarifaVigenciaIdArray[0] != null) { consumoTarifaVigenciaId = (Integer) consumoTarifaVigenciaIdArray[0]; } // Cria o objeto consumo tarifa vig�ncia e seta o id ConsumoTarifaVigencia consumoTarifaVigencia = new ConsumoTarifaVigencia(); consumoTarifaVigencia.setId(consumoTarifaVigenciaId); // Obter Quantidade de Economias por Subcategoria if (colecaoSubcategoria == null) { colecaoSubcategoria = getControladorImovel() .obterQuantidadeEconomiasSubCategoria(imovel.getId()); } Iterator colecaoSubcategoriaIterator = colecaoSubcategoria.iterator(); while (colecaoSubcategoriaIterator.hasNext()) { Subcategoria subcategoria = (Subcategoria) colecaoSubcategoriaIterator .next(); try { // Obt�m o consumo m�nimo da tarifa da categoria do im�vel Object consumoMinimoObjeto = repositorioMicromedicao .pesquisarConsumoMinimoTarifaSubcategoriaVigencia( subcategoria, consumoTarifaVigencia); consumoMinimo = (Integer) consumoMinimoObjeto; } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); new ControladorException("erro.sistema", ex); } * Caso n�o exista tarifa cadastrada para a subcategoria em questao, * utilizar a tarifa da categoria if (consumoMinimo == null) { Categoria categoria = subcategoria.getCategoria(); categoria.setQuantidadeEconomiasCategoria(subcategoria .getQuantidadeEconomias()); Collection colecaoCategoria = new ArrayList(); colecaoCategoria.add(categoria); consumoMinimo = super.obterConsumoMinimoLigacao(imovel, colecaoCategoria); consumoMinimoLigacao = consumoMinimoLigacao + consumoMinimo; } else { // Multiplica a quantidade de economias da subcategoria pelo // consumo // m�nimo e acumula consumoMinimoLigacao = consumoMinimoLigacao + (subcategoria.getQuantidadeEconomias().intValue() * consumoMinimo .intValue()); } } // Retorna o consumo m�nimo da liga��o return consumoMinimoLigacao; } */ //============================================================================================================== /** * [UC00083] Gerar Dados para Leitura * * [SB0005] Gerar Rela��o(ROL) em TXT - CAEMA * * @author R�mulo Aur�lio, Raphael Rossiter * @date 04/07/2008, 27/08/2009 * * @param anoMesCorrente * @return Collection * @throws ErroRepositorioException */ public Collection gerarDadosPorLeituraMicroColetor(Collection colecaoRota, Integer anoMesCorrente, Integer idGrupoFaturamentoRota, SistemaParametro sistemaParametro, int idFuncionalidadeIniciada) throws ControladorException { int idUnidadeIniciada = 0; Iterator colecaoRotaIterator = colecaoRota.iterator(); while (colecaoRotaIterator.hasNext()) { Rota rota = (Rota) colecaoRotaIterator.next(); //------------------------- // // Registrar o in�cio do processamento da Unidade de // Processamento // do Batch // // ------------------------- idUnidadeIniciada = getControladorBatch() .iniciarUnidadeProcessamentoBatch(idFuncionalidadeIniciada, UnidadeProcessamento.ROTA, rota.getId()); try { //CONTROLE DE PAGINA��O DA PESQUISA int numeroIndice = 0; int quantidadeRegistrosPesquisa = 1000; boolean flagTerminou = false; Integer qtdImoveis = 0; //MOVIMENTO ROTEIRO EMPRESA Collection<Object[]> objetosMovimentoRoteiroEmpresa = new ArrayList<Object[]>(); while (!flagTerminou) { try { //PESQUISANDO MOVIMENTO ROTEIRO EMPRESA objetosMovimentoRoteiroEmpresa = repositorioMicromedicao .pesquisarImoveisParaLeituraPorColecaoRotaCAEMA(rota, numeroIndice, anoMesCorrente); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if (objetosMovimentoRoteiroEmpresa != null && !objetosMovimentoRoteiroEmpresa.isEmpty()) { qtdImoveis = objetosMovimentoRoteiroEmpresa.size(); //CONTROLE DE PAGINA��O DA PESQUISA if (objetosMovimentoRoteiroEmpresa.size() < quantidadeRegistrosPesquisa) { flagTerminou = true; } else { numeroIndice = numeroIndice + quantidadeRegistrosPesquisa; } // pega o id da empresa do objeto imovel. Integer idRotaOld = null; Integer idFaturamentoGrupoOld = null; /* * Cria uma vari�vel do tipo boolean para saber se � a mesma empresa * ou outra empresa. */ boolean mesmaEmpresa = false; // � usado para criar o header do arquivo de leitura boolean headerArquivo = true; Integer quantidadeRegistros = new Integer(0); Integer quantidadeMovimentoRoteiroEmpresa = new Integer(0); Integer quantidadeRegistrosFiscalizacao = new Integer(0); StringBuilder arquivoTxt = new StringBuilder(); StringBuilder arquivoHeaderFiscalizacao = new StringBuilder(); StringBuilder arquivoTxtFiscalizacao = new StringBuilder(); Calendar dataCalendar = new GregorianCalendar(); String ano = null; String mes = null; String dia = null; MovimentoRoteiroEmpresa movimentoRoteiroEmpresa = null; for (Object[] dadosMovimentoRoteiroEmpresa : objetosMovimentoRoteiroEmpresa) { boolean ligacaoAgua = false; boolean ligacaoPoco = false; // cria uma string builder para adicionar no arquivo StringBuilder arquivoTxtLinha = new StringBuilder(); movimentoRoteiroEmpresa = (MovimentoRoteiroEmpresa) dadosMovimentoRoteiroEmpresa[0]; Integer idQuadra = (Integer) dadosMovimentoRoteiroEmpresa[1]; Quadra quadra = new Quadra(); quadra.setId(idQuadra); Imovel imovel = new Imovel(); imovel.setId(movimentoRoteiroEmpresa.getImovel().getId()); imovel.setQuadra(quadra); movimentoRoteiroEmpresa.setImovel(imovel); // incrementa a quantidade de registros quantidadeRegistros = quantidadeRegistros + 1; quantidadeMovimentoRoteiroEmpresa = objetosMovimentoRoteiroEmpresa.size(); /* * Verifica se a empresa da rota que est� na cole��o � igual * a empresa anterior. */ if ((idRotaOld == null || movimentoRoteiroEmpresa .getRota().getId().equals(idRotaOld)) && (idFaturamentoGrupoOld == null || movimentoRoteiroEmpresa .getFaturamentoGrupo().getAnoMesReferencia().equals(idFaturamentoGrupoOld))) { mesmaEmpresa = true; } else { mesmaEmpresa = false; } if (mesmaEmpresa) { //GERANDO O ARQUIVO TXT adicionarLinhaTxt(arquivoTxt, arquivoTxtLinha, arquivoTxtFiscalizacao, arquivoHeaderFiscalizacao, quantidadeRegistros, quantidadeMovimentoRoteiroEmpresa, quantidadeRegistrosFiscalizacao, movimentoRoteiroEmpresa, ligacaoAgua, ligacaoPoco, idFaturamentoGrupoOld, headerArquivo, sistemaParametro, idRotaOld, dataCalendar, anoMesCorrente); } else { /* * Manda o header do arquivo para true, pois agora ser� outra * empresa e precisa-se de um outro header. */ headerArquivo = true; ano = "" + dataCalendar.get(Calendar.YEAR); mes = "" + (dataCalendar.get(Calendar.MONTH) + 1); dia = "" + dataCalendar.get(Calendar.DAY_OF_MONTH); dia = Util.adicionarZerosEsquedaNumero(2, "" + dia); mes = Util.adicionarZerosEsquedaNumero(2, "" + mes); String nomeArquivo = "CG" + movimentoRoteiroEmpresa.getFaturamentoGrupo().getId().toString() + movimentoRoteiroEmpresa.getCodigoRota().toString() + mes + ano + ".txt"; if (arquivoTxt != null && arquivoTxt.length() != 0) { this.inserirArquivoTextoRoteiroEmpresa( anoMesCorrente, movimentoRoteiroEmpresa, qtdImoveis, arquivoTxt, nomeArquivo); } // ROTA ANTIGA. idRotaOld = movimentoRoteiroEmpresa.getRota().getId(); /* * Cria outra string para come�ar a criar o txt. * Limpa os campos para serem usados na pr�xima empresa. */ arquivoTxt = new StringBuilder(); quantidadeRegistros = 0; quantidadeRegistrosFiscalizacao = 0; arquivoTxtFiscalizacao = new StringBuilder(); arquivoHeaderFiscalizacao = new StringBuilder(); adicionarLinhaTxt(arquivoTxt, arquivoTxtLinha, arquivoTxtFiscalizacao, arquivoHeaderFiscalizacao, quantidadeRegistros, quantidadeMovimentoRoteiroEmpresa, quantidadeRegistrosFiscalizacao, movimentoRoteiroEmpresa, ligacaoAgua, ligacaoPoco, idFaturamentoGrupoOld, headerArquivo, sistemaParametro, idRotaOld, dataCalendar, anoMesCorrente); } headerArquivo = false; } // Registro Trailer tam.150(zeros) arquivoTxt.append("" + Util.adicionarZerosEsquedaNumeroTruncando(153, "")); arquivoTxt.append(System.getProperty("line.separator")); String mesAno = Util.formatarAnoMesParaMesAnoSemBarra(movimentoRoteiroEmpresa.getAnoMesMovimento()); String nomeArquivo = "CG" + movimentoRoteiroEmpresa.getFaturamentoGrupo().getId().toString() + movimentoRoteiroEmpresa.getCodigoRota().toString() + mesAno + ".txt"; if (arquivoTxt != null && arquivoTxt.length() != 0) { //GERANDO O ARQUIVO TXT this.inserirArquivoTextoRoteiroEmpresa(anoMesCorrente, movimentoRoteiroEmpresa, qtdImoveis, arquivoTxt, nomeArquivo); } } flagTerminou = true; /* * Atualiza a data e a hora da realiza��o da atividade com a data e * a hora correntes. */ try { repositorioMicromedicao.atualizarFaturamentoAtividadeCronograma( idGrupoFaturamentoRota, anoMesCorrente); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } // Encerra a unidade de Faturamento getControladorBatch().encerrarUnidadeProcessamentoBatch( null, idUnidadeIniciada, false); } catch (Exception e) { /* * Este catch serve para interceptar qualquer exce��o que o processo batch * venha a lan�ar e garantir que a unidade de processamento do batch * ser� atualizada com o erro ocorrido. */ e.printStackTrace(); getControladorBatch().encerrarUnidadeProcessamentoBatch(e, idUnidadeIniciada, true); } } return null; // return colecaoRota; } /** * [UC0083]- Gerar dados para Leitura Author: R�mulo Aur�lio Date: * 08/07/2008 * * @param arquivoTxt * @param arquivoTxtLinha * @param arquivoTxtFiscalizacao * @param arquivoHeaderFiscalizacao * @param quantidadeRegistros * @param quantidadeMovimentoRoteiroEmpresa * @param quantidadeRegistrosFiscalizacao * @param movimentoRoteiroEmpresa * @param ligacaoAgua * @param ligacaoPoco * @param idFaturamentoGrupoOld * @param headerArquivo * @param sistemaParametro * @param idRotaOld * @param dataCalendar * @param anoMesCorrente */ private void adicionarLinhaTxt(StringBuilder arquivoTxt, StringBuilder arquivoTxtLinha, StringBuilder arquivoTxtFiscalizacao, StringBuilder arquivoHeaderFiscalizacao, Integer quantidadeRegistros, Integer quantidadeMovimentoRoteiroEmpresa, Integer quantidadeRegistrosFiscalizacao, MovimentoRoteiroEmpresa movimentoRoteiroEmpresa, boolean ligacaoAgua, boolean ligacaoPoco, Integer idFaturamentoGrupoOld, boolean headerArquivo, SistemaParametro sistemaParametro, Integer idRotaOld, Calendar dataCalendar, Integer anoMesCorrente) { String mes = null; String dia = null; // se for para criar o header do arquivo if (headerArquivo) { /* * // pega o id da empresa do objeto imovel. idEmpresaOld = * movimentoRoteiroEmpresa.getEmpresa().getId(); */ // 1.1.1 tam.04 String quantidadeLeitura = "" + Util.adicionarZerosEsquedaNumeroTruncando(4, "" + quantidadeMovimentoRoteiroEmpresa.toString()); // 1.1.2 tam.03 String tarefa = "" + Util.adicionarZerosEsquedaNumeroTruncando(3, movimentoRoteiroEmpresa.getRota().getCodigo() .toString()); // 1.1.3 tam.06 String codigoLeiturista = "" + Util.adicionarZerosEsquedaNumeroTruncando(6, "1"); // 1.1.4 mes = "" + (dataCalendar.get(Calendar.MONTH) + 1); dia = "" + dataCalendar.get(Calendar.DAY_OF_MONTH); mes = "" + Util.adicionarZerosEsquedaNumeroTruncando(2, mes); dia = "" + Util.adicionarZerosEsquedaNumeroTruncando(2, dia); // 1.1.5 tam.06 String grupoFaturamento = "" + Util.adicionarZerosEsquedaNumeroTruncando(6, movimentoRoteiroEmpresa.getFaturamentoGrupo() .getId().toString()); // 1.1.6 fixo 150 String percentualCritica = "150"; // Registro HEADER arquivoTxt.append(quantidadeLeitura + tarefa + codigoLeiturista + dia + mes + grupoFaturamento + percentualCritica); // manda o header do arquivo para falso headerArquivo = false; arquivoHeaderFiscalizacao.append(arquivoTxt); arquivoTxt.append(System.getProperty("line.separator")); } // 1.2.1-Matricula com digito Verificador tam.08 arquivoTxtLinha .append("" + Util.adicionarZerosEsquedaNumeroTruncando(8, movimentoRoteiroEmpresa.getImovel().getId() .toString())); // 1.2.2 - Inscricao do imovel tam.16 if (movimentoRoteiroEmpresa.getInscricaoImovel() != null) { arquivoTxtLinha.append(movimentoRoteiroEmpresa.getInscricaoImovel() .replace(".", "")); } else { arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(16, "")); } // 1.2.x - Codigo da Rota if (movimentoRoteiroEmpresa.getCodigoRota() != null){ arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(2, "" + movimentoRoteiroEmpresa.getCodigoRota())); }else{ arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(2, "")); } // 1.2.3- Nome logradouro tam.30 arquivoTxtLinha.append(completaString(movimentoRoteiroEmpresa .getNomeLogradouro(), 30)); // 1.2.4-Complemento Endereco tam.04 if(movimentoRoteiroEmpresa .getComplementoEndereco() != null){ arquivoTxtLinha.append(completaString(movimentoRoteiroEmpresa .getComplementoEndereco(), 4)); }else{ arquivoTxtLinha.append(completaString("",4)); } // 1.2.5- Numero imovel tam.05 if (movimentoRoteiroEmpresa.getNumeroImovel() != null){ arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(5, "" + movimentoRoteiroEmpresa.getNumeroImovel())); }else{ arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(5, "")); } // 1.2.6-Nome Bairro tam.20 arquivoTxtLinha.append(completaString(movimentoRoteiroEmpresa .getNomeBairro(), 20)); // 1.2.7- Hidrometro tam.10 if (movimentoRoteiroEmpresa.getNumeroHidrometro() != null){ arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(10, "" + movimentoRoteiroEmpresa.getNumeroHidrometro())); }else{ arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(10, "")); } // 1.2.8- Localizacao tam.01 arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(1, "" + movimentoRoteiroEmpresa .getHidrometroLocalInstalacao().getId())); // 1.2.9 - Categoria tam.01 if (movimentoRoteiroEmpresa.getCategoriaPrincipal() != null){ arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(1, "" + movimentoRoteiroEmpresa.getCategoriaPrincipal().getId())); }else{ arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(1, "")); } // 1.2.10 - Subcategoria tam.01 if (movimentoRoteiroEmpresa.getCodigoSubcategoria1() != null){ arquivoTxtLinha .append("" + Util.adicionarZerosEsquedaNumeroTruncando(1, "" + movimentoRoteiroEmpresa .getCodigoSubcategoria1())); }else{ arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(1, "")); } // 1.2.11 - Numero do sequencial da rota tam.06 if (movimentoRoteiroEmpresa.getNumeroSequencialRota() != null){ arquivoTxtLinha.append("" + Util .adicionarZerosEsquedaNumeroTruncando(6, "" + movimentoRoteiroEmpresa .getNumeroSequencialRota())); }else{ arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(6, "")); } // 1.2.12 - Leitura Anterior tam.07 if (movimentoRoteiroEmpresa.getNumeroLeituraAnterior() != null){ arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(7, "" + movimentoRoteiroEmpresa .getNumeroLeituraAnterior())); }else{ arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(7, "")); } // 1.2.13 - Consumo Medio tam.06 if (movimentoRoteiroEmpresa.getNumeroConsumoMedio() != null){ arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(6, "" + movimentoRoteiroEmpresa.getNumeroConsumoMedio())); }else{ arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(6, "")); } // 1.2.14 - Nome do cliente tam.30 arquivoTxtLinha.append(completaString(movimentoRoteiroEmpresa .getNomeCliente(), 30)); // 1.2.15 - Zeros tam.21 arquivoTxtLinha.append("" + Util.adicionarZerosEsquedaNumeroTruncando(21, "")); // Registro Detalhe arquivoTxt.append(arquivoTxtLinha); arquivoTxt.append(System.getProperty("line.separator")); } /** * [UC0083]-Gerar Dados para Leitura * * Author: R�mulo Aur�lio Data: 17/06/2008 * * * * @param colecaoRota * @param anoMesCorrente * @param idGrupoFaturamentoRota * @param idFuncionalidadeIniciada * @throws ControladorException */ /*public void gerarDadosPorLeituraParaInserir( Collection colecaoRota, Integer anoMesCorrente, Integer idGrupoFaturamentoRota, SistemaParametro sistemaParametro, Integer idFuncionalidadeIniciada) throws ControladorException { @SuppressWarnings("unused") int idUnidadeIniciada = 0; Iterator colecaoRotaIterator = colecaoRota.iterator(); while (colecaoRotaIterator.hasNext()) { Rota rota = (Rota) colecaoRotaIterator.next(); try { // ------------------------- // // Registrar o in�cio do processamento da Unidade de // Processamento // do Batch // // ------------------------- idUnidadeIniciada = getControladorBatch() .iniciarUnidadeProcessamentoBatch( idFuncionalidadeIniciada, UnidadeProcessamento.FUNCIONALIDADE, 0); // Apaga o anomesAtual e anterior repositorioMicromedicao.removerMovimentoRoteiroEmpresa( Util.subtraiAteSeisMesesAnoMesReferencia(1,anoMesCorrente), idGrupoFaturamentoRota, rota); repositorioMicromedicao.removerMovimentoRoteiroEmpresa( anoMesCorrente, idGrupoFaturamentoRota, rota); int numeroIndice = 0; int quantidadeRegistrosPesquisa = 1000; boolean flagTerminou = false; // inicializa uma cole��o de imoveis Collection objetosImoveis = new ArrayList(); while (!flagTerminou) { // cria uma cole��o de im�vel por rota Collection imoveisPorRota = null; try { // recupera todos os im�veis da cole��o de rotas do tipo // convencional imoveisPorRota = repositorioMicromedicao .pesquisarImoveisPorRotaCaema(rota, numeroIndice, sistemaParametro .getNomeAbreviadoEmpresa()); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if (imoveisPorRota != null && !imoveisPorRota.isEmpty()) { if (imoveisPorRota.size() < quantidadeRegistrosPesquisa) { flagTerminou = true; } else { numeroIndice = numeroIndice + quantidadeRegistrosPesquisa; } Iterator imovelporRotaIterator = imoveisPorRota .iterator(); while (imovelporRotaIterator.hasNext()) { // cria um array de objetos para pegar os parametros // de // retorno da pesquisa Object[] arrayImoveisPorRota = (Object[]) imovelporRotaIterator .next(); // instancia um im�vel Imovel imovel = new Imovel(); if (arrayImoveisPorRota[0] != null) { // seta o id no imovel imovel.setId((Integer) arrayImoveisPorRota[0]); } if (arrayImoveisPorRota[1] != null) { // instancia uma localidade para ser setado no // im�vel Localidade localidade = new Localidade(); localidade .setId((Integer) arrayImoveisPorRota[1]); imovel.setLocalidade(localidade); } if (arrayImoveisPorRota[2] != null) { // instancia um setor comercial para ser setado // no // im�vel SetorComercial setorComercial = new SetorComercial(); setorComercial.setCodigo(Integer .parseInt(arrayImoveisPorRota[2] .toString())); imovel.setSetorComercial(setorComercial); } Quadra quadra = new Quadra(); if (arrayImoveisPorRota[3] != null) { // instancia uma quadra para ser setado no // im�vel Integer numeroQuadra = (Integer) arrayImoveisPorRota[3]; quadra.setNumeroQuadra(numeroQuadra); imovel.setQuadra(quadra); } if (arrayImoveisPorRota[4] != null) { // seta o lote no im�vel imovel.setLote(Short .parseShort(arrayImoveisPorRota[4] .toString())); } if (arrayImoveisPorRota[5] != null) { // seta o lote no im�vel imovel.setSubLote(Short .parseShort(arrayImoveisPorRota[5] .toString())); } if (arrayImoveisPorRota[6] != null) { // instancia uma imovel perfil para ser setado // no // im�vel ImovelPerfil imovelPerfil = new ImovelPerfil(); imovelPerfil .setId((Integer) arrayImoveisPorRota[6]); imovel.setImovelPerfil(imovelPerfil); } LigacaoAgua ligacaoAgua = new LigacaoAgua(); if (arrayImoveisPorRota[7] != null) { // instancia uma liga��o agua para ser setado no // im�vel ligacaoAgua .setId((Integer) arrayImoveisPorRota[7]); } // instancia um hidrometro instala��o historico para // ser // colocado na ligacao agua if (arrayImoveisPorRota[30] != null) { HidrometroInstalacaoHistorico hidrometroInstalacaoHistoricoLigacaoAgua = (HidrometroInstalacaoHistorico) arrayImoveisPorRota[30]; MedicaoTipo medicaoTipo = new MedicaoTipo(); medicaoTipo .setId((Integer) arrayImoveisPorRota[26]); hidrometroInstalacaoHistoricoLigacaoAgua .setMedicaoTipo(medicaoTipo); ligacaoAgua .setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistoricoLigacaoAgua); } imovel.setLigacaoAgua(ligacaoAgua); // //instancia um hidrometro instala��o historico // para // ser colocado no imovel if (arrayImoveisPorRota[31] != null) { HidrometroInstalacaoHistorico hidrometroInstalacaoHistoricoImovel = (HidrometroInstalacaoHistorico) arrayImoveisPorRota[31]; MedicaoTipo medicaoTipo = new MedicaoTipo(); medicaoTipo .setId((Integer) arrayImoveisPorRota[27]); hidrometroInstalacaoHistoricoImovel .setMedicaoTipo(medicaoTipo); imovel .setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistoricoImovel); } // instancia a rota Rota rotaImovel = new Rota(); if (arrayImoveisPorRota[10] != null) { // seta o id da rota rotaImovel .setId((Integer) arrayImoveisPorRota[10]); } if (arrayImoveisPorRota[11] != null) { // seta o indicador fiscalizador suprimido na // rota rotaImovel .setIndicadorFiscalizarSuprimido(Short .parseShort(arrayImoveisPorRota[11] .toString())); } if (arrayImoveisPorRota[12] != null) { // seta o indicador fiscalizador cortado na rota rotaImovel.setIndicadorFiscalizarCortado(Short .parseShort(arrayImoveisPorRota[12] .toString())); } if (arrayImoveisPorRota[13] != null) { // seta o indicador gerar fiscalizacao na rota rotaImovel.setIndicadorGerarFiscalizacao(Short .parseShort(arrayImoveisPorRota[13] .toString())); } if (arrayImoveisPorRota[14] != null) { // seta o indicador fgerar falsa faixa na rota rotaImovel.setIndicadorGerarFalsaFaixa(Short .parseShort(arrayImoveisPorRota[14] .toString())); } if (arrayImoveisPorRota[15] != null) { // seta o percentual geracao fiscalizacao na // rota rotaImovel .setPercentualGeracaoFiscalizacao((BigDecimal) (arrayImoveisPorRota[15])); } if (arrayImoveisPorRota[16] != null) { // seta o percentual geracao faixa falsa na rota rotaImovel .setPercentualGeracaoFaixaFalsa((BigDecimal) (arrayImoveisPorRota[16])); } // instancia a empresa Empresa empresa = new Empresa(); if (arrayImoveisPorRota[17] != null) { // seta o id na empresa empresa .setId((Integer) arrayImoveisPorRota[17]); } if (arrayImoveisPorRota[18] != null) { // seta a descri��o abreviada na empresa empresa .setDescricaoAbreviada(arrayImoveisPorRota[18] .toString()); } if (arrayImoveisPorRota[19] != null) { // seta email da empresa empresa.setEmail(arrayImoveisPorRota[19] .toString()); } if (arrayImoveisPorRota[28] != null) { // seta email da empresa empresa.setDescricao(arrayImoveisPorRota[28] .toString()); } // seta a empresa na rota rotaImovel.setEmpresa(empresa); // instancia o faturamento FaturamentoGrupo faturamentoGrupo = new FaturamentoGrupo(); if (arrayImoveisPorRota[20] != null) { // seta o id no faturamentGrupo faturamentoGrupo .setId((Integer) arrayImoveisPorRota[20]); } if (arrayImoveisPorRota[21] != null) { // seta o descri��o no faturamentGrupo faturamentoGrupo .setDescricao((String) arrayImoveisPorRota[21]); } // seta o faturamento na rota rotaImovel.setFaturamentoGrupo(faturamentoGrupo); if (arrayImoveisPorRota[22] != null) { // instancia a liga��o esgoto situa��o LeituraTipo leituraTipo = new LeituraTipo(); // seta o id na liga��o esgoto situa��o leituraTipo .setId((Integer) arrayImoveisPorRota[22]); // seta a liga��o esgoto situa��o no imovel rotaImovel.setLeituraTipo(leituraTipo); } // seta a rota na quadra quadra.setRota(rotaImovel); // seta o roteiro empresa na quadra quadra .setRoteiroEmpresa((RoteiroEmpresa) arrayImoveisPorRota[29]); // seta a quadra no imovel imovel.setQuadra(quadra); if (arrayImoveisPorRota[23] != null) { // instancia a liga��o agua situa��o LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao(); // seta o id na liga��o agua situa��o ligacaoAguaSituacao .setId((Integer) arrayImoveisPorRota[23]); // seta a liga��o agua situa��o no imovel imovel .setLigacaoAguaSituacao(ligacaoAguaSituacao); } if (arrayImoveisPorRota[24] != null) { // instancia a liga��o esgoto situa��o LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao(); // seta o id na liga��o esgoto situa��o ligacaoEsgotoSituacao .setId((Integer) arrayImoveisPorRota[24]); // seta a liga��o esgoto situa��o no imovel imovel .setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao); } if (arrayImoveisPorRota[25] != null) { // instancia o faturamento situacao tipo FaturamentoSituacaoTipo faturamentoSituacaoTipo = new FaturamentoSituacaoTipo(); // seta o id no faturamento situacao tipo faturamentoSituacaoTipo .setIndicadorParalisacaoLeitura((Short) arrayImoveisPorRota[25]); // seta a liga��o esgoto situa��o no imovel imovel .setFaturamentoSituacaoTipo(faturamentoSituacaoTipo); } if (arrayImoveisPorRota[32] != null) { imovel .getQuadra() .getRota() .getEmpresa() .setId( (Integer) arrayImoveisPorRota[32]); } if (arrayImoveisPorRota[33] != null) { imovel .getLigacaoAguaSituacao() .setIndicadorFaturamentoSituacao( (Short) arrayImoveisPorRota[33]); } if (arrayImoveisPorRota[34] != null) { imovel .getLigacaoEsgotoSituacao() .setIndicadorFaturamentoSituacao( (Short) arrayImoveisPorRota[34]); } if (arrayImoveisPorRota[35] != null) { LogradouroBairro logradouroBairro = new LogradouroBairro(); logradouroBairro .setId((Integer) arrayImoveisPorRota[35]); imovel.setLogradouroBairro(logradouroBairro); } if (arrayImoveisPorRota[36] != null) { Logradouro logradouro = new Logradouro(); logradouro .setId((Integer) arrayImoveisPorRota[36]); imovel.getLogradouroBairro().setLogradouro( logradouro); } if (arrayImoveisPorRota[37] != null) { imovel .getLogradouroBairro() .getLogradouro() .setNome( (String) arrayImoveisPorRota[37]); } if (arrayImoveisPorRota[38] != null) { Bairro bairro = new Bairro(); bairro .setNome((String) arrayImoveisPorRota[38]); imovel.getLogradouroBairro().setBairro(bairro); } if (arrayImoveisPorRota[39] != null) { imovel.setNumeroImovel(completaString( (String) arrayImoveisPorRota[39], 5)); } if (arrayImoveisPorRota[40] != null) { imovel .setNumeroSequencialRota((Integer) arrayImoveisPorRota[40]); } if (arrayImoveisPorRota[41] != null) { ligacaoAgua.setNumeroLacre(completaString( (String) arrayImoveisPorRota[41], 6)); } if (arrayImoveisPorRota[42] != null) { imovel.setComplementoEndereco(completaString( (String) arrayImoveisPorRota[42], 3)); } if (arrayImoveisPorRota[43] != null) { GerenciaRegional gerenciaRegional = new GerenciaRegional(); gerenciaRegional .setId((Integer) arrayImoveisPorRota[43]); imovel.getLocalidade().setGerenciaRegional( gerenciaRegional); } if (arrayImoveisPorRota[44] != null) { rotaImovel .setCodigo((Short) arrayImoveisPorRota[44]); } // adiciona na cole��o de imoveis objetosImoveis.add(imovel); arrayImoveisPorRota = null; } } else { flagTerminou = true; } } Collection<Imovel> imoveisParaSerGerados = new ArrayList(); /** * Valida os imoveis para ser gerados */ /*imoveisParaSerGerados = this .verificarImoveisParaSerGerados(objetosImoveis); objetosImoveis = null; /** * [SB0004]-Recuperar Dados para inclusao na Tabela if (imoveisParaSerGerados != null && !imoveisParaSerGerados.isEmpty()) { // pega o id da empresa do objeto imovel. Integer idEmpresaOld = null; // cria uma variavel do tipo boolean para saber se � a mesma // empresa // ou // outra empresa. boolean mesmaEmpresa = false; // � usado para na faixa falsa saber se o hidrometro foi // selecionado // ou // n�o boolean hidrometroSelecionado = false; Integer quantidadeRegistros = 0; Integer quantidadeImoveis = 0; ListIterator imovelParaSerGeradoIterator = ((List) imoveisParaSerGerados) .listIterator(0); Imovel imovelParaSerGerado = null; // ListIterator imovelParaSerGeradoIterator = (ListIterator) // imoveisParaSerGerados // .iterator(); while (imovelParaSerGeradoIterator.hasNext()) { boolean ligacaoAgua = false; boolean ligacaoPoco = false; imovelParaSerGerado = (Imovel) imovelParaSerGeradoIterator .next(); // pega o id da empresa do objeto imovel. idEmpresaOld = imovelParaSerGerado.getQuadra() .getRota().getEmpresa().getId(); // Verifica se a empresa da rota que est� na cole��o � // igual // a // empresa anterior if (imovelParaSerGerado.getQuadra().getRota() .getEmpresa().getId().equals(idEmpresaOld)) { mesmaEmpresa = true; } else { mesmaEmpresa = false; } if (mesmaEmpresa) { // incrementa a quantidade de registros quantidadeRegistros = quantidadeRegistros + 1; quantidadeImoveis = quantidadeImoveis + 1; if (imovelParaSerGerado.getLigacaoAgua() != null && imovelParaSerGerado.getLigacaoAgua() .getId() != null && imovelParaSerGerado.getLigacaoAgua() .getHidrometroInstalacaoHistorico() != null && imovelParaSerGerado.getLigacaoAgua() .getHidrometroInstalacaoHistorico() .getId() != null) { ligacaoAgua = true; } if (imovelParaSerGerado .getHidrometroInstalacaoHistorico() != null && imovelParaSerGerado .getHidrometroInstalacaoHistorico() .getId() != null) { ligacaoPoco = true; } MovimentoRoteiroEmpresa movimentoRoteiroEmpresa = new MovimentoRoteiroEmpresa(); movimentoRoteiroEmpresa .setAnoMesMovimento(anoMesCorrente); if (imovelParaSerGerado.getQuadra() != null) { if (sistemaParametro .getIndicadorRoteiroEmpresa() == 1) { if (imovelParaSerGerado.getQuadra() .getRoteiroEmpresa() == null) { continue; } } movimentoRoteiroEmpresa .setRoteiroEmpresa(imovelParaSerGerado .getQuadra() .getRoteiroEmpresa()); movimentoRoteiroEmpresa .setNumeroQuadra(imovelParaSerGerado .getQuadra().getNumeroQuadra()); if (imovelParaSerGerado.getQuadra().getRota() != null) { // id do grupo de faturamento movimentoRoteiroEmpresa .setFaturamentoGrupo(imovelParaSerGerado .getQuadra().getRota() .getFaturamentoGrupo()); } if (imovelParaSerGerado.getQuadra() .getRoteiroEmpresa() != null) { movimentoRoteiroEmpresa .setEmpresa(imovelParaSerGerado .getQuadra() .getRoteiroEmpresa() .getEmpresa()); } else { movimentoRoteiroEmpresa .setEmpresa(imovelParaSerGerado .getQuadra().getRota() .getEmpresa()); } } movimentoRoteiroEmpresa .setLocalidade(imovelParaSerGerado .getLocalidade()); movimentoRoteiroEmpresa .setCodigoSetorComercial(imovelParaSerGerado .getSetorComercial().getCodigo()); movimentoRoteiroEmpresa.setNumeroLoteImovel(Util .adicionarZerosEsquedaNumero(4, "" + imovelParaSerGerado.getLote())); movimentoRoteiroEmpresa .setNumeroSubloteImovel(Util .adicionarZerosEsquedaNumero(3, "" + imovelParaSerGerado .getSubLote())); movimentoRoteiroEmpresa .setImovelPerfil(imovelParaSerGerado .getImovelPerfil()); // caso seja tipo liga��o agua e po�o cria a string // primeiro // com // tipo // liga��o agua if (ligacaoAgua && ligacaoPoco) { if (imovelParaSerGerado.getLigacaoAgua() != null && imovelParaSerGerado .getLigacaoAgua() .getHidrometroInstalacaoHistorico() != null && imovelParaSerGerado .getLigacaoAgua() .getHidrometroInstalacaoHistorico() .getId() != null && !imovelParaSerGerado .getLigacaoAgua() .getHidrometroInstalacaoHistorico() .getId().equals("")) { movimentoRoteiroEmpresa .setMedicaoTipo(imovelParaSerGerado .getLigacaoAgua() .getHidrometroInstalacaoHistorico() .getMedicaoTipo()); } // caso n�o seja } else { // caso seja tipo liga��o agua cria a string com // tipo // liga��o agua if (ligacaoAgua) { if (imovelParaSerGerado.getLigacaoAgua() != null && imovelParaSerGerado .getLigacaoAgua() .getHidrometroInstalacaoHistorico() != null && imovelParaSerGerado .getLigacaoAgua() .getHidrometroInstalacaoHistorico() .getId() != null && !imovelParaSerGerado .getLigacaoAgua() .getHidrometroInstalacaoHistorico() .getId().equals("")) { movimentoRoteiroEmpresa .setMedicaoTipo(imovelParaSerGerado .getLigacaoAgua() .getHidrometroInstalacaoHistorico() .getMedicaoTipo()); } } else { // caso seja tipo liga��o po�o cria a string // com // tipo // liga��o po�o if (ligacaoPoco) { if (imovelParaSerGerado .getHidrometroInstalacaoHistorico() != null && imovelParaSerGerado .getHidrometroInstalacaoHistorico() .getId() != null && !imovelParaSerGerado .getHidrometroInstalacaoHistorico() .getId().equals("")) { movimentoRoteiroEmpresa .setMedicaoTipo(imovelParaSerGerado .getHidrometroInstalacaoHistorico() .getMedicaoTipo()); } } } } // Matricula do im�vel movimentoRoteiroEmpresa .setImovel(imovelParaSerGerado); // Perfil do imovel movimentoRoteiroEmpresa .setImovelPerfil(imovelParaSerGerado .getImovelPerfil()); String nomeClienteUsuario = null; try { // Pesquisa o nome do cliente que tem o tipo de // rela��o // usu�rio. nomeClienteUsuario = repositorioClienteImovel .pesquisarNomeClientePorImovel(imovelParaSerGerado .getId()); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } // nome do cliente usu�rio movimentoRoteiroEmpresa .setNomeCliente(completaString( nomeClienteUsuario, 25)); // Pesquisa o endere�o do imovel passando o id String enderecoImovel = getControladorEndereco() .pesquisarEnderecoFormatado( imovelParaSerGerado.getId()); if (enderecoImovel != null && !enderecoImovel.equals("")) { // endere�o do im�vel movimentoRoteiroEmpresa .setEnderecoImovel(completaString( enderecoImovel, 50)); } else { movimentoRoteiroEmpresa .setEnderecoImovel(completaString("", 50)); } // Dados do Hidrometro // caso seja tipo liga��o agua e po�o cria a string // primeiro // com // tipo // liga��o agua Short numeroDigitosHidrometro = null; StringBuilder dadosHidrometro = null; Integer capacidadeHidrometro = null; Integer marcaHidrometro = null; if (ligacaoAgua && ligacaoPoco) { Object[] dadosHidrometroNumeroLeitura = pesquisarDadosHidrometroTipoLigacaoAgua(imovelParaSerGerado); dadosHidrometro = (StringBuilder) dadosHidrometroNumeroLeitura[0]; numeroDigitosHidrometro = (Short) dadosHidrometroNumeroLeitura[1]; capacidadeHidrometro = (Integer) dadosHidrometroNumeroLeitura[2]; marcaHidrometro = (Integer) dadosHidrometroNumeroLeitura[3]; HidrometroCapacidade capacidade = new HidrometroCapacidade(); capacidade.setId(capacidadeHidrometro); movimentoRoteiroEmpresa .setHidrometroCapacidade(capacidade); HidrometroMarca hidrometroMarca = new HidrometroMarca(); hidrometroMarca.setId(marcaHidrometro); movimentoRoteiroEmpresa .setHidrometroMarca(hidrometroMarca); movimentoRoteiroEmpresa .setNumeroHidrometro(completaString( (String) dadosHidrometroNumeroLeitura[4], 10)); // caso n�o seja } else { // caso seja tipo liga��o agua cria a string com // tipo // liga��o agua if (ligacaoAgua) { Object[] dadosHidrometroNumeroLeitura = pesquisarDadosHidrometroTipoLigacaoAgua(imovelParaSerGerado); dadosHidrometro = (StringBuilder) dadosHidrometroNumeroLeitura[0]; numeroDigitosHidrometro = (Short) dadosHidrometroNumeroLeitura[1]; capacidadeHidrometro = (Integer) dadosHidrometroNumeroLeitura[2]; marcaHidrometro = (Integer) dadosHidrometroNumeroLeitura[3]; HidrometroCapacidade capacidade = new HidrometroCapacidade(); capacidade.setId(capacidadeHidrometro); movimentoRoteiroEmpresa .setHidrometroCapacidade(capacidade); HidrometroMarca hidrometroMarca = new HidrometroMarca(); hidrometroMarca.setId(marcaHidrometro); movimentoRoteiroEmpresa .setHidrometroMarca(hidrometroMarca); movimentoRoteiroEmpresa .setNumeroHidrometro(completaString( (String) dadosHidrometroNumeroLeitura[4], 10)); // caso n�o seja } else { // caso seja tipo liga��o po�o cria a string // com // tipo // liga��o po�o if (ligacaoPoco) { Object[] dadosHidrometroNumeroLeitura = pesquisarDadosHidrometroTipoPoco(imovelParaSerGerado); dadosHidrometro = (StringBuilder) dadosHidrometroNumeroLeitura[0]; numeroDigitosHidrometro = (Short) dadosHidrometroNumeroLeitura[1]; capacidadeHidrometro = (Integer) dadosHidrometroNumeroLeitura[2]; marcaHidrometro = (Integer) dadosHidrometroNumeroLeitura[3]; HidrometroCapacidade capacidade = new HidrometroCapacidade(); capacidade.setId(capacidadeHidrometro); movimentoRoteiroEmpresa .setHidrometroCapacidade(capacidade); HidrometroMarca hidrometroMarca = new HidrometroMarca(); hidrometroMarca.setId(marcaHidrometro); movimentoRoteiroEmpresa .setHidrometroMarca(hidrometroMarca); movimentoRoteiroEmpresa .setNumeroHidrometro(completaString( (String) dadosHidrometroNumeroLeitura[4], 10)); // caso n�o seja nem um nem outro ent�o // pode // chamar // qualquer um dos m�todos // pois os dois fazem a verifica��o e // retorna // strings // vazia e // a data cpm zeros } else { Object[] dadosHidrometroNumeroLeitura = pesquisarDadosHidrometroTipoPoco(imovelParaSerGerado); dadosHidrometro = (StringBuilder) dadosHidrometroNumeroLeitura[0]; numeroDigitosHidrometro = (Short) dadosHidrometroNumeroLeitura[1]; capacidadeHidrometro = (Integer) dadosHidrometroNumeroLeitura[2]; marcaHidrometro = (Integer) dadosHidrometroNumeroLeitura[3]; HidrometroCapacidade capacidade = new HidrometroCapacidade(); capacidade.setId(capacidadeHidrometro); movimentoRoteiroEmpresa .setHidrometroCapacidade(capacidade); HidrometroMarca hidrometroMarca = new HidrometroMarca(); hidrometroMarca.setId(marcaHidrometro); movimentoRoteiroEmpresa .setHidrometroMarca(hidrometroMarca); movimentoRoteiroEmpresa .setNumeroHidrometro(completaString( (String) dadosHidrometroNumeroLeitura[4], 10)); } } } if (imovelParaSerGerado .getHidrometroInstalacaoHistorico() != null) { movimentoRoteiroEmpresa .setHidrometroLocalInstalacao(imovelParaSerGerado .getHidrometroInstalacaoHistorico() .getHidrometroLocalInstalacao()); movimentoRoteiroEmpresa .setDataInstalacaoHidrometro(imovelParaSerGerado .getHidrometroInstalacaoHistorico() .getDataInstalacao()); movimentoRoteiroEmpresa .setHidrometroProtecao(imovelParaSerGerado .getHidrometroInstalacaoHistorico() .getHidrometroProtecao()); } if (imovelParaSerGerado.getLigacaoAgua() .getHidrometroInstalacaoHistorico() != null) { movimentoRoteiroEmpresa .setHidrometroLocalInstalacao(imovelParaSerGerado .getLigacaoAgua() .getHidrometroInstalacaoHistorico() .getHidrometroLocalInstalacao()); movimentoRoteiroEmpresa .setDataInstalacaoHidrometro(imovelParaSerGerado .getLigacaoAgua() .getHidrometroInstalacaoHistorico() .getDataInstalacao()); movimentoRoteiroEmpresa .setHidrometroProtecao(imovelParaSerGerado .getLigacaoAgua() .getHidrometroInstalacaoHistorico() .getHidrometroProtecao()); } // id da ligacao agua situa��o if (imovelParaSerGerado.getLigacaoAguaSituacao() != null && imovelParaSerGerado .getLigacaoAguaSituacao().getId() != null) { // Situa��o da liga��o de agua movimentoRoteiroEmpresa .setLigacaoAguaSituacao(imovelParaSerGerado .getLigacaoAguaSituacao()); } // id da ligacao esgoto situa��o if (imovelParaSerGerado.getLigacaoEsgotoSituacao() != null && imovelParaSerGerado .getLigacaoEsgotoSituacao().getId() != null) { // Situa��o de liga��o esgoto movimentoRoteiroEmpresa .setLigacaoEsgotoSituacao(imovelParaSerGerado .getLigacaoEsgotoSituacao()); } // pega as descri��es das categorias do imovel Categoria categoria = getControladorImovel() .obterDescricoesCategoriaImovel( imovelParaSerGerado); // quantidade de economias movimentoRoteiroEmpresa .setDescricaoAbreviadaCategoriaImovel(categoria .getDescricaoAbreviada()); // [UC0086 - Obter quantidade de economias] int quantidadeEconomias = getControladorImovel() .obterQuantidadeEconomias( imovelParaSerGerado); // quantidade de economias movimentoRoteiroEmpresa .setQuantidadeEconomias(new Integer( quantidadeEconomias).shortValue()); // Leitura anterior Integer anoMesAnterior = Util .subtrairData(anoMesCorrente); String leituraAnterior = null; Integer idMedicaoTipo = null; MedicaoHistorico medicaoHistorico = null; Object[] retorno = pesquisaLeituraAnterior( ligacaoAgua, ligacaoPoco, anoMesAnterior, imovelParaSerGerado); // verifica se a leitura anterior � diferente de // nula if (retorno[0] != null) { leituraAnterior = retorno[0].toString(); } // verifica se a leitura situa��o atual � diferente // de // nula if (retorno[1] != null) { medicaoHistorico = (MedicaoHistorico) retorno[1]; } // verifica se o id da medi��o tipo � diferente de // nula if (retorno[2] != null) { idMedicaoTipo = (Integer) retorno[2]; } // verifica se a leitura anterior � diferente de // nula // para // ser // jogado no arquivo // txt if (leituraAnterior != null) { movimentoRoteiroEmpresa .setNumeroLeituraAnterior(new Integer( leituraAnterior)); /* * movimentoRoteiroEmpresa * .setNumeroLeituraAnterior(new Integer( * Criptografia .encrypt(leituraAnterior))); // caso contrario coloca a string com zeros } // Faixa de leitura esperada /*Object[] faixaInicialFinal = pesquisarFaixaEsperadaOuFalsaCelular( imovelParaSerGerado, dadosHidrometro, leituraAnterior, medicaoHistorico, idMedicaoTipo, sistemaParametro, hidrometroSelecionado, numeroDigitosHidrometro); hidrometroSelecionado = Boolean .parseBoolean(faixaInicialFinal[1] .toString()); boolean faixaFalsaLeitura = Boolean .parseBoolean(faixaInicialFinal[2] .toString()); int faixaInicialEsperada = 0; int faixaFinalEsperada = 0; if (faixaFalsaLeitura) { faixaInicialEsperada = Integer .parseInt(faixaInicialFinal[3] .toString()); faixaFinalEsperada = Integer .parseInt(faixaInicialFinal[4] .toString()); } movimentoRoteiroEmpresa .setNumeroFaixaLeituraEsperadaInicial(faixaInicialEsperada); movimentoRoteiroEmpresa .setNumeroFaixaLeituraEsperadaFinal(faixaFinalEsperada); movimentoRoteiroEmpresa .setUltimaAlteracao(new Date()); movimentoRoteiroEmpresa.setRota(imovelParaSerGerado .getQuadra().getRota()); */ /** * Obtem a colecao economias por categoria * */ /*Collection colecaoSubCategoria = this .getControladorImovel() .obterQuantidadeEconomiasSubCategoria( imovelParaSerGerado.getId()); // 1.10.1 - SubCategoria 01 // 1.10.2 - Quantidade 01 // 1.10.3 - SubCategoria 02 // 1.10.4 - Quantidade 02 if (colecaoSubCategoria != null && !colecaoSubCategoria.isEmpty()) { Iterator itera = colecaoSubCategoria.iterator(); for (int i = 0; i < 2; i++) { while (itera.hasNext()) { Subcategoria subcategoria = (Subcategoria) itera .next(); // tipoEconomia = categoria_id(1 // posi��o) + // subcategoria_codigo(3 posi��es) if (i == 0) { // C�digo da subcategoria do imovel movimentoRoteiroEmpresa .setCodigoSubcategoria1(subcategoria .getCodigo()); // qtdeEconomia movimentoRoteiroEmpresa .setQuantidadeEconomias(subcategoria .getQuantidadeEconomias() .shortValue()); } else { // C�digo da 2 subcategoria do // imovel movimentoRoteiroEmpresa .setCodigoSubcategoria2(subcategoria .getCodigo()); // qtdeEconomia movimentoRoteiroEmpresa .setQuantidadeEconomias2(subcategoria .getQuantidadeEconomias() .shortValue()); } } } } // 1.11 - Consumo Integer numeroConsumoFaturadoMes = null; Integer anoMesFaturamento = sistemaParametro .getAnoMesFaturamento(); try { // 1.11.1 - Consumo 01 int anoMesSubtraido = Util.subtrairMesDoAnoMes( anoMesFaturamento, 6); numeroConsumoFaturadoMes = repositorioMicromedicao .obterConsumoLigacaoAguaOuEsgotoDoImovelPeloTipoLogacao( imovelParaSerGerado.getId(), anoMesSubtraido, LigacaoTipo.LIGACAO_AGUA); // caso o numero consumo faturado do mes for // diferente de nulo if (numeroConsumoFaturadoMes != null) { movimentoRoteiroEmpresa .setNumeroConsumoFaturadoMenos6Meses(numeroConsumoFaturadoMes); } // 1.11.2 - Consumo 02 anoMesSubtraido = Util.subtrairMesDoAnoMes( anoMesFaturamento, 5); numeroConsumoFaturadoMes = repositorioMicromedicao .obterConsumoLigacaoAguaOuEsgotoDoImovelPeloTipoLogacao( imovelParaSerGerado.getId(), anoMesSubtraido, LigacaoTipo.LIGACAO_AGUA); // caso o numero consumo faturado do mes for // diferente de nulo if (numeroConsumoFaturadoMes != null) { movimentoRoteiroEmpresa .setNumeroConsumoFaturadoMenos5Meses(numeroConsumoFaturadoMes); } // 1.11.3 - Consumo 03 anoMesSubtraido = Util.subtrairMesDoAnoMes( anoMesFaturamento, 4); numeroConsumoFaturadoMes = repositorioMicromedicao .obterConsumoLigacaoAguaOuEsgotoDoImovelPeloTipoLogacao( imovelParaSerGerado.getId(), anoMesSubtraido, LigacaoTipo.LIGACAO_AGUA); // caso o numero consumo faturado do mes for // diferente de nulo if (numeroConsumoFaturadoMes != null) { movimentoRoteiroEmpresa .setNumeroConsumoFaturadoMenos4Meses(numeroConsumoFaturadoMes); } } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } // 1.12 - Condi��o String condicao = null; try { condicao = this.repositorioMicromedicao .obterDescricaoConsumoTipo( imovelParaSerGerado.getId(), LigacaoTipo.LIGACAO_AGUA); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if (condicao != null) { movimentoRoteiroEmpresa .setDescricaoConsumoTipo(Util .completaStringComEspacoAEsquerda( "" + condicao, 15)); } // 1.13 - N�mero do Lacre if (imovelParaSerGerado.getLigacaoAgua() .getNumeroLacre() != null) { movimentoRoteiroEmpresa .setNumeroLacreLigacaoAgua(Util .completaStringComEspacoAEsquerda( "" + imovelParaSerGerado .getImovelPrincipal() .getLigacaoAgua() .getNumeroLacre(), 6)); } // 1.14 - Sequencial da Rota movimentoRoteiroEmpresa .setNumeroSequencialRota(imovelParaSerGerado .getNumeroSequencialRota()); // 1.15 - Consumo 04 int anoMesSubtraido = Util.subtrairMesDoAnoMes( anoMesFaturamento, 3); numeroConsumoFaturadoMes = repositorioMicromedicao .obterConsumoLigacaoAguaOuEsgotoDoImovelPeloTipoLogacao( imovelParaSerGerado.getId(), anoMesSubtraido, LigacaoTipo.LIGACAO_AGUA); // caso o numero consumo faturado do mes for // diferente // de nulo if (numeroConsumoFaturadoMes != null) { movimentoRoteiroEmpresa .setNumeroConsumoFaturadoMenos3Meses(numeroConsumoFaturadoMes); } // 1.16 - Consumo 05 anoMesSubtraido = Util.subtrairMesDoAnoMes( anoMesFaturamento, 2); numeroConsumoFaturadoMes = repositorioMicromedicao .obterConsumoLigacaoAguaOuEsgotoDoImovelPeloTipoLogacao( imovelParaSerGerado.getId(), anoMesSubtraido, LigacaoTipo.LIGACAO_AGUA); // caso o numero consumo faturado do mes for // diferente // de nulo if (numeroConsumoFaturadoMes != null) { movimentoRoteiroEmpresa .setNumeroConsumoFaturadoMenos2Meses(numeroConsumoFaturadoMes); } // 1.17 - Consumo 06 anoMesSubtraido = Util.subtrairMesDoAnoMes( anoMesFaturamento, 1); numeroConsumoFaturadoMes = repositorioMicromedicao .obterConsumoLigacaoAguaOuEsgotoDoImovelPeloTipoLogacao( imovelParaSerGerado.getId(), anoMesSubtraido, LigacaoTipo.LIGACAO_AGUA); // caso o numero consumo faturado do mes for // diferente // de nulo if (numeroConsumoFaturadoMes != null) { movimentoRoteiroEmpresa .setNumeroConsumoFaturadoMenos1Mes(numeroConsumoFaturadoMes); } // 1.18 - Consumo Medio Integer numeroConsumoMedio = null; try { numeroConsumoMedio = this.repositorioMicromedicao .pesquisarNumeroConsumoMedioImovel( imovelParaSerGerado.getId(), anoMesCorrente, LigacaoTipo.LIGACAO_AGUA); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } if (numeroConsumoMedio != null) { movimentoRoteiroEmpresa .setNumeroConsumoMedio(numeroConsumoMedio); } // 1.19 -Rota movimentoRoteiroEmpresa .setCodigoRota(imovelParaSerGerado .getQuadra().getRota().getCodigo()); // 1.20 - Codigo Logradouro movimentoRoteiroEmpresa .setIdLogradouro(imovelParaSerGerado .getLogradouroBairro() .getLogradouro().getId()); // 1.21 - Nome do Logradouro movimentoRoteiroEmpresa .setNomeLogradouro(imovelParaSerGerado .getLogradouroBairro() .getLogradouro().getNome()); // 1.22 - Numero do Imovel movimentoRoteiroEmpresa .setNumeroImovel(imovelParaSerGerado .getNumeroImovel()); // 1.23 - Complemento movimentoRoteiroEmpresa .setComplementoEndereco(imovelParaSerGerado .getComplementoEndereco()); // 1.24 - Nome do Bairro movimentoRoteiroEmpresa .setNomeBairro(imovelParaSerGerado .getLogradouroBairro().getBairro() .getNome()); // 1.25 - Id da Categoria Categoria categoria1 = (Categoria) getControladorImovel() .obterPrincipalCategoriaImovel( imovelParaSerGerado.getId()); movimentoRoteiroEmpresa .setIdCategoriaImovel(categoria1.getId()); // 1.1 Incricao do Imovel movimentoRoteiroEmpresa .setInscricaoImovel(imovelParaSerGerado .getInscricaoFormatada()); // Id gerencia Regional movimentoRoteiroEmpresa .setIdGereciaRegional(imovelParaSerGerado .getLocalidade() .getGerenciaRegional().getId()); movimentoRoteiroEmpresa.setLeituraTipo(rota .getLeituraTipo()); getControladorUtil().inserir( movimentoRoteiroEmpresa); imovelParaSerGerado = null; } } } // Encerra a unidade de Faturamento getControladorBatch().encerrarUnidadeProcessamentoBatch(null, idUnidadeIniciada, false); } catch (Exception e) { // Este catch serve para interceptar // qualquer exce��o que o processo batch // venha a lan�ar e garantir que a unidade // de processamento do batch ser� atualizada // com o erro ocorrido e.printStackTrace(); getControladorBatch().encerrarUnidadeProcessamentoBatch(e, idUnidadeIniciada, true); throw new EJBException(e); } } }*/ /** * [UC0083] - Gerar Dados para Leitura Empresa * * Author: R�mulo Aur�lio * * @param objetosImoveis * @return */ public Collection verificarImoveisParaSerGerados(Collection objetosImoveis) { // Instancia uma cole��o que ser� usada para gerar o arquivo // txt. Collection<Imovel> imoveisParaSerGerados = new ArrayList<Imovel>(); Iterator imovelIterator = objetosImoveis.iterator(); while (imovelIterator.hasNext()) { // Recupera o imovel da cole��o Imovel imovel = (Imovel) imovelIterator.next(); // variavel respons�vel para entrar em uma das 4 condic�es // abaixo boolean achouImovel = false; /** * [SF0002] - Verificar situa��o especial de faturamento Autor: * S�vio Luiz Data: 21/12/2005 */ if (!achouImovel) { // Se for ligado ou cortado ent�o // Verifica se a liga��o agua � diferente de // nulo // se for verifica se o id da liga��o agua � // igual // ao id // do // imovel e // se o id do hist�rico da instala��o do // hidrometro // � // diferente de // null if (imovel.getLigacaoAgua() != null && imovel.getLigacaoAgua().getId() != null && (imovel.getLigacaoAgua().getId().equals( imovel.getId()) && imovel.getLigacaoAgua() .getHidrometroInstalacaoHistorico() != null && imovel .getLigacaoAgua() .getHidrometroInstalacaoHistorico().getId() != null)) { imoveisParaSerGerados.add(imovel); achouImovel = true; } } if (!achouImovel) { // Verifica se o id do hidrometro historico � // diferente de // nulo na tabela imovel if (imovel.getHidrometroInstalacaoHistorico() != null && imovel.getHidrometroInstalacaoHistorico().getId() != null) { imoveisParaSerGerados.add(imovel); achouImovel = true; } } } return imoveisParaSerGerados; } /** * [UC00083] Gerar Dados para Leitura * @author R�mulo Aur�lio * @throws ControladorException * @date 07/07/2008 */ public Collection pesquisarImoveisPorRota(Rota rota, SistemaParametro sistemaParametro) throws ControladorException { Collection imoveisPorRota = new ArrayList(); try { imoveisPorRota = repositorioMicromedicao .pesquisarImoveisPorRotaCaema(rota, sistemaParametro.getNomeAbreviadoEmpresa()); } catch (ErroRepositorioException e) { e.printStackTrace(); } return imoveisPorRota; } /** * [UC00083] Gerar Dados para Leitura * * @author R�mulo Aur�lio * @date 07/07/2008 */ @SuppressWarnings("unchecked") public Collection retornaImoveisPorRota(Rota rota, SistemaParametro sistemaParametro) throws ControladorException { /** * [SB0004]-Recuperar Dados para inclusao na Tabela */ // inicializa uma cole��o de imoveis Collection objetosImoveis = new ArrayList(); // cria uma cole��o de im�vel por rota Collection imoveisPorRota = null; imoveisPorRota = this.pesquisarImoveisPorRota(rota, sistemaParametro); if (imoveisPorRota != null && !imoveisPorRota.isEmpty()) { Iterator imovelporRotaIterator = imoveisPorRota.iterator(); while (imovelporRotaIterator.hasNext()) { // cria um array de objetos para pegar os parametros // de // retorno da pesquisa Object[] arrayImoveisPorRota = (Object[]) imovelporRotaIterator .next(); // instancia um im�vel Imovel imovel = new Imovel(); if (arrayImoveisPorRota[0] != null) { // seta o id no imovel imovel.setId((Integer) arrayImoveisPorRota[0]); } if (arrayImoveisPorRota[1] != null) { // instancia uma localidade para ser setado no // im�vel Localidade localidade = new Localidade(); localidade.setId((Integer) arrayImoveisPorRota[1]); imovel.setLocalidade(localidade); } if (arrayImoveisPorRota[2] != null) { // instancia um setor comercial para ser setado // no // im�vel SetorComercial setorComercial = new SetorComercial(); setorComercial.setCodigo(Integer .parseInt(arrayImoveisPorRota[2].toString())); imovel.setSetorComercial(setorComercial); } Quadra quadra = new Quadra(); if (arrayImoveisPorRota[3] != null) { // instancia uma quadra para ser setado no // im�vel Integer numeroQuadra = (Integer) arrayImoveisPorRota[3]; quadra.setNumeroQuadra(numeroQuadra); imovel.setQuadra(quadra); } if (arrayImoveisPorRota[4] != null) { // seta o lote no im�vel imovel.setLote(Short.parseShort(arrayImoveisPorRota[4] .toString())); } if (arrayImoveisPorRota[5] != null) { // seta o lote no im�vel imovel.setSubLote(Short.parseShort(arrayImoveisPorRota[5] .toString())); } if (arrayImoveisPorRota[6] != null) { // instancia uma imovel perfil para ser setado // no // im�vel ImovelPerfil imovelPerfil = new ImovelPerfil(); imovelPerfil.setId((Integer) arrayImoveisPorRota[6]); imovel.setImovelPerfil(imovelPerfil); } LigacaoAgua ligacaoAgua = new LigacaoAgua(); if (arrayImoveisPorRota[7] != null) { // instancia uma liga��o agua para ser setado no // im�vel ligacaoAgua.setId((Integer) arrayImoveisPorRota[7]); } // instancia um hidrometro instala��o historico para // ser // colocado na ligacao agua if (arrayImoveisPorRota[30] != null) { HidrometroInstalacaoHistorico hidrometroInstalacaoHistoricoLigacaoAgua = (HidrometroInstalacaoHistorico) arrayImoveisPorRota[30]; MedicaoTipo medicaoTipo = new MedicaoTipo(); medicaoTipo.setId((Integer) arrayImoveisPorRota[26]); hidrometroInstalacaoHistoricoLigacaoAgua .setMedicaoTipo(medicaoTipo); ligacaoAgua .setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistoricoLigacaoAgua); } imovel.setLigacaoAgua(ligacaoAgua); // //instancia um hidrometro instala��o historico // para // ser colocado no imovel if (arrayImoveisPorRota[31] != null) { HidrometroInstalacaoHistorico hidrometroInstalacaoHistoricoImovel = (HidrometroInstalacaoHistorico) arrayImoveisPorRota[31]; MedicaoTipo medicaoTipo = new MedicaoTipo(); medicaoTipo.setId((Integer) arrayImoveisPorRota[27]); hidrometroInstalacaoHistoricoImovel .setMedicaoTipo(medicaoTipo); imovel .setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistoricoImovel); } // instancia a rota Rota rotaImovel = new Rota(); if (arrayImoveisPorRota[10] != null) { // seta o id da rota rotaImovel.setId((Integer) arrayImoveisPorRota[10]); } if (arrayImoveisPorRota[11] != null) { // seta o indicador fiscalizador suprimido na // rota rotaImovel.setIndicadorFiscalizarSuprimido(Short .parseShort(arrayImoveisPorRota[11].toString())); } if (arrayImoveisPorRota[12] != null) { // seta o indicador fiscalizador cortado na rota rotaImovel.setIndicadorFiscalizarCortado(Short .parseShort(arrayImoveisPorRota[12].toString())); } if (arrayImoveisPorRota[13] != null) { // seta o indicador gerar fiscalizacao na rota rotaImovel.setIndicadorGerarFiscalizacao(Short .parseShort(arrayImoveisPorRota[13].toString())); } if (arrayImoveisPorRota[14] != null) { // seta o indicador fgerar falsa faixa na rota rotaImovel.setIndicadorGerarFalsaFaixa(Short .parseShort(arrayImoveisPorRota[14].toString())); } if (arrayImoveisPorRota[15] != null) { // seta o percentual geracao fiscalizacao na // rota rotaImovel .setPercentualGeracaoFiscalizacao((BigDecimal) (arrayImoveisPorRota[15])); } if (arrayImoveisPorRota[16] != null) { // seta o percentual geracao faixa falsa na rota rotaImovel .setPercentualGeracaoFaixaFalsa((BigDecimal) (arrayImoveisPorRota[16])); } if(rota.getLeiturista() != null ){ rotaImovel.setLeiturista(rota.getLeiturista()); } // instancia a empresa Empresa empresa = new Empresa(); if (arrayImoveisPorRota[17] != null) { // seta o id na empresa empresa.setId((Integer) arrayImoveisPorRota[17]); } if (arrayImoveisPorRota[18] != null) { // seta a descri��o abreviada na empresa empresa.setDescricaoAbreviada(arrayImoveisPorRota[18] .toString()); } if (arrayImoveisPorRota[19] != null) { // seta email da empresa empresa.setEmail(arrayImoveisPorRota[19].toString()); } if (arrayImoveisPorRota[28] != null) { // seta email da empresa empresa.setDescricao(arrayImoveisPorRota[28].toString()); } // seta a empresa na rota rotaImovel.setEmpresa(empresa); // instancia o faturamento FaturamentoGrupo faturamentoGrupo = new FaturamentoGrupo(); if (arrayImoveisPorRota[20] != null) { // seta o id no faturamentGrupo faturamentoGrupo.setId((Integer) arrayImoveisPorRota[20]); } if (arrayImoveisPorRota[21] != null) { // seta o descri��o no faturamentGrupo faturamentoGrupo .setDescricao((String) arrayImoveisPorRota[21]); } // seta o faturamento na rota rotaImovel.setFaturamentoGrupo(faturamentoGrupo); if (arrayImoveisPorRota[22] != null) { // instancia a liga��o esgoto situa��o LeituraTipo leituraTipo = new LeituraTipo(); // seta o id na liga��o esgoto situa��o leituraTipo.setId((Integer) arrayImoveisPorRota[22]); // seta a liga��o esgoto situa��o no imovel rotaImovel.setLeituraTipo(leituraTipo); } // seta a rota na quadra quadra.setRota(rotaImovel); // seta o roteiro empresa na quadra quadra .setRoteiroEmpresa((RoteiroEmpresa) arrayImoveisPorRota[29]); // seta a quadra no imovel imovel.setQuadra(quadra); if (arrayImoveisPorRota[23] != null) { // instancia a liga��o agua situa��o LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao(); // seta o id na liga��o agua situa��o ligacaoAguaSituacao .setId((Integer) arrayImoveisPorRota[23]); // seta a liga��o agua situa��o no imovel imovel.setLigacaoAguaSituacao(ligacaoAguaSituacao); } if (arrayImoveisPorRota[24] != null) { // instancia a liga��o esgoto situa��o LigacaoEsgotoSituacao ligacaoEsgotoSituacao = new LigacaoEsgotoSituacao(); // seta o id na liga��o esgoto situa��o ligacaoEsgotoSituacao .setId((Integer) arrayImoveisPorRota[24]); // seta a liga��o esgoto situa��o no imovel imovel.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao); } if (arrayImoveisPorRota[25] != null) { // instancia o faturamento situacao tipo FaturamentoSituacaoTipo faturamentoSituacaoTipo = new FaturamentoSituacaoTipo(); // seta o id no faturamento situacao tipo faturamentoSituacaoTipo .setIndicadorParalisacaoLeitura((Short) arrayImoveisPorRota[25]); // seta a liga��o esgoto situa��o no imovel imovel.setFaturamentoSituacaoTipo(faturamentoSituacaoTipo); } if (arrayImoveisPorRota[32] != null) { imovel.getQuadra().getRota().getEmpresa().setId( (Integer) arrayImoveisPorRota[32]); } if (arrayImoveisPorRota[33] != null) { imovel.getLigacaoAguaSituacao() .setIndicadorFaturamentoSituacao( (Short) arrayImoveisPorRota[33]); } if (arrayImoveisPorRota[34] != null) { imovel.getLigacaoEsgotoSituacao() .setIndicadorFaturamentoSituacao( (Short) arrayImoveisPorRota[34]); } if (arrayImoveisPorRota[35] != null) { LogradouroBairro logradouroBairro = new LogradouroBairro(); logradouroBairro.setId((Integer) arrayImoveisPorRota[35]); imovel.setLogradouroBairro(logradouroBairro); } if (arrayImoveisPorRota[36] != null) { Logradouro logradouro = new Logradouro(); logradouro.setId((Integer) arrayImoveisPorRota[36]); imovel.getLogradouroBairro().setLogradouro(logradouro); } if (arrayImoveisPorRota[37] != null) { imovel.getLogradouroBairro().getLogradouro().setNome( (String) arrayImoveisPorRota[37]); } if (arrayImoveisPorRota[38] != null) { Bairro bairro = new Bairro(); bairro.setNome((String) arrayImoveisPorRota[38]); imovel.getLogradouroBairro().setBairro(bairro); } if (arrayImoveisPorRota[39] != null) { imovel.setNumeroImovel(completaString( (String) arrayImoveisPorRota[39], 5)); } if (arrayImoveisPorRota[40] != null) { imovel .setNumeroSequencialRota((Integer) arrayImoveisPorRota[40]); } if (arrayImoveisPorRota[41] != null) { ligacaoAgua.setNumeroLacre(completaString( (String) arrayImoveisPorRota[41], 6)); } if (arrayImoveisPorRota[42] != null) { imovel.setComplementoEndereco( (String) arrayImoveisPorRota[42]); } if (arrayImoveisPorRota[43] != null) { GerenciaRegional gerenciaRegional = new GerenciaRegional(); gerenciaRegional.setId((Integer) arrayImoveisPorRota[43]); imovel.getLocalidade() .setGerenciaRegional(gerenciaRegional); } if (arrayImoveisPorRota[44] != null) { rotaImovel.setCodigo((Short) arrayImoveisPorRota[44]); } // adiciona na cole��o de imoveis objetosImoveis.add(imovel); arrayImoveisPorRota = null; } } imoveisPorRota.clear(); imoveisPorRota = null; return objetosImoveis; } }