Search in sources :

Example 16 with DistribuicaoDTO

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;
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) IndicacaoAluno(com.tomasio.projects.trainning.model.IndicacaoAluno) DistribuicaoDTO(com.tomasio.projects.trainning.dto.DistribuicaoDTO) ArrayList(java.util.ArrayList) List(java.util.List)

Example 17 with DistribuicaoDTO

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;
}
Also used : DAOException(com.tomasio.projects.trainning.exception.DAOException) DistribuicaoDTO(com.tomasio.projects.trainning.dto.DistribuicaoDTO) CoreException(com.tomasio.projects.trainning.exeption.CoreException) Distribuicao(com.tomasio.projects.trainning.model.Distribuicao) DistribuicaoDAO(com.tomasio.projects.trainning.dao.DistribuicaoDAO) DAOException(com.tomasio.projects.trainning.exception.DAOException) ParseException(java.text.ParseException) CoreException(com.tomasio.projects.trainning.exeption.CoreException) Transactional(org.springframework.transaction.annotation.Transactional)

Example 18 with DistribuicaoDTO

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) {
    }
}
Also used : PlanningService(com.tomasio.projects.trainning.interfaces.PlanningService) Calendar(java.util.Calendar) Date(java.util.Date) ParseException(java.text.ParseException) PlanejamentoDTO(com.tomasio.projects.trainning.dto.PlanejamentoDTO) FaseDTO(com.tomasio.projects.trainning.dto.FaseDTO) DistribuicaoDTO(com.tomasio.projects.trainning.dto.DistribuicaoDTO) ApplicationContext(org.springframework.context.ApplicationContext) ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) TurmaEfetivaDTO(com.tomasio.projects.trainning.dto.TurmaEfetivaDTO) ClassPathXmlApplicationContext(org.springframework.context.support.ClassPathXmlApplicationContext) TrainningService(com.tomasio.projects.trainning.interfaces.TrainningService) PeriodoDTO(com.tomasio.projects.trainning.dto.PeriodoDTO) ParseException(java.text.ParseException) SimpleDateFormat(java.text.SimpleDateFormat) AtividadesEnsinoService(com.tomasio.projects.trainning.interfaces.AtividadesEnsinoService) TurmaPlanejadaDTO(com.tomasio.projects.trainning.dto.TurmaPlanejadaDTO) HashSet(java.util.HashSet)

Aggregations

DistribuicaoDTO (com.tomasio.projects.trainning.dto.DistribuicaoDTO)18 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)8 FaseDTO (com.tomasio.projects.trainning.dto.FaseDTO)5 ParseException (java.text.ParseException)5 ResponseBody (org.springframework.web.bind.annotation.ResponseBody)5 TurmaEfetivaDTO (com.tomasio.projects.trainning.dto.TurmaEfetivaDTO)4 TurmaPlanejadaDTO (com.tomasio.projects.trainning.dto.TurmaPlanejadaDTO)4 CoreException (com.tomasio.projects.trainning.exeption.CoreException)4 AtividadesEnsinoService (com.tomasio.projects.trainning.interfaces.AtividadesEnsinoService)4 HashMap (java.util.HashMap)4 HashSet (java.util.HashSet)4 DistribuicaoDAO (com.tomasio.projects.trainning.dao.DistribuicaoDAO)3 OrganizacaoDTO (com.tomasio.projects.trainning.dto.OrganizacaoDTO)3 DAOException (com.tomasio.projects.trainning.exception.DAOException)3 TrainningService (com.tomasio.projects.trainning.interfaces.TrainningService)3 Distribuicao (com.tomasio.projects.trainning.model.Distribuicao)3 ArrayList (java.util.ArrayList)3 Calendar (java.util.Calendar)3 CursoDTO (com.tomasio.projects.trainning.dto.CursoDTO)2 IndicacaoDTO (com.tomasio.projects.trainning.dto.IndicacaoDTO)2