use of com.tomasio.projects.trainning.model.IndicacaoAluno in project trainning by fernandotomasio.
the class AtividadesEnsinoServiceSimpleImpl method findAllIndicacoesAlunosSelecionadosForOrdemMatricula.
@Override
@Transactional(readOnly = true)
public IndicacaoAlunoDTO[] findAllIndicacoesAlunosSelecionadosForOrdemMatricula(Long turmaId) {
IndicacaoDAO dao = factory.getIndicacaoDAO();
IndicacaoAlunoDTO[] indicacoesArray = null;
try {
List<IndicacaoAluno> indicacoes = dao.findAllAlunosSelecionadosForOrdemMatricula(turmaId);
if (indicacoes != null) {
indicacoesArray = new IndicacaoAlunoDTO[indicacoes.size()];
for (int i = 0; i < indicacoes.size(); i++) {
indicacoesArray[i] = indicacoes.get(i).createDTOWithoutDependencies();
}
}
} catch (DAOException ex) {
ex.printStackTrace();
throw new CoreException(ex.getMessage());
} catch (Exception ex) {
ex.printStackTrace();
throw new CoreException("Erro em tempo de execução: " + ex.getMessage());
}
return indicacoesArray;
}
use of com.tomasio.projects.trainning.model.IndicacaoAluno in project trainning by fernandotomasio.
the class AtividadesEnsinoServiceSimpleImpl method findAllIndicacoesAlunosByOrganizacao.
@Override
@Transactional(readOnly = true)
public IndicacaoAlunoDTO[] findAllIndicacoesAlunosByOrganizacao(Long organizacaoId) {
IndicacaoDAO dao = factory.getIndicacaoDAO();
IndicacaoAlunoDTO[] indicacoesArray = null;
try {
List<IndicacaoAluno> indicacoes = dao.findAllAlunosByOrganizacao(null, organizacaoId);
if (indicacoes != null) {
indicacoesArray = new IndicacaoAlunoDTO[indicacoes.size()];
for (int i = 0; i < indicacoes.size(); i++) {
indicacoesArray[i] = indicacoes.get(i).createDTOWithoutDependencies();
}
}
} catch (DAOException ex) {
ex.printStackTrace();
throw new CoreException(ex.getMessage());
} catch (Exception ex) {
ex.printStackTrace();
throw new CoreException("Erro em tempo de execução: " + ex.getMessage());
}
return indicacoesArray;
}
use of com.tomasio.projects.trainning.model.IndicacaoAluno in project trainning by fernandotomasio.
the class AtividadesEnsinoServiceSimpleImpl method arrangeIndicacoes.
private List<IndicacaoAluno> arrangeIndicacoes(Long turmaId, List<IndicacaoAluno> indicacoes) {
List<IndicacaoAluno> resultList = new ArrayList<IndicacaoAluno>();
// PREPARAR UM MAPA COM AS INDICAÇÕES SEPARADAS POR ORGANIZAÇÕES
Map<Long, List<IndicacaoAluno>> indicacoesMap = new HashMap<Long, List<IndicacaoAluno>>();
for (IndicacaoAluno indicacao : indicacoes) {
List<IndicacaoAluno> listaOM = indicacoesMap.get(indicacao.getOrganizacao().getId());
if (listaOM == null) {
List<IndicacaoAluno> newListaOM = new ArrayList<IndicacaoAluno>();
newListaOM.add(indicacao);
indicacoesMap.put(indicacao.getOrganizacao().getId(), newListaOM);
} else {
listaOM.add(indicacao);
}
}
// ORDENAR TODAS AS INDICAÇÕES POR PRIORIDADE
Set<Long> keys = indicacoesMap.keySet();
for (Long key : keys) {
List<IndicacaoAluno> lista = indicacoesMap.get(key);
Collections.sort(lista, new Comparator<IndicacaoAluno>() {
@Override
public int compare(IndicacaoAluno o1, IndicacaoAluno o2) {
int result = 0;
if (o1.getPrioridade() < o2.getPrioridade()) {
result = -1;
}
if (o1.getPrioridade() > o2.getPrioridade()) {
result = 1;
}
return result;
}
});
}
// REMOVER TODAS AS INDICAÇÕES NAO APROVADAS E GUARDA-LAS EM UMA LISTA SEPARADA
List<IndicacaoAluno> reprovados = new ArrayList<IndicacaoAluno>();
for (Long key : keys) {
List<IndicacaoAluno> lista = indicacoesMap.get(key);
List<IndicacaoAluno> aprovados = new ArrayList<IndicacaoAluno>();
for (IndicacaoAluno indicacao : lista) {
if (indicacao.isAprovado()) {
aprovados.add(indicacao);
} else {
reprovados.add(indicacao);
}
}
lista.clear();
lista.addAll(aprovados);
}
DistribuicaoDTO[] distribuicoes = findAllDistribuicoes(turmaId);
List<DistribuicaoDTO> vagasTitulares = new ArrayList<DistribuicaoDTO>();
List<DistribuicaoDTO> vagasReservas = new ArrayList<DistribuicaoDTO>();
if (distribuicoes == null || distribuicoes.length == 0) {
for (Long key : keys) {
List<IndicacaoAluno> listaIndicacao = indicacoesMap.get(key);
for (IndicacaoAluno indicacao : listaIndicacao) {
// STATUS 0 PARA STATUS NÃO APLICÁVEL (TURMAS SEM DISTRIBUIÇÃO DE VAGAS);
indicacao.setDistribuicaoStatus(0);
resultList.add(indicacao);
}
}
// LOOP DAS INDICAÇÕES NAO APROVADAS
for (IndicacaoAluno indicacao : reprovados) {
if (indicacao.isReprovado()) {
// STATUS 4 PARA INDICACAO REPROVADA;
indicacao.setDistribuicaoStatus(4);
} else {
// STATUS 5 PARA STATUS NAO APROVADA;
indicacao.setDistribuicaoStatus(5);
}
resultList.add(indicacao);
}
} else {
for (DistribuicaoDTO distribuicao : distribuicoes) {
if (distribuicao.isReserva()) {
vagasReservas.add(distribuicao);
} else {
vagasTitulares.add(distribuicao);
}
}
for (DistribuicaoDTO distribuicao : vagasTitulares) {
for (int i = 0; i < distribuicao.getQuantidadeVagas(); i++) {
List<IndicacaoAluno> listaIndicacoes = indicacoesMap.get(distribuicao.getOrganizacao().getId());
if (listaIndicacoes != null && listaIndicacoes.size() > 0) {
IndicacaoAluno indicacao = listaIndicacoes.get(0);
// STATUS 1 PARA INDICACAO TITULAR;
indicacao.setDistribuicaoStatus(1);
resultList.add(indicacao);
listaIndicacoes.remove(0);
}
}
}
for (DistribuicaoDTO distribuicao : vagasReservas) {
for (int i = 0; i < distribuicao.getQuantidadeVagas(); i++) {
List<IndicacaoAluno> listaIndicacoes = indicacoesMap.get(distribuicao.getOrganizacao().getId());
if (listaIndicacoes != null && listaIndicacoes.size() > 0) {
IndicacaoAluno indicacao = listaIndicacoes.get(0);
// STATUS 2 PARA INDICACAO RESERVA;
indicacao.setDistribuicaoStatus(2);
resultList.add(indicacao);
listaIndicacoes.remove(0);
}
}
}
for (Long key : keys) {
List<IndicacaoAluno> listaIndicacao = indicacoesMap.get(key);
for (IndicacaoAluno indicacao : listaIndicacao) {
// STATUS 3 PARA INDICACAO FORA DAS VAGAS;
indicacao.setDistribuicaoStatus(3);
resultList.add(indicacao);
}
}
// LOOP DAS INDICAÇÕES NAO APROVADAS
for (IndicacaoAluno indicacao : reprovados) {
if (indicacao.isReprovado()) {
// STATUS 4 PARA INDICACAO REPROVADA;
indicacao.setDistribuicaoStatus(4);
} else {
// STATUS 5 PARA STATUS NAO APROVADA;
indicacao.setDistribuicaoStatus(5);
}
resultList.add(indicacao);
}
}
return resultList;
}
use of com.tomasio.projects.trainning.model.IndicacaoAluno in project trainning by fernandotomasio.
the class AtividadesEnsinoServiceSimpleImpl method travaDeIndicacao.
@Override
@Transactional(readOnly = true)
public void travaDeIndicacao(IndicacaoDTO indicacao, String chamada) {
IndicacaoDAO dao = factory.getIndicacaoDAO();
Indicacao _indicacao = null;
if (indicacao != null) {
// if (indicacao instanceof IndicacaoAlunoDTO) {
_indicacao = new IndicacaoAluno((IndicacaoAlunoDTO) indicacao);
// } else {
// _indicacao = new IndicacaoInstrutor((IndicacaoInstrutorDTO) indicacao);
// }
}
try {
dao.travaDeIndicacao(_indicacao, chamada);
} catch (DAOException ex) {
throw new CoreException(ex.getMessage());
} catch (Exception ex) {
ex.printStackTrace();
throw new CoreException("Erro em tempo de execução: " + ex.getMessage());
}
}
use of com.tomasio.projects.trainning.model.IndicacaoAluno in project trainning by fernandotomasio.
the class AtividadesEnsinoServiceSimpleImpl method updateIndicacao.
@Override
@Transactional
public void updateIndicacao(IndicacaoDTO indicacao) {
IndicacaoDAO dao = factory.getIndicacaoDAO();
Indicacao _indicacao = null;
if (indicacao != null) {
if (indicacao instanceof IndicacaoAlunoDTO) {
_indicacao = new IndicacaoAluno((IndicacaoAlunoDTO) indicacao);
} else {
_indicacao = new IndicacaoInstrutor((IndicacaoInstrutorDTO) indicacao);
}
}
try {
dao.update(_indicacao);
} catch (DAOException ex) {
ex.printStackTrace();
throw new CoreException(ex.getMessage());
} catch (Exception ex) {
ex.printStackTrace();
throw new CoreException("Erro em tempo de execução: " + ex.getMessage());
}
}
Aggregations