use of com.tomasio.projects.trainning.dto.DistribuicaoDTO 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.dto.DistribuicaoDTO in project trainning by fernandotomasio.
the class AtividadesEnsinoServiceSimpleImpl method findAllDistribuicoesByOrganizacao.
@Override
@Transactional(readOnly = true)
public DistribuicaoDTO[] findAllDistribuicoesByOrganizacao(Long organizacaoId) {
DistribuicaoDAO dao = factory.getDistribuicaoDAO();
DistribuicaoDTO[] distribuicoesArray = null;
try {
List<Distribuicao> distribuicoes = dao.findAllByOrganizacao(organizacaoId);
if (distribuicoes != null) {
distribuicoesArray = new DistribuicaoDTO[distribuicoes.size()];
for (int i = 0; i < distribuicoes.size(); i++) {
distribuicoesArray[i] = distribuicoes.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 distribuicoesArray;
}
use of com.tomasio.projects.trainning.dto.DistribuicaoDTO in project trainning by fernandotomasio.
the class ImportTurmasEfetivasFromPlanejamento method execute.
@Override
public void execute() {
Long planejamentoId = 312434L;
ApplicationContext context = new ClassPathXmlApplicationContext("service-context.xml");
AtividadesEnsinoService atividadesService = (AtividadesEnsinoService) context.getBean("atividadesEnsinoService");
TrainningService trainningService = (TrainningService) context.getBean("trainningService");
PlanningService planningService = (PlanningService) context.getBean("planningService");
try {
PlanejamentoDTO planejamento = planningService.findPlanejamento(planejamentoId);
TurmaPlanejadaDTO[] turmasPlanejadas = planningService.findAllTurmasPlanejadas(planejamentoId, null, null, null);
for (TurmaPlanejadaDTO turmaPlanejadaDTO : turmasPlanejadas) {
TurmaEfetivaDTO turmaEfetiva = new TurmaEfetivaDTO();
turmaEfetiva.setCurso(trainningService.findCurso(turmaPlanejadaDTO.getCurso().getId()));
turmaEfetiva.setResponsavelId(turmaPlanejadaDTO.getResponsavelId());
turmaEfetiva.setOrganizacaoGestoraId(planejamento.getOrganizacao().getId());
turmaEfetiva.setResponsavelMatriculaId(planejamento.getOrganizacao().getId());
turmaEfetiva.setResponsavelConclusaoId(turmaPlanejadaDTO.getResponsavelId());
turmaEfetiva.setResponsavelPreMatriculaId(planejamento.getOrganizacao().getId());
turmaEfetiva.setResponsavelSelecaoId(planejamento.getOrganizacao().getId());
turmaEfetiva.setResponsavelApresentacaoId(turmaPlanejadaDTO.getResponsavelId());
turmaEfetiva.setNumeroTurma(turmaPlanejadaDTO.getNumeroTurma());
Set<FaseDTO> fasesDTO = new HashSet<FaseDTO>(Arrays.asList(turmaPlanejadaDTO.getFases()));
FaseDTO[] fasesArray = new FaseDTO[fasesDTO.size()];
int i = 0;
for (FaseDTO faseDTO : fasesDTO) {
fasesArray[i] = faseDTO;
i++;
}
turmaEfetiva.setFases(fasesArray);
turmaEfetiva.setTurmaPlanejadaId(turmaPlanejadaDTO.getId());
turmaEfetiva.setNumeroTurma(turmaPlanejadaDTO.getNumeroTurma());
turmaEfetiva.setQuantidadeVagas(turmaPlanejadaDTO.getQuantidadeVagas());
Calendar calendar = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date dataInicio = turmaPlanejadaDTO.getDataInicio();
Date startIndicacoes = null;
Date endIndicacoes = null;
if (dataInicio != null) {
calendar.setTime(dataInicio);
try {
startIndicacoes = df.parse("01/01/2015");
calendar.add(Calendar.DATE, -20);
endIndicacoes = df.parse(df.format(calendar.getTime()));
} catch (ParseException ex) {
Logger.getLogger(ImportTurmasEfetivasFromPlanejamento.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
try {
startIndicacoes = df.parse("01/01/2015");
endIndicacoes = df.parse("31/12/2015");
} catch (ParseException ex) {
Logger.getLogger(ImportTurmasEfetivasFromPlanejamento.class.getName()).log(Level.SEVERE, null, ex);
}
}
PeriodoDTO periodoIndicacoes = new PeriodoDTO();
periodoIndicacoes.setDataInicio(startIndicacoes);
periodoIndicacoes.setDataTermino(endIndicacoes);
turmaEfetiva.setPeriodoIndicacao(periodoIndicacoes);
// TODO: QuantidadeVagas?
// TODO: periodoIndicacao?
// TreinamentoPlanejadoDTO [] treinamentosPlanejados = turmaPlanejadaDTO.getTreinamentosPlanejados();
// for (TreinamentoPlanejadoDTO treinamentoPlanejadoDTO : treinamentosPlanejados) {
// DistribuicaoDTO distribuicao = new DistribuicaoDTO();
// distribuicao.setOrganizacao(treinamentoPlanejadoDTO.getOrganizacao());
// distribuicao.setQuantidadeVagas(treinamentoPlanejadoDTO.getQuantidade());
// distribuicao.setReserva(false);
// //turmaEfetiva.getDistribuicoes().add(distribuicao);
//
// }
Date exercicio = planejamento.getExercicio();
turmaEfetiva.setExercicio(exercicio);
Long turmaId = atividadesService.createTurmaEfetiva(turmaEfetiva);
// Distribuição de Vagas
DistribuicaoDTO[] distribuicoes = planningService.findAllDistribuicoes(turmaPlanejadaDTO.getId());
for (DistribuicaoDTO distribuicaoPlanejada : distribuicoes) {
DistribuicaoDTO distribuicaoEfetiva = new DistribuicaoDTO();
distribuicaoEfetiva.setOrganizacao(distribuicaoPlanejada.getOrganizacao());
distribuicaoEfetiva.setPrioridade(distribuicaoPlanejada.getPrioridade());
distribuicaoEfetiva.setQuantidadeVagas(distribuicaoPlanejada.getQuantidadeVagas());
distribuicaoEfetiva.setReserva(distribuicaoPlanejada.isReserva());
distribuicaoEfetiva.setTurma(atividadesService.findTurmaEfetiva(turmaId));
atividadesService.createDistribuicao(distribuicaoEfetiva);
}
}
} catch (Exception e) {
}
}
Aggregations