/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/OlapGenerationProcessor.java |
---|
New file |
0,0 → 1,100 |
package pt.estgp.estgweb.services.questionarios.pedagogico; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.QuestionarioImpl; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.jobs.ServiceJob; |
import pt.estgp.estgweb.services.logresults.ILogMessages; |
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages; |
/** |
* Created by jorgemachado on 22/03/16. |
*/ |
public class OlapGenerationProcessor extends ServiceJob |
{ |
//int unidadesNaoUtilizadas = 0; |
private static Logger logger = Logger.getLogger(OlapGenerationProcessor.class); |
/** |
* ############# JOB TASK ############ |
* ############# JOB TASK ############ |
* @return |
* @throws Throwable |
*/ |
@Override |
protected ILogMessages runJobServiceTask() throws Throwable |
{ |
long questionarioId = Long.parseLong(getParametersMap().get(ServiceJob.JOB_questionario_id_KEY).getObject()); |
DefaultLogMessages logMessages = new DefaultLogMessages(); |
//unidadesNaoUtilizadas = 0; |
QuestionarioImpl q = (QuestionarioImpl) DaoFactory.getQuestionarioDaoImpl().load(questionarioId); |
//Colocamos já aqui o estado para nao se poder mudar o Ano e o Semestre |
/**logging**/ |
String msg = "Starting running service OLAP GENERATION generation for questionario: " + q.getId() + " - " + q.getiAnswersProcessorClass().getTitle(); |
serviceLogInfo(msg); |
logger.info(msg); |
//List<Long> cursosAfetosIds = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().findCursosAfetosIds(questionarioId); |
int count = 0; |
for(Long cursoAfetoId : new Long[]{new Long(1),new Long(2)}) |
{ |
count++; |
int size=2; |
/** COMMIT OPERATION **/ |
setProgress((int)((((float)count)/((float)size))*100.0f)); |
commitPartially(); |
/** COMMIT OPERATION **/ |
//QuestionarioPedagogicoCursoAfeto cu = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().get(cursoAfetoId); |
//msg = "(+) Iniciando atribuição de respostas de alunos para o curso " + cu.getNome() + " (" + cu.getCodigoCurso() + ") escola " + cu.getNomeInstituicao() + "(" + cu.getCodigoInstituicao() + ")"; |
//logger.info(msg); |
//serviceLogInfo(msg); |
} |
/** COMMIT OPERATION **/ |
setProgress(100); |
commitPartially(); |
DaoFactory.getQuestionarioDaoImpl().update(q); |
/** COMMIT OPERATION **/ |
msg = "Set courses state as " + QuestionarioImpl.State.OLAP.name(); |
serviceLogInfo(msg); |
logger.info(msg); |
q.setStateClass(QuestionarioImpl.State.OLAP); |
commitPartially(); |
serviceLogInfo("######################################"); |
serviceLogInfo("######################################"); |
logger.info("######################################"); |
logger.info("######################################"); |
return logMessages; |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/PedagogicoAlunosProcessor.java |
---|
8,6 → 8,7 |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.utils.SimpleClearanceRuledSupport; |
import pt.estgp.estgweb.services.questionarios.pedagogico.AnswersAlunosProcessor; |
import pt.estgp.estgweb.services.questionarios.pedagogico.OlapGenerationProcessor; |
import pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService; |
import pt.estgp.estgweb.utils.ConfigProperties; |
177,5 → 178,9 |
return AnswersAlunosProcessor.class; |
} |
public Class getJobServiceOlapGenerationProcessor() { |
return OlapGenerationProcessor.class; |
} |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/QuestionariosService.java |
---|
9,7 → 9,9 |
import pt.estgp.estgweb.services.email.EMAILJob; |
import pt.estgp.estgweb.services.email.EMAILJobPersonalizedCertificated; |
import pt.estgp.estgweb.services.email.SendEmailService; |
import pt.estgp.estgweb.services.jobs.JobDeamon; |
import pt.estgp.estgweb.services.jobs.JobScheduleService; |
import pt.estgp.estgweb.services.jobs.ServiceJob; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.utils.Email; |
import pt.estgp.estgweb.utils.EmailPersonalizedCertificated; |
176,6 → 178,54 |
return questionarioCleared; |
} |
public QuestionarioImpl closeProcessement(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
{ |
if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CLOSE_PROCESSEMENT.toString())) |
{ |
questionarioCleared.setStateClass(QuestionarioImpl.State.CLOSED); |
} |
return questionarioCleared; |
} |
public QuestionarioImpl reopenProcessement(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
{ |
if(questionarioCleared.isClear((UserSessionImpl) userSession, QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_REOPEN_PROCESSEMENT.toString())) |
{ |
if(DaoFactory.getQuestionarioDaoImpl().getNumeroRespostas(questionarioId) > 0) |
questionarioCleared.setStateClass(QuestionarioImpl.State.PROCESSING_WITH_ANSWERS); |
else |
questionarioCleared.setStateClass(QuestionarioImpl.State.PROCESSING); |
} |
return questionarioCleared; |
} |
public QuestionarioImpl generateOlap(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) throws NotAuthorizedException { |
if(!questionarioCleared.isClear((UserSessionImpl) userSession, QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_GENERATE_OLAP.toString()) ) |
{ |
throw new NotAuthorizedException("Nao tem autorização para atribuir respostas ao questionario " + questionarioId); |
} |
questionarioCleared.setStateClass(QuestionarioImpl.State.PROCESSING_OLAP); |
Set<JobServiceTaskParameter> paramsJob = new HashSet<JobServiceTaskParameter>(); |
JobServiceTaskParameterImpl paramJob = DomainObjectFactory.createJobServiceTaskParameterImpl(); |
paramJob.setName(ServiceJob.JOB_questionario_id_KEY); |
paramJob.setDescription("ID do questionário"); |
paramJob.setObject("" + questionarioId); |
paramsJob.add(paramJob); |
JobServiceTask job = JobDeamon.createServiceJob(questionarioCleared.getiAnswersProcessorClass().getJobServiceOlapGenerationProcessor(), userSession.getUser(), paramsJob, |
"Service: Geracao OLAP a um questionário Pedagógico"); |
questionarioCleared.setAnswerOlapGenerationTaskId(job.getId()); |
return questionarioCleared; |
} |
public void salvarResposta(QuestionarioResposta resposta,Long alunoRequisitadoId,UserSession userSession) throws NotAuthorizedException { |
Questionario q = DaoFactory.getQuestionarioDaoImpl().load(resposta.getQuestionario().getId()); |
QuestionarioImpl questionario = (QuestionarioImpl) DaoFactory.getQuestionarioDaoImpl().narrow(q); |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/IAnswersProcessor.java |
---|
22,4 → 22,6 |
public Class getJobServiceTaskAnswersProcessor(); |
public Class getJobServiceOlapGenerationProcessor(); |
} |
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioImpl.java |
---|
218,6 → 218,11 |
public Class getJobServiceTaskAnswersProcessor() { |
return null; |
} |
@Override |
public Class getJobServiceOlapGenerationProcessor() { |
return null; |
} |
}; |
} |
318,15 → 323,34 |
if(getStateEnum() == State.PROCESSING) |
{ |
s.addClearance(QuestionarioClearancesOperation.QUESTIONARIO_STOP_PROCESSEMENT.name(),usession); |
s.addClearance(QuestionarioClearancesOperation.QUESTIONARIO_CLOSE_PROCESSEMENT.name(),usession); |
} |
if(getStateEnum() == State.PROCESSING_WITH_ANSWERS) |
{ |
s.addClearance(QuestionarioClearancesOperation.QUESTIONARIO_STOP_PROCESSEMENT.name(),usession); |
s.addClearance(QuestionarioClearancesOperation.QUESTIONARIO_CLOSE_PROCESSEMENT.name(),usession); |
} |
if(getStateEnum() == State.STOPED_WITH_ANSWERS) |
{ |
s.addClearance(QuestionarioClearancesOperation.QUESTIONARIO_START_PROCESSEMENT.name(),usession); |
//Nao esta no diagrama //s.addClearance(QuestionarioClearancesOperation.QUESTIONARIO_CLOSE_PROCESSEMENT.name(),usession); |
} |
if(getStateEnum() == State.CLOSED) |
{ |
s.addClearance(QuestionarioClearancesOperation.QUESTIONARIO_REOPEN_PROCESSEMENT.name(),usession); |
s.addClearance(QuestionarioClearancesOperation.QUESTIONARIO_GENERATE_OLAP.name(),usession); |
} |
if(getStateEnum() == State.PROCESSING_OLAP) |
{ |
//notting to do |
//verificar aqui ou pedido de paragem OLAP ou forçar caso tenha passado muito tempo |
//todo para ver depois |
} |
if(getStateEnum() == State.OLAP) |
{ |
s.addClearance(QuestionarioClearancesOperation.QUESTIONARIO_CLOSE_PROCESSEMENT.name(),usession); |
s.addClearance(QuestionarioClearancesOperation.QUESTIONARIO_GENERATE_OLAP.name(),usession); |
} |
if(getStateEnum() == QuestionarioImpl.State.ASSIGNATION_DETAILS) |
{ |
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SAVE_FORM.name(),usession); |
376,6 → 400,11 |
QUESTIONARIO_START_PROCESSEMENT, |
QUESTIONARIO_STOP_PROCESSEMENT, |
QUESTIONARIO_CLOSE_PROCESSEMENT, |
QUESTIONARIO_REOPEN_PROCESSEMENT, |
QUESTIONARIO_GENERATE_OLAP, |
/*Pedagogico Cursos*/ |
QUESTIONARIO_SET_ANO_SEMESTRE, |
QUESTIONARIO_SCHEDULLE_SELECT_COURSES, |
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/questionarios/QuestionarioController.java |
---|
226,6 → 226,92 |
return mapping.findForward("admin"); |
} |
public ActionForward closeProcessement(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable |
{ |
QuestionarioForm frm = (QuestionarioForm) form; |
long questionarioId; |
if(request.getParameter("questionarioId")!=null) |
questionarioId = Long.parseLong(request.getParameter("questionarioId")); |
else |
questionarioId = frm.getQuestionario().getId(); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = {"questionarioId"}; |
Object[] args = {questionarioId}; |
QuestionarioImpl affected = (QuestionarioImpl) sm.execute(RequestUtils.getRequester(request, response),"QuestionarioCloseProcessement",args,names); |
frm.setQuestionario(affected); |
return mapping.findForward("admin"); |
} |
public ActionForward reopenProcessement(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable |
{ |
QuestionarioForm frm = (QuestionarioForm) form; |
long questionarioId; |
if(request.getParameter("questionarioId")!=null) |
questionarioId = Long.parseLong(request.getParameter("questionarioId")); |
else |
questionarioId = frm.getQuestionario().getId(); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = {"questionarioId"}; |
Object[] args = {questionarioId}; |
QuestionarioImpl affected = (QuestionarioImpl) sm.execute(RequestUtils.getRequester(request, response),"QuestionarioReopenProcessement",args,names); |
frm.setQuestionario(affected); |
return mapping.findForward("admin"); |
} |
public ActionForward generateOlap(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable |
{ |
QuestionarioForm frm = (QuestionarioForm) form; |
long questionarioId; |
if(request.getParameter("questionarioId")!=null) |
questionarioId = Long.parseLong(request.getParameter("questionarioId")); |
else |
questionarioId = frm.getQuestionario().getId(); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = {"questionarioId"}; |
Object[] args = {questionarioId}; |
QuestionarioImpl affected = (QuestionarioImpl) sm.execute(RequestUtils.getRequester(request, response),"QuestionarioGenerateOlap",args,names); |
frm.setQuestionario(affected); |
return mapping.findForward("admin"); |
} |
public ActionForward startProcessement(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |