@PermitAll @Override public Atividade verificarExistencia(Atividade entidadeNegocio) { StringBuilder jpql = new StringBuilder(); jpql.append("select a from "); jpql.append(getClasseEntidade().getSimpleName()); jpql.append(" as a where a.monitoria = ?1 "); jpql.append(" and a.dataInicio = ?2 "); TypedQuery<Atividade> query = super.entityManager.createQuery(jpql.toString(), getClasseEntidade()); query.setParameter(1, entidadeNegocio.getMonitoria()); query.setParameter(2, entidadeNegocio.getDataInicio(), TemporalType.DATE); return query.getSingleResult(); }
@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; }