Search in sources :

Example 1 with AtividadesEnsinoService

use of com.tomasio.projects.trainning.interfaces.AtividadesEnsinoService in project trainning by fernandotomasio.

the class ImportTurmasEfetivasFromPlanejamento method main.

public static void main(String[] args) {
    Long planejamentoId = 714644L;
    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/02/2017");
                    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/02/2017");
                    endIndicacoes = df.parse("31/12/2017");
                } 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);
            System.out.println("Criada Turma " + turmaId);
            // 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);
            }
        }
        System.out.println("Finalizado");
    } 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)

Example 2 with AtividadesEnsinoService

use of com.tomasio.projects.trainning.interfaces.AtividadesEnsinoService in project trainning by fernandotomasio.

the class EXC001ODF method makeReport.

@Override
public void makeReport() {
    try {
        odt = OdfTextDocument.newTextDocument();
        AtividadesEnsinoService service = (AtividadesEnsinoService) services.get("atividadesEnsinoService");
        OrganizationalService organizationalService = (OrganizationalService) services.get("organizationalService");
        Long turmaId = (Long) params.get("turmaId");
        TurmaDTO turma = service.findTurmaEfetiva(turmaId);
        IndicacaoDTO[] indicacoes = service.findAllIndicacoesAlunos(turmaId);
        odt.newParagraph("CURSO: " + turma.getCurso().getCodigo() + " - " + turma.getCurso().getDescricao());
        odt.newParagraph("TURMA: " + turma.getNumeroTurma());
        odt.newParagraph("INICIO: " + turma.getDataInicioFormatted());
        odt.newParagraph("TERMINO: " + turma.getDataTerminoFormatted());
        OdfTable indicacoesTable = OdfTable.newTable(odt, indicacoes.length + 1, 5);
        OdfTableCell postoHeader = indicacoesTable.getCellByPosition(0, 0);
        postoHeader.setStringValue("Posto/Graduacao");
        postoHeader.setHorizontalAlignment("center");
        OdfTableCell especialidadeHeader = indicacoesTable.getCellByPosition(1, 0);
        especialidadeHeader.setStringValue("Especialidade");
        especialidadeHeader.setHorizontalAlignment("center");
        OdfTableCell nomeHeader = indicacoesTable.getCellByPosition(2, 0);
        nomeHeader.setStringValue("Nome");
        nomeHeader.setHorizontalAlignment("center");
        OdfTableCell saramHeader = indicacoesTable.getCellByPosition(3, 0);
        saramHeader.setStringValue("SARAM");
        saramHeader.setHorizontalAlignment("center");
        OdfTableCell cpfHeader = indicacoesTable.getCellByPosition(4, 0);
        cpfHeader.setStringValue("CPF");
        cpfHeader.setHorizontalAlignment("center");
        OdfTableCell organizacaoHeader = indicacoesTable.getCellByPosition(5, 0);
        organizacaoHeader.setStringValue("Organizacao");
        organizacaoHeader.setHorizontalAlignment("center");
        for (int i = 0; i < indicacoes.length; i++) {
            PessoaDTO pessoa = organizationalService.findPessoa(indicacoes[i].getPessoa().getId());
            String posto = pessoa.getPosto();
            String especialidade = pessoa.getEspecialidade();
            String nome = pessoa.getNome();
            String saram = pessoa.getSaram();
            String cpf = pessoa.getCpf();
            OrganizacaoDTO organizacao = organizationalService.findOrganizacao(indicacoes[i].getOrganizacao().getId());
            String siglaOrganizacao = organizacao.getSigla();
            OdfTableCell postoCell = indicacoesTable.getCellByPosition(0, i + 1);
            postoCell.setStringValue(posto);
            OdfTableCell especialidadeCell = indicacoesTable.getCellByPosition(1, i + 1);
            especialidadeCell.setStringValue(especialidade);
            OdfTableCell nomeCell = indicacoesTable.getCellByPosition(2, i + 1);
            nomeCell.setStringValue(nome);
            OdfTableCell saramCell = indicacoesTable.getCellByPosition(3, i + 1);
            saramCell.setStringValue(saram);
            OdfTableCell cpfCell = indicacoesTable.getCellByPosition(4, i + 1);
            cpfCell.setStringValue(cpf);
            OdfTableCell organizacaoCell = indicacoesTable.getCellByPosition(5, i + 1);
            organizacaoCell.setStringValue(siglaOrganizacao);
        }
        odt.save(os);
    } catch (Exception ex) {
        Logger.getLogger(EXC001ODF.class.getName()).log(Level.SEVERE, null, ex);
    }
}
Also used : TurmaDTO(com.tomasio.projects.trainning.dto.TurmaDTO) IndicacaoDTO(com.tomasio.projects.trainning.dto.IndicacaoDTO) OdfTableCell(org.odftoolkit.odfdom.doc.table.OdfTableCell) PessoaDTO(com.tomasio.projects.trainning.dto.PessoaDTO) OrganizationalService(com.tomasio.projects.trainning.interfaces.OrganizationalService) OdfTable(org.odftoolkit.odfdom.doc.table.OdfTable) OrganizacaoDTO(com.tomasio.projects.trainning.dto.OrganizacaoDTO) AtividadesEnsinoService(com.tomasio.projects.trainning.interfaces.AtividadesEnsinoService)

Example 3 with AtividadesEnsinoService

use of com.tomasio.projects.trainning.interfaces.AtividadesEnsinoService in project trainning by fernandotomasio.

the class EXC014CSV method makeReport.

@Override
public void makeReport() {
    AtividadesEnsinoService service = (AtividadesEnsinoService) services.get("atividadesEnsinoService");
    OrganizationalService organizationalService = (OrganizationalService) services.get("organizationalService");
    Writer writter = null;
    try {
        writter = new OutputStreamWriter(os, "UTF-8");
    } catch (UnsupportedEncodingException ex) {
        Logger.getLogger(EXC014CSV.class.getName()).log(Level.SEVERE, null, ex);
    }
    BufferedWriter bufferedWriter = new BufferedWriter(writter);
    // recuperar paramentro
    Date exercicio = (Date) params.get("exercicio");
    Long organizacaoId = (Long) params.get("organizacaoId");
    String status = "";
    status += (String) params.get("status");
    String search = "";
    // search += (String) params.get("search");
    List<MatriculaDTO> alunos = new ArrayList<MatriculaDTO>();
    MatriculaDTO[] matriculas = service.findAllMatriculasAlunosDaOM(organizacaoId, exercicio, search);
    alunos.addAll(Arrays.asList(matriculas));
    // verificar se vai filtrar pelo status
    List<MatriculaDTO> alunosFiltrado = new ArrayList<MatriculaDTO>();
    if (status.equals("")) {
        alunosFiltrado.addAll(alunos);
    } else {
        for (MatriculaDTO aluno : alunos) {
            CancelamentoMatriculaDTO cancelada = service.findCancelamentoMatriculaByMatricula(aluno.getId());
            ConclusaoDTO conclusao = service.findConclusaoByMatricula(aluno.getId());
            // se for diferente do status passado não inclui na lista
            switch(status) {
                case "CANCELADO":
                    // preencher o status
                    if (cancelada != null) {
                        // tem cancelamento
                        alunosFiltrado.add(aluno);
                    }
                    break;
                case "APROVADO":
                    if (cancelada == null && conclusao != null && conclusao.isComAproveitamento()) {
                        alunosFiltrado.add(aluno);
                    }
                    break;
                case "DESLIGADO":
                    if (cancelada == null && conclusao != null && !conclusao.isComAproveitamento()) {
                        alunosFiltrado.add(aluno);
                    }
                    break;
                case "CURSANDO":
                    if (cancelada == null && conclusao == null) {
                        // nao tem cancelamento e nem conclusão
                        // em andamento
                        alunosFiltrado.add(aluno);
                    }
                    break;
            }
        }
    }
    for (MatriculaDTO matricula : alunosFiltrado) {
        try {
            OrganizacaoDTO omAlunos = organizationalService.findOrganizacao(organizacaoId);
            TurmaEfetivaDTO turmaEfetiva = service.findTurmaEfetiva(matricula.getTurma().getId());
            OrganizacaoDTO responsavel = organizationalService.findOrganizacao(turmaEfetiva.getResponsavelId());
            CancelamentoMatriculaDTO cancelada = service.findCancelamentoMatriculaByMatricula(matricula.getId());
            ConclusaoDTO conclusao = service.findConclusaoByMatricula(matricula.getId());
            // OM DOS ALUNOS
            bufferedWriter.write(omAlunos.getSigla());
            bufferedWriter.write("|");
            // turma
            String turma = turmaEfetiva.getCurso().getCodigo() + "-" + turmaEfetiva.getNumeroTurma();
            String extra = "";
            // verificar se é extra
            if (turmaEfetiva.isExtra())
                extra = " EXTRA";
            bufferedWriter.write(turma + extra);
            bufferedWriter.write("|");
            // local
            if (turmaEfetiva.getLocal() != null) {
                bufferedWriter.write(turmaEfetiva.getLocal());
            } else {
                bufferedWriter.write("");
            }
            bufferedWriter.write("|");
            // ORESP
            bufferedWriter.write(responsavel.getSigla());
            bufferedWriter.write("|");
            // dt inicia
            if (turmaEfetiva.getDataInicioFormatted() != null) {
                bufferedWriter.write(turmaEfetiva.getDataInicioFormatted());
            } else {
                bufferedWriter.write("");
            }
            bufferedWriter.write("|");
            // dt termino
            if (turmaEfetiva.getDataTerminoFormatted() != null) {
                bufferedWriter.write(turmaEfetiva.getDataTerminoFormatted());
            } else {
                bufferedWriter.write("");
            }
            bufferedWriter.write("|");
            // aluno
            if (matricula.getPessoa().getTargetaCompleta() != null) {
                bufferedWriter.write(matricula.getPessoa().getTargetaCompleta());
            } else {
                bufferedWriter.write("");
            }
            bufferedWriter.write("|");
            // saram
            if (matricula.getPessoa().getSaram() != null) {
                bufferedWriter.write(matricula.getPessoa().getSaram());
            } else {
                bufferedWriter.write("");
            }
            bufferedWriter.write("|");
            // STATUS e MOTIVO (caso tenha)
            if (cancelada != null) {
                // status
                bufferedWriter.write("CANCELADO");
                bufferedWriter.write("|");
                // motivo
                if (cancelada.getObservacao() != null) {
                    bufferedWriter.write(cancelada.getObservacao());
                } else {
                    bufferedWriter.write("");
                }
                bufferedWriter.write("|");
                // parecer
                bufferedWriter.write("");
                bufferedWriter.write("|");
            } else {
                // verificar se tem conclusão
                if (conclusao != null) {
                    // verificar se é com aproveitamento ou sem
                    if (conclusao.isComAproveitamento()) {
                        // status
                        bufferedWriter.write("APROVADO");
                        bufferedWriter.write("|");
                        // motivo
                        bufferedWriter.write("");
                        bufferedWriter.write("|");
                        // parecer
                        bufferedWriter.write("");
                        bufferedWriter.write("|");
                    } else {
                        // status
                        bufferedWriter.write("DESLIGADO");
                        bufferedWriter.write("|");
                        // motivo
                        if (conclusao.getObservacao() != null) {
                            bufferedWriter.write(conclusao.getObservacao());
                        } else {
                            bufferedWriter.write("");
                            bufferedWriter.write("|");
                        }
                        // parecer
                        if (conclusao.getParecer() != null) {
                            bufferedWriter.write(conclusao.getParecer());
                        } else {
                            bufferedWriter.write("");
                            bufferedWriter.write("|");
                        }
                    }
                } else {
                    // nao tem cancelamento e nem conclusão
                    // em andamento
                    // status
                    bufferedWriter.write("CURSANDO");
                    bufferedWriter.write("|");
                    // motivo
                    bufferedWriter.write("");
                    bufferedWriter.write("|");
                    // parecer
                    bufferedWriter.write("");
                    bufferedWriter.write("|");
                }
            }
            bufferedWriter.newLine();
        } catch (IOException ex) {
            Logger.getLogger(EXC014CSV.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    try {
        bufferedWriter.flush();
        bufferedWriter.close();
    } catch (IOException ex) {
        Logger.getLogger(EXC014CSV.class.getName()).log(Level.SEVERE, null, ex);
    }
}
Also used : CancelamentoMatriculaDTO(com.tomasio.projects.trainning.dto.CancelamentoMatriculaDTO) MatriculaDTO(com.tomasio.projects.trainning.dto.MatriculaDTO) CancelamentoMatriculaDTO(com.tomasio.projects.trainning.dto.CancelamentoMatriculaDTO) ConclusaoDTO(com.tomasio.projects.trainning.dto.ConclusaoDTO) ArrayList(java.util.ArrayList) UnsupportedEncodingException(java.io.UnsupportedEncodingException) IOException(java.io.IOException) Date(java.util.Date) BufferedWriter(java.io.BufferedWriter) TurmaEfetivaDTO(com.tomasio.projects.trainning.dto.TurmaEfetivaDTO) OrganizationalService(com.tomasio.projects.trainning.interfaces.OrganizationalService) OutputStreamWriter(java.io.OutputStreamWriter) OrganizacaoDTO(com.tomasio.projects.trainning.dto.OrganizacaoDTO) BufferedWriter(java.io.BufferedWriter) Writer(java.io.Writer) OutputStreamWriter(java.io.OutputStreamWriter) AtividadesEnsinoService(com.tomasio.projects.trainning.interfaces.AtividadesEnsinoService)

Example 4 with AtividadesEnsinoService

use of com.tomasio.projects.trainning.interfaces.AtividadesEnsinoService in project trainning by fernandotomasio.

the class EXC015ODF method makeReport.

@Override
public void makeReport() {
    AtividadesEnsinoService service = (AtividadesEnsinoService) services.get("atividadesEnsinoService");
    OrganizationalService organizationalService = (OrganizationalService) services.get("organizationalService");
    try {
        odt = OdfTextDocument.newTextDocument();
        Long turmaId = (Long) params.get("turmaId");
        TurmaEfetivaDTO turma = service.findTurmaEfetiva(turmaId);
        OrganizacaoDTO gestora = organizationalService.findOrganizacao(turma.getOrganizacaoGestoraId());
        OrganizacaoDTO responsavel = organizationalService.findOrganizacao(turma.getResponsavelId());
        // cancelados
        CancelamentoMatriculaDTO[] cancelados = service.findAllCancelamentoMatriculaByTurma(turmaId);
        // desligados
        ConclusaoDTO[] desligados = service.findAllConcluidosByTurma(turmaId, false);
        // concluidos
        ConclusaoDTO[] conclusoesComAproveitamento = service.findAllConcluidosByTurma(turmaId, true);
        // ordenar por nome
        Arrays.sort(cancelados, new Comparator<CancelamentoMatriculaDTO>() {

            @Override
            public int compare(CancelamentoMatriculaDTO o1, CancelamentoMatriculaDTO o2) {
                return o1.getMatricula().getPessoa().getNome().compareTo(o2.getMatricula().getPessoa().getNome());
            }
        });
        // ordenar por nome
        Arrays.sort(desligados, new Comparator<ConclusaoDTO>() {

            @Override
            public int compare(ConclusaoDTO o1, ConclusaoDTO o2) {
                return o1.getPessoa().getNome().compareTo(o2.getPessoa().getNome());
            }
        });
        // ordenar por nome
        Arrays.sort(conclusoesComAproveitamento, new Comparator<ConclusaoDTO>() {

            @Override
            public int compare(ConclusaoDTO o1, ConclusaoDTO o2) {
                return o1.getPessoa().getNome().compareTo(o2.getPessoa().getNome());
            }
        });
        // manipulação de datas
        GregorianCalendar cal = new GregorianCalendar();
        String ano = "" + cal.get(Calendar.YEAR);
        String dia = "" + cal.get(Calendar.DAY_OF_MONTH);
        SimpleDateFormat dfMes = new SimpleDateFormat("MMMM");
        // CABECALHO
        String cabecalho = "ITEM Nº XXX/" + ano + "/O - " + gestora.getSigla() + " - ";
        // CABECALHO2
        String cabecalho2 = null;
        if (!gestora.getSigla().equals("DECEA")) {
            cabecalho2 = "1 -   ";
        } else {
            cabecalho2 = "1 - CURSO DE ";
        }
        cabecalho2 += turma.getCurso().getDescricao() + " (" + turma.getCurso().getCodigo() + " - Turma " + turma.getNumeroTurma() + ")" + " - ENCERRAMENTO";
        // CABECALHO3
        String cabecalho3 = null;
        if (!gestora.getSigla().equals("DECEA")) {
            cabecalho3 = "PORTARIA " + gestora.getSigla() + " Nº XXX-X/1EM, DE " + dia + " DE " + dfMes.format(new Date()).toUpperCase() + " DE " + ano + ".";
        } else {
            cabecalho3 = "";
        }
        // INTRODUCAO
        String introducao = null;
        if (!gestora.getSigla().equals("DECEA")) {
            introducao = "Encerra o \"" + turma.getCurso().getDescricao() + " (" + turma.getCurso().getCodigo() + " -  " + turma.getNumeroTurma() + ")\"" + " e dá outras providências.";
        } else {
            introducao = "";
        }
        // INTRODUCAO2
        String introducao2 = null;
        if (gestora.getSigla().equals("DECEA")) {
            introducao2 = "";
        // introducao2 = "O CHEFE DO SUBDEPARTAMENTO DE ADMINISTRAÇÃO DO DEPARTAMENTO DE CONTROLE DO ESPAÇO" +
        // " AÉREO, no uso \n" +
        // "de suas atribuições, que lhe confere, por delegação de competência emanada pelo Exmo. Sr. \n" +
        // "Diretor do Departamento de Controle do Espaço Aéreo, publicada no Boletim Interno Ostensivo nº 50, de 12 de dezembro \n" +
        // "2014, do DECEA, e considerando o disposto no Inciso IX, do Art. 9º do Regulamento do \n" +
        // "Comando-Geral de Apoio, aprovado pela Portaria nº 2.133/GC3, de 29 de novembro de 2013, \n" +
        // "resolve:";
        } else {
            introducao2 = "O CHEFE DO ESTADO-MAIOR DO COMANDO-GERAL DE APOIO, no uso \n" + "de suas atribuições, que lhe confere, por delegação de competência emanada pelo Exmo. Sr. \n" + "Comandante-Geral de Apoio, publicada no Boletim Interno Ostensivo nº 50, de 12 de dezembro \n" + "2014, do COMGAP, e considerando o disposto no Inciso IX, do Art. 9º do Regulamento do \n" + "Comando-Geral de Apoio, aprovado pela Portaria nº 2.133/GC3, de 29 de novembro de 2013, \n" + "resolve:";
        }
        // MONTAGEM DO TEXTO SOBRE OS PERÍODOS PARA COMPOR 1º PARAGRAFO
        FaseDTO[] periodos = turma.getFases();
        String textoPeriodo = "";
        int contadorDeFases = 0;
        for (FaseDTO faseDTO : periodos) {
            contadorDeFases++;
        }
        if (contadorDeFases > 1) {
            textoPeriodo += "realizado no formato " + turma.getTipoTurma() + ", ";
            contadorDeFases = 1;
            for (FaseDTO faseDTO : periodos) {
                if (turma.getFases() != null) {
                    String local = "";
                    if (faseDTO.getLocal() != null) {
                        local = faseDTO.getLocal().getSigla();
                    }
                    String tipoFase = "";
                    if (faseDTO.getTipoFase() != null) {
                        tipoFase = faseDTO.getTipoFase();
                    }
                    textoPeriodo += "sendo a " + contadorDeFases + "ª fase ";
                    if (tipoFase.equals("EAD")) {
                        textoPeriodo += "à distância (" + local + ") ";
                    } else {
                        textoPeriodo += tipoFase + ", realizada no " + local + ", ";
                    }
                    textoPeriodo += "no período de " + faseDTO.getPeriodoFormatted() + ", ";
                    contadorDeFases++;
                }
            }
        } else {
            // igual a uma fase
            for (FaseDTO faseDTO : periodos) {
                if (turma.getFases() != null) {
                    String local = "";
                    if (faseDTO.getLocal() != null) {
                        local = faseDTO.getLocal().getSigla();
                    }
                    String tipoFase = "";
                    if (faseDTO.getTipoFase() != null) {
                        tipoFase = faseDTO.getLocal().getSigla();
                    }
                    if (tipoFase.equals("EAD")) {
                        textoPeriodo += "realizado no formato à distância (" + local + ") ";
                    } else {
                        textoPeriodo += "realizado no formato " + tipoFase + ", no " + local + ", ";
                    }
                    textoPeriodo += "no período de " + faseDTO.getPeriodoFormatted() + ", ";
                }
            }
        }
        // 1º PARAGRAFO
        String inicial = null;
        if (!gestora.getSigla().equals("DECEA")) {
            inicial = "Art. 1º ";
            inicial += "Encerrar o \"";
        } else {
            inicial = "D)  Encerra o curso de ";
        }
        inicial += turma.getCurso().getDescricao() + " (" + turma.getCurso().getCodigo() + " - Turma " + turma.getNumeroTurma() + ")";
        if (!gestora.getSigla().equals("DECEA")) {
            inicial += "\"";
        }
        inicial += ", ";
        // TEXTO SOBRE OS PERÍODOS
        inicial += textoPeriodo;
        // preenchendo responsabilidade
        if (turma.getResponsavelId() != null) {
            OrganizacaoDTO organizacaoResponsavel = organizationalService.findOrganizacao(turma.getResponsavelId());
            if (!"ILA".equals(organizacaoResponsavel.getSigla())) {
                inicial += "sob responsabilidade do " + organizacaoResponsavel.getSigla() + " e do ILA, ";
            } else {
                inicial += "sob responsabilidade do " + organizacaoResponsavel.getSigla() + ", ";
            }
        } else {
            inicial += "sob responsabilidade do ILA, ";
        }
        if (!gestora.getSigla().equals("DECEA")) {
            inicial += "ativado através da Portaria XXX/1EM, de XX XXX XXXX, publicada no BCA Ostensivo nº. XXX, de XX XXX XXXX.";
        } else {
            inicial += "ativado no BCA Ostensivo nº XX, de XX MES XXXX.";
        }
        // INíCIO DOS PARAGRAFOS SEGUINTES
        String canceladosParagrafo = "";
        // PARAGRAFO DOS CANCELADOS
        if (cancelados.length >= 1) {
            // montar paragrafo de cancelamento
            canceladosParagrafo += "Cancelar a matrícula ";
            // verifica se mais de um
            if (cancelados.length > 1) {
                canceladosParagrafo += "dos ";
            } else {
                canceladosParagrafo += "do ";
            }
            // verificar se tem civil
            int numCV = 0;
            for (CancelamentoMatriculaDTO cancelado : cancelados) {
                MatriculaDTO matricula = service.findMatricula(cancelado.getMatricula().getId());
                PessoaDTO pessoa = organizationalService.findPessoa(matricula.getPessoa().getId());
                String posto = pessoa.getPosto();
                if ("CV".equals(posto)) {
                    numCV++;
                }
            }
            int numMil = cancelados.length - numCV;
            if (numMil > 0) {
                if (numMil > 1) {
                    canceladosParagrafo += "militares ";
                } else {
                    canceladosParagrafo += "militar ";
                }
            }
            if (numMil > 0 && numCV > 0) {
                canceladosParagrafo += "e ";
            }
            if (numCV > 0) {
                if (numCV > 1) {
                    canceladosParagrafo += "civis ";
                } else {
                    canceladosParagrafo += "civil ";
                }
            }
            canceladosParagrafo += "abaixo ";
            if (cancelados.length > 1) {
                canceladosParagrafo += "relacionados ";
            } else {
                canceladosParagrafo += "relacionado ";
            }
            if (!gestora.getSigla().equals("DECEA")) {
                canceladosParagrafo += "conforme o item 4.8, da ICA 37-563/2016, do COMGAP:";
            } else {
                canceladosParagrafo += ":";
            }
        }
        String desligadosParagrafo = "";
        // PARAGRAFO DOS DESLIGADOS
        if (desligados.length >= 1) {
            // montar paragrafo de desligado
            desligadosParagrafo += "Desligar ";
            // verifica se mais de um
            if (desligados.length > 1) {
                desligadosParagrafo += "os ";
            } else {
                desligadosParagrafo += "o ";
            }
            // verificar se tem civil
            int numCV = 0;
            for (ConclusaoDTO desligado : desligados) {
                PessoaDTO pessoa = organizationalService.findPessoa(desligado.getPessoa().getId());
                String posto = pessoa.getPosto();
                if ("CV".equals(posto)) {
                    numCV++;
                }
            }
            int numMil = desligados.length - numCV;
            if (numMil > 0) {
                if (numMil > 1) {
                    desligadosParagrafo += "militares ";
                } else {
                    desligadosParagrafo += "militar ";
                }
            }
            if (numMil > 0 && numCV > 0) {
                desligadosParagrafo += "e ";
            }
            if (numCV > 0) {
                if (numCV > 1) {
                    desligadosParagrafo += "civis ";
                } else {
                    desligadosParagrafo += "civil ";
                }
            }
            desligadosParagrafo += "abaixo ";
            if (desligados.length > 1) {
                desligadosParagrafo += "relacionados ";
            } else {
                desligadosParagrafo += "relacionado ";
            }
            desligadosParagrafo += "conforme especificado:";
        }
        String aprovadosParagrafo = "";
        // PARAGRAFO DOS APROVADOS
        if (conclusoesComAproveitamento.length >= 1) {
            // montar paragrafo de desligado
            if (!gestora.getSigla().equals("DECEA")) {
                aprovadosParagrafo += "Aprovar, por ";
            } else {
                aprovadosParagrafo += "Concluíram com aproveitamento  ";
            }
            // verifica se mais de um
            if (!gestora.getSigla().equals("DECEA")) {
                if (conclusoesComAproveitamento.length > 1) {
                    aprovadosParagrafo += "terem ";
                } else {
                    aprovadosParagrafo += "ter ";
                }
            }
            if (!gestora.getSigla().equals("DECEA")) {
                aprovadosParagrafo += "concluído com aproveitamento, ";
            }
            // verifica se mais de um
            if (conclusoesComAproveitamento.length > 1) {
                aprovadosParagrafo += "os ";
            } else {
                aprovadosParagrafo += "o ";
            }
            // verificar se tem civil
            int numCV = 0;
            for (ConclusaoDTO aprovado : conclusoesComAproveitamento) {
                PessoaDTO pessoa = organizationalService.findPessoa(aprovado.getPessoa().getId());
                String posto = pessoa.getPosto();
                if ("CV".equals(posto)) {
                    numCV++;
                }
            }
            int numMil = conclusoesComAproveitamento.length - numCV;
            if (numMil > 0) {
                if (numMil > 1) {
                    aprovadosParagrafo += "militares ";
                } else {
                    aprovadosParagrafo += "militar ";
                }
            }
            if (numMil > 0 && numCV > 0) {
                aprovadosParagrafo += "e ";
            }
            if (numCV > 0) {
                if (numCV > 1) {
                    aprovadosParagrafo += "civis ";
                } else {
                    aprovadosParagrafo += "civil ";
                }
            }
            aprovadosParagrafo += "abaixo ";
            if (conclusoesComAproveitamento.length > 1) {
                aprovadosParagrafo += "relacionados:";
            } else {
                aprovadosParagrafo += "relacionado:";
            }
        }
        // PARAGRAFO ÚNICO
        String paragrafoUnico = "";
        if (!gestora.getSigla().equals("DECEA")) {
            paragrafoUnico += "Parágrafo único. As OM dos militares listados neste artigo deverão orientar seus\n" + "militares a inserirem dados de conclusão do referido curso (cód: 70XXX) no SIGPES (utilizando as\n" + "senhas pessoais), além de ratificar as respectivas alterações por meio das Seções de Pessoal (campo\n" + "cadastro de pessoal menu Cursos).";
        } else {
            paragrafoUnico += "";
        }
        // MONTANDO O ARQUIVO FINAL
        odt.newParagraph(cabecalho);
        odt.newParagraph("");
        odt.newParagraph(cabecalho2);
        odt.newParagraph("");
        odt.newParagraph(cabecalho3);
        odt.newParagraph("");
        if (!gestora.getSigla().equals("DECEA")) {
            odt.newParagraph(introducao);
        } else {
            odt.newParagraph("A)  Altera o quadro de instrutores do curso:");
            odt.newParagraph("");
            odt.newParagraph("");
            odt.newParagraph("Sem alteração.");
            odt.newParagraph("");
            odt.newParagraph("");
            odt.newParagraph("Inclusão de instrutor(es):");
            odt.newParagraph("");
            odt.newParagraph("");
            odt.newParagraph("Exclusão de instrutor(es):");
            odt.newParagraph("");
            odt.newParagraph("");
            odt.newParagraph("B)   Altera a matricula de aluno(os):");
            odt.newParagraph("");
            odt.newParagraph("");
            odt.newParagraph("Sem alteração.");
            odt.newParagraph("");
            odt.newParagraph("");
            odt.newParagraph("Inclusão de matrícula de aluno:");
            odt.newParagraph("");
            odt.newParagraph("");
            odt.newParagraph("Cancelamento de matrícula de aluno:");
            odt.newParagraph("");
            odt.newParagraph("");
            odt.newParagraph("Sem alteração.");
            odt.newParagraph("");
            odt.newParagraph("");
            odt.newParagraph("C)   Altera dados da turma(local e/ou período):");
            odt.newParagraph("");
            odt.newParagraph("");
            odt.newParagraph("Modifica o período de realização da turma de: / para:");
            odt.newParagraph("");
            odt.newParagraph("");
            odt.newParagraph("Modifica o local de realização da turma de: / para:");
        }
        odt.newParagraph("");
        odt.newParagraph(introducao2);
        odt.newParagraph("");
        odt.newParagraph(inicial);
        odt.newParagraph("");
        // MONTAGEM DO CORPO DO DOCUMENTO
        int numParagrafo = 2;
        // PARAGRAFO DOS CANCELADOS
        if (!gestora.getSigla().equals("DECEA")) {
            if (cancelados.length >= 1) {
                // if (!gestora.getSigla().equals("DECEA")) {
                odt.newParagraph("Art. " + numParagrafo + "º " + canceladosParagrafo);
                // } else {
                // odt.newParagraph(canceladosParagrafo);
                // }
                odt.newParagraph("");
                // LOOP DOS CANCELADOS
                for (int i = 0; i < cancelados.length; i++) {
                    MatriculaDTO matricula = service.findMatricula(cancelados[i].getMatricula().getId());
                    PessoaDTO pessoa = organizationalService.findPessoa(matricula.getPessoa().getId());
                    String posto = pessoa.getPosto();
                    String especialidade = pessoa.getEspecialidade();
                    String nome = pessoa.getNome();
                    String saram = pessoa.getSaram();
                    OrganizacaoDTO organizacao = organizationalService.findOrganizacao(matricula.getPessoa().getOrganizacao().getId());
                    String siglaOrganizacao = organizacao.getSigla();
                    String cancelado = "" + posto + " " + especialidade + " " + nome + ", da " + siglaOrganizacao;
                    if (cancelados.length > 1) {
                        if (i + 1 == cancelados.length) {
                            cancelado += ".";
                        } else {
                            if (i + 2 == cancelados.length) {
                                cancelado += "; e";
                            } else {
                                cancelado += ";";
                            }
                        }
                    } else {
                        cancelado += ".";
                    }
                    odt.newParagraph("- " + cancelado);
                }
                numParagrafo++;
                odt.newParagraph("");
            }
        }
        // PARAGRAFO DOS DESLIGADOS
        if (!gestora.getSigla().equals("DECEA")) {
            if (desligados.length >= 1) {
                // if (!gestora.getSigla().equals("DECEA")) {
                // odt.newParagraph("Art. " + numParagrafo + "º " + desligadosParagrafo);
                // } else {
                // odt.newParagraph(desligadosParagrafo);
                // }
                odt.newParagraph("Art. " + numParagrafo + "º " + desligadosParagrafo);
                odt.newParagraph("");
                char inciso = 'a';
                // AGRUPANDO OS DESLIGADOS POR ENQUADRAMENTO da letra "a" ao "i"
                List<ConclusaoDTO> desligadosA = new ArrayList<ConclusaoDTO>();
                List<ConclusaoDTO> desligadosB = new ArrayList<ConclusaoDTO>();
                List<ConclusaoDTO> desligadosC = new ArrayList<ConclusaoDTO>();
                List<ConclusaoDTO> desligadosD = new ArrayList<ConclusaoDTO>();
                List<ConclusaoDTO> desligadosE = new ArrayList<ConclusaoDTO>();
                List<ConclusaoDTO> desligadosF = new ArrayList<ConclusaoDTO>();
                List<ConclusaoDTO> desligadosG = new ArrayList<ConclusaoDTO>();
                List<ConclusaoDTO> desligadosH = new ArrayList<ConclusaoDTO>();
                List<ConclusaoDTO> desligadosI = new ArrayList<ConclusaoDTO>();
                String[] letras = { "letra \"a\"", "letra \"b\"", "letra \"c\"", "letra \"d\"", "letra \"e\"", "letra \"f\"", "letra \"g\"", "letra \"h\"", "letra \"i\"" };
                List<ConclusaoDTO> desligadosDefault = new ArrayList<ConclusaoDTO>();
                for (int i = 0; i < desligados.length; i++) {
                    String motivo = desligados[i].getObservacao();
                    int letra;
                    for (letra = 0; letra < letras.length; letra++) {
                        if (motivo.contains(letras[letra])) {
                            break;
                        }
                    }
                    switch(letra) {
                        case // letra "a"
                        0:
                            desligadosA.add(desligados[i]);
                            break;
                        case // letra "b"
                        1:
                            desligadosB.add(desligados[i]);
                            break;
                        case // letra "c"
                        2:
                            desligadosC.add(desligados[i]);
                            break;
                        case // letra "d"
                        3:
                            desligadosD.add(desligados[i]);
                            break;
                        case // letra "e"
                        4:
                            desligadosE.add(desligados[i]);
                            break;
                        case // letra "f"
                        5:
                            desligadosF.add(desligados[i]);
                            break;
                        case // letra "g"
                        6:
                            desligadosG.add(desligados[i]);
                            break;
                        case // letra "h"
                        7:
                            desligadosH.add(desligados[i]);
                            break;
                        case // letra "i"
                        8:
                            desligadosI.add(desligados[i]);
                            break;
                        default:
                            desligadosDefault.add(desligados[i]);
                    }
                }
                // LOOP DESLIGADOS A
                if (desligadosA.size() >= 1) {
                    odt.newParagraph("" + inciso + ") Em decorrência da letra \"a\", do item 4.9.1, da ICA 37-563/XXXX, do COMGAP:");
                    odt.newParagraph("");
                    for (int i = 0; i < desligadosA.size(); i++) {
                        PessoaDTO pessoa = organizationalService.findPessoa(desligadosA.get(i).getPessoa().getId());
                        String posto = pessoa.getPosto();
                        String especialidade = pessoa.getEspecialidade();
                        String nome = pessoa.getNome();
                        String saram = pessoa.getSaram();
                        OrganizacaoDTO organizacao = organizationalService.findOrganizacao(desligadosA.get(i).getPessoa().getOrganizacao().getId());
                        String siglaOrganizacao = organizacao.getSigla();
                        String desligado = "" + posto + " " + especialidade + " " + nome + ", da " + siglaOrganizacao;
                        if (desligadosA.size() > 1) {
                            if (i + 1 == desligadosA.size()) {
                                desligado += ".";
                            } else {
                                if (i + 2 == desligadosA.size()) {
                                    desligado += "; e";
                                } else {
                                    desligado += ";";
                                }
                            }
                        } else {
                            desligado += ".";
                        }
                        odt.newParagraph("- " + desligado);
                    }
                    inciso++;
                    odt.newParagraph("");
                }
                // LOOP DESLIGADOS B
                if (desligadosB.size() >= 1) {
                    odt.newParagraph("" + inciso + ") Em decorrência da letra \"b\", do item 4.9.1, da ICA 37-563/XXXX, do COMGAP:");
                    odt.newParagraph("");
                    for (int i = 0; i < desligadosB.size(); i++) {
                        PessoaDTO pessoa = organizationalService.findPessoa(desligadosB.get(i).getPessoa().getId());
                        String posto = pessoa.getPosto();
                        String especialidade = pessoa.getEspecialidade();
                        String nome = pessoa.getNome();
                        String saram = pessoa.getSaram();
                        OrganizacaoDTO organizacao = organizationalService.findOrganizacao(desligadosB.get(i).getPessoa().getOrganizacao().getId());
                        String siglaOrganizacao = organizacao.getSigla();
                        String desligado = "" + posto + " " + especialidade + " " + nome + ", da " + siglaOrganizacao;
                        if (desligadosB.size() > 1) {
                            if (i + 1 == desligadosB.size()) {
                                desligado += ".";
                            } else {
                                if (i + 2 == desligadosB.size()) {
                                    desligado += "; e";
                                } else {
                                    desligado += ";";
                                }
                            }
                        } else {
                            desligado += ".";
                        }
                        odt.newParagraph("- " + desligado);
                    }
                    inciso++;
                    odt.newParagraph("");
                }
                // LOOP DESLIGADOS C
                if (desligadosC.size() >= 1) {
                    odt.newParagraph("" + inciso + ") Em decorrência da letra \"c\", do item 4.9.1, da ICA 37-563/XXXX, do COMGAP:");
                    odt.newParagraph("");
                    for (int i = 0; i < desligadosC.size(); i++) {
                        PessoaDTO pessoa = organizationalService.findPessoa(desligadosC.get(i).getPessoa().getId());
                        String posto = pessoa.getPosto();
                        String especialidade = pessoa.getEspecialidade();
                        String nome = pessoa.getNome();
                        String saram = pessoa.getSaram();
                        OrganizacaoDTO organizacao = organizationalService.findOrganizacao(desligadosC.get(i).getPessoa().getOrganizacao().getId());
                        String siglaOrganizacao = organizacao.getSigla();
                        String desligado = "" + posto + " " + especialidade + " " + nome + ", da " + siglaOrganizacao;
                        if (desligadosC.size() > 1) {
                            if (i + 1 == desligadosC.size()) {
                                desligado += ".";
                            } else {
                                if (i + 2 == desligadosC.size()) {
                                    desligado += "; e";
                                } else {
                                    desligado += ";";
                                }
                            }
                        } else {
                            desligado += ".";
                        }
                        odt.newParagraph("- " + desligado);
                    }
                    inciso++;
                    odt.newParagraph("");
                }
                // LOOP DESLIGADOS D
                if (desligadosD.size() >= 1) {
                    odt.newParagraph("" + inciso + ") Em decorrência da letra \"d\", do item 4.9.1, da ICA 37-563/XXXX, do COMGAP:");
                    odt.newParagraph("");
                    for (int i = 0; i < desligadosD.size(); i++) {
                        PessoaDTO pessoa = organizationalService.findPessoa(desligadosD.get(i).getPessoa().getId());
                        String posto = pessoa.getPosto();
                        String especialidade = pessoa.getEspecialidade();
                        String nome = pessoa.getNome();
                        String saram = pessoa.getSaram();
                        OrganizacaoDTO organizacao = organizationalService.findOrganizacao(desligadosD.get(i).getPessoa().getOrganizacao().getId());
                        String siglaOrganizacao = organizacao.getSigla();
                        String desligado = "" + posto + " " + especialidade + " " + nome + ", da " + siglaOrganizacao;
                        if (desligadosD.size() > 1) {
                            if (i + 1 == desligadosD.size()) {
                                desligado += ".";
                            } else {
                                if (i + 2 == desligadosD.size()) {
                                    desligado += "; e";
                                } else {
                                    desligado += ";";
                                }
                            }
                        } else {
                            desligado += ".";
                        }
                        odt.newParagraph("- " + desligado);
                    }
                    inciso++;
                    odt.newParagraph("");
                }
                // LOOP DESLIGADOS E
                if (desligadosE.size() >= 1) {
                    odt.newParagraph("" + inciso + ") Em decorrência da letra \"e\", do item 4.9.1, da ICA 37-563/XXXX, do COMGAP:");
                    odt.newParagraph("");
                    for (int i = 0; i < desligadosE.size(); i++) {
                        PessoaDTO pessoa = organizationalService.findPessoa(desligadosE.get(i).getPessoa().getId());
                        String posto = pessoa.getPosto();
                        String especialidade = pessoa.getEspecialidade();
                        String nome = pessoa.getNome();
                        String saram = pessoa.getSaram();
                        OrganizacaoDTO organizacao = organizationalService.findOrganizacao(desligadosE.get(i).getPessoa().getOrganizacao().getId());
                        String siglaOrganizacao = organizacao.getSigla();
                        String desligado = "" + posto + " " + especialidade + " " + nome + ", da " + siglaOrganizacao;
                        if (desligadosE.size() > 1) {
                            if (i + 1 == desligadosE.size()) {
                                desligado += ".";
                            } else {
                                if (i + 2 == desligadosE.size()) {
                                    desligado += "; e";
                                } else {
                                    desligado += ";";
                                }
                            }
                        } else {
                            desligado += ".";
                        }
                        odt.newParagraph("- " + desligado);
                    }
                    inciso++;
                    odt.newParagraph("");
                }
                // LOOP DESLIGADOS F
                if (desligadosF.size() >= 1) {
                    odt.newParagraph("" + inciso + ") Em decorrência da letra \"f\", do item 4.9.1, da ICA 37-563/XXXX, do COMGAP:");
                    odt.newParagraph("");
                    for (int i = 0; i < desligadosF.size(); i++) {
                        PessoaDTO pessoa = organizationalService.findPessoa(desligadosF.get(i).getPessoa().getId());
                        String posto = pessoa.getPosto();
                        String especialidade = pessoa.getEspecialidade();
                        String nome = pessoa.getNome();
                        String saram = pessoa.getSaram();
                        OrganizacaoDTO organizacao = organizationalService.findOrganizacao(desligadosF.get(i).getPessoa().getOrganizacao().getId());
                        String siglaOrganizacao = organizacao.getSigla();
                        String desligado = "" + posto + " " + especialidade + " " + nome + ", da " + siglaOrganizacao;
                        if (desligadosF.size() > 1) {
                            if (i + 1 == desligadosF.size()) {
                                desligado += ".";
                            } else {
                                if (i + 2 == desligadosF.size()) {
                                    desligado += "; e";
                                } else {
                                    desligado += ";";
                                }
                            }
                        } else {
                            desligado += ".";
                        }
                        odt.newParagraph("- " + desligado);
                    }
                    inciso++;
                    odt.newParagraph("");
                }
                // LOOP DESLIGADOS G
                if (desligadosG.size() >= 1) {
                    odt.newParagraph("" + inciso + ") Em decorrência da letra \"g\", do item 4.9.1, da ICA 37-563/XXXX, do COMGAP:");
                    odt.newParagraph("");
                    for (int i = 0; i < desligadosG.size(); i++) {
                        PessoaDTO pessoa = organizationalService.findPessoa(desligadosG.get(i).getPessoa().getId());
                        String posto = pessoa.getPosto();
                        String especialidade = pessoa.getEspecialidade();
                        String nome = pessoa.getNome();
                        String saram = pessoa.getSaram();
                        OrganizacaoDTO organizacao = organizationalService.findOrganizacao(desligadosG.get(i).getPessoa().getOrganizacao().getId());
                        String siglaOrganizacao = organizacao.getSigla();
                        String desligado = "" + posto + " " + especialidade + " " + nome + ", da " + siglaOrganizacao;
                        if (desligadosG.size() > 1) {
                            if (i + 1 == desligadosG.size()) {
                                desligado += ".";
                            } else {
                                if (i + 2 == desligadosG.size()) {
                                    desligado += "; e";
                                } else {
                                    desligado += ";";
                                }
                            }
                        } else {
                            desligado += ".";
                        }
                        odt.newParagraph("- " + desligado);
                    }
                    inciso++;
                    odt.newParagraph("");
                }
                // LOOP DESLIGADOS H
                if (desligadosH.size() >= 1) {
                    odt.newParagraph("" + inciso + ") Em decorrência da letra \"h\", do item 4.9.1, da ICA 37-563/XXXX, do COMGAP:");
                    odt.newParagraph("");
                    for (int i = 0; i < desligadosH.size(); i++) {
                        PessoaDTO pessoa = organizationalService.findPessoa(desligadosH.get(i).getPessoa().getId());
                        String posto = pessoa.getPosto();
                        String especialidade = pessoa.getEspecialidade();
                        String nome = pessoa.getNome();
                        String saram = pessoa.getSaram();
                        OrganizacaoDTO organizacao = organizationalService.findOrganizacao(desligadosH.get(i).getPessoa().getOrganizacao().getId());
                        String siglaOrganizacao = organizacao.getSigla();
                        String desligado = "" + posto + " " + especialidade + " " + nome + ", da " + siglaOrganizacao;
                        if (desligadosH.size() > 1) {
                            if (i + 1 == desligadosH.size()) {
                                desligado += ".";
                            } else {
                                if (i + 2 == desligadosH.size()) {
                                    desligado += "; e";
                                } else {
                                    desligado += ";";
                                }
                            }
                        } else {
                            desligado += ".";
                        }
                        odt.newParagraph("- " + desligado);
                    }
                    inciso++;
                    odt.newParagraph("");
                }
                // LOOP DESLIGADOS I
                if (desligadosI.size() >= 1) {
                    odt.newParagraph("" + inciso + ") Em decorrência da letra \"i\", do item 4.9.1, da ICA 37-563/XXXX, do COMGAP:");
                    odt.newParagraph("");
                    for (int i = 0; i < desligadosI.size(); i++) {
                        PessoaDTO pessoa = organizationalService.findPessoa(desligadosI.get(i).getPessoa().getId());
                        String posto = pessoa.getPosto();
                        String especialidade = pessoa.getEspecialidade();
                        String nome = pessoa.getNome();
                        String saram = pessoa.getSaram();
                        OrganizacaoDTO organizacao = organizationalService.findOrganizacao(desligadosI.get(i).getPessoa().getOrganizacao().getId());
                        String siglaOrganizacao = organizacao.getSigla();
                        String desligado = "" + posto + " " + especialidade + " " + nome + ", da " + siglaOrganizacao;
                        if (desligadosI.size() > 1) {
                            if (i + 1 == desligadosI.size()) {
                                desligado += ".";
                            } else {
                                if (i + 2 == desligadosI.size()) {
                                    desligado += "; e";
                                } else {
                                    desligado += ";";
                                }
                            }
                        } else {
                            desligado += ".";
                        }
                        odt.newParagraph("- " + desligado);
                    }
                    inciso++;
                    odt.newParagraph("");
                }
                // LOOP DESLIGADOS SEM ENQUADRAMENTO
                if (desligadosDefault.size() >= 1) {
                    odt.newParagraph("" + inciso + ") Em decorrência do item 4.9.1, da ICA 37-563/XXXX, do COMGAP:");
                    odt.newParagraph("");
                    for (int i = 0; i < desligadosDefault.size(); i++) {
                        PessoaDTO pessoa = organizationalService.findPessoa(desligadosDefault.get(i).getPessoa().getId());
                        String posto = pessoa.getPosto();
                        String especialidade = pessoa.getEspecialidade();
                        String nome = pessoa.getNome();
                        String saram = pessoa.getSaram();
                        OrganizacaoDTO organizacao = organizationalService.findOrganizacao(desligadosDefault.get(i).getPessoa().getOrganizacao().getId());
                        String siglaOrganizacao = organizacao.getSigla();
                        String desligado = "" + posto + " " + especialidade + " " + nome + ", da " + siglaOrganizacao + " (" + desligadosDefault.get(i).getObservacao() + ")";
                        if (desligadosDefault.size() > 1) {
                            if (i + 1 == desligadosDefault.size()) {
                                desligado += ".";
                            } else {
                                if (i + 2 == desligadosDefault.size()) {
                                    desligado += "; e";
                                } else {
                                    desligado += ";";
                                }
                            }
                        } else {
                            desligado += ".";
                        }
                        odt.newParagraph("- " + desligado);
                    }
                    inciso++;
                    odt.newParagraph("");
                }
                /*LOOP DOS DESLIGADOS GERAL SEM DISTINÇÂO POR LETRA
                     for (int i = 0; i < desligados.length; i++) {
                     PessoaDTO pessoa = organizationalService.findPessoa(desligados[i].getPessoa().getId());
                     String posto = pessoa.getPosto();
                     String especialidade = pessoa.getEspecialidade();
                     String nome = pessoa.getNome();
                     String saram = pessoa.getSaram();

                     OrganizacaoDTO organizacao = organizationalService.findOrganizacao(desligados[i].getPessoa().getOrganizacao().getId());
                     String siglaOrganizacao = organizacao.getSigla();
                    
                     String desligado = "" + posto + " " + especialidade +" " + nome + ", da " + siglaOrganizacao;
                     if(desligados.length>1){
                     if(i+1 == desligados.length){
                     desligado += ".";
                     }else{
                     if(i+2 == desligados.length)
                     desligado += "; e";
                     else
                     desligado += ";";
                     }
                     }else
                     desligado +=".";
                    
                     odt.newParagraph("- " + desligado);
                     }
                     */
                numParagrafo++;
            // odt.newParagraph("");
            }
        }
        // PARAGRAFO DOS APROVADOS
        if (conclusoesComAproveitamento.length >= 1) {
            if (!gestora.getSigla().equals("DECEA")) {
                odt.newParagraph("Art. " + numParagrafo + "º " + aprovadosParagrafo);
            } else {
                odt.newParagraph(aprovadosParagrafo);
            }
            odt.newParagraph("");
            // montando a tabela
            OdfTable indicacoesTable = OdfTable.newTable(odt, conclusoesComAproveitamento.length + 1, 6);
            OdfTableCell contHeader = indicacoesTable.getCellByPosition(0, 0);
            contHeader.setStringValue(" ");
            contHeader.setHorizontalAlignment("center");
            OdfTableCell postoHeader = indicacoesTable.getCellByPosition(1, 0);
            postoHeader.setStringValue("PT/GD");
            postoHeader.setHorizontalAlignment("center");
            OdfTableCell especialidadeHeader = indicacoesTable.getCellByPosition(2, 0);
            especialidadeHeader.setStringValue("ESP");
            especialidadeHeader.setHorizontalAlignment("center");
            OdfTableCell nomeHeader = indicacoesTable.getCellByPosition(3, 0);
            nomeHeader.setStringValue("NOME");
            nomeHeader.setHorizontalAlignment("center");
            if (!gestora.getSigla().equals("DECEA")) {
                OdfTableCell saramHeader = indicacoesTable.getCellByPosition(4, 0);
                saramHeader.setStringValue("SARAM");
                saramHeader.setHorizontalAlignment("center");
            } else {
                OdfTableCell cpfHeader = indicacoesTable.getCellByPosition(4, 0);
                cpfHeader.setStringValue("CPF");
                cpfHeader.setHorizontalAlignment("center");
            }
            OdfTableCell organizacaoHeader = indicacoesTable.getCellByPosition(5, 0);
            organizacaoHeader.setStringValue("OM");
            organizacaoHeader.setHorizontalAlignment("center");
            // LOOP DOS APROVADOS
            int cont = 1;
            for (int i = 0; i < conclusoesComAproveitamento.length; i++) {
                PessoaDTO pessoa = organizationalService.findPessoa(conclusoesComAproveitamento[i].getPessoa().getId());
                String posto = pessoa.getPosto();
                String especialidade = pessoa.getEspecialidade();
                String nome = pessoa.getNome();
                String saram = pessoa.getSaram();
                String cpf = pessoa.getCpf();
                OrganizacaoDTO organizacao = organizationalService.findOrganizacao(conclusoesComAproveitamento[i].getPessoa().getOrganizacao().getId());
                String siglaOrganizacao = organizacao.getSigla();
                OdfTableCell contCell = indicacoesTable.getCellByPosition(0, i + 1);
                contCell.setStringValue(cont + "");
                contCell.setHorizontalAlignment("center");
                OdfTableCell postoCell = indicacoesTable.getCellByPosition(1, i + 1);
                postoCell.setStringValue(posto);
                postoCell.setHorizontalAlignment("center");
                OdfTableCell especialidadeCell = indicacoesTable.getCellByPosition(2, i + 1);
                especialidadeCell.setStringValue(especialidade);
                especialidadeCell.setHorizontalAlignment("center");
                OdfTableCell nomeCell = indicacoesTable.getCellByPosition(3, i + 1);
                nomeCell.setStringValue(nome);
                nomeCell.setHorizontalAlignment("center");
                if (!gestora.getSigla().equals("DECEA")) {
                    OdfTableCell saramCell = indicacoesTable.getCellByPosition(4, i + 1);
                    saramCell.setStringValue(saram);
                    saramCell.setHorizontalAlignment("center");
                } else {
                    OdfTableCell cpfCell = indicacoesTable.getCellByPosition(4, i + 1);
                    cpfCell.setStringValue(cpf);
                    cpfCell.setHorizontalAlignment("center");
                }
                OdfTableCell organizacaoCell = indicacoesTable.getCellByPosition(5, i + 1);
                organizacaoCell.setStringValue(siglaOrganizacao);
                organizacaoCell.setHorizontalAlignment("center");
                cont++;
            }
            numParagrafo++;
            odt.newParagraph("");
        }
        // PREENCHIMENTO DO FECHO DO ARQUIVO
        odt.newParagraph(paragrafoUnico);
        if (!gestora.getSigla().equals("DECEA")) {
            odt.newParagraph("");
            odt.newParagraph("Confeccionado por:");
            odt.newParagraph("");
            odt.newParagraph("JANE PEREIRA MENDES 3S SAD");
            odt.newParagraph("Auxiliar da 1EM");
            odt.newParagraph("");
            odt.newParagraph("Revisado por:");
            odt.newParagraph("");
            odt.newParagraph("NILO JORGE SOARES 1º Ten QOEA SVA");
            odt.newParagraph("Adjunto da 1EM");
            odt.newParagraph("");
            odt.newParagraph("Aprovado por:");
            odt.newParagraph("");
            odt.newParagraph("LUIZ EDUARDO FERREIRA DA SILVA Ten Cel QOAV");
            odt.newParagraph("Adjunto da 1EM");
            odt.newParagraph("");
            odt.newParagraph("Publique-se:");
            odt.newParagraph("");
            odt.newParagraph("MARCELO SÁ FERNANDES Cel Av");
            odt.newParagraph("Chefe da 1EM");
            odt.newParagraph("");
            odt.newParagraph("Assina:");
            odt.newParagraph("");
            odt.newParagraph("Maj Brig Ar ANTONIO RICARDO PINHEIRO VIEIRA");
            odt.newParagraph("ChEM do COMGAP");
        }
        // FINALIZAR ARQUIVO
        odt.save(os);
    } catch (Exception ex) {
        Logger.getLogger(EXC015ODF.class.getName()).log(Level.SEVERE, null, ex);
    }
}
Also used : ArrayList(java.util.ArrayList) GregorianCalendar(java.util.GregorianCalendar) Date(java.util.Date) OdfTableCell(org.odftoolkit.odfdom.doc.table.OdfTableCell) OrganizationalService(com.tomasio.projects.trainning.interfaces.OrganizationalService) OdfTable(org.odftoolkit.odfdom.doc.table.OdfTable) SimpleDateFormat(java.text.SimpleDateFormat) AtividadesEnsinoService(com.tomasio.projects.trainning.interfaces.AtividadesEnsinoService)

Example 5 with AtividadesEnsinoService

use of com.tomasio.projects.trainning.interfaces.AtividadesEnsinoService in project trainning by fernandotomasio.

the class EXC017ODF method makeReport.

@Override
public void makeReport() {
    AtividadesEnsinoService atividadesEnsinoService = (AtividadesEnsinoService) services.get("atividadesEnsinoService");
    OrganizationalService organizationalService = (OrganizationalService) services.get("organizationalService");
    Long turmaId = (Long) params.get("turmaId");
    try {
        ClassLoader classLoader = getClass().getClassLoader();
        File file = new File(classLoader.getResource(TEMPLATE_PATH).getFile());
        odt = OdfTextDocument.loadDocument(file);
        TurmaEfetivaDTO turma = (TurmaEfetivaDTO) atividadesEnsinoService.findTurmaEfetiva(turmaId);
        IndicacaoAlunoDTO[] indicacoesAlunos = atividadesEnsinoService.findAllIndicacoesAlunosSelecionados(turmaId);
        IndicacaoInstrutorDTO[] indicacoesInstrutores = atividadesEnsinoService.findAllIndicacoesInstrutoresSelecionados(turmaId);
        OdfTable alunosTable = OdfTable.newTable(odt, indicacoesAlunos.length + 1, 5);
        alunosTable.setTableName("tableAlunos");
        alunosTable.setWidth(170L);
        OdfTableCell contHeader = alunosTable.getCellByPosition(0, 0);
        contHeader.setStringValue(" ");
        contHeader.setHorizontalAlignment("center");
        OdfTableCell postoHeader = alunosTable.getCellByPosition(1, 0);
        postoHeader.setStringValue("PT/GD");
        postoHeader.setHorizontalAlignment("center");
        OdfTableCell especialidadeHeader = alunosTable.getCellByPosition(2, 0);
        especialidadeHeader.setStringValue("ESP");
        especialidadeHeader.setHorizontalAlignment("center");
        OdfTableCell nomeHeader = alunosTable.getCellByPosition(3, 0);
        nomeHeader.setStringValue("NOME");
        nomeHeader.setHorizontalAlignment("center");
        OdfTableCell saramHeader = alunosTable.getCellByPosition(4, 0);
        saramHeader.setStringValue("SARAM");
        saramHeader.setHorizontalAlignment("center");
        OdfTableCell organizacaoHeader = alunosTable.getCellByPosition(5, 0);
        organizacaoHeader.setStringValue("OM");
        organizacaoHeader.setHorizontalAlignment("center");
        int count = 0;
        System.out.println("vai entrar no loop");
        for (IndicacaoAlunoDTO indicacao : indicacoesAlunos) {
            System.out.println(indicacao.getPessoa().getNome());
            PessoaDTO pessoa = organizationalService.findPessoa(indicacao.getPessoa().getId());
            String nome = pessoa.getNome();
            String posto = pessoa.getPosto();
            String especialidade = pessoa.getEspecialidade();
            String saram = pessoa.getSaram();
            String siglaOrganizacao = pessoa.getOrganizacao().getSigla();
            OdfTableCell contCell = alunosTable.getCellByPosition(0, count + 1);
            contCell.setStringValue(count + 1 + "");
            contCell.setHorizontalAlignment("center");
            OdfTableCell postoCell = alunosTable.getCellByPosition(1, count + 1);
            postoCell.setStringValue(posto);
            postoCell.setHorizontalAlignment("center");
            OdfTableCell especialidadeCell = alunosTable.getCellByPosition(2, count + 1);
            especialidadeCell.setStringValue(especialidade);
            especialidadeCell.setHorizontalAlignment("center");
            OdfTableCell nomeCell = alunosTable.getCellByPosition(3, count + 1);
            nomeCell.setStringValue(nome);
            nomeCell.setHorizontalAlignment("left");
            OdfTableCell saramCell = alunosTable.getCellByPosition(4, count + 1);
            saramCell.setStringValue(saram);
            saramCell.setHorizontalAlignment("center");
            OdfTableCell organizacaoCell = alunosTable.getCellByPosition(5, count + 1);
            organizacaoCell.setStringValue(siglaOrganizacao);
            organizacaoCell.setHorizontalAlignment("center");
            count++;
        }
        replace("_CURSO_", turma.getCurso().getDescricao(), odt);
        replace("_CODIGO_", turma.getCurso().getCodigo(), odt);
        replace("_PERIODO_", turma.getPeriodoFormatted(), odt);
        replace("_LOCAL_", turma.getLocal(), odt);
        OrganizacaoDTO gestora = organizationalService.findOrganizacao(turma.getOrganizacaoGestoraId());
        replace("_GESTORA_", gestora.getSigla(), odt);
        OrganizacaoDTO responsavel = organizationalService.findOrganizacao(turma.getResponsavelId());
        replace("_RESPONSAVEL_", responsavel.getSigla(), odt);
        odt.save(os);
    } catch (Exception ex) {
        Logger.getLogger(EXC017ODF.class.getName()).log(Level.SEVERE, null, ex);
    }
}
Also used : InvalidNavigationException(org.odftoolkit.odfdom.incubator.search.InvalidNavigationException) OdfTableCell(org.odftoolkit.odfdom.doc.table.OdfTableCell) OrganizationalService(com.tomasio.projects.trainning.interfaces.OrganizationalService) OdfTable(org.odftoolkit.odfdom.doc.table.OdfTable) File(java.io.File) AtividadesEnsinoService(com.tomasio.projects.trainning.interfaces.AtividadesEnsinoService)

Aggregations

AtividadesEnsinoService (com.tomasio.projects.trainning.interfaces.AtividadesEnsinoService)25 OrganizationalService (com.tomasio.projects.trainning.interfaces.OrganizationalService)20 PessoaDTO (com.tomasio.projects.trainning.dto.PessoaDTO)12 TurmaEfetivaDTO (com.tomasio.projects.trainning.dto.TurmaEfetivaDTO)12 IndicacaoDTO (com.tomasio.projects.trainning.dto.IndicacaoDTO)11 OrganizacaoDTO (com.tomasio.projects.trainning.dto.OrganizacaoDTO)11 IOException (java.io.IOException)8 TurmaDTO (com.tomasio.projects.trainning.dto.TurmaDTO)7 BufferedWriter (java.io.BufferedWriter)7 OutputStreamWriter (java.io.OutputStreamWriter)7 Writer (java.io.Writer)7 FaseDTO (com.tomasio.projects.trainning.dto.FaseDTO)6 SimpleDateFormat (java.text.SimpleDateFormat)6 ArrayList (java.util.ArrayList)6 HashSet (java.util.HashSet)6 Date (java.util.Date)5 OdfTable (org.odftoolkit.odfdom.doc.table.OdfTable)5 OdfTableCell (org.odftoolkit.odfdom.doc.table.OdfTableCell)5 DistribuicaoDTO (com.tomasio.projects.trainning.dto.DistribuicaoDTO)4 IndicacaoInstrutorDTO (com.tomasio.projects.trainning.dto.IndicacaoInstrutorDTO)4