Subversion Repositories bacoAlunos

Rev

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
}