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 | } |