@RolesAllowed({ALUNO, PROFESSOR}) public List<Atividade> consultarAtividadesMensaisDaMonitoria( Monitoria monitoria, Date dataInicialMes, Date dataFinalMes) { Integer mes = Util.getMonthOfDate(dataInicialMes, dataFinalMes); System.out.println("Mes: " + mes); return this.consultarAtividadesMensaisDaMonitoria(monitoria, mes); }
@RolesAllowed({ALUNO, PROFESSOR}) public byte[] obterRelatorioFrequencia( Monitoria monitoria, Date dataInicialMes, Date dataFinalMes) { Integer mes = Util.getMonthOfDate(dataInicialMes, dataFinalMes); List<Atividade> atividades = this.consultarAtividadesMensaisDaMonitoria(monitoria, mes); List<RelatorioDTO> dadosRelatorio = converterAtividadesEmRelatorio(monitoria, atividades, mes); try { return RelatorioUtil.gerarRelatorioPDF(dadosRelatorio, null, RELATORIO_JASPER_ATIVIDADE); } catch (JRException ex) { Logger.getLogger(AtividadeService.class.getName()).log(Level.SEVERE, null, ex); } return null; }
@RolesAllowed({ALUNO, PROFESSOR}) public List<RelatorioDTO> converterAtividadesEmRelatorio( Monitoria monitoria, List<Atividade> atividades, Integer mes) { RelatorioDTO relatorio = new RelatorioDTO(); relatorio.setAno(monitoria.getAnoMonitoria()); relatorio.setEdital(monitoria.getEditalMonitoria()); relatorio.setDisciplina(monitoria.getDisciplina().getComponenteCurricular().getDescricao()); relatorio.setMatricula(monitoria.getAluno().getMatricula()); relatorio.setCurso(monitoria.getAluno().getCurso().getDescricao()); relatorio.setNome(monitoria.getNomeMonitor()); relatorio.setOrientador(monitoria.getNomeOrientador()); relatorio.setMes(Util.obterNomeMes(mes)); StringBuilder descricaoAcumulada = new StringBuilder(); StringBuilder observacaoAcumulada = new StringBuilder(); List<SemanaDTO> semanas = new ArrayList<>(); List<DiaDTO> dias = new ArrayList<>(); SimpleDateFormat format = new SimpleDateFormat("HH:mm"); SemanaDTO semana = new SemanaDTO(); int quantidadeAtividades = 0; for (Atividade atividade : atividades) { DiaDTO dia = new DiaDTO(); String horarioInicial = format.format(atividade.getDataInicio()); String horarioFinal = format.format(atividade.getDataFim()); dia.setHorario(horarioInicial + " - " + horarioFinal); dia.setData(atividade.getDataInicio()); dias.add(dia); if (!StringUtils.isEmpty(atividade.getDescricao())) { descricaoAcumulada.append(atividade.getDescricao()); descricaoAcumulada.append("; "); } if (!StringUtils.isEmpty(atividade.getObservacoes())) { observacaoAcumulada.append(atividade.getObservacoes()); observacaoAcumulada.append("; "); } quantidadeAtividades += 1; if (((quantidadeAtividades % 5) == 0) || quantidadeAtividades == atividades.size()) { semana.setDias(dias); semana.setDescricao(descricaoAcumulada.toString()); semana.setObservacao(observacaoAcumulada.toString()); dias = new ArrayList<>(); semanas.add(semana); semana = new SemanaDTO(); descricaoAcumulada.delete(0, descricaoAcumulada.capacity()); observacaoAcumulada.delete(0, observacaoAcumulada.capacity()); } } relatorio.setSemanas(semanas); List<RelatorioDTO> relatorios = new ArrayList<>(); relatorios.add(relatorio); return relatorios; }