/**
   * Excute do Exibir Consultar RA Tramites do Popup
   *
   * @author Leonardo Regis
   * @date 11/08/2006
   * @param actionMapping
   * @param actionForm
   * @param httpServletRequest
   * @param httpServletResponse
   * @return forward
   */
  public ActionForward execute(
      ActionMapping actionMapping,
      ActionForm actionForm,
      HttpServletRequest httpServletRequest,
      HttpServletResponse httpServletResponse) {

    // Seta o mapeamento de retorno
    ActionForward retorno = actionMapping.findForward("consultarRegistroAtendimentoTramite");

    Fachada fachada = Fachada.getInstancia();

    ConsultarRegistroAtendimentoTramiteActionForm consultarRegistroAtendimentoTramite =
        (ConsultarRegistroAtendimentoTramiteActionForm) actionForm;

    RegistroAtendimento registroAtendimento =
        pesquisarRegistroAtendimento(
            new Integer(consultarRegistroAtendimentoTramite.getNumeroRA()));

    consultarRegistroAtendimentoTramite.setNumeroRA("" + registroAtendimento.getId());

    ObterDescricaoSituacaoRAHelper situacaoRA =
        fachada.obterDescricaoSituacaoRA(registroAtendimento.getId());

    consultarRegistroAtendimentoTramite.setSituacaoRA(situacaoRA.getDescricaoSituacao());

    SolicitacaoTipoEspecificacao solicitacaoTipoEspecificacao =
        registroAtendimento.getSolicitacaoTipoEspecificacao();

    if (solicitacaoTipoEspecificacao != null) {

      if (solicitacaoTipoEspecificacao.getSolicitacaoTipo() != null) {
        consultarRegistroAtendimentoTramite.setIdTipoSolicitacao(
            solicitacaoTipoEspecificacao.getSolicitacaoTipo().getId() + "");
        consultarRegistroAtendimentoTramite.setTipoSolicitacao(
            solicitacaoTipoEspecificacao.getSolicitacaoTipo().getDescricao());
      }
      consultarRegistroAtendimentoTramite.setIdEspecificacao(
          solicitacaoTipoEspecificacao.getId() + "");
      consultarRegistroAtendimentoTramite.setEspecificacao(
          solicitacaoTipoEspecificacao.getDescricao());
    }

    UnidadeOrganizacional unidadeAtual = fachada.obterUnidadeAtualRA(registroAtendimento.getId());

    if (unidadeAtual != null) {
      consultarRegistroAtendimentoTramite.setIdUnidadeAtual("" + unidadeAtual.getId());
      consultarRegistroAtendimentoTramite.setUnidadeAtual(unidadeAtual.getDescricao());
    }

    UnidadeOrganizacional unidadeAtendimento =
        fachada.obterUnidadeAtendimentoRA(registroAtendimento.getId());

    if (unidadeAtendimento != null) {
      consultarRegistroAtendimentoTramite.setIdUnidadeAtendimento("" + unidadeAtendimento.getId());
      consultarRegistroAtendimentoTramite.setUnidadeAtendimento(unidadeAtendimento.getDescricao());
    }

    // Trâmites do RA
    Collection<Tramite> colecaoTramite = fachada.obterTramitesRA(registroAtendimento.getId());

    if (colecaoTramite != null && !colecaoTramite.isEmpty()) {
      consultarRegistroAtendimentoTramite.setColecaoTramites(colecaoTramite);
    } else {
      throw new ActionServletException("atencao.colsutar_tramites_consulta_vazia");
    }

    return retorno;
  }