/** @throws SystemException */
  public void imprimirListaGeralPorSituacao() throws SystemException {

    String pathRelatorio = REL_SITUACAO_DOS_DOCUMENTOS_POR_SITUACAO;

    List<SituacaoDosDocumentosTO> listaSituacaoDosDocumentosTO =
        new ArrayList<SituacaoDosDocumentosTO>();

    List<Situacao> listaSituacoes = (List<Situacao>) situacaoService.listar();

    for (Situacao s : listaSituacoes) {

      SituacaoDosDocumentosTO situacaoDosDocumentosTO = new SituacaoDosDocumentosTO();

      List<IndicadorProcesso> listaIndicadorProcessoTmp = new ArrayList<IndicadorProcesso>();
      listaIndicadorProcessoTmp.addAll(carregarListaIndicadorSubProcPorSituacao(s.getId()));

      List<Risco> listaRiscoSubProcTmp = new ArrayList<Risco>();
      listaRiscoSubProcTmp.addAll(carregarListaRiscoSubProcPorSituacao(s.getId()));

      List<InteracaoProcesso> listaInteracaoProcessoTmp = new ArrayList<InteracaoProcesso>();
      listaInteracaoProcessoTmp.addAll(carregarListaInteracaoProcessoPorSituacao(s.getId()));

      List<Procedimento> listaProcedimentoSubProcTmp = new ArrayList<Procedimento>();
      listaProcedimentoSubProcTmp.addAll(carregarListaProcedimentoSubProcSituacao(s.getId()));

      List<ProtocoloClinico> listaProtocoloClinicoSubProcTmp = new ArrayList<ProtocoloClinico>();
      listaProtocoloClinicoSubProcTmp.addAll(
          carregarListaProtocoloClinicoSubProcSituacao(s.getId()));

      List<DocumentoFisico> listaDocumentoFisicoTmp = new ArrayList<DocumentoFisico>();
      listaDocumentoFisicoTmp.addAll(carregarListaDocFisicoPorSituacao(s.getId()));

      List<Reuniao> listaReuniaoTmp = new ArrayList<Reuniao>();
      listaReuniaoTmp.addAll(carregarListaReuniaoPorSituacao(s.getId()));

      situacaoDosDocumentosTO.getListaIndicadorProcesso().addAll(listaIndicadorProcessoTmp);

      situacaoDosDocumentosTO.getListaRiscoSubProc().addAll(listaRiscoSubProcTmp);
      situacaoDosDocumentosTO.getListaInteracaoProcesso().addAll(listaInteracaoProcessoTmp);
      situacaoDosDocumentosTO.getListaProcedimentoSubProc().addAll(listaProcedimentoSubProcTmp);
      situacaoDosDocumentosTO
          .getListaProtocoloClinicoSubProc()
          .addAll(listaProtocoloClinicoSubProcTmp);
      situacaoDosDocumentosTO.getListaDocumentoFisico().addAll(listaDocumentoFisicoTmp);
      situacaoDosDocumentosTO.getListaReuniao().addAll(listaReuniaoTmp);

      situacaoDosDocumentosTO.setSituacao(s);
      listaSituacaoDosDocumentosTO.add(situacaoDosDocumentosTO);
    }

    Map<String, Object> parametros = new HashMap<String, Object>();
    parametros.putAll(carregarParametrosSituacao("Situação dos Documentos"));

    JasperReportUtil.gerarPDF(
        pathRelatorio,
        parametros,
        listaSituacaoDosDocumentosTO,
        "SituacaoDosDocumentosPorSituacao");
  }
  /** @throws Exception */
  public void imprimirListaGeral() throws Exception {

    if (codigoProcessoSelecionado != null && codigoSituacaoSelecionado != null) {

      String pathRelatorio = REL_SITUACAO_DOS_DOCUMENTOS;

      carregaTodas();

      List<SituacaoDosDocumentosTO> listaSituacaoDosDocumentosTO =
          new ArrayList<SituacaoDosDocumentosTO>();

      SituacaoDosDocumentosTO situacaoDosDocumentosTO = new SituacaoDosDocumentosTO();

      List<IndicadorProcesso> listaIndicadorProcessoTmp = new ArrayList<IndicadorProcesso>();
      listaIndicadorProcessoTmp.addAll(listaIndicadorSubProc);

      List<Risco> listaRiscoSubProcTmp = new ArrayList<Risco>();
      listaRiscoSubProcTmp.addAll(listaRiscoSubProc);

      List<InteracaoProcesso> listaInteracaoProcessoTmp = new ArrayList<InteracaoProcesso>();
      listaInteracaoProcessoTmp.addAll(listaInteracaoProcesso);

      List<Procedimento> listaProcedimentoSubProcTmp = new ArrayList<Procedimento>();
      listaProcedimentoSubProcTmp.addAll(listaProcedimentoSubProc);

      List<ProtocoloClinico> listaProtocoloClinicoSubProcTmp = new ArrayList<ProtocoloClinico>();
      listaProtocoloClinicoSubProcTmp.addAll(listaProtocoloClinicoSubProc);

      List<DocumentoFisico> listaDocumentoFisicoTmp = new ArrayList<DocumentoFisico>();
      listaDocumentoFisicoTmp.addAll(listaDocumentoFisico);

      List<Reuniao> listaReuniaoTmp = new ArrayList<Reuniao>();
      listaReuniaoTmp.addAll(listaReuniao);

      situacaoDosDocumentosTO.getListaIndicadorProcesso().addAll(listaIndicadorProcessoTmp);
      situacaoDosDocumentosTO.getListaRiscoSubProc().addAll(listaRiscoSubProcTmp);
      situacaoDosDocumentosTO.getListaInteracaoProcesso().addAll(listaInteracaoProcessoTmp);
      situacaoDosDocumentosTO.getListaProcedimentoSubProc().addAll(listaProcedimentoSubProcTmp);
      situacaoDosDocumentosTO
          .getListaProtocoloClinicoSubProc()
          .addAll(listaProtocoloClinicoSubProcTmp);
      situacaoDosDocumentosTO.getListaDocumentoFisico().addAll(listaDocumentoFisicoTmp);
      situacaoDosDocumentosTO.getListaReuniao().addAll(listaReuniaoTmp);

      listaSituacaoDosDocumentosTO.add(situacaoDosDocumentosTO);

      Map<String, Object> parametros = new HashMap<String, Object>();
      parametros.putAll(carregarParametros("Situação dos Documentos"));

      JasperReportUtil.gerarPDF(
          pathRelatorio, parametros, listaSituacaoDosDocumentosTO, "SituacaoDosDocumentos");

    } else {

      FacesUtil.registrarErro(PropertiesUtil.get("informe.processo.situacao"));
    }
  }