package gcom.seguranca.transacao; import gcom.atendimentopublico.ligacaoagua.CorteTipo; import gcom.atendimentopublico.ligacaoagua.FiltroCorteTipo; import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAgua; import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAguaSituacao; import gcom.atendimentopublico.ligacaoagua.FiltroMotivoCorte; import gcom.atendimentopublico.ligacaoagua.FiltroRamalLocalInstalacao; import gcom.atendimentopublico.ligacaoagua.FiltroSupressaoTipo; import gcom.atendimentopublico.ligacaoagua.LigacaoAgua; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao; import gcom.atendimentopublico.ligacaoagua.MotivoCorte; import gcom.atendimentopublico.ligacaoagua.RamalLocalInstalacao; import gcom.atendimentopublico.ligacaoagua.SupressaoTipo; import gcom.atendimentopublico.ligacaoesgoto.FiltroLigacaoEsgotoSituacao; import gcom.atendimentopublico.ligacaoesgoto.LigacaoEsgotoSituacao; import gcom.atendimentopublico.ordemservico.FiltroSupressaoMotivo; import gcom.atendimentopublico.ordemservico.SupressaoMotivo; import gcom.atendimentopublico.registroatendimento.ControladorRegistroAtendimentoLocal; import gcom.atendimentopublico.registroatendimento.ControladorRegistroAtendimentoLocalHome; import gcom.atendimentopublico.registroatendimento.FiltroSolicitacaoTipoEspecificacao; import gcom.atendimentopublico.registroatendimento.MeioSolicitacao; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao; import gcom.atualizacaocadastral.IRepositorioAtualizacaoCadastral; import gcom.atualizacaocadastral.RepositorioAtualizacaoCadastralHBM; import gcom.cadastro.IRepositorioCadastro; import gcom.cadastro.RepositorioCadastroHBM; import gcom.cadastro.atualizacaocadastral.bean.ColunaAtualizacaoCadastral; import gcom.cadastro.atualizacaocadastral.bean.ConsultarMovimentoAtualizacaoCadastralHelper; import gcom.cadastro.atualizacaocadastral.bean.DadosTabelaAtualizacaoCadastralHelper; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.cliente.ClienteFone; import gcom.cadastro.cliente.ClienteImovel; import gcom.cadastro.cliente.ClienteRelacaoTipo; import gcom.cadastro.cliente.ClienteTipo; import gcom.cadastro.cliente.ControladorClienteLocal; import gcom.cadastro.cliente.ControladorClienteLocalHome; import gcom.cadastro.cliente.FiltroClienteRelacaoTipo; import gcom.cadastro.cliente.FiltroClienteTipo; import gcom.cadastro.cliente.FiltroFoneTipo; import gcom.cadastro.cliente.FiltroProfissao; import gcom.cadastro.cliente.FiltroRamoAtividade; import gcom.cadastro.cliente.FoneTipo; import gcom.cadastro.cliente.Profissao; import gcom.cadastro.cliente.RamoAtividade; import gcom.cadastro.endereco.EnderecoReferencia; import gcom.cadastro.endereco.EnderecoTipo; import gcom.cadastro.endereco.FiltroEnderecoReferencia; import gcom.cadastro.endereco.FiltroEnderecoTipo; import gcom.cadastro.imovel.CadastroOcorrencia; import gcom.cadastro.imovel.ControladorImovelLocal; import gcom.cadastro.imovel.ControladorImovelLocalHome; import gcom.cadastro.imovel.FiltroCadastroOcorrencia; import gcom.cadastro.imovel.FiltroFonteAbastecimento; import gcom.cadastro.imovel.FonteAbastecimento; import gcom.cadastro.imovel.Imovel; import gcom.fachada.Fachada; import gcom.gui.cadastro.atualizacaocadastral.FiltrarAlteracaoAtualizacaoCadastralActionHelper; import gcom.interceptor.ControleAlteracao; import gcom.interceptor.Interceptador; import gcom.interceptor.ObjetoTransacao; import gcom.micromedicao.hidrometro.FiltroHidrometroCapacidade; import gcom.micromedicao.hidrometro.FiltroHidrometroLocalInstalacao; import gcom.micromedicao.hidrometro.FiltroHidrometroMarca; import gcom.micromedicao.hidrometro.FiltroHidrometroProtecao; import gcom.micromedicao.hidrometro.HidrometroCapacidade; import gcom.micromedicao.hidrometro.HidrometroLocalInstalacao; import gcom.micromedicao.hidrometro.HidrometroMarca; import gcom.micromedicao.hidrometro.HidrometroProtecao; import gcom.seguranca.AtributoGrupo; import gcom.seguranca.IRepositorioSeguranca; import gcom.seguranca.RepositorioSegurancaHBM; import gcom.seguranca.acesso.FiltroOperacao; import gcom.seguranca.acesso.FiltroOperacaoTabela; import gcom.seguranca.acesso.Operacao; import gcom.seguranca.acesso.OperacaoEfetuada; import gcom.seguranca.acesso.OperacaoOrdemExibicao; import gcom.seguranca.acesso.OperacaoTabela; import gcom.seguranca.acesso.OperacaoTabelaPK; import gcom.seguranca.acesso.usuario.FiltroUsuarioAlteracao; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioAcaoUsuarioHelper; import gcom.seguranca.acesso.usuario.UsuarioAlteracao; import gcom.util.ConstantesJNDI; import gcom.util.ControladorException; import gcom.util.ControladorUtilLocal; import gcom.util.ControladorUtilLocalHome; import gcom.util.ErroRepositorioException; import gcom.util.HibernateUtil; import gcom.util.ServiceLocator; import gcom.util.ServiceLocatorException; import gcom.util.SistemaException; import gcom.util.Util; import gcom.util.filtro.Filtro; import gcom.util.filtro.ParametroSimples; import java.lang.annotation.Annotation; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.Hashtable; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import javax.ejb.CreateException; import javax.ejb.SessionBean; import javax.ejb.SessionContext; import org.apache.commons.lang.StringUtils; /** * Defini��o da l�gica de neg�cio do Session Bean de ControladorCliente * * @author S�vio Luiz * @created 25 de Abril de 2005 */ public class ControladorTransacaoSEJB implements SessionBean { private static final long serialVersionUID = 1L; private IRepositorioTransacao repositorioTransacao = null; private IRepositorioCadastro repositorioCadastro = null; private IRepositorioAtualizacaoCadastral repositorioAtualizacaoCadastral = null; private IRepositorioSeguranca repositorioSeguranca = null; SessionContext sessionContext; /** * < <Descri��o do m�todo>> * * @exception CreateException * Descri��o da exce��o */ public void ejbCreate() throws CreateException { repositorioTransacao = RepositorioTransacaoHBM.getInstancia(); repositorioCadastro = RepositorioCadastroHBM.getInstancia(); repositorioAtualizacaoCadastral = RepositorioAtualizacaoCadastralHBM.getInstancia(); repositorioSeguranca = RepositorioSegurancaHBM.getInstancia(); } /** * < <Descri��o do m�todo>> */ public void ejbRemove() { } /** * < <Descri��o do m�todo>> */ public void ejbActivate() { } /** * < <Descri��o do m�todo>> */ public void ejbPassivate() { } /** * Seta o valor de sessionContext * * @param sessionContext * O novo valor de sessionContext */ public void setSessionContext(SessionContext sessionContext) { this.sessionContext = sessionContext; } /** * Retorna o valor de controladorUtil * * @return O valor de controladorUtil */ private ControladorUtilLocal getControladorUtil() { ControladorUtilLocalHome localHome = null; ControladorUtilLocal local = null; // pega a inst�ncia do ServiceLocator. 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); } } /** * Retorna o valor de controladorCliente * * @return O valor de controladorImovel */ protected ControladorClienteLocal getControladorCliente() { ControladorClienteLocalHome localHome = null; ControladorClienteLocal local = null; // pega a inst�ncia do ServiceLocator. ServiceLocator locator = null; try { locator = ServiceLocator.getInstancia(); localHome = (ControladorClienteLocalHome) locator .getLocalHome(ConstantesJNDI.CONTROLADOR_CLIENTE_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); } } /** * Retorna o valor de controladorImovel * * @return O valor de controladorImovel */ private ControladorImovelLocal getControladorImovel() { ControladorImovelLocalHome localHome = null; ControladorImovelLocal local = null; // pega a inst�ncia do ServiceLocator. 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); } } /** * Retorna o valor de controladorRegistroAtendimento * */ private ControladorRegistroAtendimentoLocal getControladorRegistroAtendimento() { ControladorRegistroAtendimentoLocalHome localHome = null; ControladorRegistroAtendimentoLocal local = null; ServiceLocator locator = null; try { locator = ServiceLocator.getInstancia(); localHome = (ControladorRegistroAtendimentoLocalHome) locator .getLocalHome(ConstantesJNDI.CONTROLADOR_REGISTRO_ATENDIMENTO_SEJB); local = localHome.create(); return local; } catch (CreateException e) { throw new SistemaException(e); } catch (ServiceLocatorException e) { throw new SistemaException(e); } } /** * M�todo que consulta os usuario alteracao de uma determinada operacao com * as restricoes passadas * * @param idOperacao * @param idUsuario * @param dataInicial * @param dataFinal * @param horaInicial * @param hotaFinal * @param idTabela * @param idTabelaColuna * @param id1 * * @return * @throws ControladorException * * @author thiago toscano * @date 17/02/2006 */ public Collection pesquisarUsuarioAlteracaoDasOperacoesEfetuadas( Integer idUsuarioAcao, Integer idOperacao, Integer idUsuario, Date dataInicial, Date dataFinal, Date horaInicial, Date horaFinal, Hashtable<String,String> argumentos, Integer id1, String unidadeNegocio) throws ControladorException { try { if (null == idUsuarioAcao && null == idOperacao && null == idUsuario && null == dataInicial && null == dataFinal && null == horaInicial && null == horaFinal && null == argumentos && null == id1) { throw new ControladorException( "atencao.filtro.nenhum_parametro_informado"); } Collection coll = repositorioTransacao .pesquisarUsuarioAlteracaoDasOperacoesEfetuadas( idUsuarioAcao, idOperacao, idUsuario, dataInicial, dataFinal, horaInicial, horaFinal, argumentos, id1, unidadeNegocio); /* * Collection coll = * repositorioTransacao.pesquisarUsuarioAlteracaoDasOperacoesEfetuadasHql(idUsuarioAcao, * idOperacao, idUsuario, dataInicial, dataFinal, horaInicial, * horaFinal, idTabela, idTabelaColuna,id1, numeroPagina); */ // para todas as operacoes efetuadas carregar a lista de // usuariosAlteracao if (coll != null && !coll.isEmpty()) { Iterator it = coll.iterator(); while (it.hasNext()) { OperacaoEfetuada operacaoEfetuada = (OperacaoEfetuada) it .next(); Set set = new HashSet(); operacaoEfetuada.setUsuarioAlteracoes(set); // criando o filtrtro para consultar os usuarios FiltroUsuarioAlteracao filtroUsuarioAlteracao = new FiltroUsuarioAlteracao(); filtroUsuarioAlteracao .adicionarCaminhoParaCarregamentoEntidade(FiltroUsuarioAlteracao.USUARIO); filtroUsuarioAlteracao .adicionarCaminhoParaCarregamentoEntidade(FiltroUsuarioAlteracao.USUARIO_ACAO); filtroUsuarioAlteracao .adicionarCaminhoParaCarregamentoEntidade(FiltroUsuarioAlteracao.USUARIO_TIPO); filtroUsuarioAlteracao .adicionarParametro(new ParametroSimples( FiltroUsuarioAlteracao.OPERACAO_EFETUADA_ID, operacaoEfetuada.getId())); Collection usuarioalteracoes = getControladorUtil() .pesquisar(filtroUsuarioAlteracao, UsuarioAlteracao.class.getSimpleName()); // para todos os usuarios colocar na lista if (usuarioalteracoes != null && !usuarioalteracoes.isEmpty()) { Iterator itt = usuarioalteracoes.iterator(); while (itt.hasNext()) { set.add(itt.next()); } } } } return coll; } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * M�todo que consulta os usuario alteracao de uma determinada operacao com * as restricoes passadas * * @param idOperacao * @param idUsuario * @param dataInicial * @param dataFinal * @param horaInicial * @param hotaFinal * @param idTabela * @param idTabelaColuna * @param id1 * * @return * @throws ControladorException * * @author Romulo Aurelio * @date 11/05/2007 */ public Collection pesquisarUsuarioAlteracaoDasOperacoesEfetuadasHql( Integer idUsuarioAcao, String[] idOperacoes, String idUsuario, Date dataInicial, Date dataFinal, Date horaInicial, Date horaFinal, Hashtable<String,String> argumentos, Integer id1, Integer numeroPagina, String unidadeNegocio) throws ControladorException { try { if (null == idUsuarioAcao && null == idUsuario && null == dataInicial && null == dataFinal && null == horaInicial && null == horaFinal && null == argumentos && null == id1) { throw new ControladorException( "atencao.filtro.nenhum_parametro_informado"); } /* * Collection coll = * repositorioTransacao.pesquisarUsuarioAlteracaoDasOperacoesEfetuadas(idUsuarioAcao, * idOperacao, idUsuario, dataInicial, dataFinal, horaInicial, * horaFinal, idTabela, idTabelaColuna,id1); */ Collection coll = repositorioTransacao .pesquisarUsuarioAlteracaoDasOperacoesEfetuadasHql( idUsuarioAcao, idOperacoes, idUsuario, dataInicial, dataFinal, horaInicial, horaFinal, argumentos, id1, numeroPagina,unidadeNegocio); // para todas as operacoes efetuadas carregar a lista de // usuariosAlteracao if (coll != null && !coll.isEmpty()) { Iterator it = coll.iterator(); while (it.hasNext()) { OperacaoEfetuada operacaoEfetuada = (OperacaoEfetuada) it .next(); Set set = new HashSet(); operacaoEfetuada.setUsuarioAlteracoes(set); // criando o filtrtro para consultar os usuarios FiltroUsuarioAlteracao filtroUsuarioAlteracao = new FiltroUsuarioAlteracao(); filtroUsuarioAlteracao .adicionarCaminhoParaCarregamentoEntidade(FiltroUsuarioAlteracao.USUARIO); filtroUsuarioAlteracao .adicionarCaminhoParaCarregamentoEntidade(FiltroUsuarioAlteracao.USUARIO_ACAO); filtroUsuarioAlteracao .adicionarCaminhoParaCarregamentoEntidade(FiltroUsuarioAlteracao.USUARIO_TIPO); filtroUsuarioAlteracao .adicionarParametro(new ParametroSimples( FiltroUsuarioAlteracao.OPERACAO_EFETUADA_ID, operacaoEfetuada.getId())); Collection usuarioalteracoes = getControladorUtil() .pesquisar(filtroUsuarioAlteracao, UsuarioAlteracao.class.getSimpleName()); // para todos os usuarios colocar na lista if (usuarioalteracoes != null && !usuarioalteracoes.isEmpty()) { Iterator itt = usuarioalteracoes.iterator(); while (itt.hasNext()) { set.add(itt.next()); } } } } return coll; } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * M�todo que consulta os usuario alteracao de uma determinada operacao com * as restricoes passadas * * @param idOperacao * @param idUsuario * @param dataInicial * @param dataFinal * @param horaInicial * @param hotaFinal * @param idTabela * @param idTabelaColuna * @param id1 * * @return * @throws ControladorException * * @author Romulo Aurelio * @date 11/05/2007 */ public Collection pesquisarUsuarioAlteracaoDasOperacoesEfetuadasHqlRelatorio( Integer idUsuarioAcao, String[] idOperacoes, String idUsuario, Date dataInicial, Date dataFinal, Date horaInicial, Date horaFinal, Hashtable<String,String> argumentos, Integer id1, String unidadeNegocio) throws ControladorException { try { if (null == idUsuarioAcao && null == idUsuario && null == dataInicial && null == dataFinal && null == horaInicial && null == horaFinal && null == argumentos && null == id1) { throw new ControladorException( "atencao.filtro.nenhum_parametro_informado"); } /* * Collection coll = * repositorioTransacao.pesquisarUsuarioAlteracaoDasOperacoesEfetuadas(idUsuarioAcao, * idOperacao, idUsuario, dataInicial, dataFinal, horaInicial, * horaFinal, idTabela, idTabelaColuna,id1); */ Collection coll = repositorioTransacao .pesquisarUsuarioAlteracaoDasOperacoesEfetuadasHqlRelatorio( idUsuarioAcao, idOperacoes, idUsuario, dataInicial, dataFinal, horaInicial, horaFinal, argumentos, id1, unidadeNegocio); // para todas as operacoes efetuadas carregar a lista de // usuariosAlteracao if (coll != null && !coll.isEmpty()) { Iterator it = coll.iterator(); while (it.hasNext()) { OperacaoEfetuada operacaoEfetuada = (OperacaoEfetuada) it .next(); Set set = new HashSet(); operacaoEfetuada.setUsuarioAlteracoes(set); // criando o filtrtro para consultar os usuarios FiltroUsuarioAlteracao filtroUsuarioAlteracao = new FiltroUsuarioAlteracao(); filtroUsuarioAlteracao .adicionarCaminhoParaCarregamentoEntidade(FiltroUsuarioAlteracao.USUARIO); filtroUsuarioAlteracao .adicionarCaminhoParaCarregamentoEntidade(FiltroUsuarioAlteracao.USUARIO_ACAO); filtroUsuarioAlteracao .adicionarCaminhoParaCarregamentoEntidade(FiltroUsuarioAlteracao.USUARIO_TIPO); filtroUsuarioAlteracao .adicionarParametro(new ParametroSimples( FiltroUsuarioAlteracao.OPERACAO_EFETUADA_ID, operacaoEfetuada.getId())); Collection usuarioalteracoes = getControladorUtil() .pesquisar(filtroUsuarioAlteracao, UsuarioAlteracao.class.getSimpleName()); // para todos os usuarios colocar na lista if (usuarioalteracoes != null && !usuarioalteracoes.isEmpty()) { Iterator itt = usuarioalteracoes.iterator(); while (itt.hasNext()) { set.add(itt.next()); } } } } return coll; } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } } /** * M�todo que registra uma operacao ao sistema * * @param operacaoEfetuada * @param tabelaLinhaAlteracao * @param tabelaLinhaColunaAlteracoes * @throws ControladorException */ public void inserirOperacaoEfetuada(Collection usuariosAcaoUsuarioHelp, OperacaoEfetuada operacaoEfetuada, TabelaLinhaAlteracao tabelaLinhaAlteracao, Collection<TabelaLinhaColunaAlteracao> tabelaLinhaColunaAlteracoes) throws ControladorException { // caso a operacaoEfetuada for nula // Nao ocorre pq o intercepto levanta execao caso nao tenha if (operacaoEfetuada == null) { operacaoEfetuada = new OperacaoEfetuada(); } // caso a operacao da operacaoEfetuada for nula // Nao ocorre pq o interceptador levanta excecao caso nao tenha if (operacaoEfetuada.getOperacao() == null) { Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_AVISO_BANCARIO_ATUALIZAR); operacaoEfetuada.setOperacao(operacao); } // caso nao tenha id � pq nao foi adicionado if (operacaoEfetuada.getId() == null) { operacaoEfetuada.setUltimaAlteracao(new Date(System .currentTimeMillis())); Integer idOperacaoEfetuada = (Integer) getControladorUtil().inserirOuAtualizar(operacaoEfetuada); operacaoEfetuada.setId(idOperacaoEfetuada); if (usuariosAcaoUsuarioHelp != null && !usuariosAcaoUsuarioHelp.isEmpty()) { Iterator it = usuariosAcaoUsuarioHelp.iterator(); while (it.hasNext()) { UsuarioAcaoUsuarioHelper usuarioAcaoUsuarioHelp = (UsuarioAcaoUsuarioHelper) it .next(); UsuarioAlteracao usuarioAteracao = new UsuarioAlteracao(); usuarioAteracao.setOperacaoEfetuada(operacaoEfetuada); usuarioAteracao.setUltimaAlteracao(new Date(System.currentTimeMillis())); usuarioAteracao.setUsuario(usuarioAcaoUsuarioHelp.getUsuario()); usuarioAteracao.setUsuarioAcao(usuarioAcaoUsuarioHelp.getUsuarioAcao()); usuarioAteracao.setEmpresa(usuarioAcaoUsuarioHelp.getUsuario().getEmpresa()); usuarioAteracao.setIpAlteracao(usuarioAcaoUsuarioHelp.getUsuario().getIpLogado()); getControladorUtil().inserir(usuarioAteracao); } } // Inserir tabela linha alteracao principal -> usada para conseguir recuperar dados do objeto principal } else if (operacaoEfetuada.getDadosAdicionais() != null){ getControladorUtil().atualizar(operacaoEfetuada); } if (tabelaLinhaAlteracao != null) { tabelaLinhaAlteracao.setUltimaAlteracao(new Date(System.currentTimeMillis())); tabelaLinhaAlteracao.setOperacaoEfetuada(operacaoEfetuada); getControladorUtil().inserir(tabelaLinhaAlteracao); FiltroOperacaoTabela filtroOperacaoTabela = new FiltroOperacaoTabela(); filtroOperacaoTabela.adicionarParametro( new ParametroSimples( FiltroOperacaoTabela.TABELA_ID, tabelaLinhaAlteracao .getTabela().getId())); filtroOperacaoTabela.adicionarParametro(new ParametroSimples( FiltroOperacaoTabela.OPERACAO_ID, operacaoEfetuada .getOperacao().getId())); Collection coll = getControladorUtil().pesquisar( filtroOperacaoTabela, OperacaoTabela.class.getSimpleName()); if (coll == null || coll.isEmpty()) { OperacaoTabelaPK pk = new OperacaoTabelaPK(); pk.setOperacaoId(operacaoEfetuada.getOperacao().getId()); pk.setTabelaId(tabelaLinhaAlteracao.getTabela().getId()); OperacaoTabela operacaoTabela = new OperacaoTabela(); operacaoTabela.setComp_id(pk); operacaoTabela.setOperacao(operacaoEfetuada.getOperacao()); operacaoTabela.setTabela(tabelaLinhaAlteracao.getTabela()); getControladorUtil().inserir(operacaoTabela); } if (tabelaLinhaColunaAlteracoes != null && !tabelaLinhaColunaAlteracoes.isEmpty()) { Iterator it = tabelaLinhaColunaAlteracoes.iterator(); while (it.hasNext()) { TabelaLinhaColunaAlteracao tabelaLinhaColunaAlteracao = (TabelaLinhaColunaAlteracao) it .next(); tabelaLinhaColunaAlteracao .setTabelaLinhaAlteracao(tabelaLinhaAlteracao); tabelaLinhaColunaAlteracao.setUltimaAlteracao(new Date( System.currentTimeMillis())); getControladorUtil().inserir(tabelaLinhaColunaAlteracao); } } } } /** * M�todo que registra uma operacao ao sistema sem utilizacao do Interceptador Hibernate * * @param operacaoEfetuada * @param tabelaLinhaAlteracao * @param tabelaLinhaColunaAlteracoes * @throws ControladorException * @author Anderson Italo * @date 02/06/2009 */ public void inserirOperacaoEfetuadaBurlandoInterceptador(UsuarioAcaoUsuarioHelper usuarioAcaoUsuarioHelper, OperacaoEfetuada operacaoEfetuada, TabelaLinhaAlteracao tabelaLinhaAlteracao, Collection<TabelaLinhaColunaAlteracao> tabelaLinhaColunaAlteracoes) throws ControladorException { // caso a operacaoEfetuada for nula // Nao ocorre pq o intercepto levanta execao caso nao tenha if (operacaoEfetuada == null) { operacaoEfetuada = new OperacaoEfetuada(); } // caso nao tenha id � pq nao foi adicionado if (operacaoEfetuada.getId() == null) { operacaoEfetuada.setUltimaAlteracao(new Date(System .currentTimeMillis())); Integer idOperacaoEfetuada = (Integer) getControladorUtil().inserirOuAtualizar(operacaoEfetuada); operacaoEfetuada.setId(idOperacaoEfetuada); if (usuarioAcaoUsuarioHelper != null) { UsuarioAlteracao usuarioAteracao = new UsuarioAlteracao(); usuarioAteracao.setOperacaoEfetuada(operacaoEfetuada); usuarioAteracao.setUltimaAlteracao(new Date(System .currentTimeMillis())); usuarioAteracao.setUsuario(usuarioAcaoUsuarioHelper .getUsuario()); usuarioAteracao.setUsuarioAcao(usuarioAcaoUsuarioHelper .getUsuarioAcao()); usuarioAteracao.setEmpresa(usuarioAcaoUsuarioHelper .getUsuario().getEmpresa()); getControladorUtil().inserir(usuarioAteracao); } } if (tabelaLinhaAlteracao != null) { tabelaLinhaAlteracao.setUltimaAlteracao(new Date(System .currentTimeMillis())); tabelaLinhaAlteracao.setOperacaoEfetuada(operacaoEfetuada); getControladorUtil().inserir(tabelaLinhaAlteracao); FiltroOperacaoTabela filtroOperacaoTabela = new FiltroOperacaoTabela(); filtroOperacaoTabela.adicionarParametro(new ParametroSimples( FiltroOperacaoTabela.TABELA_ID, tabelaLinhaAlteracao .getTabela().getId())); filtroOperacaoTabela.adicionarParametro(new ParametroSimples( FiltroOperacaoTabela.OPERACAO_ID, operacaoEfetuada .getOperacao().getId())); Collection coll = getControladorUtil().pesquisar( filtroOperacaoTabela, OperacaoTabela.class.getSimpleName()); if (coll == null || coll.isEmpty()) { OperacaoTabelaPK pk = new OperacaoTabelaPK(); pk.setOperacaoId(operacaoEfetuada.getOperacao().getId()); pk.setTabelaId(tabelaLinhaAlteracao.getTabela().getId()); OperacaoTabela operacaoTabela = new OperacaoTabela(); operacaoTabela.setComp_id(pk); operacaoTabela.setOperacao(operacaoEfetuada.getOperacao()); operacaoTabela.setTabela(tabelaLinhaAlteracao.getTabela()); getControladorUtil().inserir(operacaoTabela); } if (tabelaLinhaColunaAlteracoes != null && !tabelaLinhaColunaAlteracoes.isEmpty()) { Iterator it = tabelaLinhaColunaAlteracoes.iterator(); while (it.hasNext()) { TabelaLinhaColunaAlteracao tabelaLinhaColunaAlteracao = (TabelaLinhaColunaAlteracao) it .next(); tabelaLinhaColunaAlteracao .setTabelaLinhaAlteracao(tabelaLinhaAlteracao); tabelaLinhaColunaAlteracao.setUltimaAlteracao(new Date( System.currentTimeMillis())); if (tabelaLinhaAlteracao.getAlteracaoTipo().getId() == AlteracaoTipo.INCLUSAO && tabelaLinhaColunaAlteracao.getConteudoColunaAtual() != null){ getControladorUtil().inserir(tabelaLinhaColunaAlteracao); }else if (tabelaLinhaAlteracao.getAlteracaoTipo().getId() == AlteracaoTipo.EXCLUSAO && tabelaLinhaColunaAlteracao.getConteudoColunaAnterior() != null){ getControladorUtil().inserir(tabelaLinhaColunaAlteracao); } } } } } /** * Metodo utilizado para efetuar o registro de transacao de um objeto helper * @author Anderson Italo * @date 08/06/2009 * * @param usuario * @param idTipoAlteracao * @param objetoHelper * @param operacaoEfetuada * @param idTabela * @throws SecurityException * @throws NoSuchMethodException * @throws IllegalArgumentException * @throws IllegalAccessException * @throws InvocationTargetException */ public void processaRegistroOperacaoObjetohelper(UsuarioAcaoUsuarioHelper usuario, Integer idTipoAlteracao, ObjetoTransacao objetoHelper, OperacaoEfetuada operacaoEfetuada, Integer idTabela) { AlteracaoTipo alteracaoTipo = new AlteracaoTipo(); alteracaoTipo.setId(idTipoAlteracao); Tabela tabela = new Tabela(); tabela.setId(idTabela); TabelaLinhaAlteracao tabelaLinhaAuteracao = new TabelaLinhaAlteracao(); tabelaLinhaAuteracao.setAlteracaoTipo(alteracaoTipo); tabelaLinhaAuteracao.setTabela(tabela); Collection<TabelaLinhaColunaAlteracao> colecaoTabelaLinhaColunaAlteracao = null; try { colecaoTabelaLinhaColunaAlteracao = pesquisarTabelaLinhaColunaAlteracoes(objetoHelper, tabelaLinhaAuteracao, objetoHelper.retornarAtributosSelecionadosRegistro(), alteracaoTipo.getId()); } catch (SecurityException e1) { e1.printStackTrace(); } catch (IllegalArgumentException e1) { e1.printStackTrace(); } catch (NoSuchMethodException e1) { e1.printStackTrace(); } catch (IllegalAccessException e1) { e1.printStackTrace(); } catch (InvocationTargetException e1) { e1.printStackTrace(); } if (colecaoTabelaLinhaColunaAlteracao != null && !colecaoTabelaLinhaColunaAlteracao.isEmpty()){ try { inserirOperacaoEfetuadaBurlandoInterceptador(usuario, operacaoEfetuada, tabelaLinhaAuteracao, colecaoTabelaLinhaColunaAlteracao); } catch (ControladorException e) { e.printStackTrace(); } } } /** * @author Anderson Italo * @date 08/06/2009 * * @param objetoHelper * @param tabelaLinhaAlteracao * @param colecaoNomesAtributos * @param idAlteracaoTipo * @return * @throws SecurityException * @throws NoSuchMethodException * @throws IllegalArgumentException * @throws IllegalAccessException * @throws InvocationTargetException */ private Collection pesquisarTabelaLinhaColunaAlteracoes(ObjetoTransacao objetoHelper, TabelaLinhaAlteracao tabelaLinhaAlteracao, String [] colecaoNomesAtributos, Integer idAlteracaoTipo) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException{ Collection<TabelaLinhaColunaAlteracao> colecaoRetorno = new ArrayList<TabelaLinhaColunaAlteracao>(); String nomeMetodo=""; Method metodo = null; for (int i = 0; i < colecaoNomesAtributos.length; i++) { nomeMetodo = "get"; Object[] args = {colecaoNomesAtributos[i]}; Class[] tipos = {String.class}; int idTabelaColuna = 0; Object retornoMetodo = null; metodo = objetoHelper.getClass().getMethod(nomeMetodo, tipos); retornoMetodo = metodo.invoke(objetoHelper, args); if (retornoMetodo!= null){ try { Annotation annotations[] = objetoHelper.getClass().getDeclaredField(colecaoNomesAtributos[i]).getAnnotations(); for (int j = 0; j < annotations.length; j++) { if (annotations[j] instanceof ControleAlteracao){ ControleAlteracao controleAlteracao = (ControleAlteracao) annotations[j]; idTabelaColuna = controleAlteracao.idTabelaColuna(); } } } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } TabelaColuna tabelaColuna = new TabelaColuna(); tabelaColuna.setId(idTabelaColuna); TabelaLinhaColunaAlteracao tabelaLinhaColunaAlteracao = new TabelaLinhaColunaAlteracao(); if (retornoMetodo instanceof ObjetoTransacao){ if (AlteracaoTipo.INCLUSAO == idAlteracaoTipo.intValue()){ tabelaLinhaColunaAlteracao.setConteudoColunaAtual(Interceptador.consultarDescricao(retornoMetodo)); }else{ tabelaLinhaColunaAlteracao.setConteudoColunaAnterior(Interceptador.consultarDescricao(retornoMetodo)); } } tabelaLinhaColunaAlteracao.setIndicadorAtualizada(new Integer(1).shortValue()); tabelaLinhaColunaAlteracao.setTabelaColuna(tabelaColuna); tabelaLinhaColunaAlteracao.setTabelaLinhaAlteracao(tabelaLinhaAlteracao); colecaoRetorno.add(tabelaLinhaColunaAlteracao); } } return colecaoRetorno; } /** * * Registrar Transacao - Inserir operacao efetuada * @author anamaria * @date 12/05/2009 * * @param usuariosAcaoUsuarioHelp * @param operacaoEfetuada * @param tabelaAtualizacaoCadastral * @param colecaoTabelaColunaAtualizacaoCadastral * @throws ControladorException */ public void inserirOperacaoEfetuadaAtualizacaoCadastral(Collection usuariosAcaoUsuarioHelp, OperacaoEfetuada operacaoEfetuada, TabelaAtualizacaoCadastral tabelaAtualizacaoCadastral, Collection<TabelaColunaAtualizacaoCadastral> colecaoTabelaColunaAtualizacaoCadastral) throws ControladorException { // caso a operacaoEfetuada for nula // Nao ocorre pq o intercepto levanta execao caso nao tenha if (operacaoEfetuada == null) { operacaoEfetuada = new OperacaoEfetuada(); } // caso nao tenha id � pq nao foi adicionado if (operacaoEfetuada.getId() == null) { operacaoEfetuada.setUltimaAlteracao(new Date(System .currentTimeMillis())); Integer idOperacaoEfetuada = (Integer) getControladorUtil().inserirOuAtualizar(operacaoEfetuada); operacaoEfetuada.setId(idOperacaoEfetuada); if (usuariosAcaoUsuarioHelp != null && !usuariosAcaoUsuarioHelp.isEmpty()) { Iterator it = usuariosAcaoUsuarioHelp.iterator(); while (it.hasNext()) { UsuarioAcaoUsuarioHelper usuarioAcaoUsuarioHelp = (UsuarioAcaoUsuarioHelper) it .next(); UsuarioAlteracao usuarioAteracao = new UsuarioAlteracao(); usuarioAteracao.setOperacaoEfetuada(operacaoEfetuada); usuarioAteracao.setUltimaAlteracao(new Date(System .currentTimeMillis())); usuarioAteracao.setUsuario(usuarioAcaoUsuarioHelp .getUsuario()); usuarioAteracao.setUsuarioAcao(usuarioAcaoUsuarioHelp .getUsuarioAcao()); usuarioAteracao.setEmpresa(usuarioAcaoUsuarioHelp .getUsuario().getEmpresa()); getControladorUtil().inserir(usuarioAteracao); } } // Inserir tabela linha alteracao principal -> usada para conseguir recuperar dados do objeto principal } else if (operacaoEfetuada.getDadosAdicionais() != null){ getControladorUtil().atualizar(operacaoEfetuada); } if (tabelaAtualizacaoCadastral != null) { tabelaAtualizacaoCadastral.setUltimaAlteracao(new Date(System .currentTimeMillis())); tabelaAtualizacaoCadastral.setOperacaoEfetuada(operacaoEfetuada); getControladorUtil().inserir(tabelaAtualizacaoCadastral); FiltroOperacaoTabela filtroOperacaoTabela = new FiltroOperacaoTabela(); filtroOperacaoTabela.adicionarParametro(new ParametroSimples( FiltroOperacaoTabela.TABELA_ID, tabelaAtualizacaoCadastral .getTabela().getId())); filtroOperacaoTabela.adicionarParametro(new ParametroSimples( FiltroOperacaoTabela.OPERACAO_ID, operacaoEfetuada .getOperacao().getId())); Collection coll = getControladorUtil().pesquisar( filtroOperacaoTabela, OperacaoTabela.class.getSimpleName()); if (coll == null || coll.isEmpty()) { OperacaoTabelaPK pk = new OperacaoTabelaPK(); pk.setOperacaoId(operacaoEfetuada.getOperacao().getId()); pk.setTabelaId(tabelaAtualizacaoCadastral.getTabela().getId()); OperacaoTabela operacaoTabela = new OperacaoTabela(); operacaoTabela.setComp_id(pk); operacaoTabela.setOperacao(operacaoEfetuada.getOperacao()); operacaoTabela.setTabela(tabelaAtualizacaoCadastral.getTabela()); getControladorUtil().inserir(operacaoTabela); } if (colecaoTabelaColunaAtualizacaoCadastral != null && !colecaoTabelaColunaAtualizacaoCadastral.isEmpty()) { Iterator it = colecaoTabelaColunaAtualizacaoCadastral.iterator(); while (it.hasNext()) { TabelaColunaAtualizacaoCadastral tabelaColunaAtualizacaoCadastral= (TabelaColunaAtualizacaoCadastral) it .next(); // Pesquisando o objeto de TabelaColuna TabelaColuna tabelaColuna = tabelaColunaAtualizacaoCadastral.getTabelaColuna(); if (tabelaColuna != null && tabelaColuna.getColuna() != null) { FiltroTabelaColuna filtroTabelaColuna = new FiltroTabelaColuna(); filtroTabelaColuna.adicionarParametro(new ParametroSimples(FiltroTabelaColuna.TABELA_ID, tabelaAtualizacaoCadastral .getTabela().getId())); filtroTabelaColuna.adicionarParametro(new ParametroSimples(FiltroTabelaColuna.COLUNA, tabelaColuna.getColuna())); Collection collTabelaColuna = this.getControladorUtil().pesquisar(filtroTabelaColuna, TabelaColuna.class.getSimpleName()); if (collTabelaColuna != null && !collTabelaColuna.isEmpty()) { tabelaColuna = (TabelaColuna) collTabelaColuna.iterator().next(); } tabelaColunaAtualizacaoCadastral.setTabelaColuna(tabelaColuna); } tabelaColunaAtualizacaoCadastral .setTabelaAtualizacaoCadastral(tabelaAtualizacaoCadastral); tabelaColunaAtualizacaoCadastral.setUltimaAlteracao(new Date()); getControladorUtil().inserir(tabelaColunaAtualizacaoCadastral); } } } } public Integer pesquisarUsuarioAlteracaoDasOperacoesEfetuadasHqlCount( Integer idUsuarioAcao,String[] idOperacoes, String idUsuario, Date dataInicial, Date dataFinal, Date horaInicial, Date horaFinal, Hashtable<String,String> argumentos, Integer id1, String unidadeNegocio) throws ControladorException { Integer retorno = null; try { retorno = (Integer) repositorioTransacao .pesquisarUsuarioAlteracaoDasOperacoesEfetuadasHqlCount( idUsuarioAcao, idOperacoes, idUsuario, dataInicial, dataFinal, horaInicial, horaFinal, argumentos, id1, unidadeNegocio); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } return retorno; } /** * Registrar * @param objetoTransacao * @throws ControladorException */ public void registrarTransacao(ObjetoTransacao objetoTransacao) throws ControladorException { if (objetoTransacao.retornarAtributosSelecionadosRegistro() == null){ sessionContext.setRollbackOnly(); // Este m�todo s� deve ser chamado caso tenha sido definida // a cole��o de atributos selecionados para o registro da transacao throw new ControladorException("erro.sistema"); } Interceptador.getInstancia().verificarObjetoAlterado(objetoTransacao, objetoTransacao.retornarAtributosSelecionadosRegistro()); } /** * Registrar transacao para um conjunto de atributos especificos * * @param objetoTransacao * @throws ControladorException * @author Francisco do Nascimento * @date 11/08/09 */ public void registrarTransacao(ObjetoTransacao objetoTransacao, String[] atributos) throws ControladorException { if (atributos == null){ sessionContext.setRollbackOnly(); // Este m�todo s� deve ser chamado caso tenha sido definida // a cole��o de atributos selecionados para o registro da transacao throw new ControladorException("erro.sistema"); } Interceptador.getInstancia().verificarObjetoAlterado(objetoTransacao, atributos); } public HashMap consultarResumoInformacoesOperacaoEfetuada(OperacaoEfetuada operacaoEfetuada, int idItemAnalisado){ FiltroOperacao filtroOperacao = new FiltroOperacao(); filtroOperacao.adicionarCaminhoParaCarregamentoEntidade( FiltroOperacao.ARGUMENTO_PESQUISA); filtroOperacao.adicionarCaminhoParaCarregamentoEntidade( FiltroOperacao.ARGUMENTO_PESQUISA_TABELA); filtroOperacao.adicionarParametro(new ParametroSimples(FiltroOperacao.ID, operacaoEfetuada.getOperacao().getId())); Collection coll = Fachada.getInstancia().pesquisar(filtroOperacao, Operacao.class.getSimpleName()); Operacao operacao = (Operacao) coll.iterator().next(); // Consultando dados para o preenchimento das informa��es do item HashMap<String, Object> dados = new HashMap<String,Object>(); try { // Tabela principal da operacao efetuada � considerada ser a tabela do argumento de pesquisa if (operacao.getArgumentoPesquisa() != null){ String nomeTabela = operacao.getArgumentoPesquisa().getTabela().getNomeTabela(); String nomeClasse = HibernateUtil.getClassName(nomeTabela); Object instancia = Class.forName(nomeClasse).newInstance(); if (instancia instanceof ObjetoTransacao){ ObjetoTransacao objTran = (ObjetoTransacao) instancia; objTran.set("id",Integer.class, idItemAnalisado); Filtro filtro = objTran.retornaFiltro(); Collection objs = getControladorUtil().pesquisar(filtro, nomeClasse); if(objs.iterator().hasNext()){ objTran = (ObjetoTransacao) objs.iterator().next(); String[] atributos = objTran.retornarAtributosInformacoesOperacaoEfetuada(); String[] labels = objTran.retornarLabelsInformacoesOperacaoEfetuada(); for (int i = 0; i < atributos.length; i++) { dados.put(labels[i], objTran.get(atributos[i])); } } } } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ControladorException e) { e.printStackTrace(); } return dados; } public void ordenarTabelaLinhaColunaAlteracao(Collection linhas, int idOperacao) throws ControladorException { int[] idTCs = new int[linhas.size()]; int i = 0; for (Iterator iter = linhas.iterator(); iter.hasNext();) { TabelaLinhaColunaAlteracao tlca = (TabelaLinhaColunaAlteracao) iter.next(); idTCs[i++] = tlca.getTabelaColuna().getId(); } Collection ordem = null; try{ ordem = repositorioTransacao.pesquisarOperacaoOrdemExibicao(idTCs, idOperacao); } catch (ErroRepositorioException ex) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", ex); } final Map mapOrdem = new HashMap(); Iterator iterOrdem = ordem.iterator(); while (iterOrdem.hasNext()) { OperacaoOrdemExibicao opOrdem = (OperacaoOrdemExibicao) iterOrdem.next(); mapOrdem.put(opOrdem.getTabelaColuna().getId(), opOrdem.getNumeroOrdem()); // idTabcoluna e ordem } // Ordenador pelo Id da tabela para agrupar os itens atualizados class ComparadorTLCA implements Comparator { public int compare(Object obj1, Object obj2){ TabelaLinhaColunaAlteracao tlca1 = (TabelaLinhaColunaAlteracao) obj1; TabelaLinhaColunaAlteracao tlca2 = (TabelaLinhaColunaAlteracao) obj2; if (obj1 instanceof TabelaLinhaColunaAlteracao && obj2 instanceof TabelaLinhaColunaAlteracao){ int idTab1 = tlca1.getTabelaLinhaAlteracao().getId(); int idTab2 = tlca2.getTabelaLinhaAlteracao().getId(); int dif = idTab2 - idTab1; if (dif == 0){ Object ordem = mapOrdem.get(tlca1.getTabelaColuna().getId()); int i1 = 999; if (ordem != null){ i1 = ((Integer) ordem).intValue(); } ordem = mapOrdem.get(tlca2.getTabelaColuna().getId()); int i2 = 999; if (ordem != null){ i2 = ((Integer) ordem).intValue(); } dif = i1 - i2; } return dif; } else { return 0; } } } Collections.sort((List)linhas, new ComparadorTLCA()); } /** * Pesquisa a quantidade de registros na tabela de Opera��o Efetuada * para os argumentos passados. * * @author Yara Taciane * @date 15/07/2008 * * @param idOperacao * @param argumentoValor * @return * @throws ErroRepositorioException */ public Integer pesquisarOperacaoEfetuada(Integer idOperacao, Integer argumentoValor,Integer id2)throws ControladorException{ Integer retorno = null; try { retorno = repositorioTransacao .pesquisarOperacaoEfetuada(idOperacao,argumentoValor,id2); } catch (ErroRepositorioException e) { e.printStackTrace(); } return retorno; } /** * * Pesquisa os registros na TabelaLinhaColunaAlteracao para o argumento passado. * * @author Yara Taciane * @date 15/07/2008 * * @param idTabelaColuna * @return * @throws ErroRepositorioException */ public Integer pesquisarTabelaLinhaColunaAlteracao(Integer idObjetoAlterado, Integer idTabelaColuna)throws ControladorException{ Integer retorno = null; try { retorno = repositorioTransacao .pesquisarTabelaLinhaColunaAlteracao(idObjetoAlterado, idTabelaColuna); } catch (ErroRepositorioException e) { e.printStackTrace(); } return retorno; } public Map<String, List<DadosTabelaAtualizacaoCadastralHelper>> consultarDadosTabelaColunaAtualizacaoCadastral(Long idRegistroAlterado, Integer idArquivo, Integer idImovel, Long idCliente, Integer idTipoAlteracao) throws Exception { Map<String, List<DadosTabelaAtualizacaoCadastralHelper>> retorno = new HashMap<String, List<DadosTabelaAtualizacaoCadastralHelper>>(); DadosTabelaAtualizacaoCadastralHelper helper = null; List listaDados = repositorioTransacao.consultarDadosTabelaColunaAtualizacaoCadastral(idRegistroAlterado, idArquivo, idImovel, idCliente, idTipoAlteracao); if (listaDados.size() > 0) { Object obj = null; Object[] dados = null; for (int i = 0; i < listaDados.size(); i++) { obj = listaDados.get(i); if (obj instanceof Object[]) { dados = (Object[]) obj; helper = new DadosTabelaAtualizacaoCadastralHelper(); helper.setIdTabelaAtualizacaoCadastral((Integer) dados[0]); helper.setIdTabela((Integer) dados[1]); helper.setDescricaoTabela((String) dados[2]); if (dados[14] != null) { helper.setDescricaoTabela(helper.getDescricaoTabela() + " " + String.valueOf(dados[14])); helper.setComplemento(String.valueOf(dados[14])); } helper.setIdTabelaColuna((Integer) dados[3]); helper.setDescricaoColuna((String) dados[4]); helper.setIdTabelaColunaAtualizacaoCadastral((Integer) dados[5]); if (dados[6] != null && !dados[6].equals("")) { String campoAnterior = getDescricaoCampoAtualizacaoCadastral((String) dados[6], (String) dados[12]); if (campoAnterior != null) { helper.setColunaValorAnterior(campoAnterior); } else { helper.setColunaValorAnterior((String) dados[6]); } } if (dados[7] != null && !dados[7].equals("")) { String campoAtual = getDescricaoCampoAtualizacaoCadastral((String) dados[7], (String) dados[12]); if (campoAtual != null) { helper.setColunaValorAtual(campoAtual); } else { helper.setColunaValorAtual((String) dados[7]); } } helper.setNomeColuna((String) dados[12]); helper.setIndicadorAutorizado((Short) dados[8]); helper.setUltimaAtualizacao((Date) dados[9]); helper.setIdAlteracaoTipo((Integer) dados[10]); helper.setDescricaoAlteracaoTipo((String) dados[11]); if (dados[13] != null) { helper.setDataValidacao((Date) dados[13]); } if (dados[15] != null) { helper.setNomeUsuario((String) dados[15]); } List<DadosTabelaAtualizacaoCadastralHelper> alteracoes = retorno.get(helper.getNomeColuna()); if (alteracoes == null){ alteracoes = new ArrayList<DadosTabelaAtualizacaoCadastralHelper>(); retorno.put(helper.getNomeColuna(), alteracoes); } alteracoes.add(helper); } } } return retorno; } private String getDescricaoCampoAtualizacaoCadastral(String campo, String coluna) throws ControladorException { String retorno = null; if(coluna != null && !coluna.equals("") && StringUtils.isNotEmpty(campo)){ if(coluna.equals("last_id")){ FiltroLigacaoAguaSituacao filtroLigacaoAguaSituacao = new FiltroLigacaoAguaSituacao(); filtroLigacaoAguaSituacao.adicionarParametro(new ParametroSimples(FiltroLigacaoAguaSituacao.ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroLigacaoAguaSituacao, LigacaoAguaSituacao.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { LigacaoAguaSituacao ligacaoAguaSituacao = (LigacaoAguaSituacao) Util.retonarObjetoDeColecao(pesquisa); retorno = ligacaoAguaSituacao.getDescricao(); } }else if(coluna.equals("lest_id")){ FiltroLigacaoEsgotoSituacao filtroLigacaoEsgotoSituacao = new FiltroLigacaoEsgotoSituacao(); filtroLigacaoEsgotoSituacao.adicionarParametro(new ParametroSimples(FiltroLigacaoEsgotoSituacao.ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroLigacaoEsgotoSituacao, LigacaoEsgotoSituacao.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { LigacaoEsgotoSituacao ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao) Util.retonarObjetoDeColecao(pesquisa); retorno = ligacaoEsgotoSituacao.getDescricao(); } }else if(coluna.equals("ftab_id")){ FiltroFonteAbastecimento filtroFonteAbastecimento = new FiltroFonteAbastecimento(); filtroFonteAbastecimento.adicionarParametro(new ParametroSimples(FiltroFonteAbastecimento.ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroFonteAbastecimento, FonteAbastecimento.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { FonteAbastecimento fonteAbastecimento = (FonteAbastecimento) Util.retonarObjetoDeColecao(pesquisa); retorno = fonteAbastecimento.getDescricao(); } }else if(coluna.equals("crtp_id")){ FiltroClienteRelacaoTipo filtroClienteRelacaoTipo = new FiltroClienteRelacaoTipo(); filtroClienteRelacaoTipo.adicionarParametro(new ParametroSimples(FiltroClienteRelacaoTipo.CLIENTE_RELACAO_TIPO_ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroClienteRelacaoTipo, ClienteRelacaoTipo.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { ClienteRelacaoTipo clienteRelacaoTipo = (ClienteRelacaoTipo) Util.retonarObjetoDeColecao(pesquisa); retorno = clienteRelacaoTipo.getDescricao(); } }else if(coluna.equals("cltp_id")){ FiltroClienteTipo filtroClienteTipo = new FiltroClienteTipo(); filtroClienteTipo.adicionarParametro(new ParametroSimples(FiltroClienteTipo.ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroClienteTipo, ClienteTipo.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { ClienteTipo clienteTipo = (ClienteTipo) Util.retonarObjetoDeColecao(pesquisa); retorno = clienteTipo.getDescricao(); } }else if(coluna.equals("prof_id")){ FiltroProfissao filtroProfissao = new FiltroProfissao(); filtroProfissao.adicionarParametro(new ParametroSimples(FiltroProfissao.ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroProfissao, Profissao.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { Profissao profissao = (Profissao) Util.retonarObjetoDeColecao(pesquisa); retorno = profissao.getDescricao(); } }else if(coluna.equals("ratv_id")){ FiltroRamoAtividade filtroRamoAtividade = new FiltroRamoAtividade(); filtroRamoAtividade.adicionarParametro(new ParametroSimples(FiltroRamoAtividade.ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroRamoAtividade, RamoAtividade.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { RamoAtividade ramoAtividade = (RamoAtividade) Util.retonarObjetoDeColecao(pesquisa); retorno = ramoAtividade.getDescricao(); } }else if(coluna.equals("edtp_id")){ FiltroEnderecoTipo filtroEnderecoTipo = new FiltroEnderecoTipo(); filtroEnderecoTipo.adicionarParametro(new ParametroSimples(FiltroEnderecoTipo.ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroEnderecoTipo, EnderecoTipo.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { EnderecoTipo enderecoTipo = (EnderecoTipo) Util.retonarObjetoDeColecao(pesquisa); retorno = enderecoTipo.getDescricao(); } }else if(coluna.equals("edrf_id")){ FiltroEnderecoReferencia filtroEnderecoReferencia = new FiltroEnderecoReferencia(); filtroEnderecoReferencia.adicionarParametro(new ParametroSimples(FiltroEnderecoReferencia.ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroEnderecoReferencia, EnderecoReferencia.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { EnderecoReferencia enderecoReferencia = (EnderecoReferencia) Util.retonarObjetoDeColecao(pesquisa); retorno = enderecoReferencia.getDescricao(); } }else if(coluna.equals("fnet_id")){ FiltroFoneTipo filtroFoneTipo = new FiltroFoneTipo(); filtroFoneTipo.adicionarParametro(new ParametroSimples(FiltroFoneTipo.ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroFoneTipo, FoneTipo.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { FoneTipo foneTipo = (FoneTipo) Util.retonarObjetoDeColecao(pesquisa); retorno = foneTipo.getDescricao(); } }else if(coluna.equals("cocr_id")){ FiltroCadastroOcorrencia filtroCadastroOcorrencia = new FiltroCadastroOcorrencia(); filtroCadastroOcorrencia.adicionarParametro(new ParametroSimples(FiltroCadastroOcorrencia.ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroCadastroOcorrencia, CadastroOcorrencia.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { CadastroOcorrencia cadastroOcorrencia = (CadastroOcorrencia) Util.retonarObjetoDeColecao(pesquisa); retorno = cadastroOcorrencia.getDescricao(); } } else if (coluna.equals("hicp_id")) { FiltroHidrometroCapacidade filtroHidrometroCapacidade = new FiltroHidrometroCapacidade(); filtroHidrometroCapacidade.adicionarParametro(new ParametroSimples(FiltroHidrometroCapacidade.ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroHidrometroCapacidade, HidrometroCapacidade.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { HidrometroCapacidade hidrometroCapacidade = (HidrometroCapacidade) Util.retonarObjetoDeColecao(pesquisa); retorno = hidrometroCapacidade.getDescricao(); } } else if (coluna.equals("himc_id")) { FiltroHidrometroMarca filtroHidrometroMarca = new FiltroHidrometroMarca(); filtroHidrometroMarca.adicionarParametro(new ParametroSimples(FiltroHidrometroMarca.ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroHidrometroMarca, HidrometroMarca.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { HidrometroMarca hidrometroMarca = (HidrometroMarca) Util.retonarObjetoDeColecao(pesquisa); retorno = hidrometroMarca.getDescricao(); } } else if (coluna.equals("hili_id")) { FiltroHidrometroLocalInstalacao filtroHidrometroLocalInstalacao = new FiltroHidrometroLocalInstalacao(); filtroHidrometroLocalInstalacao.adicionarParametro(new ParametroSimples(FiltroHidrometroLocalInstalacao.ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroHidrometroLocalInstalacao, HidrometroLocalInstalacao.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { HidrometroLocalInstalacao hidrometroLocalInstalacao = (HidrometroLocalInstalacao) Util.retonarObjetoDeColecao(pesquisa); retorno = hidrometroLocalInstalacao.getDescricao(); } } else if (coluna.equals("hipr_id")) { FiltroHidrometroProtecao filtroHidrometroProtecao = new FiltroHidrometroProtecao(); filtroHidrometroProtecao.adicionarParametro(new ParametroSimples(FiltroHidrometroProtecao.ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroHidrometroProtecao, HidrometroProtecao.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { HidrometroProtecao hidrometroProtecao = (HidrometroProtecao) Util.retonarObjetoDeColecao(pesquisa); retorno = hidrometroProtecao.getDescricao(); } } else if (coluna.equals("rlin_id")) { FiltroRamalLocalInstalacao filtroRamalLocalInstalacao = new FiltroRamalLocalInstalacao(); filtroRamalLocalInstalacao.adicionarParametro(new ParametroSimples(FiltroRamalLocalInstalacao.ID, campo)); Collection pesquisa = getControladorUtil().pesquisar(filtroRamalLocalInstalacao, RamalLocalInstalacao.class.getName()); if (pesquisa != null && !pesquisa.isEmpty()) { RamalLocalInstalacao ramalLocalInstalacao = (RamalLocalInstalacao) Util.retonarObjetoDeColecao(pesquisa); retorno = ramalLocalInstalacao.getDescricao(); } } } return retorno; } public Collection<ConsultarMovimentoAtualizacaoCadastralHelper> pesquisarMovimentoAtualizacaoCadastral(FiltrarAlteracaoAtualizacaoCadastralActionHelper helper)throws ControladorException { Collection<ConsultarMovimentoAtualizacaoCadastralHelper> retorno = null; try { retorno = repositorioTransacao.pesquisarMovimentoAtualizacaoCadastral(helper); Map<String, String> descricoes = new HashMap<String, String>(); String nomeColuna = ""; String valorCampo = ""; for (ConsultarMovimentoAtualizacaoCadastralHelper item : retorno) { List<ColunaAtualizacaoCadastral> colunas = item.getColunasAtualizacao(); for (ColunaAtualizacaoCadastral coluna : colunas) { nomeColuna = coluna.getNomeColuna(); valorCampo = coluna.getValorAnterior(); valorCampo = trocaValorColuna(descricoes, nomeColuna, valorCampo); coluna.setValorAnterior(valorCampo); valorCampo = coluna.getValorAtual(); valorCampo = trocaValorColuna(descricoes, nomeColuna, valorCampo); coluna.setValorAtual(valorCampo); } } } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } return retorno; } private String trocaValorColuna(Map<String, String> descricoes, String nomeColuna, String valorCampo) throws ControladorException { if (StringUtils.isNotEmpty(valorCampo)) { if (descricoes.get(nomeColuna + valorCampo) != null) { valorCampo = descricoes.get(nomeColuna + valorCampo); } else { String descricao = getDescricaoCampoAtualizacaoCadastral(valorCampo, nomeColuna); if (descricao != null) { valorCampo = descricao; descricoes.put(nomeColuna + valorCampo, valorCampo); } } } return valorCampo; } public void atualizarIndicadorAutorizacaoColunaAtualizacaoCadastral( Integer idImovel, String[] idsAtualizacaoCadastral, Short indicador, Usuario usuarioLogado) throws ControladorException { try { Integer tipoAlteracaoCadastral = null; for (int i = 0; i < idsAtualizacaoCadastral.length; i++) { Integer idAtualizacaoCadastral = new Integer(idsAtualizacaoCadastral[i]); this.repositorioTransacao.atualizarIndicadorAutorizacaoColunaAtualizacaoCadastral( idAtualizacaoCadastral, indicador, usuarioLogado); if(tipoAlteracaoCadastral == null) { TabelaColunaAtualizacaoCadastral tabelaColunaAtualizacaoCadastral = this.repositorioTransacao.pesquisarTabelaColunaAtualizacaoCadastral(idAtualizacaoCadastral); tipoAlteracaoCadastral = tabelaColunaAtualizacaoCadastral.getTabelaAtualizacaoCadastral().getAlteracaoTipo().getId(); } } boolean existePendencia = repositorioTransacao.existeAlteracaoNaoAprovadaParaImovel(idImovel); if (!existePendencia){ repositorioCadastro.liberarCadastroImovel(idImovel); repositorioAtualizacaoCadastral.liberarCadastroImovel(idImovel); repositorioSeguranca.autorizarAtualizacaoCadastral(idImovel); } } catch (ErroRepositorioException e) { sessionContext.setRollbackOnly(); throw new ControladorException("erro.sistema", e); } } public void atualizarIndicadorAutorizacaoTabelaAtualizacaoCadastral( Integer idArgumento, Short indicador)throws ControladorException { try { this.repositorioTransacao.atualizarIndicadorAutorizacaoTabelaAtualizacaoCadastral(idArgumento, indicador); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } public void pesquisarRegistroAutorizadoTabelaAtualizacaoCadastral( String idEmpresa, String idArquivo, String idLeiturista) throws ControladorException { try { List listaRegistros = repositorioTransacao.pesquisarRegistroAutorizadoTabelaAtualizacaoCadastral(idEmpresa, idArquivo, idLeiturista); if (listaRegistros.size() > 0) { Object obj = null; Object[] dados = null; for (int i = 0; i < listaRegistros.size(); i++) { obj = listaRegistros.get(i); if (obj instanceof Object[]) { dados = (Object[]) obj; if(dados[1].equals(Tabela.IMOVEL_ATUALIZACAO_CADASTRAL)){ }else if(dados[1].equals(Tabela.CLIENTE_ATUALIZACAO_CADASTRAL)){ List listaColuna = repositorioTransacao.pesquisarRegistroAutorizadoTabelaColunaAtualizacaoCadastral((Integer) dados[2]); if(listaColuna.size() > 0){ Iterator listaColunaIter = listaColuna.iterator(); while (listaColunaIter.hasNext()) { Object[] coluna = (Object[]) listaColunaIter.next(); if(coluna[0].equals("clac_nnimovel")){ } } } }else if(dados[1].equals(Tabela.CLIENTE_FONE_ATUALIZACAO_CADASTRAL)){ List listaColuna = repositorioTransacao.pesquisarRegistroAutorizadoTabelaColunaAtualizacaoCadastral((Integer) dados[2]); if(listaColuna.size() > 0){ ClienteFone clienteFone = new ClienteFone(); Iterator listaColunaIter = listaColuna.iterator(); while (listaColunaIter.hasNext()) { Object[] coluna = (Object[]) listaColunaIter.next(); if(dados[3].equals(AlteracaoTipo.ALTERACAO)){ }else if(dados[3].equals(AlteracaoTipo.INCLUSAO)){ Cliente cliente = new Cliente(); cliente.setId((Integer)dados[0]); clienteFone.setCliente(cliente); if(coluna[0].equals("fnet_id")){ FoneTipo foneTipo = new FoneTipo(); foneTipo.setId((Integer)coluna[1]); clienteFone.setFoneTipo(foneTipo); } if(coluna[0].equals("cfac_cdddd")){ FoneTipo foneTipo = new FoneTipo(); foneTipo.setId((Integer)coluna[1]); clienteFone.setFoneTipo(foneTipo); } if(coluna[0].equals("cfac_nnfone")){ FoneTipo foneTipo = new FoneTipo(); foneTipo.setId((Integer)coluna[1]); clienteFone.setFoneTipo(foneTipo); } if(coluna[0].equals("cfac_nnfoneramal")){ FoneTipo foneTipo = new FoneTipo(); foneTipo.setId((Integer)coluna[1]); clienteFone.setFoneTipo(foneTipo); } } } } }else if(dados[1].equals(Tabela.IMOVEL_SUBCATEGORIA_ATUALIZACAO_CADASTRAL)){ } } } } } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } /** * @author Genival barbosa * @date 27/07/2009 * * @param idAtualizacaoCadastral * @param indicador * @throws ControladorException */ public void atualizarIndicadorAutorizacaoAtualizacaoCadastral( Integer idAtualizacaoCadastral, Short indicador) throws ControladorException { try { this.repositorioTransacao.atualizarIndicadorAutorizacaoAtualizacaoCadastral(idAtualizacaoCadastral, indicador); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } /** * CRC2103 - [FS0026] - Verificar existencia de operacao inserir/manter cliente pendente de atualizacao do imovel. * * @author Ivan Sergio * @date 24/07/2009 * * @param idImovel * @param colecaoClientes * @throws ControladorException */ public void verificarAtualizarOperacaoPendente( Integer idImovel, Collection colecaoClientes, Integer idUsuario) throws ControladorException { Integer idGrupoAtributo = null; try { if (colecaoClientes != null && !colecaoClientes.isEmpty()) { Iterator iColecaoCliente = colecaoClientes.iterator(); while (iColecaoCliente.hasNext()) { ClienteImovel clienteImovel = (ClienteImovel) iColecaoCliente.next(); Integer idOperacaoEfetuada = (Integer) repositorioTransacao.verificarOperacaoPendente( clienteImovel.getCliente().getId(), idUsuario); if (idOperacaoEfetuada != null) { if (clienteImovel.getClienteRelacaoTipo().getId().equals(new Integer(ClienteRelacaoTipo.PROPRIETARIO))) { idGrupoAtributo = AtributoGrupo.ATRIBUTOS_DO_PROPRIETARIO; }else if (clienteImovel.getClienteRelacaoTipo().getId().equals(new Integer(ClienteRelacaoTipo.USUARIO))) { idGrupoAtributo = AtributoGrupo.ATRIBUTOS_DO_USUARIO; }else { idGrupoAtributo = null; } repositorioTransacao.atualizarOperacaoEfetuadaPendente(idOperacaoEfetuada, idGrupoAtributo); repositorioTransacao.atualizarTabelaLinhaAlteracaoPendente(idOperacaoEfetuada, idImovel); } } } } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } /** * @author Ana Maria * @date 17/12/2009 * * @param codigoImovel * @param codigoCliente * @throws ErroRepositorioException */ public void atualizarClienteRelacaoTipoAtualizacaoCadastral(Integer codigoImovel, Integer codigoCliente) throws ControladorException { try{ this.repositorioTransacao.atualizarClienteRelacaoTipoAtualizacaoCadastral(codigoImovel, codigoCliente); } catch (ErroRepositorioException e) { throw new ControladorException("erro.sistema", e); } } /** * [[UC1165] - Confirmar Altera��es Cadastrais * * @author S�vio Luiz * @date 24/05/2011 * * @return * @throws ErroRepositorioException */ public boolean atualizaSituacaoLigacaoAguaImovel(Imovel imovel,Integer idCliente, Integer situacaoLigacaoAnterior,Integer situacaoLigacaoAtual, Usuario usuarioLogado) throws ControladorException{ boolean alterouSituacaoLigacao = false; //caso a situa��o anterior seja igual Ligado if(situacaoLigacaoAnterior.equals(LigacaoAguaSituacao.LIGADO)){ //caso a situa��o atual seja igual a Potencial ou Factivel if(situacaoLigacaoAtual.equals(LigacaoAguaSituacao.FACTIVEL)){ alterouSituacaoLigacao = true; }else{ //pesquisa a liga��o de �gua FiltroLigacaoAgua filtroLigacaoAgua = new FiltroLigacaoAgua(); filtroLigacaoAgua.adicionarParametro(new ParametroSimples(FiltroLigacaoAgua.ID, imovel.getId())); Collection colecaoLigacaoAgua = getControladorUtil().pesquisar(filtroLigacaoAgua, LigacaoAgua.class.getName()); LigacaoAgua ligacaoAgua = (LigacaoAgua) Util.retonarObjetoDeColecao(colecaoLigacaoAgua); //caso a liga��o de �gua seja diferente de nulo if(ligacaoAgua != null){ // se a situa��o da liga��o atual for igual a cortado if(situacaoLigacaoAtual.equals(LigacaoAguaSituacao.CORTADO)){ //atualiza os dados de corte da liga��o de �gua ligacaoAgua.setDataCorte(new Date()); FiltroMotivoCorte filtroMotivoCorte = new FiltroMotivoCorte(); filtroMotivoCorte.adicionarParametro(new ParametroSimples(FiltroMotivoCorte.ID, MotivoCorte.ATUALIZACAO_CADASTRAL)); Collection colecaoMotivoCorte = getControladorUtil().pesquisar(filtroMotivoCorte, MotivoCorte.class.getName()); MotivoCorte motivoCorte = (MotivoCorte) Util.retonarObjetoDeColecao(colecaoMotivoCorte); ligacaoAgua.setMotivoCorte(motivoCorte); FiltroCorteTipo filtroCorteTipo = new FiltroCorteTipo(); filtroCorteTipo.adicionarParametro(new ParametroSimples(FiltroCorteTipo.ID, CorteTipo.RAMAL_ID)); Collection colecaoCorteTipo = getControladorUtil().pesquisar(filtroCorteTipo, CorteTipo.class.getName()); CorteTipo corteTipo = (CorteTipo) Util.retonarObjetoDeColecao(colecaoCorteTipo); ligacaoAgua.setCorteTipo(corteTipo); ligacaoAgua.setUltimaAlteracao(new Date()); getControladorUtil().atualizar(ligacaoAgua); alterouSituacaoLigacao = true; } // se a situa��o da liga��o atual for igual a cortado if(situacaoLigacaoAtual.equals(LigacaoAguaSituacao.SUPRIMIDO)){ //atualiza os dados de corte da liga��o de �gua ligacaoAgua.setDataSupressao(new Date()); FiltroSupressaoMotivo filtroSupressaoMotivo = new FiltroSupressaoMotivo(); filtroSupressaoMotivo.adicionarParametro(new ParametroSimples(FiltroSupressaoMotivo.ID, SupressaoMotivo.ATUALIZACAO_CADASTRAL)); Collection colecaoSupressaoMotivo = getControladorUtil().pesquisar(filtroSupressaoMotivo, SupressaoMotivo.class.getName()); SupressaoMotivo supressaoMotivo = (SupressaoMotivo) Util.retonarObjetoDeColecao(colecaoSupressaoMotivo); ligacaoAgua.setSupressaoMotivo(supressaoMotivo); FiltroSupressaoTipo filtroSupressaoTipo = new FiltroSupressaoTipo(); filtroSupressaoTipo.adicionarParametro(new ParametroSimples(FiltroSupressaoTipo.ID, SupressaoTipo.SUPRESSAO_TIPO_ID)); Collection colecaoSupressaoTipo = getControladorUtil().pesquisar(filtroSupressaoTipo, SupressaoTipo.class.getName()); SupressaoTipo supressaoTipo = (SupressaoTipo) Util.retonarObjetoDeColecao(colecaoSupressaoTipo); ligacaoAgua.setSupressaoTipo(supressaoTipo); ligacaoAgua.setUltimaAlteracao(new Date()); getControladorUtil().atualizar(ligacaoAgua); alterouSituacaoLigacao = true; } } } } //caso a situa��o anterior seja igual Cortado if(situacaoLigacaoAnterior.equals(LigacaoAguaSituacao.CORTADO)){ //caso a situa��o atual seja igual a Potencial ou Factivel if(situacaoLigacaoAtual.equals(LigacaoAguaSituacao.FACTIVEL)){ alterouSituacaoLigacao = true; }else{ //pesquisa a liga��o de �gua FiltroLigacaoAgua filtroLigacaoAgua = new FiltroLigacaoAgua(); filtroLigacaoAgua.adicionarParametro(new ParametroSimples(FiltroLigacaoAgua.ID, imovel.getId())); Collection colecaoLigacaoAgua = getControladorUtil().pesquisar(filtroLigacaoAgua, LigacaoAgua.class.getName()); LigacaoAgua ligacaoAgua = (LigacaoAgua) Util.retonarObjetoDeColecao(colecaoLigacaoAgua); //caso a liga��o de �gua seja diferente de nulo if(ligacaoAgua != null){ // se a situa��o da liga��o atual for igual a Ligado if(situacaoLigacaoAtual.equals(LigacaoAguaSituacao.LIGADO)){ //atualiza os dados de corte da liga��o de �gua ligacaoAgua.setDataReligacao(new Date()); ligacaoAgua.setUltimaAlteracao(new Date()); getControladorUtil().atualizar(ligacaoAgua); alterouSituacaoLigacao = true; } // se a situa��o da liga��o atual for igual a cortado if(situacaoLigacaoAtual.equals(LigacaoAguaSituacao.SUPRIMIDO)){ //atualiza os dados de corte da liga��o de �gua ligacaoAgua.setDataSupressao(new Date()); FiltroSupressaoMotivo filtroSupressaoMotivo = new FiltroSupressaoMotivo(); filtroSupressaoMotivo.adicionarParametro(new ParametroSimples(FiltroSupressaoMotivo.ID, SupressaoMotivo.ATUALIZACAO_CADASTRAL)); Collection colecaoSupressaoMotivo = getControladorUtil().pesquisar(filtroSupressaoMotivo, SupressaoMotivo.class.getName()); SupressaoMotivo supressaoMotivo = (SupressaoMotivo) Util.retonarObjetoDeColecao(colecaoSupressaoMotivo); ligacaoAgua.setSupressaoMotivo(supressaoMotivo); FiltroSupressaoTipo filtroSupressaoTipo = new FiltroSupressaoTipo(); filtroSupressaoTipo.adicionarParametro(new ParametroSimples(FiltroSupressaoTipo.ID, SupressaoTipo.SUPRESSAO_TIPO_ID)); Collection colecaoSupressaoTipo = getControladorUtil().pesquisar(filtroSupressaoTipo, SupressaoTipo.class.getName()); SupressaoTipo supressaoTipo = (SupressaoTipo) Util.retonarObjetoDeColecao(colecaoSupressaoTipo); ligacaoAgua.setSupressaoTipo(supressaoTipo); ligacaoAgua.setUltimaAlteracao(new Date()); getControladorUtil().atualizar(ligacaoAgua); alterouSituacaoLigacao = true; } } } } //caso a situa��o anterior seja igual Ligado if(situacaoLigacaoAnterior.equals(LigacaoAguaSituacao.SUPRIMIDO)){ //caso a situa��o atual seja igual a Potencial ou Factivel if(situacaoLigacaoAtual.equals(LigacaoAguaSituacao.FACTIVEL)){ alterouSituacaoLigacao = true; }else{ //pesquisa a liga��o de �gua FiltroLigacaoAgua filtroLigacaoAgua = new FiltroLigacaoAgua(); filtroLigacaoAgua.adicionarParametro(new ParametroSimples(FiltroLigacaoAgua.ID, imovel.getId())); Collection colecaoLigacaoAgua = getControladorUtil().pesquisar(filtroLigacaoAgua, LigacaoAgua.class.getName()); LigacaoAgua ligacaoAgua = (LigacaoAgua) Util.retonarObjetoDeColecao(colecaoLigacaoAgua); //caso a liga��o de �gua seja diferente de nulo if(ligacaoAgua != null){ // se a situa��o da liga��o atual for igual a Ligado if(situacaoLigacaoAtual.equals(LigacaoAguaSituacao.LIGADO)){ //atualiza os dados de corte da liga��o de �gua ligacaoAgua.setDataRestabelecimentoAgua(new Date()); ligacaoAgua.setUltimaAlteracao(new Date()); getControladorUtil().atualizar(ligacaoAgua); alterouSituacaoLigacao = true; } // se a situa��o da liga��o atual for igual a cortado if(situacaoLigacaoAtual.equals(LigacaoAguaSituacao.CORTADO)){ //atualiza os dados de corte da liga��o de �gua ligacaoAgua.setDataCorte(new Date()); FiltroMotivoCorte filtroMotivoCorte = new FiltroMotivoCorte(); filtroMotivoCorte.adicionarParametro(new ParametroSimples(FiltroMotivoCorte.ID, MotivoCorte.ATUALIZACAO_CADASTRAL)); Collection colecaoMotivoCorte = getControladorUtil().pesquisar(filtroMotivoCorte, MotivoCorte.class.getName()); MotivoCorte motivoCorte = (MotivoCorte) Util.retonarObjetoDeColecao(colecaoMotivoCorte); ligacaoAgua.setMotivoCorte(motivoCorte); FiltroCorteTipo filtroCorteTipo = new FiltroCorteTipo(); filtroCorteTipo.adicionarParametro(new ParametroSimples(FiltroCorteTipo.ID, CorteTipo.RAMAL_ID)); Collection colecaoCorteTipo = getControladorUtil().pesquisar(filtroCorteTipo, CorteTipo.class.getName()); CorteTipo corteTipo = (CorteTipo) Util.retonarObjetoDeColecao(colecaoCorteTipo); ligacaoAgua.setCorteTipo(corteTipo); ligacaoAgua.setUltimaAlteracao(new Date()); getControladorUtil().atualizar(ligacaoAgua); alterouSituacaoLigacao = true; } } } } if(alterouSituacaoLigacao){ //atualiza a situa��o da liga��o de �gua do im�vel FiltroLigacaoAguaSituacao filtroLigacaoAguaSituacao = new FiltroLigacaoAguaSituacao(); filtroLigacaoAguaSituacao.adicionarParametro(new ParametroSimples(FiltroLigacaoAguaSituacao.ID, situacaoLigacaoAtual)); Collection colecaoLigacaoAguaSituacao = getControladorUtil().pesquisar(filtroLigacaoAguaSituacao, LigacaoAguaSituacao.class.getName()); LigacaoAguaSituacao ligacaoAguaSituacao = (LigacaoAguaSituacao) Util.retonarObjetoDeColecao(colecaoLigacaoAguaSituacao); imovel.setLigacaoAguaSituacao(ligacaoAguaSituacao); //cria o registro de atendimento para a situa��o da liga��o alterada FiltroSolicitacaoTipoEspecificacao filtroSolicitacaoTipoEspecificacao = new FiltroSolicitacaoTipoEspecificacao(); filtroSolicitacaoTipoEspecificacao.adicionarParametro(new ParametroSimples(FiltroSolicitacaoTipoEspecificacao.CODIGO_CONSTANTE, SolicitacaoTipoEspecificacao.CODIGO_CONSTANTE_ATUALIZACAO_CADASTRAL)); Collection colecaoSolicitacaoTipoEspecificacao = getControladorUtil().pesquisar(filtroSolicitacaoTipoEspecificacao, SolicitacaoTipoEspecificacao.class.getName()); if(colecaoSolicitacaoTipoEspecificacao != null && !colecaoSolicitacaoTipoEspecificacao.isEmpty()){ SolicitacaoTipoEspecificacao SolicitacaoTipoEspecificacao = (SolicitacaoTipoEspecificacao) Util.retonarObjetoDeColecao(colecaoSolicitacaoTipoEspecificacao); getControladorRegistroAtendimento().inserirRASituacaoLigacaoImovel(MeioSolicitacao.ATUALIZACAO_CADASTRAL_CELULAR, SolicitacaoTipoEspecificacao.getId(), imovel.getId(), usuarioLogado.getUnidadeOrganizacional().getId(), usuarioLogado.getId(), idCliente); } }else{ sessionContext.setRollbackOnly(); throw new ControladorException("atencao.senha.invalida", null,"Altera��o da Situ��o da Liga��o de �gua n�o permitida"); } return alterouSituacaoLigacao; } /** * [[UC1165] - Confirmar Altera��es Cadastrais * * @author S�vio Luiz * @date 24/05/2011 * * @return * @throws ErroRepositorioException */ public boolean atualizaSituacaoLigacaoEsgotoImovel(Imovel imovel,Integer idCliente, Integer situacaoLigacaoAnterior,Integer situacaoLigacaoAtual, Usuario usuarioLogado) throws ControladorException{ boolean alterouSituacaoLigacao = false; //caso a situa��o anterior seja igual Ligado if(situacaoLigacaoAnterior.equals(LigacaoEsgotoSituacao.LIGADO)){ //caso a situa��o atual seja igual a Potencial ou Factivel if(situacaoLigacaoAtual.equals(LigacaoEsgotoSituacao.FACTIVEL)){ //atualiza a situa��o da liga��o de �gua do im�vel FiltroLigacaoEsgotoSituacao filtroLigacaoEsgotoSituacao = new FiltroLigacaoEsgotoSituacao(); filtroLigacaoEsgotoSituacao.adicionarParametro(new ParametroSimples(FiltroLigacaoEsgotoSituacao.ID, situacaoLigacaoAtual)); Collection colecaoLigacaoEsgotoSituacao = getControladorUtil().pesquisar(filtroLigacaoEsgotoSituacao, LigacaoEsgotoSituacao.class.getName()); LigacaoEsgotoSituacao ligacaoEsgotoSituacao = (LigacaoEsgotoSituacao) Util.retonarObjetoDeColecao(colecaoLigacaoEsgotoSituacao); imovel.setLigacaoEsgotoSituacao(ligacaoEsgotoSituacao); //cria o registro de atendimento para a situa��o da liga��o alterada FiltroSolicitacaoTipoEspecificacao filtroSolicitacaoTipoEspecificacao = new FiltroSolicitacaoTipoEspecificacao(); filtroSolicitacaoTipoEspecificacao.adicionarParametro(new ParametroSimples(FiltroSolicitacaoTipoEspecificacao.CODIGO_CONSTANTE, SolicitacaoTipoEspecificacao.CODIGO_CONSTANTE_ATUALIZACAO_CADASTRAL)); Collection colecaoSolicitacaoTipoEspecificacao = getControladorUtil().pesquisar(filtroSolicitacaoTipoEspecificacao, SolicitacaoTipoEspecificacao.class.getName()); if(colecaoSolicitacaoTipoEspecificacao != null && !colecaoSolicitacaoTipoEspecificacao.isEmpty()){ SolicitacaoTipoEspecificacao SolicitacaoTipoEspecificacao = (SolicitacaoTipoEspecificacao) Util.retonarObjetoDeColecao(colecaoSolicitacaoTipoEspecificacao); getControladorRegistroAtendimento().inserirRASituacaoLigacaoImovel(MeioSolicitacao.ATUALIZACAO_CADASTRAL_CELULAR, SolicitacaoTipoEspecificacao.getId(), imovel.getId(), usuarioLogado.getUnidadeOrganizacional().getId(), usuarioLogado.getId(), idCliente); } alterouSituacaoLigacao = true; } } if(!alterouSituacaoLigacao){ sessionContext.setRollbackOnly(); throw new ControladorException("atencao.senha.invalida", null,"Altera��o da Situ��o da Liga��o de �gua n�o permitida"); } return alterouSituacaoLigacao; } }