package gcom.gui.batch; import gcom.batch.FiltroProcesso; import gcom.batch.FiltroProcessoFuncionalidade; import gcom.batch.FiltroProcessoIniciado; import gcom.batch.Processo; import gcom.batch.ProcessoFuncionalidade; import gcom.batch.ProcessoIniciado; import gcom.batch.ProcessoSituacao; import gcom.batch.ProcessoTipo; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.filtro.FiltroParametro; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * Action respons�vel pela pre-exibi��o da pagina de inserir processo * * @author Rodrigo Silveira * @created 22/07/2006 */ public class ExibirInserirProcessoMensalEventualAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("inserirProcessoMensalEventual"); // Pesquisa as situa��es do processos para o select da p�gina // this.pesquisarProcessoSituacao(httpServletRequest); // Pesquisa o Processo digitado e os ProcessoFuncionalidade relacionados this.pesquisarProcessoDigitado(httpServletRequest, (InserirProcessoMensalEventualActionForm) actionForm); // Pesquisa o Processo iniciado precedente digitado e os // ProcessoFuncionalidade relacionados this.pesquisarProcessoIniciadoPrecedenteDigitado(httpServletRequest, (InserirProcessoMensalEventualActionForm) actionForm); return retorno; } /** * Pesquisa todas as Situa��es do Processo para popular o select da p�gina * de inserir processo * * @author Rodrigo Silveira * @date 22/07/2006 * * @param httpServletRequest */ // private void pesquisarProcessoSituacao(HttpServletRequest // httpServletRequest) { // FiltroProcessoSituacao filtroProcessoSituacao = new // FiltroProcessoSituacao(); // Collection<ProcessoSituacao> colecao = Fachada.getInstancia() // .pesquisar(filtroProcessoSituacao, // ProcessoSituacao.class.getName()); // httpServletRequest.setAttribute("colecaoProcessoSituacao", colecao); // // } /** * Fun��o que pesquisa um Processo digitado e pesquisa todos os * ProcessoFuncionalidade relacionados * * @author Rodrigo Silveira * @date 24/07/2006 * * @param httpServletRequest * @param actionForm */ private void pesquisarProcessoDigitado( HttpServletRequest httpServletRequest, InserirProcessoMensalEventualActionForm actionForm) { String idDigitadoEnterProcesso = (String) actionForm.getIdProcesso(); actionForm.setDescricaoProcesso(""); actionForm.setIdProcesso(""); // Verifica se o c�digo foi digitado if (idDigitadoEnterProcesso != null && !idDigitadoEnterProcesso.trim().equals("") && Integer.parseInt(idDigitadoEnterProcesso) > 0) { Fachada fachada = Fachada.getInstancia(); // Este trecho pesquisa todos do processoFuncionalidade relacionados // com o processo digitado FiltroProcessoFuncionalidade filtroProcessoFuncionalidade = new FiltroProcessoFuncionalidade(); filtroProcessoFuncionalidade .adicionarParametro(new ParametroSimples( FiltroProcessoFuncionalidade.ID_PROCESSO, idDigitadoEnterProcesso)); filtroProcessoFuncionalidade .adicionarParametro(new ParametroSimples( FiltroProcessoFuncionalidade.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroProcessoFuncionalidade .adicionarParametro(new ParametroSimples( FiltroProcessoFuncionalidade.PROCESSO_PROCESSO_TIPO_ID, ProcessoTipo.MENSAL, FiltroParametro.CONECTOR_OR, 4)); filtroProcessoFuncionalidade .adicionarParametro(new ParametroSimples( FiltroProcessoFuncionalidade.PROCESSO_PROCESSO_TIPO_ID, ProcessoTipo.EVENTUAL, FiltroParametro.CONECTOR_OR)); filtroProcessoFuncionalidade .adicionarParametro(new ParametroSimples( FiltroProcessoFuncionalidade.PROCESSO_PROCESSO_TIPO_ID, ProcessoTipo.DIARIO, FiltroParametro.CONECTOR_OR)); filtroProcessoFuncionalidade .adicionarParametro(new ParametroSimples( FiltroProcessoFuncionalidade.PROCESSO_PROCESSO_TIPO_ID, ProcessoTipo.SEMANAL, FiltroParametro.CONECTOR_OR)); filtroProcessoFuncionalidade .adicionarCaminhoParaCarregamentoEntidade("funcionalidade"); filtroProcessoFuncionalidade .adicionarCaminhoParaCarregamentoEntidade("unidadeProcessamento"); filtroProcessoFuncionalidade .setCampoOrderBy(FiltroProcessoFuncionalidade.SEQUENCIAL_EXECUCAO); Collection processosFuncionaliadade = fachada.pesquisar( filtroProcessoFuncionalidade, ProcessoFuncionalidade.class .getName()); httpServletRequest.setAttribute("colecaoProcessoFuncionalidade", processosFuncionaliadade); // Este trecho pesquisa o processo digitado e altera o form para // refletir o resultado da busca na p�gina de inserir processo FiltroProcesso filtroProcesso = new FiltroProcesso(); filtroProcesso.adicionarParametro(new ParametroSimples( FiltroProcesso.ID, idDigitadoEnterProcesso)); filtroProcesso.adicionarParametro(new ParametroSimples( FiltroProcesso.PROCESSO_TIPO, ProcessoTipo.MENSAL, FiltroParametro.CONECTOR_OR, 5)); filtroProcesso.adicionarParametro(new ParametroSimples( FiltroProcesso.PROCESSO_TIPO, ProcessoTipo.EVENTUAL, FiltroParametro.CONECTOR_OR)); filtroProcesso.adicionarParametro(new ParametroSimples( FiltroProcesso.PROCESSO_TIPO, ProcessoTipo.RELATORIO, FiltroParametro.CONECTOR_OR)); filtroProcesso.adicionarParametro(new ParametroSimples( FiltroProcesso.PROCESSO_TIPO, ProcessoTipo.SEMANAL, FiltroParametro.CONECTOR_OR)); filtroProcesso.adicionarParametro(new ParametroSimples( FiltroProcesso.PROCESSO_TIPO, ProcessoTipo.DIARIO, FiltroParametro.CONECTOR_OR)); Collection processos = fachada.pesquisar(filtroProcesso, Processo.class.getName()); if (processos != null && !processos.isEmpty()) { // O processo foi encontrado actionForm.setIdProcesso(((Processo) ((List) processos).get(0)) .getId().toString()); actionForm.setDescricaoProcesso(((Processo) ((List) processos) .get(0)).getDescricaoProcesso()); } else { actionForm.setIdProcesso(""); httpServletRequest.setAttribute("idProcessoNaoEncontrado", "true"); actionForm.setDescricaoProcesso("Processo inexistente"); } } } /** * Fun��o que pesquisa um Processo iniciado precedente digitado * * @author Rodrigo Silveira * @date 24/07/2006 * * @param httpServletRequest * @param actionForm */ private void pesquisarProcessoIniciadoPrecedenteDigitado( HttpServletRequest httpServletRequest, InserirProcessoMensalEventualActionForm actionForm) { String idDigitadoEnterProcesso = (String) actionForm .getIdProcessoIniciadoPrecedente(); actionForm.setDescricaoProcessoIniciadoPrecedente(""); actionForm.setIdProcessoIniciadoPrecedente(""); // Verifica se o c�digo foi digitado if (idDigitadoEnterProcesso != null && !idDigitadoEnterProcesso.trim().equals("") && Integer.parseInt(idDigitadoEnterProcesso) > 0 && !idDigitadoEnterProcesso.trim().equals( actionForm.getIdProcesso())) { Fachada fachada = Fachada.getInstancia(); // Este trecho pesquisa o processo digitado e altera o form para // refletir o resultado da busca na p�gina de inserir processo FiltroProcessoIniciado filtroProcessoIniciado = new FiltroProcessoIniciado(); filtroProcessoIniciado.adicionarParametro(new ParametroSimples( FiltroProcessoIniciado.ID, idDigitadoEnterProcesso)); filtroProcessoIniciado.adicionarParametro(new ParametroSimples( FiltroProcessoIniciado.PROCESSO_SITUACAO_ID, ProcessoSituacao.AGENDADO, FiltroParametro.CONECTOR_OR)); filtroProcessoIniciado.adicionarParametro(new ParametroSimples( FiltroProcessoIniciado.PROCESSO_SITUACAO_ID, ProcessoSituacao.EM_ESPERA, FiltroParametro.CONECTOR_OR)); filtroProcessoIniciado.adicionarParametro(new ParametroSimples( FiltroProcessoIniciado.PROCESSO_SITUACAO_ID, ProcessoSituacao.EM_PROCESSAMENTO, FiltroParametro.CONECTOR_OR)); filtroProcessoIniciado.adicionarParametro(new ParametroSimples( FiltroProcessoIniciado.PROCESSO_SITUACAO_ID, ProcessoSituacao.INICIO_A_COMANDAR)); filtroProcessoIniciado .adicionarCaminhoParaCarregamentoEntidade("processo"); Collection processos = fachada.pesquisar(filtroProcessoIniciado, ProcessoIniciado.class.getName()); if (processos != null && !processos.isEmpty()) { // O processo foi encontrado actionForm .setIdProcessoIniciadoPrecedente(((ProcessoIniciado) ((List) processos) .get(0)).getId().toString()); actionForm .setDescricaoProcessoIniciadoPrecedente(((ProcessoIniciado) ((List) processos) .get(0)).getProcesso().getDescricaoProcesso()); } else { actionForm.setIdProcessoIniciadoPrecedente(""); httpServletRequest.setAttribute( "idProcessoIniciadoPrecedenteNaoEncontrado", "true"); actionForm .setDescricaoProcessoIniciadoPrecedente("Processo inexistente"); } } } }