package gcom.cobranca; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao; import gcom.atendimentopublico.ordemservico.FiltroServicoTipo; import gcom.atendimentopublico.ordemservico.OrdemServico; import gcom.atendimentopublico.ordemservico.ServicoTipo; import gcom.batch.ControladorBatchLocal; import gcom.batch.ControladorBatchLocalHome; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.empresa.EmpresaCobranca; import gcom.cadastro.empresa.EmpresaCobrancaFaixa; import gcom.cadastro.empresa.FiltroEmpresaCobranca; import gcom.cadastro.empresa.FiltroEmpresaCobrancaFaixa; import gcom.cadastro.imovel.ControladorImovelLocal; import gcom.cadastro.imovel.ControladorImovelLocalHome; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.imovel.ImovelCobrancaSituacao; import gcom.cadastro.imovel.ImovelPerfil; import gcom.cadastro.localidade.GerenciaRegional; import gcom.cadastro.localidade.UnidadeNegocio; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.fachada.Fachada; import gcom.faturamento.ControladorFaturamentoLocal; import gcom.faturamento.ControladorFaturamentoLocalHome; import gcom.faturamento.conta.ContaGeral; import gcom.seguranca.acesso.Funcionalidade; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesJNDI; import gcom.util.ConstantesSistema; import gcom.util.ControladorException; import gcom.util.ControladorUtilLocal; import gcom.util.ControladorUtilLocalHome; import gcom.util.ErroRepositorioException; import gcom.util.ServiceLocator; import gcom.util.ServiceLocatorException; import gcom.util.SistemaException; import gcom.util.Util; import gcom.util.filtro.ParametroNulo; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.ejb.CreateException; /** * Esta classe tem como finalidade encapsular o caso de uso [UC0745] - GerarArquivoTextoFaturamento, gerando * maior facilidade na manuten��o do mesmo. * * @author Raphael Rossiter * @date 30/04/2008 */ public class UC0870GerarMovimentoContasEmCobrancaPorEmpresa { private static UC0870GerarMovimentoContasEmCobrancaPorEmpresa instancia; private IRepositorioCobranca repositorioCobranca; private UC0870GerarMovimentoContasEmCobrancaPorEmpresa(IRepositorioCobranca repositorioCobranca) { this.repositorioCobranca = repositorioCobranca; } public static UC0870GerarMovimentoContasEmCobrancaPorEmpresa getInstancia(IRepositorioCobranca repositorioCobranca) { if (instancia == null) { instancia = new UC0870GerarMovimentoContasEmCobrancaPorEmpresa(repositorioCobranca); } return instancia; } /** * Controlador Util * * @author Raphael Rossiter * @date 30/04/2008 * * @return ControladorUtilLocal */ private ControladorUtilLocal getControladorUtil() { ControladorUtilLocalHome localHome = null; ControladorUtilLocal local = null; ServiceLocator locator = null; try { locator = ServiceLocator.getInstancia(); localHome = (ControladorUtilLocalHome) locator .getLocalHome(ConstantesJNDI.CONTROLADOR_UTIL_SEJB); // guarda a referencia de um objeto capaz de fazer chamadas � // objetos remotamente local = localHome.create(); return local; } catch (CreateException e) { throw new SistemaException(e); } catch (ServiceLocatorException e) { throw new SistemaException(e); } } /** * Controlador Imovel * * @author Raphael Rossiter * @date 30/04/2008 * * @return ControladorImovelLocal */ protected ControladorImovelLocal getControladorImovel() { ControladorImovelLocalHome localHome = null; ControladorImovelLocal local = null; ServiceLocator locator = null; try { locator = ServiceLocator.getInstancia(); localHome = (ControladorImovelLocalHome) locator .getLocalHome(ConstantesJNDI.CONTROLADOR_IMOVEL_SEJB); // guarda a referencia de um objeto capaz de fazer chamadas � // objetos remotamente local = localHome.create(); return local; } catch (CreateException e) { throw new SistemaException(e); } catch (ServiceLocatorException e) { throw new SistemaException(e); } } /** * Controlador Faturamento * * @author Raphael Rossiter * @date 30/04/2008 * * @return ControladorFaturamentoLocal */ private ControladorFaturamentoLocal getControladorFaturamento() { ControladorFaturamentoLocalHome localHome = null; ControladorFaturamentoLocal local = null; ServiceLocator locator = null; try { locator = ServiceLocator.getInstancia(); localHome = (ControladorFaturamentoLocalHome) locator .getLocalHomePorEmpresa(ConstantesJNDI.CONTROLADOR_FATURAMENTO_SEJB); // guarda a referencia de um objeto capaz de fazer chamadas � // objetos remotamente local = localHome.create(); return local; } catch (CreateException e) { throw new SistemaException(e); } catch (ServiceLocatorException e) { throw new SistemaException(e); } } /** * Controlador Cobranca * * @author Raphael Rossiter * @date 30/04/2008 * * @return ControladorCobrancaLocal */ protected ControladorCobrancaLocal getControladorCobranca() { ControladorCobrancaLocalHome localHome = null; ControladorCobrancaLocal local = null; ServiceLocator locator = null; try { locator = ServiceLocator.getInstancia(); localHome = (ControladorCobrancaLocalHome) locator .getLocalHomePorEmpresa(ConstantesJNDI.CONTROLADOR_COBRANCA_SEJB); // guarda a referencia de um objeto capaz de fazer chamadas � // objetos remotamente local = localHome.create(); return local; } catch (CreateException e) { throw new SistemaException(e); } catch (ServiceLocatorException e) { throw new SistemaException(e); } } protected ControladorBatchLocal getControladorBatch() { ControladorBatchLocalHome localHome = null; ControladorBatchLocal local = null; // pega a inst�ncia do ServiceLocator. ServiceLocator locator = null; try { locator = ServiceLocator.getInstancia(); localHome = (ControladorBatchLocalHome) locator .getLocalHome(ConstantesJNDI.CONTROLADOR_BATCH_SEJB); local = localHome.create(); return local; } catch (CreateException e) { throw new SistemaException(e); } catch (ServiceLocatorException e) { throw new SistemaException(e); } } /** * [UC0870] - Gerar Movimento de Contas em Cobran�a por Empresa * * @author Rafael Corr�a * @date 17/04/2008 * * @param idRota * @param anoMesReferencia * @return boolean * @throws ControladorException */ @SuppressWarnings("unchecked") public void gerarMovimentoContasEmCobranca(ComandoEmpresaCobrancaConta comandoEmpresaCobrancaConta) throws ControladorException { try { boolean percentualInformado = false; EmpresaCobranca empresaCobranca = null; SistemaParametro sistemaParametros = getControladorUtil().pesquisarParametrosDoSistema(); Integer anoMesArrecadacaoInicio = sistemaParametros.getAnoMesArrecadacao(); Integer anoMesArrecadacaoFim = Util.somaMesAnoMesReferencia(sistemaParametros.getAnoMesArrecadacao(),36); FiltroEmpresaCobranca filtroEmpresaCobranca = new FiltroEmpresaCobranca(); filtroEmpresaCobranca.adicionarParametro(new ParametroSimples(FiltroEmpresaCobranca.EMPRESA_ID, comandoEmpresaCobrancaConta.getEmpresa().getId())); filtroEmpresaCobranca.adicionarParametro(new ParametroNulo(FiltroEmpresaCobranca.DATA_FIM_CONTRATO)); Collection colecaoEmpresaCobranca = getControladorUtil().pesquisar(filtroEmpresaCobranca, EmpresaCobranca.class.getName()); if (colecaoEmpresaCobranca != null && !colecaoEmpresaCobranca.isEmpty()) { empresaCobranca = (EmpresaCobranca) Util.retonarObjetoDeColecao(colecaoEmpresaCobranca); if (empresaCobranca.getPercentualContratoCobranca() != null){ percentualInformado = true; } } boolean continuarPesquisa = true; int numeroPagina = 0; Collection<Integer> idsImoveis = null; Collection<Integer> idsImoveisAtualizar = new ArrayList(); Collection collCobrancaSituacaoHistorico = new ArrayList(); Collection collImovelCobrancaSituacao = new ArrayList(); Collection<GerenciaRegional> collGerenciaRegional = new ArrayList(); Collection<UnidadeNegocio> collUnidadeNegocio = new ArrayList(); Collection<ImovelPerfil> collImovelPerfil = new ArrayList(); Collection<LigacaoAguaSituacao> collLigacaoAguaSituacao = new ArrayList(); ServicoTipo servicoTipo = null; ComandoEmpresaCobrancaContaHelper helper = new ComandoEmpresaCobrancaContaHelper(); helper.setComandoEmpresaCobrancaConta(comandoEmpresaCobrancaConta); FiltroComandoEmpresaCobrancaContaGerencia filtroComandoEmpresaCobrancaContaGerencia = new FiltroComandoEmpresaCobrancaContaGerencia(); filtroComandoEmpresaCobrancaContaGerencia.adicionarParametro(new ParametroSimples( FiltroComandoEmpresaCobrancaContaGerencia.ID_COMANDO_EMPRESA_COBRANCA_CONTA, comandoEmpresaCobrancaConta.getId())); Collection colecaoComandoEmpresaCobrancaContaGerencia = Fachada.getInstancia().pesquisar( filtroComandoEmpresaCobrancaContaGerencia, ComandoEmpresaCobrancaContaGerencia.class.getName()); if (colecaoComandoEmpresaCobrancaContaGerencia != null && !colecaoComandoEmpresaCobrancaContaGerencia.isEmpty()) { Iterator iterator = colecaoComandoEmpresaCobrancaContaGerencia.iterator(); while (iterator.hasNext()) { GerenciaRegional gerenciaRegional = (GerenciaRegional) iterator.next(); collGerenciaRegional.add(gerenciaRegional); } helper.setColecaoGerenciaRegional(collGerenciaRegional); } FiltroComandoEmpresaCobrancaContaUnidadeNegocio filtroComandoEmpresaCobrancaContaUnidadeNegocio = new FiltroComandoEmpresaCobrancaContaUnidadeNegocio(); filtroComandoEmpresaCobrancaContaUnidadeNegocio.adicionarParametro(new ParametroSimples( FiltroComandoEmpresaCobrancaContaUnidadeNegocio.ID_COMANDO_EMPRESA_COBRANCA_CONTA, comandoEmpresaCobrancaConta.getId())); Collection colecaoComandoEmpresaCobrancaContaUnidadeNegocio = Fachada.getInstancia().pesquisar( filtroComandoEmpresaCobrancaContaUnidadeNegocio, ComandoEmpresaCobrancaContaUnidadeNegocio.class.getName()); if (colecaoComandoEmpresaCobrancaContaUnidadeNegocio != null && !colecaoComandoEmpresaCobrancaContaUnidadeNegocio.isEmpty()) { Iterator iterator = colecaoComandoEmpresaCobrancaContaUnidadeNegocio.iterator(); while (iterator.hasNext()) { UnidadeNegocio unidadeNegocio = (UnidadeNegocio) iterator.next(); collUnidadeNegocio.add(unidadeNegocio); } helper.setColecaoUnidadeNegocio(collUnidadeNegocio); } FiltroComandoEmpresaCobrancaContaImovelPerfil filtroComandoEmpresaCobrancaContaImovelPerfil = new FiltroComandoEmpresaCobrancaContaImovelPerfil(); filtroComandoEmpresaCobrancaContaImovelPerfil.adicionarParametro(new ParametroSimples( FiltroComandoEmpresaCobrancaContaImovelPerfil.ID_COMANDO_EMPRESA_COBRANCA_CONTA, comandoEmpresaCobrancaConta.getId())); filtroComandoEmpresaCobrancaContaImovelPerfil.adicionarCaminhoParaCarregamentoEntidade("imovelPerfil"); Collection colecaoComandoEmpresaCobrancaContaImovelPerfil = Fachada.getInstancia().pesquisar( filtroComandoEmpresaCobrancaContaImovelPerfil, ComandoEmpresaCobrancaContaImovelPerfil.class.getName()); if (colecaoComandoEmpresaCobrancaContaImovelPerfil != null && !colecaoComandoEmpresaCobrancaContaImovelPerfil.isEmpty()) { Iterator iterator = colecaoComandoEmpresaCobrancaContaImovelPerfil.iterator(); while (iterator.hasNext()) { ComandoEmpresaCobrancaContaImovelPerfil comandoEmpresaCobrancaContaImovelPerfil = (ComandoEmpresaCobrancaContaImovelPerfil) iterator.next(); ImovelPerfil imovelPerfil = comandoEmpresaCobrancaContaImovelPerfil.getImovelPerfil(); collImovelPerfil.add(imovelPerfil); } helper.setColecaoImovelPerfil(collImovelPerfil); } FiltroCmdEmpresaCobrancaContaLigacaoAguaSituacao filtroCmdEmpresaCobrancaContaLigacaoAguaSituacao = new FiltroCmdEmpresaCobrancaContaLigacaoAguaSituacao(); filtroCmdEmpresaCobrancaContaLigacaoAguaSituacao.adicionarParametro(new ParametroSimples( FiltroCmdEmpresaCobrancaContaLigacaoAguaSituacao.ID_COMANDO_EMPRESA_COBRANCA_CONTA, comandoEmpresaCobrancaConta.getId())); filtroCmdEmpresaCobrancaContaLigacaoAguaSituacao.adicionarCaminhoParaCarregamentoEntidade(FiltroCmdEmpresaCobrancaContaLigacaoAguaSituacao.LIGACAO_AGUA_SITUACAO); Collection colecaoCmdEmpresaCobrancaContaLigacaoAguaSituacao = Fachada.getInstancia().pesquisar( filtroCmdEmpresaCobrancaContaLigacaoAguaSituacao, CmdEmpresaCobrancaContaLigacaoAguaSituacao.class.getName()); if (colecaoCmdEmpresaCobrancaContaLigacaoAguaSituacao != null && !colecaoCmdEmpresaCobrancaContaLigacaoAguaSituacao.isEmpty()) { Iterator iterator = colecaoCmdEmpresaCobrancaContaLigacaoAguaSituacao.iterator(); while (iterator.hasNext()) { CmdEmpresaCobrancaContaLigacaoAguaSituacao cmdEmpresaCobrancaContaLigacaoAguaSituacao = (CmdEmpresaCobrancaContaLigacaoAguaSituacao) iterator.next(); LigacaoAguaSituacao ligacaoAguaSituacao = cmdEmpresaCobrancaContaLigacaoAguaSituacao.getLigacaoAguaSituacao(); collLigacaoAguaSituacao.add(ligacaoAguaSituacao); } helper.setColecaoLigacaoAguaSituacao(collLigacaoAguaSituacao); } if (comandoEmpresaCobrancaConta.getServicoTipo() != null && comandoEmpresaCobrancaConta.getServicoTipo().getId() != null) { FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo.adicionarParametro(new ParametroSimples( FiltroServicoTipo.ID,comandoEmpresaCobrancaConta.getServicoTipo().getId() )); filtroServicoTipo.adicionarCaminhoParaCarregamentoEntidade( FiltroServicoTipo.SERVICO_TIPO_REFERENCIA); Collection colecaoServTipo = Fachada.getInstancia().pesquisar(filtroServicoTipo, ServicoTipo.class.getName()); if (colecaoServTipo != null && !colecaoServTipo.isEmpty()) { servicoTipo = (ServicoTipo) Util.retonarObjetoDeColecao(colecaoServTipo); } } while (continuarPesquisa) { idsImoveis = getControladorFaturamento() .pesquisarImoveisInformarContasEmCobranca( helper, numeroPagina, percentualInformado); if (idsImoveis != null && !idsImoveis.isEmpty()) { System.out.println("Cobran�a por Resultado - Quantidade de Im�veis do Comando " + comandoEmpresaCobrancaConta.getId() + ": " + idsImoveis.size()); if (idsImoveis.size() < 1000) { continuarPesquisa = false; } else { numeroPagina = numeroPagina + idsImoveis.size(); } Collection colecaoEmpresaCobrancaConta = new ArrayList(); Collection<Object[]> colecaoDadosEmpresaCobrancaConta = repositorioCobranca .pesquisarContasInformarContasEmCobranca( comandoEmpresaCobrancaConta, idsImoveis, sistemaParametros); if (colecaoDadosEmpresaCobrancaConta != null && !colecaoDadosEmpresaCobrancaConta.isEmpty()) { Map<Integer, Integer> imovelOS = new HashMap<Integer,Integer>(); for (Object[] dadosEmpresaCobrancaConta : colecaoDadosEmpresaCobrancaConta) { if (!percentualInformado && dadosEmpresaCobrancaConta != null && dadosEmpresaCobrancaConta[2] != null && ((Short)dadosEmpresaCobrancaConta[2]).equals(ConstantesSistema.NAO)) { continue; } EmpresaCobrancaConta empresaCobrancaConta = criarEmpresaCobrancaConta( dadosEmpresaCobrancaConta, comandoEmpresaCobrancaConta, empresaCobranca); if (dadosEmpresaCobrancaConta != null) { // imovel if (dadosEmpresaCobrancaConta[3] != null) { Integer idImovel = (Integer) dadosEmpresaCobrancaConta[3]; if (!idsImoveisAtualizar.contains(idImovel)) { CobrancaSituacaoHistorico cobrancaSituacaoHistorico = criarCobrancaSituacaoHistorico( idImovel, anoMesArrecadacaoInicio, anoMesArrecadacaoFim); collCobrancaSituacaoHistorico .add(cobrancaSituacaoHistorico); ImovelCobrancaSituacao imovelCobrancaSituacao = criarImovelCobrancaSituacao( idImovel, comandoEmpresaCobrancaConta); collImovelCobrancaSituacao .add(imovelCobrancaSituacao); idsImoveisAtualizar .add(empresaCobrancaConta .getImovel().getId()); // 2.1.19. Caso o comando tenha tipo de servi�o informado if (servicoTipo != null && servicoTipo.getId() != null) { Imovel imovel = new Imovel(); imovel.setId(new Integer(idImovel)); if (servicoTipo != null && servicoTipo.getId() != null) { UnidadeOrganizacional unidadeOrganizacional = Fachada.getInstancia(). pesquisarUnidadeOrganizacionalPorImovel(imovel.getId()); OrdemServico ordemServico = new OrdemServico(); ordemServico.setServicoTipo(servicoTipo); ordemServico.setImovel(imovel); ordemServico.setUnidadeAtual(unidadeOrganizacional); Integer idOS = Fachada.getInstancia().gerarOrdemServico( ordemServico, Usuario.USUARIO_BATCH, Funcionalidade.GERAR_MOVIMENTO_CONTAS_COBRANCA_POR_EMPRESA); imovelOS.put(idImovel, idOS); } } } } } if (imovelOS != null && !imovelOS.isEmpty() && imovelOS.get(empresaCobrancaConta.getImovel().getId()) != null) { OrdemServico ordemServico = new OrdemServico(); ordemServico.setId(imovelOS.get(empresaCobrancaConta.getImovel().getId())); empresaCobrancaConta.setOrdemServico(ordemServico); } colecaoEmpresaCobrancaConta .add(empresaCobrancaConta); } getControladorBatch().inserirColecaoObjetoParaBatch( colecaoEmpresaCobrancaConta); idsImoveis.clear(); idsImoveis = null; colecaoEmpresaCobrancaConta.clear(); colecaoEmpresaCobrancaConta = null; } else { continuarPesquisa = false; } }else{ continuarPesquisa = false; } } if (percentualInformado) { getControladorBatch().inserirColecaoObjetoParaBatch( collCobrancaSituacaoHistorico); } getControladorBatch().inserirColecaoObjetoParaBatch( collImovelCobrancaSituacao); Integer idCobSituacao = repositorioCobranca.pesquisarCobrancaSituacao( CobrancaSituacao.COBRANCA_EMPRESA_TERCEIRIZADA); if (idCobSituacao != null && idsImoveisAtualizar != null && !idsImoveisAtualizar.isEmpty()) { getControladorImovel().atualizarSituacaoCobrancaETipoIdsImoveis( idCobSituacao, CobrancaSituacaoTipo.COBRANCA_EMPRESA_TERCEIRIZADA, idsImoveisAtualizar); } } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } private EmpresaCobrancaConta criarEmpresaCobrancaConta(Object[] dadosEmpresaCobrancaConta, ComandoEmpresaCobrancaConta comandoEmpresaCobrancaConta, EmpresaCobranca empresaCobranca) throws ControladorException, ErroRepositorioException { EmpresaCobrancaConta retorno = new EmpresaCobrancaConta(); Integer idImovel = null; if (dadosEmpresaCobrancaConta != null) { // Id da Conta if (dadosEmpresaCobrancaConta[0] != null) { ContaGeral contaGeral = new ContaGeral(); contaGeral.setId((Integer) dadosEmpresaCobrancaConta[0]); retorno.setContaGeral(contaGeral); } // Valor Original da Conta if (dadosEmpresaCobrancaConta[1] != null) { retorno.setValorOriginalConta((BigDecimal) dadosEmpresaCobrancaConta[1]); } // Indicador Pagamento V�lido if (dadosEmpresaCobrancaConta[2] != null) { retorno.setIndicadorPagamentoValido((Short) dadosEmpresaCobrancaConta[2]); } // imovel if(dadosEmpresaCobrancaConta[3] != null) { Imovel imovel = new Imovel(); imovel.setId((Integer) dadosEmpresaCobrancaConta[3]); retorno.setImovel(imovel); idImovel = imovel.getId(); } } if (empresaCobranca != null) { if (empresaCobranca.getPercentualContratoCobranca() != null) { retorno.setPercentualEmpresaConta(empresaCobranca.getPercentualContratoCobranca()); } else { SistemaParametro sistemaParametros = getControladorUtil().pesquisarParametrosDoSistema(); Integer quantidadeContas = repositorioCobranca.pesquisarQuantidadeContasEmCobrancaPorImovel( comandoEmpresaCobrancaConta, idImovel, sistemaParametros); FiltroEmpresaCobrancaFaixa filtroEmpresaCobrancaFaixa = new FiltroEmpresaCobrancaFaixa(); filtroEmpresaCobrancaFaixa.adicionarParametro(new ParametroSimples( FiltroEmpresaCobrancaFaixa.EMPRESA_CONTRATO_COBRANCA_ID, empresaCobranca.getId())); List<EmpresaCobrancaFaixa> colecaoEmpresaCobrancaFaixa = (List<EmpresaCobrancaFaixa>)Fachada.getInstancia().pesquisar( filtroEmpresaCobrancaFaixa, EmpresaCobrancaFaixa.class.getName()); if (colecaoEmpresaCobrancaFaixa != null && !colecaoEmpresaCobrancaFaixa.isEmpty()) { for (int i = 0; i < colecaoEmpresaCobrancaFaixa.size(); i++) { EmpresaCobrancaFaixa empresaCobrancaFaixa = (EmpresaCobrancaFaixa) colecaoEmpresaCobrancaFaixa.get(i); Integer numeroMinimoContas = empresaCobrancaFaixa.getNumeroMinimoContasFaixa(); Integer numeroMaximoContas = null; if (i < (colecaoEmpresaCobrancaFaixa.size() - 1)) { numeroMaximoContas = ((EmpresaCobrancaFaixa) colecaoEmpresaCobrancaFaixa.get(i + 1)).getNumeroMinimoContasFaixa() - 1; } if (quantidadeContas >= numeroMinimoContas && (numeroMaximoContas == null || quantidadeContas <= numeroMaximoContas)) { retorno.setPercentualEmpresaConta(empresaCobrancaFaixa.getPercentualFaixa()); break; } } } } } retorno.setEmpresa(comandoEmpresaCobrancaConta.getEmpresa()); retorno.setComandoEmpresaCobrancaConta(comandoEmpresaCobrancaConta); retorno.setUltimaAlteracao(new Date()); return retorno; } private CobrancaSituacaoHistorico criarCobrancaSituacaoHistorico(Integer idImovel,Integer anoMesArrecadacaoInicio,Integer anoMesArrecadacaoFim){ CobrancaSituacaoHistorico cobrancaSituacaoHistorico = new CobrancaSituacaoHistorico(); Imovel imovel = new Imovel(); imovel.setId(idImovel); cobrancaSituacaoHistorico.setImovel(imovel); CobrancaSituacaoMotivo cobrancaSituacaoMotivo = new CobrancaSituacaoMotivo(); cobrancaSituacaoMotivo .setId(CobrancaSituacaoMotivo.IMOVEIS_ENVIADOS_EMPRESA_TERCEIRIZADA); cobrancaSituacaoHistorico .setCobrancaSituacaoMotivo(cobrancaSituacaoMotivo); CobrancaSituacaoTipo cobrancaSituacaoTipo = new CobrancaSituacaoTipo(); cobrancaSituacaoTipo .setId(CobrancaSituacaoTipo.COBRANCA_EMPRESA_TERCEIRIZADA); cobrancaSituacaoHistorico.setCobrancaSituacaoTipo(cobrancaSituacaoTipo); cobrancaSituacaoHistorico.setUltimaAlteracao(new Date()); cobrancaSituacaoHistorico .setAnoMesCobrancaSituacaoInicio(anoMesArrecadacaoInicio); cobrancaSituacaoHistorico .setAnoMesCobrancaSituacaoFim(anoMesArrecadacaoFim); cobrancaSituacaoHistorico.setUsuario(Usuario.USUARIO_BATCH); cobrancaSituacaoHistorico.setUsuarioInforma(Usuario.USUARIO_BATCH); return cobrancaSituacaoHistorico; } private ImovelCobrancaSituacao criarImovelCobrancaSituacao( Integer idImovel, ComandoEmpresaCobrancaConta comandoEmpresaCobrancaConta) throws ControladorException, ErroRepositorioException{ ImovelCobrancaSituacao imovelCobrancaSituacao = new ImovelCobrancaSituacao(); Imovel imovel = new Imovel(); imovel.setId(idImovel); imovelCobrancaSituacao.setImovel(imovel); imovelCobrancaSituacao.setDataImplantacaoCobranca(new Date()); imovelCobrancaSituacao.setUltimaAlteracao(new Date()); Integer idCobSituacao = repositorioCobranca.pesquisarCobrancaSituacao( CobrancaSituacao.COBRANCA_EMPRESA_TERCEIRIZADA); CobrancaSituacao cobrancaSituacao = new CobrancaSituacao(); cobrancaSituacao.setId(idCobSituacao); imovelCobrancaSituacao.setCobrancaSituacao(cobrancaSituacao); Cliente cliente = getControladorImovel().pesquisarClienteUsuarioImovel( imovelCobrancaSituacao.getImovel().getId()); imovelCobrancaSituacao.setCliente(cliente); return imovelCobrancaSituacao; } }