Subversion Repositories bacoAlunos

Rev

Rev 1579 | Rev 1586 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1579 Rev 1585
Line 1... Line 1...
1
package pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors;
1
package pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors;
2
 
2
 
3
import jomm.dao.impl.AbstractDao;
-
 
4
import jomm.utils.PdfUtils;
3
import jomm.utils.PdfUtils;
5
import org.apache.fop.apps.FOPException;
4
import org.apache.fop.apps.FOPException;
6
import org.apache.log4j.Logger;
5
import org.apache.log4j.Logger;
7
import org.dom4j.DocumentException;
6
import org.dom4j.DocumentException;
8
import pt.estgp.estgweb.Globals;
7
import pt.estgp.estgweb.Globals;
9
import pt.estgp.estgweb.domain.Course;
8
import pt.estgp.estgweb.domain.Course;
-
 
9
import pt.estgp.estgweb.domain.QuestionarioReportCursoFile;
-
 
10
import pt.estgp.estgweb.domain.QuestionarioReportCursoFileImpl;
-
 
11
import pt.estgp.estgweb.domain.QuestionarioReportFileGroupCursosAnoImpl;
10
import pt.estgp.estgweb.domain.dao.DaoFactory;
12
import pt.estgp.estgweb.domain.dao.DaoFactory;
-
 
13
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
-
 
14
import pt.estgp.estgweb.services.data.RepositoryService;
11
import pt.estgp.estgweb.services.jobs.ServiceJob;
15
import pt.estgp.estgweb.services.jobs.ServiceJob;
12
import pt.estgp.estgweb.services.logresults.ILogMessages;
16
import pt.estgp.estgweb.services.logresults.ILogMessages;
-
 
17
import pt.estgp.estgweb.services.logresults.LogMessageTypeEnum;
-
 
18
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessage;
13
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages;
19
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages;
-
 
20
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.queries.*;
14
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.reportdomains.CursoPublicReport;
21
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.reportdomains.CursoPublicReport;
15
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.reportdomains.EntityEvaluated;
22
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.reportdomains.EntityEvaluated;
16
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.queries.*;
-
 
17
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.utils.*;
23
import pt.estgp.estgweb.services.questionarios.pedagogico.reportprocessors.utils.*;
18
import pt.estgp.estgweb.utils.ConfigProperties;
24
import pt.estgp.estgweb.utils.ConfigProperties;
19
import pt.estgp.estgweb.utils.DatesUtils;
25
import pt.estgp.estgweb.utils.DatesUtils;
20
import pt.estgp.estgweb.utils.Dom4jUtil;
26
import pt.estgp.estgweb.utils.Dom4jUtil;
21
 
27
 
22
import javax.xml.transform.TransformerException;
28
import javax.xml.transform.TransformerException;
23
import javax.xml.transform.dom.DOMSource;
29
import javax.xml.transform.dom.DOMSource;
24
import java.awt.*;
30
import java.awt.*;
25
import java.io.File;
31
import java.io.File;
-
 
32
import java.io.FileInputStream;
26
import java.io.FileOutputStream;
33
import java.io.FileOutputStream;
27
import java.io.IOException;
34
import java.io.IOException;
28
import java.text.SimpleDateFormat;
35
import java.text.SimpleDateFormat;
29
import java.util.*;
36
import java.util.*;
30
import java.util.List;
37
import java.util.List;
Line 59... Line 66...
59
 
66
 
60
    public CursoPublicReportGenerator(1.5.0/docs/api/java/lang/String.html">String anoLectivo, 1.5.0/docs/api/java/lang/String.html">String[] periodos, 1.5.0/docs/api/java/lang/String.html">String[] degrees, 1.5.0/docs/api/java/lang/String.html">String courseCode) {
67
    public CursoPublicReportGenerator(1.5.0/docs/api/java/lang/String.html">String anoLectivo, 1.5.0/docs/api/java/lang/String.html">String[] periodos, 1.5.0/docs/api/java/lang/String.html">String[] degrees, 1.5.0/docs/api/java/lang/String.html">String courseCode) {
61
        super(anoLectivo, periodos, degrees);
68
        super(anoLectivo, periodos, degrees);
62
    }
69
    }
63
 
70
 
64
    public void processCourse(1.5.0/docs/api/java/lang/String.html">String courseCode) throws 1.5.0/docs/api/java/io/IOException.html">IOException, DocumentException, 1.5.0/docs/api/javax/xml/transform/TransformerException.html">TransformerException, FOPException
71
    public CursoPublicReport processCourse(1.5.0/docs/api/java/lang/String.html">String courseCode) throws 1.5.0/docs/api/java/io/IOException.html">IOException, DocumentException, 1.5.0/docs/api/javax/xml/transform/TransformerException.html">TransformerException, FOPException
65
    {
72
    {
66
 
-
 
67
 
-
 
68
        //todo ver se ha ocorrencias de respostas do docente neste ano se não houver devolver questionario com info de nao haver resultados para este docente
-
 
69
        CursoPublicReport cursoReport = getCoursePublicReport(courseCode);
73
        CursoPublicReport cursoReport = getCoursePublicReport(courseCode);
70
        if(cursoReport == null)
74
        if(cursoReport == null)
71
        {
75
        {
72
            1.5.0/docs/api/java/lang/System.html">System.out.println(" Curso " + courseCode + " nao tem respostas nestas condições ");
76
            1.5.0/docs/api/java/lang/String.html">String msg = " Curso " + courseCode + " nao tem respostas nestas condições ";
-
 
77
            logger.warn(msg);
-
 
78
            serviceLogWarn(msg);
-
 
79
            1.5.0/docs/api/java/lang/System.html">System.out.println();
73
            return;
80
            return cursoReport;
74
        }
81
        }
75
 
82
 
76
        ChartBuilderUtil.createChartTiposAlunos(cursoReport, "tiposAlunosTmp");
83
        ChartBuilderUtil.createChartTiposAlunos(cursoReport, "tiposAlunosTmp");
77
        ChartBuilderUtil.createChartTaxaRespostas(cursoReport, "taxaRespostasTmp");
84
        ChartBuilderUtil.createChartTaxaRespostas(cursoReport, "taxaRespostasTmp");
78
        ChartBuilderUtil.createChartTaxaParticipacao(cursoReport, "taxaParticipacaoTmp");
85
        ChartBuilderUtil.createChartTaxaParticipacao(cursoReport, "taxaParticipacaoTmp");
79
        ChartBuilderUtil.createChartUnidadesContribuicao(cursoReport,"unidadesContribuicao");
86
        ChartBuilderUtil.createChartUnidadesContribuicao(cursoReport,"unidadesContribuicao");
80
 
87
 
81
 
88
 
82
        1.5.0/docs/api/java/lang/String.html">String path = generatePdfReport(cursoReport);
89
        1.5.0/docs/api/java/lang/String.html">String path = generatePdfReport(cursoReport);
-
 
90
        cursoReport.setPathGeneratedPdfTemp(path);
-
 
91
        return cursoReport;
83
 
92
 
84
    }
93
    }
85
 
94
 
86
    private 1.5.0/docs/api/java/lang/String.html">String generatePdfReport(CursoPublicReport cursoReport) throws DocumentException, 1.5.0/docs/api/javax/xml/transform/TransformerException.html">TransformerException, 1.5.0/docs/api/java/io/IOException.html">IOException, FOPException {
95
    private 1.5.0/docs/api/java/lang/String.html">String generatePdfReport(CursoPublicReport cursoReport) throws DocumentException, 1.5.0/docs/api/javax/xml/transform/TransformerException.html">TransformerException, 1.5.0/docs/api/java/io/IOException.html">IOException, FOPException {
87
        1.5.0/docs/api/java/lang/String.html">String startPath = Globals.TMP_DIR + 1.5.0/docs/api/java/io/File.html">File.separator  + "reportCurso" +  cursoReport.getCursoStats().getCodigoCurso();
96
        1.5.0/docs/api/java/lang/String.html">String startPath = Globals.TMP_DIR + 1.5.0/docs/api/java/io/File.html">File.separator  + "reportCurso" +  cursoReport.getCursoStats().getCodigoCurso();
Line 108... Line 117...
108
        return path;
117
        return path;
109
    }
118
    }
110
 
119
 
111
    private CursoPublicReport getCoursePublicReport(1.5.0/docs/api/java/lang/String.html">String courseCode) throws 1.5.0/docs/api/java/io/IOException.html">IOException {
120
    private CursoPublicReport getCoursePublicReport(1.5.0/docs/api/java/lang/String.html">String courseCode) throws 1.5.0/docs/api/java/io/IOException.html">IOException {
112
 
121
 
113
        AbstractDao.getCurrentSession().beginTransaction();
122
        //AbstractDao.getCurrentSession().beginTransaction();
114
 
123
 
115
        Course c = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode);
124
        Course c = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode);
116
 
125
 
117
        CursoPublicReport cursoReport = new CursoPublicReport();
126
        CursoPublicReport cursoReport = new CursoPublicReport();
118
 
127
 
Line 134... Line 143...
134
 
143
 
135
 
144
 
136
 
145
 
137
 
146
 
138
 
147
 
-
 
148
        //Caso nao haja respostas
-
 
149
        //este metodo preenche todas as questões relativas a respostas e generos m/f e idades, mas
-
 
150
        // devolve total de respostas para ser usada aqui como verificacao
139
        AlunosQueryDao.countAlunosQueResponderamAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
151
        int respostas = AlunosQueryDao.countAlunosQueResponderamAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
-
 
152
        QuestionariosQueryDao.countQuestionariosRespostasAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
-
 
153
        //todo testar curso sem respostas
140
        if(cursoReport.getInquiridosTotal() == 0)
154
        if(respostas > 0)
141
        {
155
        {
-
 
156
            AlunosQueryDao.countTiposAlunosComRespostasAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
-
 
157
            AlunosQueryDao.countIdadesAlunosComRespostasAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
-
 
158
 
142
            return null;
159
            //TABELAS
-
 
160
            QuestionariosQueryDao.createDataTableIdades(cursoReport, "Alunos");
-
 
161
            QuestionariosQueryDao.createDataTableLocalidadesAoCurso(cursoReport, courseCode, anoLectivo, periodos, degrees, "Alunos");
143
        }
162
        }
144
        QuestionariosQueryDao.countQuestionariosRespostasAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
-
 
145
        AlunosQueryDao.countTiposAlunosComRespostasAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
-
 
146
        AlunosQueryDao.countIdadesAlunosComRespostasAoCurso(courseCode, anoLectivo, cursoReport, periodos, degrees);
-
 
147
 
163
 
148
        //TABELAS
-
 
149
        QuestionariosQueryDao.createDataTableIdades(cursoReport, "Alunos");
-
 
150
        QuestionariosQueryDao.createDataTableLocalidadesAoCurso(cursoReport, courseCode, anoLectivo, periodos, degrees, "Alunos");
-
 
151
        UnidadesQueryDao.createTableTaxaRespostaUnidadeAoCurso(cursoReport, courseCode, anoLectivo, periodos, degrees);
164
        UnidadesQueryDao.createTableTaxaRespostaUnidadeAoCurso(cursoReport, courseCode, anoLectivo, periodos, degrees);
152
 
165
 
-
 
166
        if(respostas > 0)
-
 
167
        {
153
        //EVOLUCAO DAS RESPOSTAS
168
        //EVOLUCAO DAS RESPOSTAS
154
        List<Object[]> semanaContagemCurso = QuestionariosQueryDao.obtainEvolucaoRespostas(new 1.5.0/docs/api/java/lang/String.html">String[]{courseCode}, EntityEvaluated.CURSO,anoLectivo,periodos,degrees);
169
        List<Object[]> semanaContagemCurso = QuestionariosQueryDao.obtainEvolucaoRespostas(new 1.5.0/docs/api/java/lang/String.html">String[]{courseCode}, EntityEvaluated.CURSO,anoLectivo,periodos,degrees);
155
        List<Object[]> semanaContagemEscola = QuestionariosQueryDao.obtainEvolucaoRespostas(new 1.5.0/docs/api/java/lang/String.html">String[]{cursoReport.getCursoStats().getCodigoInstituicao()},EntityEvaluated.ESCOLA,anoLectivo,periodos,degrees);
170
        List<Object[]> semanaContagemEscola = QuestionariosQueryDao.obtainEvolucaoRespostas(new 1.5.0/docs/api/java/lang/String.html">String[]{cursoReport.getCursoStats().getCodigoInstituicao()},EntityEvaluated.ESCOLA,anoLectivo,periodos,degrees);
156
        1.5.0/docs/api/java/lang/String.html">String distRespostas = ChartBuilderUtil.createTimeSeriesCursoRepostas("distribuicaoRespostasSemanal",cursoReport.getCursoStats().getNomeCurso(),cursoReport.getCursoStats().getAbreviaturaInstituicao(),semanaContagemCurso,semanaContagemEscola);
171
        1.5.0/docs/api/java/lang/String.html">String distRespostas = ChartBuilderUtil.createTimeSeriesCursoRepostas("distribuicaoRespostasSemanal",cursoReport.getCursoStats().getNomeCurso(),cursoReport.getCursoStats().getAbreviaturaInstituicao(),semanaContagemCurso,semanaContagemEscola);
157
        cursoReport.setPathDistribuicaoRespostasSemanalChart(distRespostas);
172
        cursoReport.setPathDistribuicaoRespostasSemanalChart(distRespostas);
Line 172... Line 187...
172
 
187
 
173
 
188
 
174
        cursoReport.getCursoStats().setDocentesDoCurso((int) QueryDaoUtils.countDocentesNosCursos(courseCode, anoLectivo, periodos, degrees));
189
        cursoReport.getCursoStats().setDocentesDoCurso((int) QueryDaoUtils.countDocentesNosCursos(courseCode, anoLectivo, periodos, degrees));
175
        cursoReport.getCursoStats().setDocentesDaEscola((int) QueryDaoUtils.countDocentesNasEscolas(cursoReport.getCursoStats().getCodigoInstituicao(), anoLectivo, periodos, degrees));
190
        cursoReport.getCursoStats().setDocentesDaEscola((int) QueryDaoUtils.countDocentesNasEscolas(cursoReport.getCursoStats().getCodigoInstituicao(), anoLectivo, periodos, degrees));
176
 
191
 
-
 
192
        // @todoRefactor
-
 
193
        // O DocenteReport tem as unidades na escola e as unidades no curso
-
 
194
        // O CursoReport nao tem, estao antes no CursoStats
-
 
195
        // Uma vez que sao usados em todos os reports de Alunos poderiam ser colocados no QuestionarioAlunos não é problematico
177
        //todo vai buscar às cadeiras temos de fazer override do metodo e puxa-lo para o QuestionarioAlunos
196
        // vai buscar às cadeiras temos de fazer override do metodo e puxa-lo para o QuestionarioAlunos
178
        //ou nao porque o UnidadesDaEscola foi introduzido dentro do Curso ão se puxou para o QuestionarioAlunos
197
        //ou nao porque o UnidadesDaEscola foi introduzido dentro do Curso não se puxou para o QuestionarioAlunos
179
        //o xsl vai ter de usar este caso o use
198
        //o xsl vai ter de usar este caso o use
180
        cursoReport.getCursoStats().setUnidadesDoCurso((int) QueryDaoUtils.countUnidadesNosCursos(courseCode, anoLectivo, periodos, degrees));
199
        cursoReport.getCursoStats().setUnidadesDoCurso((int) QueryDaoUtils.countUnidadesNosCursos(courseCode, anoLectivo, periodos, degrees));
181
        cursoReport.getCursoStats().setUnidadesDaEscola((int) QueryDaoUtils.countUnidadesNasEscolas(cursoReport.getCursoStats().getCodigoInstituicao(), anoLectivo, periodos, degrees));
200
        cursoReport.getCursoStats().setUnidadesDaEscola((int) QueryDaoUtils.countUnidadesNasEscolas(cursoReport.getCursoStats().getCodigoInstituicao(), anoLectivo, periodos, degrees));
182
 
201
 
183
 
202
 
Line 229... Line 248...
229
                cursoReport.getCursoStats().getRespostasAgregadasGrupoSalas(),
248
                cursoReport.getCursoStats().getRespostasAgregadasGrupoSalas(),
230
                PerguntasGrupoQueryDao.GRUPO_SALAS_CODE_PERGUNTAS, null,
249
                PerguntasGrupoQueryDao.GRUPO_SALAS_CODE_PERGUNTAS, null,
231
                periodos, degrees, false);
250
                periodos, degrees, false);
232
 
251
 
233
 
252
 
-
 
253
            UnidadesQueryDao.criarTabelasCadeirasCurso(courseCode,
-
 
254
                    anoLectivo,
-
 
255
                    cursoReport,
-
 
256
                    0, periodos, degrees,cursoReport.getCursoStats().getUnidadesStats());
234
 
257
 
235
        UnidadesQueryDao.criarTabelasCadeirasCurso(courseCode,
-
 
236
                anoLectivo,
-
 
237
                cursoReport,
-
 
238
                0, periodos, degrees,cursoReport.getCursoStats().getUnidadesStats());
-
 
239
 
258
 
240
        ChartWithDataTable analiseConjuntaChartWithTable = criarAnaliseConjuntaDeUnidades(cursoReport.getCursoStats().getUnidadesStats());
259
            ChartWithDataTable analiseConjuntaChartWithTable = criarAnaliseConjuntaDeUnidades(cursoReport.getCursoStats().getUnidadesStats());
241
        cursoReport.setAnaliseConjuntaChartWithTable(analiseConjuntaChartWithTable);
260
            cursoReport.setAnaliseConjuntaChartWithTable(analiseConjuntaChartWithTable);
242
 
261
 
243
        1.5.0/docs/api/java/lang/String.html">String pathOrdenadaMediaUnidades = criarAnaliseConjuntaDeUnidadesOrdenadaMediaUnidades(cursoReport.getCursoStats().getUnidadesStats());
262
            1.5.0/docs/api/java/lang/String.html">String pathOrdenadaMediaUnidades = criarAnaliseConjuntaDeUnidadesOrdenadaMediaUnidades(cursoReport.getCursoStats().getUnidadesStats());
244
        cursoReport.setAnaliseConjuntaChartOrderMediaUnidades(pathOrdenadaMediaUnidades);
263
            cursoReport.setAnaliseConjuntaChartOrderMediaUnidades(pathOrdenadaMediaUnidades);
245
 
264
 
246
        1.5.0/docs/api/java/lang/String.html">String pathOrdenadaMediaSalas = criarAnaliseConjuntaDeUnidadesOrdenadaMediaSalas(cursoReport.getCursoStats().getUnidadesStats());
265
            1.5.0/docs/api/java/lang/String.html">String pathOrdenadaMediaSalas = criarAnaliseConjuntaDeUnidadesOrdenadaMediaSalas(cursoReport.getCursoStats().getUnidadesStats());
247
        cursoReport.setAnaliseConjuntaChartOrderMediaSalas(pathOrdenadaMediaSalas);
266
            cursoReport.setAnaliseConjuntaChartOrderMediaSalas(pathOrdenadaMediaSalas);
248
 
267
 
249
        ArrayList<TabelaPerguntaComparativosUnidades> listaTabelasComparativasUnidadesPergunta = criarAnaliseConjuntaDeUnidadesAPergunta(cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade().getPerguntasStats(), cursoReport.getCursoStats().getUnidadesStats(),PerguntasGrupoQueryDao.GRUPO_UNIDADE_CODE_PERGUNTAS,null);
268
            ArrayList<TabelaPerguntaComparativosUnidades> listaTabelasComparativasUnidadesPergunta = criarAnaliseConjuntaDeUnidadesAPergunta(cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade().getPerguntasStats(), cursoReport.getCursoStats().getUnidadesStats(),PerguntasGrupoQueryDao.GRUPO_UNIDADE_CODE_PERGUNTAS,null);
250
        cursoReport.setListaUnidadesComprativasPergunta(listaTabelasComparativasUnidadesPergunta);
269
            cursoReport.setListaUnidadesComprativasPergunta(listaTabelasComparativasUnidadesPergunta);
251
 
270
 
252
        ArrayList<TabelaPerguntaComparativosUnidades> listaTabelasComparativasUnidadesPerguntaSalas = criarAnaliseConjuntaDeUnidadesAPergunta(cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade().getPerguntasStats(), cursoReport.getCursoStats().getUnidadesStats(),PerguntasGrupoQueryDao.GRUPO_SALAS_CODE_PERGUNTAS,null);
271
            ArrayList<TabelaPerguntaComparativosUnidades> listaTabelasComparativasUnidadesPerguntaSalas = criarAnaliseConjuntaDeUnidadesAPergunta(cursoReport.getCursoStats().getRespostasAgregadasGrupoUnidade().getPerguntasStats(), cursoReport.getCursoStats().getUnidadesStats(),PerguntasGrupoQueryDao.GRUPO_SALAS_CODE_PERGUNTAS,null);
253
        cursoReport.setListaUnidadesComprativasPerguntaSalas(listaTabelasComparativasUnidadesPerguntaSalas);
272
            cursoReport.setListaUnidadesComprativasPerguntaSalas(listaTabelasComparativasUnidadesPerguntaSalas);
254
 
273
 
255
        DataTable dataTableTodasAsUndiadesTodasPerguntas = criarTabelaComRespostasATodasAsPerguntas(cursoReport);
274
            DataTable dataTableTodasAsUndiadesTodasPerguntas = criarTabelaComRespostasATodasAsPerguntas(cursoReport);
256
        cursoReport.setTodasAsRespostasMediasGruposUnidadesESalas(dataTableTodasAsUndiadesTodasPerguntas);
275
            cursoReport.setTodasAsRespostasMediasGruposUnidadesESalas(dataTableTodasAsUndiadesTodasPerguntas);
257
 
276
 
258
 
277
        }
259
        AbstractDao.getCurrentSession().getTransaction().commit();
278
        //AbstractDao.getCurrentSession().getTransaction().commit();
260
        return cursoReport;
279
        return cursoReport;
261
    }
280
    }
262
 
281
 
263
    private DataTable criarTabelaComRespostasATodasAsPerguntas(CursoPublicReport cursoReport) {
282
    private DataTable criarTabelaComRespostasATodasAsPerguntas(CursoPublicReport cursoReport) {
264
        DataTable tabelaComRespostasATodasAsPerguntasUnidadesSalas = new DataTable();
283
        DataTable tabelaComRespostasATodasAsPerguntasUnidadesSalas = new DataTable();
Line 630... Line 649...
630
            }
649
            }
631
        }
650
        }
632
        return tableEvolucaoRespostas;
651
        return tableEvolucaoRespostas;
633
    }
652
    }
634
 
653
 
635
    @1.5.0/docs/api/java/lang/Override.html">Override
654
 
636
    protected ILogMessages runJobServiceTask() throws 1.5.0/docs/api/java/lang/Throwable.html">Throwable
655
    protected ILogMessages runJobServiceTask() throws 1.5.0/docs/api/java/lang/Throwable.html">Throwable
637
    {
656
    {
638
        long questionarioReportId = 1.5.0/docs/api/java/lang/Long.html">Long.parseLong(getParametersMap().get(ServiceJob.JOB_questionario_report_id_KEY).getObject());
657
        long questionarioReportId = 1.5.0/docs/api/java/lang/Long.html">Long.parseLong(getParametersMap().get(ServiceJob.JOB_questionario_report_id_KEY).getObject());
639
        DefaultLogMessages logMessages = new DefaultLogMessages();
658
        DefaultLogMessages logMessages = new DefaultLogMessages();
-
 
659
 
-
 
660
        int cursosEncontrados = 0;
-
 
661
        int cursosProcessados = 0;
-
 
662
        int cursosFalhados = 0;
-
 
663
        int cursosSemRespostas = 0;
-
 
664
        int cursosSemUnidadesAfetas = 0;
-
 
665
        int cursosComRespostas = 0;
-
 
666
 
-
 
667
        QuestionarioReportFileGroupCursosAnoImpl reportGroup = (QuestionarioReportFileGroupCursosAnoImpl) DaoFactory.getQuestionarioReportFileGroupCursosAnoDaoImpl().load(questionarioReportId);
-
 
668
 
-
 
669
        anoLectivo = reportGroup.getImportYear();
-
 
670
        periodos = reportGroup.getPeriodosArray();
-
 
671
        degrees = reportGroup.getDegreesArray();
-
 
672
 
-
 
673
        1.5.0/docs/api/java/lang/String.html">String msg = "Starting process for Report Cursos (" + questionarioReportId + "): " + reportGroup.getTitle();
-
 
674
        serviceLogInfo(msg);
-
 
675
        logger.info(msg);
-
 
676
 
-
 
677
 
-
 
678
        List<String> courseCodes = QuestionariosQueryDao.findCoursesSigesCodes(reportGroup.getImportYear(), periodos, degrees);
-
 
679
 
-
 
680
        msg = "Vai processar " + courseCodes.size() + " Cursos ";
-
 
681
        serviceLogInfo(msg);
-
 
682
        logger.info(msg);  
-
 
683
        for(1.5.0/docs/api/java/lang/String.html">String sigesCode: courseCodes)
-
 
684
        {
-
 
685
            if(sigesCode == null)
-
 
686
            {
-
 
687
                msg = "Found Course with siges code null, not known but has units in " + reportGroup.getImportYear();
-
 
688
                serviceLogInfo(msg);
-
 
689
                logger.info(msg);
-
 
690
                continue;
-
 
691
            }
-
 
692
            cursosEncontrados++;
-
 
693
 
-
 
694
            /** COMMIT OPERATION **/
-
 
695
            setProgress((int)((((float)cursosEncontrados)/((float)courseCodes.size()))*100.0f));
-
 
696
            commitPartially();
-
 
697
            /** COMMIT OPERATION **/
-
 
698
 
-
 
699
            try{
-
 
700
                Course c = DaoFactory.getCourseDaoImpl().findCourseByCode(""+sigesCode);
-
 
701
                msg = "(" + cursosEncontrados + "/" + courseCodes.size() + ") Found Course sigesCode: " + sigesCode + " " + c.getName() + " will start process";
-
 
702
                serviceLogInfo(msg);
-
 
703
                logger.info(msg);
-
 
704
                CursoPublicReport cursoReport = processCourse("" + sigesCode);
-
 
705
 
-
 
706
 
-
 
707
                if(cursoReport == null)
-
 
708
                    cursosSemRespostas++;
-
 
709
                else{
-
 
710
                    1.5.0/docs/api/java/lang/String.html">String tmpPath = cursoReport.getPathGeneratedPdfTemp();
-
 
711
 
-
 
712
                    QuestionarioReportCursoFile q = DaoFactory.getQuestionarioReportCursoFileDaoImpl().findBySigesCode(1.5.0/docs/api/java/lang/Integer.html">Integer.parseInt(sigesCode),reportGroup.getId());
-
 
713
                    if(q == null)
-
 
714
                    {
-
 
715
                        q = new QuestionarioReportCursoFileImpl();
-
 
716
                        q.setReportGroup(reportGroup);
-
 
717
                        q.setEntityCode("" + sigesCode);
-
 
718
                        q.setEntityName(c.getName());
-
 
719
                        //q.setCourse(c);
-
 
720
                        DaoFactory.getQuestionarioReportCursoFileDaoImpl().save(q);
-
 
721
                    }
-
 
722
 
-
 
723
                    q.setInquiridos(cursoReport.getInquiridosTotal());
-
 
724
                    q.setInquiridosComResposta(cursoReport.getInquiridosComResposta());
-
 
725
                    q.setRespostasRequisitadas(cursoReport.getQuestionariosReqTotal());
-
 
726
                    q.setRespostas(cursoReport.getQuestionariosReqRespondidos());
-
 
727
                    q.setUnidades(cursoReport.getUnidadesRequisitadas());
-
 
728
 
-
 
729
 
-
 
730
                    //STATS
-
 
731
                    if(q.getInquiridos() == 0)
-
 
732
                        cursosSemUnidadesAfetas++;
-
 
733
                    else if(q.getRespostas() == 0)
-
 
734
                        cursosSemRespostas++;
-
 
735
                    else
-
 
736
                        cursosComRespostas++;
-
 
737
 
-
 
738
 
-
 
739
                    1.5.0/docs/api/java/io/File.html">File tmpFile = new 1.5.0/docs/api/java/io/File.html">File(tmpPath);
-
 
740
                    if(q.getRepositoryStream() == null || q.getRepositoryStream().trim().length() == 0)
-
 
741
                    {
-
 
742
                        1.5.0/docs/api/java/lang/String.html">String repositoryStreamCode = new RepositoryService().storeRepositoryFile(
-
 
743
                                new 1.5.0/docs/api/java/io/FileInputStream.html">FileInputStream(tmpPath),
-
 
744
                                "application/pdf",
-
 
745
                                "pdf",
-
 
746
                                (int)tmpFile.length(),
-
 
747
                                tmpFile.getName(),
-
 
748
                                "reports.QuestionarioReportCursoFile course: " + c.getName() + " (" + sigesCode + ") " + " ano:" + anoLectivo + " periodos:" + periodos.toString() + " degrees:" + degrees.toString(),
-
 
749
                                ResourceAccessControlEnum.authenticatedDomain,//Este relatório de curso é publico
-
 
750
                                DaoFactory.getUserDaoImpl().load(new 1.5.0/docs/api/java/lang/Long.html">Long(1)));
-
 
751
                        q.setRepositoryStream(repositoryStreamCode);
-
 
752
                    }
-
 
753
                    else
-
 
754
                    {
-
 
755
                        new RepositoryService().updateRepositoryFile(
-
 
756
                                q.getRepositoryStream(),
-
 
757
                                new 1.5.0/docs/api/java/io/FileInputStream.html">FileInputStream(tmpPath),
-
 
758
                                "application/pdf",
-
 
759
                                "pdf",
-
 
760
                                (int)tmpFile.length(),
-
 
761
                                tmpFile.getName(),
-
 
762
                                "reports.QuestionarioReportCursoFile curso: " + c.getName() + " (" + sigesCode + ") " + " ano:" + anoLectivo + " periodos:" + periodos.toString() + " degrees:" + degrees.toString(),
-
 
763
                                ResourceAccessControlEnum.authenticatedDomain);
-
 
764
                    }
-
 
765
                }
-
 
766
                //Final
-
 
767
                cursosProcessados++;
-
 
768
            }catch(1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
-
 
769
            {
-
 
770
                msg = "FAIL - Teacher with siges: " + sigesCode;
-
 
771
                serviceLogError(msg,e);
-
 
772
                logger.error(msg,e);
-
 
773
                cursosFalhados++;
-
 
774
            }
-
 
775
        }
-
 
776
 
-
 
777
        serviceLogInfo("######################################");
-
 
778
        serviceLogInfo("######################################");
-
 
779
        serviceLogInfo("#Cursos Encontrados:" + cursosEncontrados);
-
 
780
        serviceLogInfo("#Cursos Processados:" + cursosProcessados);
-
 
781
        serviceLogInfo("#Cursos Com Resposta:" + cursosComRespostas);
-
 
782
        serviceLogInfo("#Cursos Sem Respostas:" + cursosSemRespostas);
-
 
783
        serviceLogInfo("#Cursos Sem Unidades Afetas:" + cursosSemUnidadesAfetas);
-
 
784
        serviceLogInfo("#Cursos Falhados:" + cursosFalhados);
-
 
785
 
-
 
786
        logger.info("######################################");
-
 
787
        logger.info("######################################");
-
 
788
        logger.info("#Cursos Encontrados:" + cursosEncontrados);
-
 
789
        logger.info("#Cursos Processados:" + cursosProcessados);
-
 
790
        logger.info("#Cursos Falhados:" + cursosFalhados);
-
 
791
        logger.info("#Cursos Com Resposta:" + cursosComRespostas);
-
 
792
        logger.info("#Cursos Sem Respostas:" + cursosSemRespostas);
-
 
793
        logger.info("#Cursos Sem Unidades Afetas:" + cursosSemUnidadesAfetas);
-
 
794
 
-
 
795
        reportGroup = (QuestionarioReportFileGroupCursosAnoImpl) DaoFactory.getQuestionarioReportFileGroupCursosAnoDaoImpl().load(questionarioReportId);
-
 
796
        reportGroup.setEntidadesEncontradas(cursosEncontrados);
-
 
797
        reportGroup.setEntidadesProcessadas(cursosProcessados);
-
 
798
        reportGroup.setEntidadesFalhadas(cursosFalhados);
-
 
799
        reportGroup.setEntidadesComRespostas(cursosComRespostas);
-
 
800
        reportGroup.setEntidadesSemRespostas(cursosSemRespostas);
-
 
801
        reportGroup.setEntidadesSemUnidadesAfetas(cursosSemUnidadesAfetas);
-
 
802
 
-
 
803
        logger.info("terminating docente reports generation");
-
 
804
        serviceLogInfo("terminating docente reports generation");
-
 
805
        logMessages.addMessage(new DefaultLogMessage("report.docente.gen.terminating", LogMessageTypeEnum.INFO));
-
 
806
        setProgress(100);
-
 
807
        commitPartially();
640
        return logMessages;
808
        return logMessages;
641
    }
809
    }
642
}
810
}