Rev 1572 | Rev 1586 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1544 | jmachado | 1 | package pt.estgp.estgweb.services.questionarios.pedagogico; |
2 | |||
1545 | jmachado | 3 | import jomm.dao.impl.AbstractDao; |
1566 | jmachado | 4 | import jomm.utils.MyCalendar; |
1544 | jmachado | 5 | import org.apache.log4j.Logger; |
1545 | jmachado | 6 | import pt.estgp.estgweb.domain.*; |
1544 | jmachado | 7 | import pt.estgp.estgweb.domain.dao.DaoFactory; |
8 | import pt.estgp.estgweb.services.jobs.ServiceJob; |
||
9 | import pt.estgp.estgweb.services.logresults.ILogMessages; |
||
1545 | jmachado | 10 | import pt.estgp.estgweb.services.logresults.LogMessageTypeEnum; |
11 | import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessage; |
||
1544 | jmachado | 12 | import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages; |
1565 | jmachado | 13 | import pt.estgp.estgweb.utils.ConfigProperties; |
1566 | jmachado | 14 | import pt.estgp.estgweb.utils.DatesUtils; |
1553 | jmachado | 15 | import pt.estgp.estgweb.utils.DistritosUtils; |
1544 | jmachado | 16 | |
1547 | jmachado | 17 | import java.util.*; |
1544 | jmachado | 18 | |
1545 | jmachado | 19 | |
1544 | jmachado | 20 | /** |
21 | * Created by jorgemachado on 22/03/16. |
||
22 | */ |
||
23 | public class OlapGenerationProcessor extends ServiceJob |
||
24 | { |
||
25 | |||
26 | //int unidadesNaoUtilizadas = 0; |
||
27 | |||
28 | |||
29 | private static 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(OlapGenerationProcessor.class); |
||
30 | |||
1545 | jmachado | 31 | int unidadesNaoUtilizadas = 0; |
32 | int unidadesUtilizadas = 0; |
||
33 | //int unidadesMarcadas = 0; |
||
34 | //int unidadesNaoVistasProf = 0; |
||
35 | //int unidadesNaoVistasAlunos = 0; |
||
36 | int cursosUtilizados = 0; |
||
37 | //int respostasRequisitadas = 0; |
||
1546 | jmachado | 38 | int cursosSemDepartamento = 0; |
1547 | jmachado | 39 | int unidadesSemPeriodoNoPlano = 0; |
1544 | jmachado | 40 | |
1545 | jmachado | 41 | |
1547 | jmachado | 42 | |
1544 | jmachado | 43 | /** |
44 | * ############# JOB TASK ############ |
||
45 | * ############# JOB TASK ############ |
||
46 | * @return |
||
47 | * @throws Throwable |
||
48 | */ |
||
49 | @1.5.0/docs/api/java/lang/Override.html">Override |
||
50 | protected ILogMessages runJobServiceTask() throws 1.5.0/docs/api/java/lang/Throwable.html">Throwable |
||
51 | { |
||
52 | |||
1545 | jmachado | 53 | |
1544 | jmachado | 54 | long questionarioId = 1.5.0/docs/api/java/lang/Long.html">Long.parseLong(getParametersMap().get(ServiceJob.JOB_questionario_id_KEY).getObject()); |
55 | DefaultLogMessages logMessages = new DefaultLogMessages(); |
||
56 | |||
57 | //unidadesNaoUtilizadas = 0; |
||
58 | |||
1545 | jmachado | 59 | unidadesNaoUtilizadas = 0; |
60 | unidadesUtilizadas = 0; |
||
61 | //unidadesMarcadas = 0; |
||
62 | //unidadesNaoVistasProf = 0; |
||
63 | //unidadesNaoVistasAlunos = 0; |
||
64 | cursosUtilizados = 0; |
||
65 | //respostasRequisitadas = 0; |
||
1544 | jmachado | 66 | |
1546 | jmachado | 67 | cursosSemDepartamento = 0; |
1547 | jmachado | 68 | unidadesSemPeriodoNoPlano = 0; |
1545 | jmachado | 69 | |
70 | |||
1546 | jmachado | 71 | |
1544 | jmachado | 72 | QuestionarioImpl q = (QuestionarioImpl) DaoFactory.getQuestionarioDaoImpl().load(questionarioId); |
1545 | jmachado | 73 | try{ |
1544 | jmachado | 74 | |
1549 | jmachado | 75 | AbstractDao.getCurrentSession().createQuery("delete from " + OlapStarFactQuestionarioCurso.class.getName() + " x where x.questionario.id = " + questionarioId).executeUpdate(); |
76 | AbstractDao.getCurrentSession().createQuery("delete from " + OlapStarFactQuestionarioUnidade.class.getName() + " x where x.questionario.id = " + questionarioId).executeUpdate(); |
||
77 | AbstractDao.getCurrentSession().createQuery("delete from " + OlapStarFactQuestionarioTipologia.class.getName() + " x where x.questionario.id = " + questionarioId).executeUpdate(); |
||
78 | AbstractDao.getCurrentSession().createQuery("delete from " + OlapStarFactQuestionario.class.getName() + " x where x.questionario.id = " + questionarioId).executeUpdate(); |
||
1547 | jmachado | 79 | AbstractDao.getCurrentSession().createQuery("delete from " + OlapStarFactQuestionarioAnswer.class.getName() + " x where x.questionario.id = " + questionarioId).executeUpdate(); |
1572 | jmachado | 80 | AbstractDao.getCurrentSession().createQuery("delete from " + OlapStarFactQuestionarioAnswerEsforco.class.getName() + " x where x.questionario.id = " + questionarioId).executeUpdate(); |
1544 | jmachado | 81 | |
1553 | jmachado | 82 | AbstractDao.getCurrentSession().getTransaction().commit(); |
83 | AbstractDao.getCurrentSession().beginTransaction(); |
||
1549 | jmachado | 84 | |
1547 | jmachado | 85 | AbstractDao.getCurrentSession().createQuery("delete from " + OlapEntityQuestionarioUser.class.getName() + " x where x.questionario.id = " + questionarioId).executeUpdate(); |
86 | AbstractDao.getCurrentSession().createQuery("delete from " + OlapEntityQuestionarioCurso.class.getName() + " x where x.questionario.id = " + questionarioId).executeUpdate(); |
||
87 | AbstractDao.getCurrentSession().createQuery("delete from " + OlapEntityQuestionarioUnidade.class.getName() + " x where x.questionario.id = " + questionarioId).executeUpdate(); |
||
88 | AbstractDao.getCurrentSession().createQuery("delete from " + OlapEntityQuestionarioPergunta.class.getName() + " x where x.questionario.id = " + questionarioId).executeUpdate(); |
||
1572 | jmachado | 89 | AbstractDao.getCurrentSession().createQuery("delete from " + OlapEntityQuestionarioPerguntaEsforco.class.getName() + " x where x.questionario.id = " + questionarioId).executeUpdate(); |
1547 | jmachado | 90 | AbstractDao.getCurrentSession().createQuery("delete from " + OlapEntityQuestionarioTipologia.class.getName() + " x where x.questionario.id = " + questionarioId).executeUpdate(); |
1545 | jmachado | 91 | |
1553 | jmachado | 92 | AbstractDao.getCurrentSession().getTransaction().commit(); |
93 | AbstractDao.getCurrentSession().beginTransaction(); |
||
1545 | jmachado | 94 | |
1553 | jmachado | 95 | q = (QuestionarioImpl) DaoFactory.getQuestionarioDaoImpl().load(questionarioId); |
1545 | jmachado | 96 | |
1547 | jmachado | 97 | List<OlapEntityQuestionario> questionarios = AbstractDao.getCurrentSession().createQuery("select x from x in class " + OlapEntityQuestionario.class.getName() + " where x.questionario.id = " + questionarioId).list(); |
98 | OlapEntityQuestionario olapQuestionario; |
||
99 | OlapHistoryDimension olapHistoryDimension; |
||
100 | if(questionarios.size() > 0) |
||
101 | { |
||
102 | olapQuestionario = questionarios.get(0); |
||
103 | updateOlapQuestionario(olapQuestionario, q); |
||
104 | List<OlapHistoryDimension> histories = AbstractDao.getCurrentSession().createQuery("select x from x in class " + OlapHistoryDimension.class.getName() + " where x.questionario.id = " + questionarioId).list(); |
||
105 | olapHistoryDimension = histories.get(0); |
||
106 | } |
||
107 | else |
||
108 | { |
||
109 | //+++++++ todo CRIANDO OLAP Questionario |
||
110 | olapQuestionario = createQuestionarioOlap(q); |
||
111 | olapHistoryDimension = new OlapHistoryDimension(); |
||
112 | olapHistoryDimension.setQuestionario(q); |
||
113 | //+++++++ todo CRIANDO OLAP History |
||
114 | DaoFactory.getOlapHistoryDimensionDaoImpl().save(olapHistoryDimension); |
||
115 | } |
||
116 | olapHistoryDimension.setNome(q.getQuestionarioHistoryDrive().getCodeName()); |
||
117 | olapHistoryDimension.setDescricao(q.getQuestionarioHistoryDrive().getDescription()); |
||
1545 | jmachado | 118 | |
119 | |||
1547 | jmachado | 120 | //Colocamos já aqui o estado para nao se poder mudar o Ano e o Semestre |
1544 | jmachado | 121 | |
1547 | jmachado | 122 | /**logging**/ |
123 | 1.5.0/docs/api/java/lang/String.html">String msg = "Starting running service OLAP GENERATION generation for questionario: " + q.getId() + " - " + q.getiAnswersProcessorClass().getTitle(); |
||
124 | serviceLogInfo(msg); |
||
125 | logger.info(msg); |
||
1544 | jmachado | 126 | |
1547 | jmachado | 127 | List<Long> cursosAfetosIds = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().findCursosAfetosIds(questionarioId); |
128 | int count = 0; |
||
129 | int size=cursosAfetosIds.size(); |
||
1544 | jmachado | 130 | |
131 | |||
1547 | jmachado | 132 | //+++++++ todo CRIANDO OLAP Perguntas |
133 | HashMap<Integer,Long> mapaIdsPerguntasPersistentes = createOlapQuestionarioPergunta(q); |
||
1572 | jmachado | 134 | HashMap<Integer,Long> mapaIdsPerguntasEsforcoPersistentes = createOlapQuestionarioPerguntaEsforco(q); |
1545 | jmachado | 135 | |
136 | |||
1547 | jmachado | 137 | for(1.5.0/docs/api/java/lang/Long.html">Long cursoAfetoId : cursosAfetosIds) |
138 | { |
||
139 | count++; |
||
1545 | jmachado | 140 | |
1547 | jmachado | 141 | /** COMMIT OPERATION **/ |
142 | setProgress((int)((((float)count)/((float)size))*100.0f)); |
||
143 | commitPartially(); |
||
144 | q = (QuestionarioImpl) DaoFactory.getQuestionarioDaoImpl().load(questionarioId); |
||
145 | /** COMMIT OPERATION **/ |
||
1544 | jmachado | 146 | |
147 | |||
148 | |||
1547 | jmachado | 149 | QuestionarioPedagogicoCursoAfeto cu = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().get(cursoAfetoId); |
150 | msg = "(+) Iniciando geração OLAP para o curso " + cu.getNome() + " (" + cu.getCodigoCurso() + ") escola " + cu.getNomeInstituicao() + "(" + cu.getCodigoInstituicao() + ")"; |
||
151 | logger.info(msg); |
||
152 | serviceLogInfo(msg); |
||
1544 | jmachado | 153 | |
1547 | jmachado | 154 | //+++++++ todo CRIANDO OLAP Curso |
1549 | jmachado | 155 | int unidadesCurso = 0; |
156 | int tipologiasCurso = 0; |
||
157 | int respostasCandidatasCurso = 0; |
||
158 | int respostasObtidasCurso = 0; |
||
1547 | jmachado | 159 | OlapEntityQuestionarioCurso olapQuestionarioCurso = createQuestionarioCursoOlap(logMessages, q, cu); |
1544 | jmachado | 160 | |
1547 | jmachado | 161 | int unidades; |
162 | if(cu.getUnidadesAfetas() != null) |
||
1545 | jmachado | 163 | { |
1547 | jmachado | 164 | unidades = cu.getUnidadesAfetas().size(); |
1549 | jmachado | 165 | unidadesCurso = unidades; |
1547 | jmachado | 166 | int countUnidades = 0; |
167 | for(QuestionarioPedagogicoUnidadeCurricularAfeta unidadeCurricularAfeta: cu.getUnidadesAfetas()) |
||
168 | { |
||
169 | countUnidades++; |
||
170 | msg = unidadeCurricularAfeta.isUsar() ? "(+)" : "(----IGNORADA-----)"; |
||
171 | msg += "(" + countUnidades + "/" + unidades + ") Iniciando OLAP de Unidade Curricular Afeta " + unidadeCurricularAfeta.getCodigoUnidade() + " - " + unidadeCurricularAfeta.getNome(); |
||
172 | logger.info(msg); |
||
173 | serviceLogInfo(msg); |
||
1545 | jmachado | 174 | |
175 | |||
1547 | jmachado | 176 | if(!unidadeCurricularAfeta.isUsar() || !unidadeCurricularAfeta.isUsarOlap()) |
177 | { |
||
178 | unidadesNaoUtilizadas++; |
||
179 | msg = "!!! A unidade está marcada para NÃO SER UTILIZADA, passando à próxima"; |
||
180 | serviceLogWarn(msg); |
||
181 | logger.warn(msg); |
||
182 | logMessages.addMessage(new DefaultLogMessage("questionario.olap", LogMessageTypeEnum.WARNING,msg)); |
||
183 | } |
||
184 | else |
||
185 | { |
||
186 | CourseUnitImpl cuImpl = (CourseUnitImpl) DaoFactory.getCourseUnitDaoImpl().narrow(unidadeCurricularAfeta.getCourseUnit()); |
||
187 | CourseImpl courseImpl = (CourseImpl) DaoFactory.getCourseDaoImpl().narrow(unidadeCurricularAfeta.getCourseUnit().getCourse()); |
||
1545 | jmachado | 188 | |
1547 | jmachado | 189 | //TODO CRIANDO ENTIDADE OLAP UNIDADE |
1549 | jmachado | 190 | int tipologiasUnidade = unidadeCurricularAfeta.getTipologiasRequisitadas().size(); |
191 | int respostasCandidatasUnidade = 0; |
||
192 | int respostasObtidasUnidade = 0; |
||
193 | tipologiasCurso += tipologiasUnidade; |
||
1547 | jmachado | 194 | OlapEntityQuestionarioUnidade olapQuestionarioUnidade = createOlapQuestionarioUnidade(logMessages, q, unidadeCurricularAfeta, cuImpl); |
1545 | jmachado | 195 | |
1547 | jmachado | 196 | unidadesUtilizadas++; |
1545 | jmachado | 197 | |
1547 | jmachado | 198 | for(QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada: unidadeCurricularAfeta.getTipologiasRequisitadas()) |
1545 | jmachado | 199 | { |
1547 | jmachado | 200 | msg ="Iniciando OLAP de Tipologia Requisitada " + tipologiaRequisitada.getDsTipologia() + " " + tipologiaRequisitada.getCdTipologia() |
201 | + " docente: " + tipologiaRequisitada.getCdDocente() + "(" + tipologiaRequisitada.getNomeDocente() + ")" |
||
202 | + " turma: " + tipologiaRequisitada.getCdTurma(); |
||
203 | serviceLogInfo(msg); |
||
204 | logger.info(msg); |
||
1545 | jmachado | 205 | |
206 | |||
1547 | jmachado | 207 | //TODO CRIANDO ENTIDADE OLAP TIPOLOGIA |
1549 | jmachado | 208 | int respostasCandidatasTipologia = tipologiaRequisitada.getAlunosRequisitados().size(); |
209 | int respostasObtidasTipologia = 0; |
||
210 | respostasCandidatasCurso += respostasCandidatasTipologia; |
||
211 | respostasCandidatasUnidade += respostasCandidatasTipologia; |
||
1547 | jmachado | 212 | OlapEntityQuestionarioTipologia olapQuestionarioTipologia = createOlapQuestionarioTipologia(q, tipologiaRequisitada); |
1545 | jmachado | 213 | |
1547 | jmachado | 214 | for(QuestionarioPedagogicoAlunoRequisitado alunoRequisitado: tipologiaRequisitada.getAlunosRequisitados()) |
215 | { |
||
216 | QuestionarioRespostaRequisitada respostaRequisitada = alunoRequisitado.getRespostaRequisitada(); |
||
1545 | jmachado | 217 | |
1547 | jmachado | 218 | //TODO CRIANDO NESTE QUESTIONARIO ENTIDADE PERFIL UTILIZADOR |
219 | OlapEntityQuestionarioUser olapQuestionarioUser = createOlapQuestionarioUser(q, alunoRequisitado); |
||
1545 | jmachado | 220 | |
221 | |||
1547 | jmachado | 222 | //TODO CRIANDO ENTIDADE FACTO RESPOSTA RESPONDIDA/NAO RESPONDIDA |
223 | createOlapStarFactQuestionario(q, olapQuestionario, olapHistoryDimension, olapQuestionarioCurso, olapQuestionarioUnidade, olapQuestionarioTipologia, respostaRequisitada, olapQuestionarioUser); |
||
224 | |||
225 | |||
226 | //TODO USAR ENTIDADES RESPOSTAPERGUNTA COM BASE NO QUESTIONARIO EM QUESTAO |
||
227 | if(respostaRequisitada.getResposta() != null) |
||
228 | { |
||
229 | QuestionarioResposta resposta = respostaRequisitada.getResposta(); |
||
1549 | jmachado | 230 | respostasObtidasCurso++; |
231 | respostasObtidasUnidade++; |
||
232 | respostasObtidasTipologia++; |
||
1547 | jmachado | 233 | //TODO CRIAR FACTOS RESPOSTA COM BASE NA RESPOSTA |
234 | |||
1572 | jmachado | 235 | |
236 | |||
237 | |||
1547 | jmachado | 238 | List<OlapStarFactQuestionarioAnswer> factRespostas = new ArrayList<OlapStarFactQuestionarioAnswer>(); |
239 | for(1.5.0/docs/api/java/util/Map.html">Map.Entry<Integer,Long> entryPergunta : mapaIdsPerguntasPersistentes.entrySet()) |
||
240 | { |
||
241 | int numeroPergunta = entryPergunta.getKey(); |
||
242 | 1.5.0/docs/api/java/lang/Long.html">Long idPerguntaBd = entryPergunta.getValue(); |
||
243 | OlapEntityQuestionarioPergunta olapPergunta = DaoFactory.getOlapEntityQuestionarioPerguntaDaoImpl().load(idPerguntaBd); |
||
244 | |||
245 | |||
246 | |||
247 | 1.5.0/docs/api/java/lang/Long.html">Long timeTakenRN = (1.5.0/docs/api/java/lang/Long.html">Long) QuestionarioResposta.class.getMethod("getTimeTakenR" + numeroPergunta).invoke(resposta); |
||
248 | 1.5.0/docs/api/java/lang/Long.html">Long timeEventRN = (1.5.0/docs/api/java/lang/Long.html">Long) QuestionarioResposta.class.getMethod("getTimeEventR" + numeroPergunta).invoke(resposta); |
||
249 | 1.5.0/docs/api/java/lang/String.html">String respostaN = (1.5.0/docs/api/java/lang/String.html">String) QuestionarioResposta.class.getMethod("getR" + numeroPergunta).invoke(resposta); |
||
250 | |||
251 | |||
252 | if(respostaN != null) |
||
253 | { |
||
1549 | jmachado | 254 | createOlapQuestionarioAnswer(q, olapQuestionario, olapHistoryDimension, olapQuestionarioCurso, olapQuestionarioUnidade, olapQuestionarioTipologia, olapQuestionarioUser, factRespostas, olapPergunta, timeTakenRN, timeEventRN, respostaN); |
1547 | jmachado | 255 | } |
256 | } |
||
257 | 1.5.0/docs/api/java/util/Collections.html">Collections.sort(factRespostas,new Comparator<OlapStarFactQuestionarioAnswer>() { |
||
258 | @1.5.0/docs/api/java/lang/Override.html">Override |
||
259 | public int compare(OlapStarFactQuestionarioAnswer o1, OlapStarFactQuestionarioAnswer o2) { |
||
260 | return (int) (o1.getDataEvento().getTime() - o2.getDataEvento().getTime()); |
||
261 | } |
||
262 | }); |
||
263 | int i = 1; |
||
264 | for(OlapStarFactQuestionarioAnswer fact: factRespostas) |
||
265 | { |
||
266 | fact.setOrdemResposta(i); |
||
267 | i++; |
||
268 | } |
||
269 | |||
270 | |||
1572 | jmachado | 271 | //PERGUNTAS DE ESFORCO Tudo Igual mas para Esforco------------------------------------------- |
272 | List<OlapStarFactQuestionarioAnswerEsforco> factRespostasEsforco = new ArrayList<OlapStarFactQuestionarioAnswerEsforco>(); |
||
273 | for(1.5.0/docs/api/java/util/Map.html">Map.Entry<Integer,Long> entryPerguntaEsforco : mapaIdsPerguntasEsforcoPersistentes.entrySet()) |
||
274 | { |
||
275 | int numeroPergunta = entryPerguntaEsforco.getKey(); |
||
276 | 1.5.0/docs/api/java/lang/Long.html">Long idPerguntaBd = entryPerguntaEsforco.getValue(); |
||
277 | OlapEntityQuestionarioPerguntaEsforco olapPerguntaEsforco = DaoFactory.getOlapEntityQuestionarioPerguntaEsforcoDaoImpl().load(idPerguntaBd); |
||
278 | |||
279 | |||
280 | |||
281 | 1.5.0/docs/api/java/lang/Long.html">Long timeTakenRN = (1.5.0/docs/api/java/lang/Long.html">Long) QuestionarioResposta.class.getMethod("getTimeTakenRe" + numeroPergunta).invoke(resposta); |
||
282 | 1.5.0/docs/api/java/lang/Long.html">Long timeEventRN = (1.5.0/docs/api/java/lang/Long.html">Long) QuestionarioResposta.class.getMethod("getTimeEventRe" + numeroPergunta).invoke(resposta); |
||
283 | 1.5.0/docs/api/java/lang/String.html">String respostaN = (1.5.0/docs/api/java/lang/String.html">String) QuestionarioResposta.class.getMethod("getRe" + numeroPergunta).invoke(resposta); |
||
284 | |||
285 | |||
286 | if(respostaN != null) |
||
287 | { |
||
288 | createOlapQuestionarioAnswerEsforco(q, olapQuestionario, olapHistoryDimension, olapQuestionarioCurso, olapQuestionarioUnidade, olapQuestionarioTipologia, olapQuestionarioUser, factRespostasEsforco, olapPerguntaEsforco, timeTakenRN, timeEventRN, respostaN); |
||
289 | } |
||
290 | } |
||
291 | 1.5.0/docs/api/java/util/Collections.html">Collections.sort(factRespostasEsforco,new Comparator<OlapStarFactQuestionarioAnswerEsforco>() { |
||
292 | @1.5.0/docs/api/java/lang/Override.html">Override |
||
293 | public int compare(OlapStarFactQuestionarioAnswerEsforco o1, OlapStarFactQuestionarioAnswerEsforco o2) { |
||
294 | return (int) (o1.getDataEvento().getTime() - o2.getDataEvento().getTime()); |
||
295 | } |
||
296 | }); |
||
297 | i = 1; |
||
298 | for(OlapStarFactQuestionarioAnswerEsforco fact: factRespostasEsforco) |
||
299 | { |
||
300 | fact.setOrdemResposta(i); |
||
301 | i++; |
||
302 | } |
||
303 | |||
1547 | jmachado | 304 | } |
1545 | jmachado | 305 | } |
306 | |||
1549 | jmachado | 307 | //TODO CRIANDO FACTO TIPOLOGIA |
308 | createOlapStarFactTipologia(q, olapQuestionario, olapHistoryDimension, olapQuestionarioCurso, olapQuestionarioUnidade, respostasCandidatasTipologia, respostasObtidasTipologia, olapQuestionarioTipologia); |
||
1545 | jmachado | 309 | |
1549 | jmachado | 310 | |
1547 | jmachado | 311 | } |
1549 | jmachado | 312 | |
313 | //TODO CRIANDO FACTO UNIDADE |
||
314 | createOlapStarFactUnidade(q, olapQuestionario, olapHistoryDimension, olapQuestionarioCurso, olapQuestionarioUnidade, tipologiasUnidade, respostasCandidatasUnidade, respostasObtidasUnidade); |
||
315 | |||
1545 | jmachado | 316 | } |
317 | } |
||
318 | } |
||
1549 | jmachado | 319 | //TODO CRIANDO FACTO CURSO |
320 | createOlapStarFactCurso(q, olapQuestionario, olapHistoryDimension, olapQuestionarioCurso, tipologiasCurso, unidadesCurso, respostasCandidatasCurso, respostasObtidasCurso); |
||
321 | |||
1545 | jmachado | 322 | } |
1544 | jmachado | 323 | |
1547 | jmachado | 324 | /** COMMIT OPERATION **/ |
325 | setProgress(100); |
||
326 | commitPartially(); |
||
327 | DaoFactory.getQuestionarioDaoImpl().update(q); |
||
328 | /** COMMIT OPERATION **/ |
||
1544 | jmachado | 329 | |
1547 | jmachado | 330 | msg = "Set courses state as " + QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.OLAP.name(); |
331 | serviceLogInfo(msg); |
||
332 | logger.info(msg); |
||
333 | q.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.OLAP); |
||
334 | commitPartially(); |
||
1544 | jmachado | 335 | |
336 | |||
1547 | jmachado | 337 | serviceLogInfo("######################################"); |
338 | serviceLogInfo("######################################"); |
||
1544 | jmachado | 339 | |
340 | |||
1547 | jmachado | 341 | logger.info("######################################"); |
342 | logger.info("######################################"); |
||
1545 | jmachado | 343 | } |
344 | catch(1.5.0/docs/api/java/lang/Throwable.html">Throwable e) |
||
345 | { |
||
346 | logger.error(e,e); |
||
347 | q.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.CLOSED); |
||
348 | throw e; |
||
349 | } |
||
1544 | jmachado | 350 | return logMessages; |
351 | } |
||
352 | |||
1549 | jmachado | 353 | private void createOlapStarFactCurso(QuestionarioImpl q, OlapEntityQuestionario olapQuestionario, OlapHistoryDimension olapHistoryDimension, OlapEntityQuestionarioCurso olapQuestionarioCurso,int unidadesCurso, int tipologiasCurso, int respostasCandidatasCurso, int respostasObtidasCurso) |
354 | { |
||
355 | OlapStarFactQuestionarioCurso factQuestionarioCurso = new OlapStarFactQuestionarioCurso(); |
||
356 | factQuestionarioCurso.setUnidades(unidadesCurso); |
||
357 | factQuestionarioCurso.setTipologias(tipologiasCurso); |
||
358 | factQuestionarioCurso.setRespostasCandidatas(respostasCandidatasCurso); |
||
359 | factQuestionarioCurso.setRespostasObtidas(respostasObtidasCurso); |
||
360 | factQuestionarioCurso.setQuestionario(q); |
||
361 | factQuestionarioCurso.setOlapTimeLine(olapHistoryDimension); |
||
362 | factQuestionarioCurso.setOlapQuestionario(olapQuestionario); |
||
363 | factQuestionarioCurso.setOlapCurso(olapQuestionarioCurso); |
||
364 | DaoFactory.getOlapStarFactQuestionarioCursoDaoImpl().save(factQuestionarioCurso); |
||
365 | } |
||
366 | |||
367 | private void createOlapStarFactUnidade(QuestionarioImpl q, OlapEntityQuestionario olapQuestionario, OlapHistoryDimension olapHistoryDimension, OlapEntityQuestionarioCurso olapQuestionarioCurso, OlapEntityQuestionarioUnidade olapQuestionarioUnidade,int tipologiasUnidade, int respostasCandidatasUnidade, int respostasObtidasUnidade) |
||
368 | { |
||
369 | OlapStarFactQuestionarioUnidade factQuestionarioUnidade = new OlapStarFactQuestionarioUnidade(); |
||
370 | factQuestionarioUnidade.setTipologias(tipologiasUnidade); |
||
371 | factQuestionarioUnidade.setRespostasCandidatas(respostasCandidatasUnidade); |
||
372 | factQuestionarioUnidade.setRespostasObtidas(respostasObtidasUnidade); |
||
373 | factQuestionarioUnidade.setQuestionario(q); |
||
374 | factQuestionarioUnidade.setOlapTimeLine(olapHistoryDimension); |
||
375 | factQuestionarioUnidade.setOlapQuestionario(olapQuestionario); |
||
376 | factQuestionarioUnidade.setOlapCurso(olapQuestionarioCurso); |
||
377 | factQuestionarioUnidade.setOlapUnidade(olapQuestionarioUnidade); |
||
378 | DaoFactory.getOlapStarFactQuestionarioUnidadeDaoImpl().save(factQuestionarioUnidade); |
||
379 | } |
||
380 | |||
381 | private void createOlapStarFactTipologia(QuestionarioImpl q, OlapEntityQuestionario olapQuestionario, OlapHistoryDimension olapHistoryDimension, OlapEntityQuestionarioCurso olapQuestionarioCurso, OlapEntityQuestionarioUnidade olapQuestionarioUnidade, int respostasCandidatasTipologia, int respostasObtidasTipologia, OlapEntityQuestionarioTipologia olapQuestionarioTipologia) { |
||
382 | OlapStarFactQuestionarioTipologia factQuestionarioTipologia = new OlapStarFactQuestionarioTipologia(); |
||
383 | factQuestionarioTipologia.setRespostasCandidatas(respostasCandidatasTipologia); |
||
384 | factQuestionarioTipologia.setRespostasObtidas(respostasObtidasTipologia); |
||
385 | factQuestionarioTipologia.setQuestionario(q); |
||
386 | factQuestionarioTipologia.setOlapTimeLine(olapHistoryDimension); |
||
387 | factQuestionarioTipologia.setOlapQuestionario(olapQuestionario); |
||
388 | factQuestionarioTipologia.setOlapCurso(olapQuestionarioCurso); |
||
389 | factQuestionarioTipologia.setOlapUnidade(olapQuestionarioUnidade); |
||
390 | factQuestionarioTipologia.setOlapTipologia(olapQuestionarioTipologia); |
||
391 | DaoFactory.getOlapStarFactQuestionarioTipologiaDaoImpl().save(factQuestionarioTipologia); |
||
392 | } |
||
393 | |||
394 | private void createOlapQuestionarioAnswer(QuestionarioImpl q, OlapEntityQuestionario olapQuestionario, OlapHistoryDimension olapHistoryDimension, OlapEntityQuestionarioCurso olapQuestionarioCurso, OlapEntityQuestionarioUnidade olapQuestionarioUnidade, OlapEntityQuestionarioTipologia olapQuestionarioTipologia, OlapEntityQuestionarioUser olapQuestionarioUser, List<OlapStarFactQuestionarioAnswer> factRespostas, OlapEntityQuestionarioPergunta olapPergunta, 1.5.0/docs/api/java/lang/Long.html">Long timeTakenRN, 1.5.0/docs/api/java/lang/Long.html">Long timeEventRN, 1.5.0/docs/api/java/lang/String.html">String respostaN) { |
||
395 | OlapStarFactQuestionarioAnswer factQuestionarioAnswer = new OlapStarFactQuestionarioAnswer(); |
||
396 | factQuestionarioAnswer.setQuestionario(q); |
||
397 | factQuestionarioAnswer.setOlapTimeLine(olapHistoryDimension); |
||
398 | factQuestionarioAnswer.setOlapQuestionario(olapQuestionario); |
||
399 | factQuestionarioAnswer.setOlapUnidade(olapQuestionarioUnidade); |
||
400 | factQuestionarioAnswer.setOlapPerfilUser(olapQuestionarioUser); |
||
401 | factQuestionarioAnswer.setOlapTipologia(olapQuestionarioTipologia); |
||
402 | factQuestionarioAnswer.setOlapCurso(olapQuestionarioCurso); |
||
403 | |||
404 | factQuestionarioAnswer.setOlapPergunta(olapPergunta); |
||
405 | factQuestionarioAnswer.setDataEvento(new 5+0%2Fdocs%2Fapi+Date">Date(timeEventRN)); |
||
406 | factQuestionarioAnswer.setTempoLevado(timeTakenRN); |
||
407 | factQuestionarioAnswer.setIntResposta(1.5.0/docs/api/java/lang/Integer.html">Integer.parseInt(respostaN)); |
||
408 | factRespostas.add(factQuestionarioAnswer); |
||
409 | DaoFactory.getOlapStarFactQuestionarioAnswerDaoImpl().save(factQuestionarioAnswer); |
||
410 | } |
||
411 | |||
1572 | jmachado | 412 | private void createOlapQuestionarioAnswerEsforco(QuestionarioImpl q, OlapEntityQuestionario olapQuestionario, OlapHistoryDimension olapHistoryDimension, OlapEntityQuestionarioCurso olapQuestionarioCurso, OlapEntityQuestionarioUnidade olapQuestionarioUnidade, OlapEntityQuestionarioTipologia olapQuestionarioTipologia, OlapEntityQuestionarioUser olapQuestionarioUser, List<OlapStarFactQuestionarioAnswerEsforco> factRespostasEsforco, OlapEntityQuestionarioPerguntaEsforco olapPergunta, 1.5.0/docs/api/java/lang/Long.html">Long timeTakenRN, 1.5.0/docs/api/java/lang/Long.html">Long timeEventRN, 1.5.0/docs/api/java/lang/String.html">String respostaN) { |
413 | OlapStarFactQuestionarioAnswerEsforco factQuestionarioAnswerEsforco = new OlapStarFactQuestionarioAnswerEsforco(); |
||
414 | factQuestionarioAnswerEsforco.setQuestionario(q); |
||
415 | factQuestionarioAnswerEsforco.setOlapTimeLine(olapHistoryDimension); |
||
416 | factQuestionarioAnswerEsforco.setOlapQuestionario(olapQuestionario); |
||
417 | factQuestionarioAnswerEsforco.setOlapUnidade(olapQuestionarioUnidade); |
||
418 | factQuestionarioAnswerEsforco.setOlapPerfilUser(olapQuestionarioUser); |
||
419 | factQuestionarioAnswerEsforco.setOlapTipologia(olapQuestionarioTipologia); |
||
420 | factQuestionarioAnswerEsforco.setOlapCurso(olapQuestionarioCurso); |
||
421 | |||
422 | factQuestionarioAnswerEsforco.setOlapPerguntaEsforco(olapPergunta); |
||
423 | factQuestionarioAnswerEsforco.setDataEvento(new 5+0%2Fdocs%2Fapi+Date">Date(timeEventRN)); |
||
424 | factQuestionarioAnswerEsforco.setTempoLevado(timeTakenRN); |
||
425 | factQuestionarioAnswerEsforco.setIntResposta(1.5.0/docs/api/java/lang/Integer.html">Integer.parseInt(respostaN)); |
||
426 | factRespostasEsforco.add(factQuestionarioAnswerEsforco); |
||
427 | DaoFactory.getOlapStarFactQuestionarioAnswerEsforcoDaoImpl().save(factQuestionarioAnswerEsforco); |
||
428 | } |
||
429 | |||
1547 | jmachado | 430 | private OlapStarFactQuestionario createOlapStarFactQuestionario(QuestionarioImpl q, OlapEntityQuestionario olapQuestionario, OlapHistoryDimension olapHistoryDimension, OlapEntityQuestionarioCurso olapQuestionarioCurso, OlapEntityQuestionarioUnidade olapQuestionarioUnidade, OlapEntityQuestionarioTipologia olapQuestionarioTipologia, QuestionarioRespostaRequisitada respostaRequisitada, OlapEntityQuestionarioUser olapQuestionarioUser) { |
431 | QuestionarioResposta resposta = respostaRequisitada.getResposta(); |
||
1546 | jmachado | 432 | |
1547 | jmachado | 433 | OlapStarFactQuestionario factQuestionario = new OlapStarFactQuestionario(); |
434 | factQuestionario.setQuestionario(q); |
||
435 | factQuestionario.setOlapTimeLine(olapHistoryDimension); |
||
436 | factQuestionario.setOlapQuestionario(olapQuestionario); |
||
437 | factQuestionario.setOlapUnidade(olapQuestionarioUnidade); |
||
438 | factQuestionario.setOlapPerfilUser(olapQuestionarioUser); |
||
439 | factQuestionario.setOlapTipologia(olapQuestionarioTipologia); |
||
440 | factQuestionario.setOlapCurso(olapQuestionarioCurso); |
||
441 | factQuestionario.setRespondido(resposta != null); |
||
442 | if(resposta != null) |
||
443 | { |
||
444 | factQuestionario.setDataInicio(new 5+0%2Fdocs%2Fapi+Date">Date(resposta.getTimeStart())); |
||
445 | factQuestionario.setDataFim(new 5+0%2Fdocs%2Fapi+Date">Date(resposta.getTimeEnd())); |
||
446 | factQuestionario.setTempoTotal(resposta.getTotalTime()); |
||
447 | } |
||
448 | DaoFactory.getOlapStarFactQuestionarioDaoImpl().save(factQuestionario); |
||
449 | return factQuestionario; |
||
450 | } |
||
1546 | jmachado | 451 | |
1547 | jmachado | 452 | private OlapEntityQuestionarioUser createOlapQuestionarioUser(QuestionarioImpl q, QuestionarioPedagogicoAlunoRequisitado alunoRequisitado) { |
453 | OlapEntityQuestionarioUser questionarioUser = new OlapEntityQuestionarioUser(); |
||
454 | questionarioUser.setQuestionario(q); |
||
1553 | jmachado | 455 | questionarioUser.setSigesCode("" + alunoRequisitado.getAluno().getSigesCode()); |
1547 | jmachado | 456 | questionarioUser.setBirthDate(alunoRequisitado.getAluno().getBirthDate()); |
457 | questionarioUser.setCountry(alunoRequisitado.getAluno().getCountry()); |
||
1553 | jmachado | 458 | questionarioUser.setNacionalidade(alunoRequisitado.getAluno().getNacionalidade()); |
459 | |||
1547 | jmachado | 460 | questionarioUser.setScholarDegree(alunoRequisitado.getAluno().getScholarDegree()); |
461 | questionarioUser.setSex(alunoRequisitado.getAluno().getSex()); |
||
1553 | jmachado | 462 | |
463 | if(!alunoRequisitado.isTipoAlunoFoiExtraido()) |
||
464 | { |
||
465 | //este procedimento aplica-se a casos de importacao anteriores a criacao |
||
466 | //dos campos tipo de aluno no aluno requisitado |
||
467 | alunoRequisitado.setPropinasEmDia(alunoRequisitado.getAluno().isPropinasEmDia()); |
||
468 | alunoRequisitado.setTipoAlunoBolseiro(alunoRequisitado.getAluno().isTipoAlunoBolseiro()); |
||
469 | alunoRequisitado.setTipoAlunoNormal(alunoRequisitado.getAluno().isTipoAlunoNormal()); |
||
470 | alunoRequisitado.setTipoAlunoVascodagama(alunoRequisitado.getAluno().isTipoAlunoVascodagama()); |
||
471 | alunoRequisitado.setTipoAlunoMilitar(alunoRequisitado.getAluno().isTipoAlunoMilitar()); |
||
472 | alunoRequisitado.setTipoAlunoDirigenteAssociativo(alunoRequisitado.getAluno().isTipoAlunoDirigenteAssociativo()); |
||
473 | alunoRequisitado.setTipoAlunoBombeiro(alunoRequisitado.getAluno().isTipoAlunoBombeiro()); |
||
474 | alunoRequisitado.setTipoAlunoDeficiente(alunoRequisitado.getAluno().isTipoAlunoDeficiente()); |
||
475 | alunoRequisitado.setTipoAlunoErasmus(alunoRequisitado.getAluno().isTipoAlunoErasmus()); |
||
476 | alunoRequisitado.setTipoAlunoTrabalhadorEstudante(alunoRequisitado.getAluno().isTipoAlunoTrabalhadorEstudante()); |
||
477 | alunoRequisitado.setTipoAlunoFoiExtraido(true); |
||
478 | } |
||
479 | questionarioUser.setPropinasEmDia(alunoRequisitado.isPropinasEmDia()); |
||
480 | questionarioUser.setTipoAlunoBolseiro(alunoRequisitado.isTipoAlunoBolseiro()); |
||
481 | questionarioUser.setTipoAlunoNormal(alunoRequisitado.isTipoAlunoNormal()); |
||
482 | questionarioUser.setTipoAlunoVascodagama(alunoRequisitado.isTipoAlunoVascodagama()); |
||
483 | questionarioUser.setTipoAlunoMilitar(alunoRequisitado.isTipoAlunoMilitar()); |
||
484 | questionarioUser.setTipoAlunoDirigenteAssociativo(alunoRequisitado.isTipoAlunoDirigenteAssociativo()); |
||
485 | questionarioUser.setTipoAlunoBombeiro(alunoRequisitado.isTipoAlunoBombeiro()); |
||
486 | questionarioUser.setTipoAlunoDeficiente(alunoRequisitado.isTipoAlunoDeficiente()); |
||
487 | questionarioUser.setTipoAlunoErasmus(alunoRequisitado.isTipoAlunoErasmus()); |
||
488 | questionarioUser.setTipoAlunoTrabalhadorEstudante(alunoRequisitado.isTipoAlunoTrabalhadorEstudante()); |
||
489 | |||
490 | |||
1547 | jmachado | 491 | questionarioUser.setZip(alunoRequisitado.getAluno().getZip()); |
1553 | jmachado | 492 | 1.5.0/docs/api/java/lang/String.html">String zipCandidate = alunoRequisitado.getAluno().getZip(); |
493 | if(alunoRequisitado.getAluno().getZip()!= null && alunoRequisitado.getAluno().getZip().indexOf("-")>=0) |
||
494 | { |
||
495 | zipCandidate = alunoRequisitado.getAluno().getZip().substring(0, alunoRequisitado.getAluno().getZip().indexOf("-")); |
||
496 | } |
||
497 | if(zipCandidate!=null) |
||
498 | { |
||
499 | try |
||
500 | { |
||
501 | questionarioUser.setZipInt(1.5.0/docs/api/java/lang/Integer.html">Integer.parseInt(zipCandidate)); |
||
502 | questionarioUser.setDistrito(DistritosUtils.getDistrito(alunoRequisitado.getAluno().getZip())); |
||
503 | questionarioUser.setConcelho(DistritosUtils.getConselho(alunoRequisitado.getAluno().getZip())); |
||
504 | } |
||
505 | catch(1.5.0/docs/api/java/lang/Throwable.html">Throwable e) |
||
506 | { |
||
507 | questionarioUser.setZipInt(0); |
||
508 | questionarioUser.setDistrito("DESCONHECIDO"); |
||
509 | questionarioUser.setConcelho("DESCONHECIDO"); |
||
510 | logger.info("Zip code error in student (siges code): " + alunoRequisitado.getAluno().getSigesCode()); |
||
511 | } |
||
512 | } |
||
1547 | jmachado | 513 | |
1553 | jmachado | 514 | |
515 | |||
1547 | jmachado | 516 | DaoFactory.getOlapEntityQuestionarioUserDaoImpl().save(questionarioUser); |
517 | return questionarioUser; |
||
518 | } |
||
519 | |||
520 | private OlapEntityQuestionarioTipologia createOlapQuestionarioTipologia(QuestionarioImpl q, QuestionarioPedagogicoTipologiaRequisitada tipologiaRequisitada) { |
||
521 | OlapEntityQuestionarioTipologia questionarioTipologia = new OlapEntityQuestionarioTipologia(); |
||
522 | questionarioTipologia.setQuestionario(q); |
||
523 | |||
524 | questionarioTipologia.setCodigoTipologia(tipologiaRequisitada.getCdTipologia()); |
||
525 | questionarioTipologia.setCodigoTurma(tipologiaRequisitada.getCdTurma()); |
||
526 | questionarioTipologia.setDescricao(tipologiaRequisitada.getDsTipologia()); |
||
527 | //DOCENTE |
||
528 | questionarioTipologia.setNome(tipologiaRequisitada.getNomeDocente()); |
||
529 | questionarioTipologia.setCodigoSiges(tipologiaRequisitada.getCdDocente()); |
||
530 | questionarioTipologia.setBi(tipologiaRequisitada.getDocenteAfeto().getBi()); |
||
531 | questionarioTipologia.setEmail(tipologiaRequisitada.getDocenteAfeto().getEmail()); |
||
532 | questionarioTipologia.setUsername(tipologiaRequisitada.getDocenteAfeto().getUsername()); |
||
533 | |||
534 | DaoFactory.getOlapEntityQuestionarioTipologiaDaoImpl().save(questionarioTipologia); |
||
535 | return questionarioTipologia; |
||
536 | } |
||
537 | |||
538 | private OlapEntityQuestionarioUnidade createOlapQuestionarioUnidade(DefaultLogMessages logMessages, QuestionarioImpl q, QuestionarioPedagogicoUnidadeCurricularAfeta unidadeCurricularAfeta, CourseUnitImpl cuImpl) { |
||
539 | 1.5.0/docs/api/java/lang/String.html">String msg; |
||
540 | OlapEntityQuestionarioUnidade olapEntityQuestionarioUnidade = new OlapEntityQuestionarioUnidade(); |
||
541 | |||
542 | olapEntityQuestionarioUnidade.setQuestionario(q); |
||
543 | olapEntityQuestionarioUnidade.setNome(unidadeCurricularAfeta.getNome()); |
||
544 | olapEntityQuestionarioUnidade.setCodigo(unidadeCurricularAfeta.getCodigoUnidade()); |
||
545 | |||
546 | olapEntityQuestionarioUnidade.setPeriodoPlanoS1T8(cuImpl.getPeriodoPlanoFromStudiesPlan()); |
||
547 | olapEntityQuestionarioUnidade.setSemestrePlanoAbsoluto1ou2(cuImpl.getSemestrePlanoAbsoluto()); |
||
548 | olapEntityQuestionarioUnidade.setPeriodoSigesS1ouS2ouAouT1aT4(cuImpl.getSemestre()); |
||
1585 | jmachado | 549 | //Semestre S1 a T8 ainda nao sao usados em lado nenhum neste sistema, era pensado para se usar nas estatisticas |
550 | //de forma a juntar unidades nos mesmos semestres mas ainda nao esta em uso |
||
1547 | jmachado | 551 | if(olapEntityQuestionarioUnidade.getPeriodoPlanoS1T8() == null) |
552 | { |
||
553 | unidadesSemPeriodoNoPlano++; |
||
554 | msg = "!!! A unidade " + cuImpl.getCode() + " não tem periodo atribuido no Plano"; |
||
555 | serviceLogWarn(msg); |
||
556 | logger.warn(msg); |
||
557 | logMessages.addMessage(new DefaultLogMessage("questionario.olap", LogMessageTypeEnum.WARNING,msg)); |
||
558 | } |
||
559 | else |
||
560 | { |
||
561 | olapEntityQuestionarioUnidade.setAnoPlano1a4(cuImpl.getAnoPlanoFromStudiesPlan()); |
||
1585 | jmachado | 562 | if(olapEntityQuestionarioUnidade.getAnoPlano1a4() <= 0) |
563 | { |
||
564 | msg = "!!! A unidade " + cuImpl.getCode() + " tem periodo atribuido no Plano MAS O ANO ESTA MAL"; |
||
565 | serviceLogWarn(msg); |
||
566 | logger.warn(msg); |
||
567 | } |
||
568 | //tem de ser igual ao semestre.getId() rever situação com um if e warn se falhar |
||
1547 | jmachado | 569 | olapEntityQuestionarioUnidade.setSemestrePlanoConvertido1a6(cuImpl.getSemestrePlanoConvertido()); |
1585 | jmachado | 570 | if(olapEntityQuestionarioUnidade.getSemestrePlanoConvertido1a6() <= 0) |
571 | { |
||
572 | msg = "!!! A unidade " + cuImpl.getCode() + " tem getPeriodoPlanoS1T8 atribuido no Plano MAS ESTA MAL"; |
||
573 | serviceLogWarn(msg); |
||
574 | logger.warn(msg); |
||
575 | } |
||
1547 | jmachado | 576 | } |
577 | DaoFactory.getOlapEntityQuestionarioUnidadeDaoImpl().save(olapEntityQuestionarioUnidade); |
||
578 | return olapEntityQuestionarioUnidade; |
||
579 | } |
||
580 | |||
581 | |||
1546 | jmachado | 582 | private OlapEntityQuestionarioCurso createQuestionarioCursoOlap(DefaultLogMessages logMessages, QuestionarioImpl q, QuestionarioPedagogicoCursoAfeto cu) { |
583 | OlapEntityQuestionarioCurso questionarioCurso; |
||
584 | 1.5.0/docs/api/java/lang/String.html">String msg; |
||
585 | questionarioCurso = new OlapEntityQuestionarioCurso(); |
||
586 | questionarioCurso.setQuestionario(q); |
||
587 | questionarioCurso.setCodigoCurso(cu.getCodigoCurso()); |
||
588 | questionarioCurso.setDegree(cu.getCourse().getDegree()); |
||
589 | if(cu.getCourse().getDepartment() == null) |
||
590 | { |
||
591 | msg = "Curso sem departamento corrigir situação: " + cu.getNome(); |
||
592 | logger.warn(msg); |
||
593 | serviceLogWarn(msg); |
||
594 | logMessages.addMessage(new DefaultLogMessage("questionario.olap", LogMessageTypeEnum.WARNING,msg)); |
||
595 | } |
||
596 | else |
||
597 | { |
||
598 | cursosSemDepartamento++; |
||
599 | questionarioCurso.setDepartament(cu.getCourse().getDepartment().getSigla()); |
||
600 | } |
||
601 | questionarioCurso.setNomeCurso(cu.getNome()); |
||
602 | questionarioCurso.setNomeInstituicao(cu.getNomeInstituicao()); |
||
603 | questionarioCurso.setCodigoInstituicao(cu.getCodigoInstituicao()); |
||
1565 | jmachado | 604 | questionarioCurso.setCodigoNacionalInstituicao(ConfigProperties.getProperty("institution.national.code."+cu.getCodigoInstituicao())); |
1546 | jmachado | 605 | DaoFactory.getOlapEntityQuestionarioCursoDaoImpl().save(questionarioCurso); |
606 | return questionarioCurso; |
||
607 | } |
||
608 | private OlapEntityQuestionario createQuestionarioUnidadeOlap(QuestionarioImpl q) |
||
1545 | jmachado | 609 | { |
1546 | jmachado | 610 | |
611 | return null; |
||
612 | } |
||
613 | private OlapEntityQuestionario createQuestionarioOlap(QuestionarioImpl q) |
||
614 | { |
||
1545 | jmachado | 615 | OlapEntityQuestionario olapEntityQuestionario = new OlapEntityQuestionario(); |
616 | DaoFactory.getOlapEntityQuestionarioDaoImpl().save(olapEntityQuestionario); |
||
1546 | jmachado | 617 | return updateOlapQuestionario(olapEntityQuestionario, q); |
1545 | jmachado | 618 | } |
1544 | jmachado | 619 | |
1546 | jmachado | 620 | private OlapEntityQuestionario updateOlapQuestionario(OlapEntityQuestionario olapEntityQuestionario, QuestionarioImpl q) |
1545 | jmachado | 621 | { |
622 | olapEntityQuestionario.setQuestionario(q); |
||
623 | olapEntityQuestionario.setAno(q.getYear()); |
||
624 | olapEntityQuestionario.setSemestre(q.getSemestre()); |
||
1566 | jmachado | 625 | int firstYear = DatesUtils.getFirstFromImportYear(q.getYear()); |
626 | int secondYear = DatesUtils.getSecondFromImportYear(q.getYear()); |
||
627 | |||
628 | if(q.getSemestre().equals("T1")) |
||
629 | { |
||
630 | olapEntityQuestionario.setGeneratedTime(new MyCalendar(firstYear,11,1).getTime()); |
||
631 | } |
||
632 | else if(q.getSemestre().equals("S1") || q.getSemestre().equals("T2")) |
||
633 | { |
||
634 | olapEntityQuestionario.setGeneratedTime(new MyCalendar(secondYear,2,1).getTime()); |
||
635 | } |
||
636 | else if(q.getSemestre().equals("T3")) |
||
637 | { |
||
638 | olapEntityQuestionario.setGeneratedTime(new MyCalendar(secondYear,5,1).getTime()); |
||
639 | } |
||
640 | else if(q.getSemestre().equals("S2") || q.getSemestre().equals("T4") || q.getSemestre().equals("A")) |
||
641 | { |
||
642 | olapEntityQuestionario.setGeneratedTime(new MyCalendar(secondYear,8,1).getTime()); |
||
643 | } |
||
644 | else |
||
645 | { |
||
646 | logger.error("AVISO, DATA Não tem semestre correcto"); |
||
647 | } |
||
1545 | jmachado | 648 | return olapEntityQuestionario; |
649 | } |
||
1544 | jmachado | 650 | |
1545 | jmachado | 651 | /** |
652 | * Return a map of ID's given the question number |
||
653 | * @param q |
||
654 | * @return |
||
655 | */ |
||
1547 | jmachado | 656 | private HashMap<Integer,Long> createOlapQuestionarioPergunta(QuestionarioImpl q) |
1545 | jmachado | 657 | { |
1544 | jmachado | 658 | |
1547 | jmachado | 659 | /** |
660 | * Numero da Pergunta VS Id na base de dados da dimensão |
||
661 | */ |
||
662 | HashMap<Integer,Long> mapaIdsPerguntasPersistentes = new HashMap<Integer, Long>(); |
||
1544 | jmachado | 663 | |
1572 | jmachado | 664 | for(int i = 1; i <= 40;i++) |
1545 | jmachado | 665 | { |
666 | OlapEntityQuestionarioPergunta pergunta = new OlapEntityQuestionarioPergunta(); |
||
667 | pergunta.setNumero("" + i); |
||
668 | pergunta.setPergunta(q.getPergunta("" + i)); |
||
669 | if(pergunta.getPergunta() == null || pergunta.getPergunta().trim().length() == 0) |
||
670 | continue; |
||
671 | pergunta.setGrupoCode(q.getGrupoCode("" + i)); |
||
672 | if(pergunta.getGrupoCode() == null || pergunta.getGrupoCode().trim().length() == 0) |
||
673 | continue; |
||
674 | pergunta.setGrupoTitle(q.getGrupoTitle("" + i)); |
||
1563 | jmachado | 675 | |
676 | 1.5.0/docs/api/java/lang/String.html">String subGroupCode = q.getSubGrupoCode("" + i); |
||
677 | if(subGroupCode != null) |
||
678 | { |
||
679 | pergunta.setSubGrupoCode(subGroupCode); |
||
680 | pergunta.setSubGrupoTitle(q.getSubGrupoTitle("" + i)); |
||
681 | } |
||
682 | |||
1545 | jmachado | 683 | pergunta.setQuestionario(q); |
1544 | jmachado | 684 | |
1545 | jmachado | 685 | DaoFactory.getOlapEntityQuestionarioPerguntaDaoImpl().save(pergunta); |
686 | |||
1547 | jmachado | 687 | mapaIdsPerguntasPersistentes.put(i,pergunta.getId()); |
1545 | jmachado | 688 | |
1553 | jmachado | 689 | 1.5.0/docs/api/java/lang/System.html">System.out.println("Pergunta OLAP Entity " + i + " ID: " + pergunta.getId()); |
1545 | jmachado | 690 | 1.5.0/docs/api/java/lang/System.html">System.out.println(pergunta.getNumero()); |
691 | 1.5.0/docs/api/java/lang/System.html">System.out.println(pergunta.getPergunta()); |
||
692 | 1.5.0/docs/api/java/lang/System.html">System.out.println(pergunta.getGrupoCode()); |
||
693 | 1.5.0/docs/api/java/lang/System.html">System.out.println(pergunta.getGrupoTitle()); |
||
694 | |||
695 | |||
696 | } |
||
697 | |||
698 | return mapaIdsPerguntasPersistentes; |
||
699 | |||
700 | |||
701 | } |
||
702 | |||
1572 | jmachado | 703 | private HashMap<Integer,Long> createOlapQuestionarioPerguntaEsforco(QuestionarioImpl q) |
704 | { |
||
1545 | jmachado | 705 | |
1572 | jmachado | 706 | /** |
707 | * Numero da Pergunta VS Id na base de dados da dimensão |
||
708 | */ |
||
709 | HashMap<Integer,Long> mapaIdsPerguntasEsforcoPersistentes = new HashMap<Integer, Long>(); |
||
710 | |||
711 | for(int i = 1; i <= 10;i++) |
||
712 | { |
||
713 | OlapEntityQuestionarioPerguntaEsforco perguntaEsforco = new OlapEntityQuestionarioPerguntaEsforco(); |
||
714 | perguntaEsforco.setNumero("" + i); |
||
715 | perguntaEsforco.setPergunta(q.getPerguntaE("" + i)); |
||
716 | if(perguntaEsforco.getPergunta() == null || perguntaEsforco.getPergunta().trim().length() == 0) |
||
717 | continue; |
||
718 | perguntaEsforco.setGrupoCode(q.getGrupoCodeE("" + i)); |
||
719 | if(perguntaEsforco.getGrupoCode() == null || perguntaEsforco.getGrupoCode().trim().length() == 0) |
||
720 | continue; |
||
721 | perguntaEsforco.setGrupoTitle(q.getGrupoTitleE("" + i)); |
||
722 | |||
723 | 1.5.0/docs/api/java/lang/String.html">String subGroupCode = q.getSubGrupoCodeE("" + i); |
||
724 | if(subGroupCode != null) |
||
725 | { |
||
726 | perguntaEsforco.setSubGrupoCode(subGroupCode); |
||
727 | perguntaEsforco.setSubGrupoTitle(q.getSubGrupoTitleE("" + i)); |
||
728 | } |
||
729 | |||
730 | perguntaEsforco.setQuestionario(q); |
||
731 | |||
732 | DaoFactory.getOlapEntityQuestionarioPerguntaEsforcoDaoImpl().save(perguntaEsforco); |
||
733 | |||
734 | mapaIdsPerguntasEsforcoPersistentes.put(i,perguntaEsforco.getId()); |
||
735 | |||
736 | 1.5.0/docs/api/java/lang/System.html">System.out.println("Pergunta Esforco OLAP Entity " + i + " ID: " + perguntaEsforco.getId()); |
||
737 | 1.5.0/docs/api/java/lang/System.html">System.out.println(perguntaEsforco.getNumero()); |
||
738 | 1.5.0/docs/api/java/lang/System.html">System.out.println(perguntaEsforco.getPergunta()); |
||
739 | 1.5.0/docs/api/java/lang/System.html">System.out.println(perguntaEsforco.getGrupoCode()); |
||
740 | 1.5.0/docs/api/java/lang/System.html">System.out.println(perguntaEsforco.getGrupoTitle()); |
||
741 | |||
742 | |||
743 | } |
||
744 | |||
745 | return mapaIdsPerguntasEsforcoPersistentes; |
||
746 | |||
747 | |||
748 | } |
||
749 | |||
750 | |||
1544 | jmachado | 751 | } |