Bom dia galera, tdo certo? Bem, na minha aplicação eestou tendo que fazer transferências de alunos de uma turma para outra…Então fiz o seguinte método:
public void atualizaNotasDoAlunoNaTurmaDestino(Integer codMatricula) {
List<Grade> listGradeOrigem = new ArrayList<Grade>();
List<Grade> listGradeDestino = new ArrayList<Grade>();
if (crudObj.getTurma() != null && crudObj.getTurmaDestino() != null) {
if (!crudObj.getTurma().getCodigo().toString().equals(crudObj.getTurmaDestino().getCodigo().toString())) {
for (Grade grade : crudObj.getTurma().getEtapasList().get(0).getGradeCollection()) {
listGradeOrigem.add(grade);
}
for (Grade grade : crudObj.getTurmaDestino().getEtapasList().get(0).getGradeCollection()) { // a coleção de grade possui as disciplinas que cada etapa(série) possui...
listGradeDestino.add(grade);
}
for (int i = 0; i < listGradeOrigem.size(); i++) { // origem
for (int j = 0; j < listGradeDestino.size(); j++) { //destino
if (listGradeOrigem.get(i).getDisciplina().getCodigo() == listGradeDestino.get(j).getDisciplina().getCodigo()) {
notasParaTurmaDestinoList = notaService.buscaNotasDoAluno(crudObj.getMatricula());
}
}
}
for (Nota n : notasParaTurmaDestinoList) {
Nota nota = new Nota();
//nota.setCodigo();
nota.setAno(n.getAno());
nota.setMatriculas(crudObj.getMatriculaDestino());
nota.setAluno(n.getAluno());
nota.setDisciplina(n.getDisciplina());
nota.setEscola(n.getEscola());
nota.setPeriodo(n.getPeriodo());
nota.setNota(n.getNota());
nota.setConceito(n.getConceito());
nota.setNroFaltas(n.getNroFaltas());
nota.setTurma(crudObj.getTurmaDestino());
// nota.setStatus(n.getStatus());
nota.setParecer(n.getParecer());
nota.setNotaRecuperacao(n.getNotaRecuperacao());
nota.setEtapa(n.getEtapa());
nota.setAvaliacoes(n.getAvaliacoes());
nota.setPercFaltas(n.getPercFaltas());
nota.setNotaParcial(n.getNotaParcial());
nota.setCodParecer(n.getCodParecer());
getCrudService().save(nota);
}
} else {
JsfUtil.warn("Você não pode transferir um aluno para a mesma turma.Verifique.");
}
}
}
Está funcioando, porém, queria otimizá-lo…Por exemplo, vou fazer uma transferência de um aluno da turma A para turma A1: A turma A era composta por 3 trimestres e a média final. Além disso possuía 14 matérias. Então, nesse caso seriam 56 notas para transferir para a outra turma…A transferência está levando em média 8 segundos no caso como citado…Se alguém puder ajudar, agradeceria mto…vLW…