/* * Copyright (C) 2007-2007 the GSAN - Sistema Integrado de Gestão de Serviços de Saneamento * * This file is part of GSAN, an integrated service management system for Sanitation * * GSAN is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License. * * GSAN is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ /* * GSAN - Sistema Integrado de Gestão de Serviços de Saneamento * Copyright (C) <2007> * Adriano Britto Siqueira * Alexandre Santos Cabral * Ana Carolina Alves Breda * Ana Maria Andrade Cavalcante * Aryed Lins de Araújo * Bruno Leonardo Rodrigues Barros * Carlos Elmano Rodrigues Ferreira * Cláudio de Andrade Lira * Denys Guimarães Guenes Tavares * Eduardo Breckenfeld da Rosa Borges * Fabíola Gomes de Araújo * Flávio Leonardo Cavalcanti Cordeiro * Francisco do Nascimento Júnior * Homero Sampaio Cavalcanti * Ivan Sérgio da Silva Júnior * José Edmar de Siqueira * José Thiago Tenório Lopes * Kássia Regina Silvestre de Albuquerque * Leonardo Luiz Vieira da Silva * Márcio Roberto Batista da Silva * Maria de Fátima Sampaio Leite * Micaela Maria Coelho de Araújo * Nelson Mendonça de Carvalho * Newton Morais e Silva * Pedro Alexandre Santos da Silva Filho * Rafael Corrêa Lima e Silva * Rafael Francisco Pinto * Rafael Koury Monteiro * Rafael Palermo de Araújo * Raphael Veras Rossiter * Roberto Sobreira Barbalho * Rodrigo Avellar Silveira * Rosana Carvalho Barbosa * Sávio Luiz de Andrade Cavalcante * Tai Mu Shih * Thiago Augusto Souza do Nascimento * Tiago Moreno Rodrigues * Vivianne Barbosa Sousa * * Este programa é software livre; você pode redistribuí-lo e/ou * modificá-lo sob os termos de Licença Pública Geral GNU, conforme * publicada pela Free Software Foundation; versão 2 da * Licença. * Este programa é distribuído na expectativa de ser útil, mas SEM * QUALQUER GARANTIA; sem mesmo a garantia implícita de * COMERCIALIZAÇÃO ou de ADEQUAÇÃO A QUALQUER PROPÓSITO EM * PARTICULAR. Consulte a Licença Pública Geral GNU para obter mais * detalhes. * Você deve ter recebido uma cópia da Licença Pública Geral GNU * junto com este programa; se não, escreva para Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307, USA. */ package gcom.batch; import gcom.arrecadacao.Devolucao; import gcom.arrecadacao.pagamento.GuiaPagamento; import gcom.arrecadacao.pagamento.GuiaPagamentoCategoria; import gcom.arrecadacao.pagamento.GuiaPagamentoItem; import gcom.arrecadacao.pagamento.GuiaPagamentoItemCategoria; import gcom.arrecadacao.pagamento.Pagamento; import gcom.cadastro.cliente.ClienteConta; import gcom.cadastro.cliente.ClienteGuiaPagamento; import gcom.faturamento.conta.Conta; import gcom.faturamento.conta.ContaCategoria; import gcom.faturamento.conta.ContaCategoriaConsumoFaixa; import gcom.faturamento.conta.ContaImpostosDeduzidos; import gcom.faturamento.credito.CreditoARealizar; import gcom.faturamento.credito.CreditoRealizado; import gcom.faturamento.credito.CreditoRealizadoCategoria; import gcom.faturamento.debito.DebitoACobrar; import gcom.faturamento.debito.DebitoACobrarCategoria; import gcom.faturamento.debito.DebitoCobrado; import gcom.faturamento.debito.DebitoCobradoCategoria; import gcom.micromedicao.Rota; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ErroRepositorioException; import java.util.Collection; import java.util.Date; /** * Interface para o repositório batch * * @author Rodrigo Silveira * @created 15/08/2006 */ public interface IRepositorioBatch { public Collection pesquisarRotasProcessamentoBatchFaturamentoComandado( Integer idFaturamentoAtividadeCronograma) throws ErroRepositorioException; /** * Encerra os Processos Iniciados no sistema quando todas as funcionalidades * do mesmo finalizarem a execução * * @author Rodrigo Silveira * @date 22/08/2006 * */ public Collection pesquisarProcessosIniciadosProntosParaEncerramento() throws ErroRepositorioException; /** * Encerra as Funcionalidades Iniciadas no sistema quando todas as unidades * de processamento do mesmo finalizarem a execução * * @author Rodrigo Silveira * @date 22/08/2006 * */ public Collection pesquisarFuncionaldadesIniciadasProntasParaEncerramento() throws ErroRepositorioException; /** * Busca as Funcionalidades Iniciadas no sistema que falharam para marcar o * Processo Iniciado como falho * * @author Rodrigo Silveira * @date 24/08/2006 * */ public Collection pesquisarProcessosIniciadosExecucaoFalha() throws ErroRepositorioException; /** * Busca as Unidades Iniciadas no sistema que falharam para marcar o * Funcionalidade Iniciada como falha * * @author Rodrigo Silveira * @date 24/08/2006 * */ public Collection pesquisarFuncionaldadesIniciadasExecucaoFalha() throws ErroRepositorioException; /** * Busca as Funcionalidades Iniciadas no sistema que estão prontas para * execução * * @author Rodrigo Silveira * @date 29/08/2006 * */ public Collection pesquisarFuncionaldadesIniciadasProntasExecucao() throws ErroRepositorioException; /** * Verifica se a FuncionalidadeIniciada foi concluida com erro para evitar a * execução da UnidadeIniciada relacionada * * @author Rodrigo Silveira * @date 01/09/2006 * */ public int pesquisarFuncionaldadesIniciadasConcluidasErro( int idFuncionalidadeIniciada) throws ErroRepositorioException; /** * Inseri uma coleção de objetos genéricos na base com um flush para cada 50 * registros inseridos. * * @author Pedro Alexandre * @date 11/09/2006 * * @param colecaoObjetos * @throws ErroRepositorioException */ public void inserirColecaoObjetoParaBatch(Collection colecaoObjetos) throws ErroRepositorioException; /** * Inseri uma coleção de objetos genéricos na base com um flush para cada 50 * registros inseridos. * * @author Bruno Barros * @date 27/04/2007 * * @param colecaoObjetos * @throws ErroRepositorioException */ public void inserirColecaoObjetoParaBatchGerencial(Collection colecaoObjetos) throws ErroRepositorioException; /** * Atualiza uma coleção de objetos genéricos na base com um flush para cada * 50 registros inseridos. * * @author Leonardo Vieira * @date 12/10/2006 * * @param colecaoObjetos * @throws ErroRepositorioException */ public void atualizarColecaoObjetoParaBatch( Collection colecaoObjetos) throws ErroRepositorioException; /** * Verifica se a Funcionalidade Iniciada no sistema que está na ordem * correta de execução dentro do processoFuncionalidade, as funcionalidades * só podem iniciar se estiverem na ordem correta do sequencial de execução * * @author Rodrigo Silveira * @date 19/09/2006 * */ public Integer pesquisarQuantidadeFuncionaldadesIniciadasForaOrdemExecucao( int idSequencialExecucao, int idProcessoIniciado) throws ErroRepositorioException; /** * Inicia uma funcionalidade iniciada de um relatório * * @author Rodrigo Silveira * @date 26/09/2006 * */ public void iniciarFuncionalidadeIniciadaRelatorio( int idFuncionalidadeIniciada) throws ErroRepositorioException; /** * Inicia uma processo iniciado de um relatório * * @author Rodrigo Silveira * @date 26/09/2006 * */ public void iniciarProcessoIniciadoRelatorio(int idFuncionalidadeIniciada) throws ErroRepositorioException; /** * Encerra uma funcionalidade iniciada de um relatório * * @author Rodrigo Silveira * @date 26/09/2006 * */ public void encerrarFuncionalidadeIniciadaRelatorio( int idFuncionalidadeIniciada, int situacaoConclusaoFuncionalidade) throws ErroRepositorioException; /** * Inicia uma processo iniciado de um relatório * * @author Rodrigo Silveira * @date 26/09/2006 * */ public void encerrarProcessoIniciadoRelatorio(int idFuncionalidadeIniciada, int situacaoConclusaoFuncionalidade) throws ErroRepositorioException; /** * Inicia todos os relatórios agendados * * @author Rodrigo Silveira * @date 26/09/2006 * */ public Collection iniciarRelatoriosAgendados() throws ErroRepositorioException; /** * Pesquisa todos as funcionalidades iniciadas que representam os relatórios * batch do sistema * * @author Rodrigo Silveira * @date 09/10/2006 * */ public Collection pesquisarRelatoriosBatchSistema() throws ErroRepositorioException; /** * Remove uma coleção de objetos genéricos na base com um flush para cada 50 * registros removidos. * * @author Pedro Alexandre * @date 09/10/2006 * * @param colecaoObjetos * @throws ErroRepositorioException */ public void removerColecaoObjetoParaBatch(Collection colecaoObjetos) throws ErroRepositorioException; /** * Pesquisa todos as funcionalidades iniciadas que representam os relatórios * batch do sistema por Usuário * * @author Rodrigo Silveira * @date 25/10/2006 * */ public Collection pesquisarRelatoriosBatchPorUsuarioSistema( int idProcesso) throws ErroRepositorioException; /** * Remove do sistema todos os relatórios batch que estão na data de * expiração * * @author Rodrigo Silveira * @date 26/10/2006 * */ public void deletarRelatoriosBatchDataExpiracao(Date dataDeExpiracao) throws ErroRepositorioException; public Collection pesquisarRotasProcessamentoBatchCobrancaGrupoNaoInformado( Integer idCobrancaAcaoAtividadeComando) throws ErroRepositorioException; /** * Inseri uma objeto genérico na base * * @author Marcio Roberto * @date 18/05/2007 * * @param Objeto * @throws ErroRepositorioException */ public Object inserirObjetoParaBatchGerencial(Object objeto) throws ErroRepositorioException; /** * Remove do sistema as unidades iniciadas de uma funcionalidade * * @author Rafael Corrêa * @date 06/11/2006 * */ public void removerUnidadesIniciadas(Integer idFuncionalidadeIniciada) throws ErroRepositorioException; /** * Remove uma coleção de GuiaPagamentoCategoria * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoGuiaPagamentoCategoria * @throws ErroRepositorioException */ public void removerColecaoGuiaPagamentoCategoriaParaBatch(Collection colecaoGuiaPagamentoCategoria) throws ErroRepositorioException ; /** * Remove uma coleção de ClienteGuiaPagamento * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoClienteGuiaPagamento * @throws ErroRepositorioException */ public void removerColecaoClienteGuiaPagamentoParaBatch(Collection colecaoClienteGuiaPagamento) throws ErroRepositorioException ; /** * Remove uma coleção de GuiaPagamento * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoGuiaPagamento * @throws ErroRepositorioException */ public void removerColecaoGuiaPagamentoParaBatch(Collection colecaoGuiaPagamento) throws ErroRepositorioException ; /** * Remove uma coleção de DebitoACobrar * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoDebitoACobrar * @throws ErroRepositorioException */ public void removerColecaoDebitoACobrarParaBatch(Collection colecaoDebitoACobrar) throws ErroRepositorioException ; /** * Remove uma coleção de DebitoACobrarCategoria * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoDebitoACobrarCategoria * @throws ErroRepositorioException */ public void removerColecaoDebitoACobrarCategoriaParaBatch(Collection colecaoDebitoACobrarCategoria) throws ErroRepositorioException ; /** * Remove uma coleção de Pagamento * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoPagamento * @throws ErroRepositorioException */ public void removerColecaoPagamentoParaBatch(Collection colecaoPagamento) throws ErroRepositorioException ; /** * Remove uma coleção de Devolução * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoDevolucao * @throws ErroRepositorioException */ public void removerColecaoDevolucaoParaBatch(Collection colecaoDevolucao) throws ErroRepositorioException ; /** * Remove uma coleção de Conta * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoConta * @throws ErroRepositorioException */ public void removerColecaoContaParaBatch(Collection colecaoConta) throws ErroRepositorioException ; /** * Remove uma coleção de ContaCategoria * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoContaCategoria * @throws ErroRepositorioException */ public void removerColecaoContaCategoriaParaBatch(Collection colecaoContaCategoria) throws ErroRepositorioException ; /** * Remove uma coleção de CreditoRealizado * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoCreditoRealizado * @throws ErroRepositorioException */ public void removerColecaoCreditoRealizadoParaBatch(Collection colecaoCreditoRealizado) throws ErroRepositorioException ; /** * Remove uma coleção de DebitoCobrado * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoDebitoCobrado * @throws ErroRepositorioException */ public void removerColecaoDebitoCobradoParaBatch(Collection colecaoDebitoCobrado) throws ErroRepositorioException ; /** * Remove uma coleção de ContaImpostosDeduzidos * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoContaImpostosDeduzidos * @throws ErroRepositorioException */ public void removerColecaoContaImpostosDeduzidosParaBatch(Collection colecaoContaImpostosDeduzidos) throws ErroRepositorioException ; /** * Remove uma coleção de ClienteConta * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoClienteConta * @throws ErroRepositorioException */ public void removerColecaoClienteContaParaBatch(Collection colecaoClienteConta) throws ErroRepositorioException ; /** * Remove uma coleção de ContaCategoriaConsumoFaixa * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoContaCategoria * @throws ErroRepositorioException */ public void removerColecaoContaCategoriaConsumoFaixaParaBatch(Collection colecaoContaCategoriaConsumoFaixa) throws ErroRepositorioException ; /** * Remove uma coleção de DebitoCobradoCategoria * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoDebitoCobradoCategoria * @throws ErroRepositorioException */ public void removerColecaoDebitoCobradoCategoriaParaBatch(Collection colecaoDebitoCobradoCategoria) throws ErroRepositorioException ; /** * Remove uma coleção de CreditoRealizadoCategoria * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoCreditoRealizadoCategoria * @throws ErroRepositorioException */ public void removerColecaoCreditoRealizadoCategoriaParaBatch(Collection colecaoCreditoRealizadoCategoria) throws ErroRepositorioException ; /** * Pesquisa e registra as queries demoradas do sistema * * @author Rodrigo Silveira * @date 27/02/2008 * * @throws ErroRepositorioException */ public void pesquisarQueriesDemoradasSistema() throws ErroRepositorioException; /** * Remove uma coleção de CreditoARealizar * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 12/02/2008 * * @param colecaoCreditoARealizar * @throws ErroRepositorioException */ public void removerColecaoCreditoARealizarParaBatch(Collection colecaoCreditoARealizar) throws ErroRepositorioException ; /** * Remove uma coleção de CreditoARealizarCategoria * * [UC0276] Encerrar Arrecadação do Mês * * @author Pedro Alexandre * @date 09/04/2008 * * @param colecaoCreditoARealizarCategoria * @throws ErroRepositorioException */ public void removerColecaoCreditoARealizarCategoriaParaBatch(Collection colecaoIdsCreditoARealizar) throws ErroRepositorioException ; public void inserirLogExcecaoFuncionalidadeIniciada(UnidadeIniciada unidadeIniciada, Throwable excecao) throws ErroRepositorioException; /** * Inseri uma coleção de objetos genéricos na base * * @author Rafael Pinto * @date 20/05/2008 * * @param colecaoObjetos * @throws ErroRepositorioException */ public void inserirColecaoObjetoParaBatchTransacao(Collection colecaoObjetos) throws ErroRepositorioException ; public void atualizarSituacaoFuncionalidadeIniciadaConcluida(FuncionalidadeIniciada funcionalidadeIniciada) throws ErroRepositorioException; /** * Verifica se o processo está em execução * * @author Ana Maria * @date 18/12/2008 * */ public boolean verificarProcessoEmExecucao(Integer idProcesso) throws ErroRepositorioException; public boolean validarAutorizacaoInserirRelatorioBatch(Usuario usuario, int idProcesso) throws ErroRepositorioException; /** * Autoriza Processo Iniciado * * @author Genival Barbosa * @date 06/08/2009 * * @param ProcessoIniciado */ public void autorizarProcessoIniciado(ProcessoIniciado processoIniciado, Integer processoSituacao) throws ErroRepositorioException; /** * Autoriza Processo Iniciado * * @author Genival Barbosa * @date 06/08/2009 * * @param ProcessoIniciado */ public void autorizarFuncionalidadeIniciada(ProcessoIniciado processoIniciado,Integer funcionalidadeSituacao) throws ErroRepositorioException; /** * Atualiza um objeto genérico na base * * @author Vivianne Sousa * @date 03/02/2009 * * @param objetoParaAtualizar * @throws ErroRepositorioException */ public void atualizarObjetoParaBatch( Object objetoParaAtualizar) throws ErroRepositorioException; /** * Insere uma objeto genérico na base * * @author Vivianne Sousa * @date 03/02/2009 * * @param Objeto * @throws ErroRepositorioException */ public Object inserirObjetoParaBatch(Object objeto) throws ErroRepositorioException ; /** * Remove uma coleção de objetos genéricos na base com um flush para cada 50 * registros removidos. * * @author Sávio Luiz * @date 31/03/2010 * * @param colecaoObjetos * @throws ErroRepositorioException */ public void removerObjetoParaBatch(Object objeto) throws ErroRepositorioException; /** * Retorna o(s) processo(s) que está em execução * * @author Arthur Carvalho * @date 04/06/2010 * */ public Collection retornaProcessoFuncionalidadeEmExecucao() throws ErroRepositorioException ; /** * Retorna a data/hora em que um processo foi finalizado em um determinado mês. * * @author Hugo Azevedo * @date 17/10/2011 */ public Date obterDataEncerramentoProcesso(Integer idProcesso, String anoMes) throws ErroRepositorioException; /** * Gerar Declaração de Quitação Anual de Débitos * * @author Raphael Rossiter * @date 02/03/2012 * * @param idFaturamentoGrupo * @return Integer * @throws ErroRepositorioException */ public Integer pesquisarQuantidadeRotasAtivasFaturamentoGrupo(Integer idFaturamentoGrupo) throws ErroRepositorioException ; /** * Verificar se a funcionalidade de gerar dados diários de arrecadação esta executando * * @author Rodrigo Cabral * @date 07/12/2011 * * @return Collection * @throws ErroRepositorioException */ public Integer verificarExecucaoFuncionalidade(Integer idFuncionalidade) throws ErroRepositorioException; /** * Verificar se o processo esta executando * * @author Rodrigo Cabral * @date 30/03/2012 * * @return Collection * @throws ErroRepositorioException */ public Integer verificarExecucaoProcesso(Integer idFuncionalidade) throws ErroRepositorioException; /** * [UC0818] Gerar Histórico do Encerramento da Arrecadação * * Pesquisa uma colecaode GuiaPagamentoItem * * @author Rafael Corrêa * @date 29/10/2014 * * @param colecaoGuiaPagamentoItem * @throws ErroRepositorioException */ public void removerColecaoGuiaPagamentoItemParaBatch(Collection colecaoGuiaPagamentoItem) throws ErroRepositorioException; /** * [UC0818] Gerar Histórico do Encerramento da Arrecadação * * Remove uma colecao de GuiaPagamentoItemCategoria * * @author Rafael Corrêa * @date 29/10/2014 * * @param colecaoGuiaPagamentoItemCategoria * @throws ErroRepositorioException */ public void removerColecaoGuiaPagamentoItemCategoriaParaBatch( Collection colecaoGuiaPagamentoItemCategoria) throws ErroRepositorioException; }