package gcom.gui.relatorio.atendimentopublico; import gcom.atendimentopublico.registroatendimento.FiltroSolicitacaoTipo; import gcom.atendimentopublico.registroatendimento.FiltroSolicitacaoTipoEspecificacao; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipo; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao; import gcom.cadastro.geografico.Bairro; import gcom.cadastro.geografico.FiltroBairro; import gcom.cadastro.geografico.FiltroMunicipio; import gcom.cadastro.geografico.Municipio; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.ArrayList; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * [UC0497] Gerar Relatorio Resumo de Solicitacoes de RA por Unidade * * @see gcom.gui.relatorio.atendimentopublico.GerarRelatorioGestaoSolicitacoesRAPorChefiaActionForm * @see gcom.gui.relatorio.atendimentopublico.GerarRelatorioGestaoSolicitacoesRAPorChefiaAction * @see gcom.relatorio.atendimentopublico.RelatorioGestaoSolicitacoesRAPorChefia * * @author Victor Cisneiros * @date 20/06/2008 */ public class ExibirGerarRelatorioGestaoSolicitacoesRAPorChefiaAction extends GcomAction { public ActionForward execute( ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { ActionForward retorno = actionMapping.findForward("exibirGerarRelatorioGestaoSolicitacoesRAPorChefiaAction"); HttpSession session = request.getSession(); GerarRelatorioGestaoSolicitacoesRAPorChefiaActionForm form = (GerarRelatorioGestaoSolicitacoesRAPorChefiaActionForm) actionForm; // Flag indicando que o usu�rio fez uma consulta a partir da tecla Enter String objetoConsulta = request.getParameter("objetoConsulta"); Fachada fachada = Fachada.getInstancia(); // Pesquisar tipos de Solicita��o FiltroSolicitacaoTipo filtroSolicitacao = new FiltroSolicitacaoTipo(); filtroSolicitacao.setConsultaSemLimites(true); filtroSolicitacao.setCampoOrderBy(FiltroSolicitacaoTipo.DESCRICAO); Collection<SolicitacaoTipo> colecaoSolicitacao = fachada.pesquisar( filtroSolicitacao, SolicitacaoTipo.class.getName()); if (colecaoSolicitacao == null || colecaoSolicitacao.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "Solicitacao Tipo"); } session.setAttribute("colecaoSolicitacaoTipo", colecaoSolicitacao); if (request.getParameter("onchange") != null) { form.setEspecificacao(null); } // Pesquisar Especificacao (se apenas um tipo de Solicitacao selecionado) String[] solicitacaoTipo = form.getSolicitacaoTipo(); if (solicitacaoTipo != null) { form.setSelectedSolicitacaoTipoSize(solicitacaoTipo.length+""); } if (solicitacaoTipo != null && solicitacaoTipo.length == 1) { FiltroSolicitacaoTipoEspecificacao filtroSolicitacaoTipoEspecificacao = new FiltroSolicitacaoTipoEspecificacao(); filtroSolicitacaoTipoEspecificacao.adicionarParametro(new ParametroSimples(FiltroSolicitacaoTipoEspecificacao.SOLICITACAO_TIPO_ID, solicitacaoTipo[0])); filtroSolicitacaoTipoEspecificacao.setCampoOrderBy(FiltroSolicitacaoTipoEspecificacao.DESCRICAO); filtroSolicitacaoTipoEspecificacao.setConsultaSemLimites(true); Collection<SolicitacaoTipoEspecificacao> colecaoSolicitacaoTipoEspecificacao = fachada.pesquisar( filtroSolicitacaoTipoEspecificacao, SolicitacaoTipoEspecificacao.class.getName()); if (colecaoSolicitacaoTipoEspecificacao != null && !colecaoSolicitacaoTipoEspecificacao.isEmpty()) { session.setAttribute("colecaoEspecificacao", colecaoSolicitacaoTipoEspecificacao); } else { session.setAttribute("colecaoEspecificacao", new ArrayList<SolicitacaoTipoEspecificacao>()); } } else { session.setAttribute("colecaoEspecificacao", new ArrayList<SolicitacaoTipoEspecificacao>()); } if (objetoConsulta != null && !objetoConsulta.trim().equals("")) { // [UC0376] - Pesquisar Unidade if (objetoConsulta.equals("1") || objetoConsulta.equals("2")) { this.pesquisarUnidadeOrganizacional(request, form, objetoConsulta); } // [UC0075] - Pesquisar Munic�pio else if (objetoConsulta.equals("3")) { this.pesquisarMunicipio(request, form, objetoConsulta); } // [UC0141] - Pesquisar Bairro else if (objetoConsulta.equals("4")) { this.pesquisarBairro(request, form, objetoConsulta); } } return retorno; } public void pesquisarUnidadeOrganizacional(HttpServletRequest request, GerarRelatorioGestaoSolicitacoesRAPorChefiaActionForm form, String objetoConsulta) { FiltroUnidadeOrganizacional filtroUnidade = new FiltroUnidadeOrganizacional(); Integer idUnidade = null; if (objetoConsulta.equals("1")) { idUnidade = new Integer(form.getIdUnidade()); } else { idUnidade = new Integer(form.getIdUnidadeSuperior()); } filtroUnidade.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID, idUnidade)); Collection<UnidadeOrganizacional> colecaoUnidades = Fachada.getInstancia().pesquisar( filtroUnidade, UnidadeOrganizacional.class.getName()); if (colecaoUnidades != null && !colecaoUnidades.isEmpty()) { UnidadeOrganizacional unidade = (UnidadeOrganizacional) Util.retonarObjetoDeColecao(colecaoUnidades); if (objetoConsulta.equals("1")) { form.setIdUnidade(unidade.getId().toString()); form.setNomeUnidade(unidade.getDescricao()); request.getSession().setAttribute("unidadeEncontrada", "true"); } else { form.setIdUnidadeSuperior(unidade.getId().toString()); form.setNomeUnidadeSuperior(unidade.getDescricao()); request.getSession().setAttribute("unidadeSuperiorEncontrada", "true"); } } else { if (objetoConsulta.equals("1")) { form.setNomeUnidade("Unidade Organizacional Inexistente"); request.getSession().removeAttribute("unidadeEncontrada"); } else { form.setNomeUnidadeSuperior("Unidade Superior Inexistente"); request.getSession().removeAttribute("unidadeSuperiorEncontrada"); } } } public void pesquisarMunicipio(HttpServletRequest request, GerarRelatorioGestaoSolicitacoesRAPorChefiaActionForm form, String objetoConsulta) { FiltroMunicipio filtro = new FiltroMunicipio(); filtro.adicionarParametro(new ParametroSimples( FiltroMunicipio.ID, new Integer(form.getIdMunicipio()))); Collection<Municipio> Municipios = Fachada.getInstancia().pesquisar( filtro, Municipio.class.getName()); if (Municipios != null && !Municipios.isEmpty()) { Municipio Municipio = (Municipio) Util.retonarObjetoDeColecao(Municipios); form.setIdMunicipio(Municipio.getId().toString()); form.setNomeMunicipio(Municipio.getNome()); request.getSession().setAttribute("municipioEncontrado", "true"); } else { form.setIdMunicipio(""); form.setNomeMunicipio("Municipio Inexistente"); request.getSession().removeAttribute("municipioEncontrado"); } } public void pesquisarBairro(HttpServletRequest request, GerarRelatorioGestaoSolicitacoesRAPorChefiaActionForm form, String objetoConsulta) { FiltroBairro filtro = new FiltroBairro(); filtro.adicionarParametro(new ParametroSimples( FiltroBairro.MUNICIPIO_ID, new Integer(form.getIdMunicipio()))); filtro.adicionarParametro(new ParametroSimples( FiltroBairro.CODIGO, new Integer(form.getIdBairro()))); Collection<Bairro> Bairros = Fachada.getInstancia().pesquisar( filtro, Bairro.class.getName()); if (Bairros != null && !Bairros.isEmpty()) { Bairro Bairro = (Bairro) Util.retonarObjetoDeColecao(Bairros); form.setIdBairro("" + Bairro.getCodigo()); form.setNomeBairro(Bairro.getNome()); request.getSession().setAttribute("bairroEncontrado", "true"); } else { form.setIdBairro(""); form.setNomeBairro("Bairro Inexistente"); request.getSession().removeAttribute("bairroEncontrado"); } } }