package gcom.gui.atendimentopublico.ordemservico; import gcom.atendimentopublico.ordemservico.Equipe; import gcom.atendimentopublico.ordemservico.FiltroEquipe; import gcom.atendimentopublico.ordemservico.FiltroServicoTipo; import gcom.atendimentopublico.ordemservico.ServicoTipo; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import gcom.util.filtro.ParametroSimplesIn; import java.util.Arrays; import java.util.Collection; import java.util.Iterator; import java.util.List; 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; /** * [UC0450] Pesquisar Ordem Servico - Exibir * * @author Leonardo Regis * * @date 04/09/2006 */ public class ExibirGerarRelatorioAcompanhamentoExecucaoOSAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("exibirAcompanhamentoExecucaoOS"); HttpSession sessao = httpServletRequest.getSession(false); // Form GerarRelatorioAcompanhamentoExecucaoOSActionForm gerarRelatorioAcompanhamentoExecucaoOSActionForm = (GerarRelatorioAcompanhamentoExecucaoOSActionForm) actionForm; if (httpServletRequest.getParameter("menu") != null) { gerarRelatorioAcompanhamentoExecucaoOSActionForm .setSituacaoOrdemServico(""); gerarRelatorioAcompanhamentoExecucaoOSActionForm .setOrigemServico(ConstantesSistema.ORIGEM_SERVICO_SOLICITADO .toString()); gerarRelatorioAcompanhamentoExecucaoOSActionForm .setTipoOrdenacao("1"); Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); if (usuario != null) { gerarRelatorioAcompanhamentoExecucaoOSActionForm .setIdUnidadeAtual(usuario.getUnidadeOrganizacional() .getId().toString()); gerarRelatorioAcompanhamentoExecucaoOSActionForm .setDescricaoUnidadeAtual(usuario .getUnidadeOrganizacional().getDescricao()); } } // Flag indicando que o usu�rio fez uma consulta a partir da tecla Enter String objetoConsulta = httpServletRequest .getParameter("objetoConsulta"); // [UC0376] - Pesquisar Unidade if ((objetoConsulta != null && !objetoConsulta.trim().equals("") && objetoConsulta .trim().equals("1")) || (objetoConsulta != null && !objetoConsulta.trim().equals("") && objetoConsulta .trim().equals("2")) || (objetoConsulta != null && !objetoConsulta.trim().equals("") && objetoConsulta .trim().equals("3"))) { // Faz a consulta de Cliente this.pesquisarUnidadeOrganizacional( gerarRelatorioAcompanhamentoExecucaoOSActionForm, objetoConsulta); } // [UC0075] - Pesquisar Equipe if ((objetoConsulta != null && !objetoConsulta.trim().equals("") && objetoConsulta .trim().equals("4")) || (objetoConsulta != null && !objetoConsulta.trim().equals("") && objetoConsulta .trim().equals("5"))) { // Faz a consulta de Equipe this.pesquisarEquipe( gerarRelatorioAcompanhamentoExecucaoOSActionForm, objetoConsulta); } if (httpServletRequest.getParameter("tipoConsulta") != null && !httpServletRequest.getParameter("tipoConsulta").equals("")) { String id = httpServletRequest.getParameter("idCampoEnviarDados"); String descricao = httpServletRequest .getParameter("descricaoCampoEnviarDados"); if (httpServletRequest.getParameter("tipoConsulta").equals( "unidadeOrganizacional")) { if (sessao.getAttribute("tipoUnidade").equals( "unidadeAtendimento")) { gerarRelatorioAcompanhamentoExecucaoOSActionForm .setIdUnidadeAtendimento(id); gerarRelatorioAcompanhamentoExecucaoOSActionForm .setDescricaoUnidadeAtendimento(descricao); } else if (sessao.getAttribute("tipoUnidade").equals( "unidadeAtual")) { gerarRelatorioAcompanhamentoExecucaoOSActionForm .setIdUnidadeAtual(id); gerarRelatorioAcompanhamentoExecucaoOSActionForm .setDescricaoUnidadeAtual(descricao); } else { gerarRelatorioAcompanhamentoExecucaoOSActionForm .setIdUnidadeEncerramento(id); gerarRelatorioAcompanhamentoExecucaoOSActionForm .setDescricaoUnidadeEncerramento(descricao); } } else if (httpServletRequest.getParameter("tipoConsulta").equals( "equipe")) { if (sessao.getAttribute("equipe").equals("equipeProgramacao")) { gerarRelatorioAcompanhamentoExecucaoOSActionForm .setIdEquipeProgramacao(id); gerarRelatorioAcompanhamentoExecucaoOSActionForm .setDescricaoEquipeProgramacao(descricao); } else { gerarRelatorioAcompanhamentoExecucaoOSActionForm .setIdEquipeExecucao(id); gerarRelatorioAcompanhamentoExecucaoOSActionForm .setDescricaoEquipeExecucao(descricao); } } } Collection colecaoTipoServicoSelecionados = null; if(gerarRelatorioAcompanhamentoExecucaoOSActionForm.getTipoServicoSelecionados() != null){ String[] aux = gerarRelatorioAcompanhamentoExecucaoOSActionForm .getTipoServicoSelecionados(); List aux1 = Arrays.asList(aux); colecaoTipoServicoSelecionados = aux1; FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo.adicionarParametro(new ParametroSimplesIn(FiltroServicoTipo.ID, colecaoTipoServicoSelecionados)); filtroServicoTipo.setCampoOrderBy(FiltroServicoTipo.DESCRICAO); // Pesquisa de acordo com os par�metros informados no filtro colecaoTipoServicoSelecionados = Fachada.getInstancia().pesquisar( filtroServicoTipo, ServicoTipo.class.getName()); // Verifica se a pesquisa retornou algum objeto para a cole��o if (colecaoTipoServicoSelecionados != null && !colecaoTipoServicoSelecionados.isEmpty()) { httpServletRequest.setAttribute("colecaoTipoServicoSelecionados", colecaoTipoServicoSelecionados); httpServletRequest.setAttribute("existeColecaoTipoServicoSelecionados", colecaoTipoServicoSelecionados); } } // Monta a colecao de tipos Servicos this.pesquisarTipoServico(httpServletRequest, colecaoTipoServicoSelecionados); // Seta os request�s encontrados this.setaRequest(httpServletRequest, gerarRelatorioAcompanhamentoExecucaoOSActionForm); // if // (httpServletRequest.getParameter("caminhoRetornoTelaPesquisaOrdemServico") // != null) { // // sessao.setAttribute("caminhoRetornoTelaPesquisaOrdemServico", // httpServletRequest.getParameter("caminhoRetornoTelaPesquisaOrdemServico")); // // } httpServletRequest.setAttribute("origemServico", gerarRelatorioAcompanhamentoExecucaoOSActionForm .getOrigemServico()); httpServletRequest.setAttribute("situacaoOS", gerarRelatorioAcompanhamentoExecucaoOSActionForm .getSituacaoOrdemServico()); return retorno; } /** * Pesquisa Unidade Organizacional * * @author Rafael Corr�a * @date 30/10/2006 */ private void pesquisarUnidadeOrganizacional( GerarRelatorioAcompanhamentoExecucaoOSActionForm form, String objetoConsulta) { FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); Integer idUnidade = null; if (objetoConsulta.equals("1")) { idUnidade = new Integer(form.getIdUnidadeAtendimento()); } else if (objetoConsulta.equals("2")) { idUnidade = new Integer(form.getIdUnidadeAtual()); } else { idUnidade = new Integer(form.getIdUnidadeEncerramento()); } filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID, idUnidade)); // Pesquisa de acordo com os par�metros informados no filtro Collection colecaoUnidade = Fachada.getInstancia().pesquisar( filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName()); // Verifica se a pesquisa retornou algum objeto para a cole��o if (colecaoUnidade != null && !colecaoUnidade.isEmpty()) { // Obt�m o objeto da cole��o pesquisada UnidadeOrganizacional unidadeOrganizacional = (UnidadeOrganizacional) Util .retonarObjetoDeColecao(colecaoUnidade); if (objetoConsulta.equals("1")) { form.setIdUnidadeAtendimento(unidadeOrganizacional.getId() .toString()); form.setDescricaoUnidadeAtendimento(unidadeOrganizacional .getDescricao()); } else if (objetoConsulta.equals("2")) { form .setIdUnidadeAtual(unidadeOrganizacional.getId() .toString()); form.setDescricaoUnidadeAtual(unidadeOrganizacional .getDescricao()); } else { form.setIdUnidadeEncerramento(unidadeOrganizacional.getId() .toString()); form.setDescricaoUnidadeEncerramento(unidadeOrganizacional .getDescricao()); } } else { if (objetoConsulta.equals("1")) { form.setIdUnidadeAtendimento(""); form .setDescricaoUnidadeAtendimento("Unidade de Atendimento inexistente"); } else if (objetoConsulta.equals("2")) { form.setIdUnidadeAtual(""); form.setDescricaoUnidadeAtual("Unidade Atual inexistente"); } else { form.setIdUnidadeEncerramento(""); form .setDescricaoUnidadeEncerramento("Unidade Encerramento inexistente"); } } } /** * Pesquisa Unidade Organizacional * * @author Rafael Corr�a * @date 30/10/2006 */ private void pesquisarEquipe( GerarRelatorioAcompanhamentoExecucaoOSActionForm form, String objetoConsulta) { FiltroEquipe filtroEquipe = new FiltroEquipe(); Integer idEquipe = null; if (objetoConsulta.equals("4")) { idEquipe = new Integer(form.getIdEquipeProgramacao()); } else { idEquipe = new Integer(form.getIdEquipeExecucao()); } filtroEquipe.adicionarParametro(new ParametroSimples(FiltroEquipe.ID, idEquipe)); // Pesquisa de acordo com os par�metros informados no filtro Collection colecaoEquipe = Fachada.getInstancia().pesquisar( filtroEquipe, Equipe.class.getName()); // Verifica se a pesquisa retornou algum objeto para a cole��o if (colecaoEquipe != null && !colecaoEquipe.isEmpty()) { // Obt�m o objeto da cole��o pesquisada Equipe equipe = (Equipe) Util.retonarObjetoDeColecao(colecaoEquipe); if (objetoConsulta.equals("4")) { form.setIdEquipeProgramacao(equipe.getId().toString()); form.setDescricaoEquipeProgramacao(equipe.getNome()); } else { form.setIdEquipeExecucao(equipe.getId().toString()); form.setDescricaoEquipeExecucao(equipe.getNome()); } } else { if (objetoConsulta.equals("4")) { form.setIdEquipeProgramacao(""); form .setDescricaoEquipeProgramacao("Equipe de Programa��o inexistente"); } else { form.setIdEquipeExecucao(""); form .setDescricaoEquipeExecucao("Equipe de Execucao inexistente"); } } } /** * Pesquisa Tipo Servico * * @author Rafael Pinto * @date 17/08/2006 */ private void pesquisarTipoServico(HttpServletRequest httpServletRequest, Collection colecaoTipoServicoSelecionados) { FiltroServicoTipo filtroServicoTipo = new FiltroServicoTipo(); filtroServicoTipo.setConsultaSemLimites(true); filtroServicoTipo.setCampoOrderBy(FiltroServicoTipo.DESCRICAO); Collection colecaoTipoServico = Fachada.getInstancia().pesquisar( filtroServicoTipo, ServicoTipo.class.getName()); if (colecaoTipoServico == null || colecaoTipoServico.isEmpty()) { throw new ActionServletException("atencao.naocadastrado", null, "Tipo de Servi�o"); } else { if(colecaoTipoServicoSelecionados == null ){ httpServletRequest.setAttribute("colecaoTipoServico", colecaoTipoServico); }else{ for (Iterator iteratorTipoServico = colecaoTipoServico.iterator(); iteratorTipoServico.hasNext();){ ServicoTipo servicoTipo = (ServicoTipo) iteratorTipoServico.next(); for (Iterator iteratorTipoServicoSelecionados = colecaoTipoServicoSelecionados.iterator(); iteratorTipoServicoSelecionados.hasNext();){ ServicoTipo servicoTipoSelecionado = (ServicoTipo) iteratorTipoServicoSelecionados.next(); if(servicoTipo.getId().compareTo(servicoTipoSelecionado.getId()) == 0){ iteratorTipoServico.remove(); } } } httpServletRequest.setAttribute("colecaoTipoServico", colecaoTipoServico); } } } /** * Seta os request com os id encontrados * * @author Rafael Pinto * @date 16/08/2006 */ private void setaRequest(HttpServletRequest httpServletRequest, GerarRelatorioAcompanhamentoExecucaoOSActionForm form) { // Unidade Atendimento if (form.getIdUnidadeAtendimento() != null && !form.getIdUnidadeAtendimento().equals("") && form.getDescricaoUnidadeAtendimento() != null && !form.getDescricaoUnidadeAtendimento().equals("")) { httpServletRequest.setAttribute("unidadeAtendimentoEncontrada", "true"); } // Unidade Atual if (form.getIdUnidadeAtual() != null && !form.getIdUnidadeAtual().equals("") && form.getDescricaoUnidadeAtual() != null && !form.getDescricaoUnidadeAtual().equals("")) { httpServletRequest.setAttribute("unidadeAtualEncontrada", "true"); } // Unidade Encerramento if (form.getIdUnidadeEncerramento() != null && !form.getIdUnidadeEncerramento().equals("") && form.getDescricaoUnidadeEncerramento() != null && !form.getDescricaoUnidadeEncerramento().equals("")) { httpServletRequest.setAttribute("unidadeEncerramentoEncontrada", "true"); } // Equipe Programa��o if (form.getIdEquipeProgramacao() != null && !form.getIdEquipeProgramacao().equals("") && form.getDescricaoEquipeProgramacao() != null && !form.getDescricaoEquipeProgramacao().equals("")) { httpServletRequest.setAttribute("equipeProgramacaoEncontrada", "true"); } // Equipe Execu��o if (form.getIdEquipeExecucao() != null && !form.getIdEquipeExecucao().equals("") && form.getDescricaoEquipeExecucao() != null && !form.getDescricaoEquipeExecucao().equals("")) { httpServletRequest.setAttribute("equipeExecucaoEncontrada", "true"); } } }