Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1414 → Rev 1415

/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportTeachersService.java
672,13 → 672,20
//na criacao de questionarios é natural que falhe alguma coisa por haver aqui unidades a mais
//por isso devera ser ai feita a verificacao destes casos
boolean separateTurmas = ImportCourseService.loadCourseYearTurmasPolicy(disciplina.getCodigoCurso(), year, logmessages, this);
/*
este procedimento requer que a turma venha do siges, neste momento nao vem
if(separateTurmas)
loadedunits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUniqueWithTurma("" + disciplina.getCodigo(), "" + disciplina.getCodigoCurso(), "" + disciplina.getCdDuracao(), "" + disciplina.getCdLectivo(),disciplina.getCdTurma());
else
loadedunits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(), "" + disciplina.getCodigoCurso(), "" + disciplina.getCdDuracao(), "" + disciplina.getCdLectivo());
*/
 
//este procedimento requer que a turma venha do siges, neste momento nao vem
//Este procedimento foi colocado por mim a 6 de Junho para que os questionarios tenham os profs certos nas disciplinas
//e não em duplicado, daqui para baixo o código nunca compara com separateTurmas, o mapa apenas é acedido aqui
//porque daqui para baixo uma vez carregadas as turmas persistentes do SIGES apenas o id é comparado para ver se fica ou se é removida
//Vamos apenas ter de verificar que o código de turma vem na associação do docente à turma.
//NAO DA A TURMA NUNCA VEM DO SIGENS PARA NAO DUPLICAR TURMAS NO JOIN
//RESOVE-SE NA ATRIBUICAO DE RESPOSTAS DOS QUESTINARIOS SO SE METE O QUE TEM SUMARIO SE O CURSO FOR DE TURMAS
//SEPARADAS
//if(separateTurmas)
// loadedunits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUniqueWithTurma("" + disciplina.getCodigo(), "" + disciplina.getCodigoCurso(), "" + disciplina.getCdDuracao(), "" + disciplina.getCdLectivo(),disciplina.getCdTurma());
//else
// loadedunits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(), "" + disciplina.getCodigoCurso(), "" + disciplina.getCdDuracao(), "" + disciplina.getCdLectivo());
 
loadedunits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(), "" + disciplina.getCodigoCurso(), "" + disciplina.getCdDuracao(), "" + disciplina.getCdLectivo());
/*******Logging************************/
if(loadedunits.size() > 1 && !separateTurmas)
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportCourseService.java
257,7 → 257,7
* @param logMessages
* @return
*/
protected static boolean loadCourseYearTurmasPolicy(int codigoDoCurso,String year,DefaultLogMessages logMessages,ServiceJob service) {
public static boolean loadCourseYearTurmasPolicy(int codigoDoCurso,String year,DefaultLogMessages logMessages,ServiceJob service) {
 
Boolean turmasSeparated = courseYearTurmasPolicy.get(codigoDoCurso + "-" + year);
if(turmasSeparated != null)
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/AnswersAlunosProcessor.java
9,6 → 9,7
import pt.estgp.estgweb.services.logresults.LogMessageTypeEnum;
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessage;
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages;
import pt.estgp.estgweb.services.sigesimports.ImportCourseService;
import pt.estgp.estgweb.web.exceptions.NotAuthorizedException;
 
import java.util.ArrayList;
115,8 → 116,6
logger.info(msg);
serviceLogInfo(msg);
 
if(unidadeCurricularAfeta.getCodigoUnidade().equals("704342"))
System.out.println("");
 
if(!unidadeCurricularAfeta.isUsar())
{
129,6 → 128,18
else
{
CourseUnitImpl cuImpl = (CourseUnitImpl) DaoFactory.getCourseUnitDaoImpl().narrow(unidadeCurricularAfeta.getCourseUnit());
CourseImpl courseImpl = (CourseImpl) DaoFactory.getCourseDaoImpl().narrow(unidadeCurricularAfeta.getCourseUnit().getCourse());
 
boolean separateTurmas = false;
try{
separateTurmas = ImportCourseService.loadCourseYearTurmasPolicy(Integer.parseInt(unidadeCurricularAfeta.getCursoAfeto().getCodigoCurso()), q.getYear(), logMessages, this);
}catch(Throwable e)
{
msg = "!!! Código de Curso inválido a tentar verificar politica de turmas separadas, vai assumir falso";
serviceLogError(msg);
logger.error(msg);
logMessages.addMessage(new DefaultLogMessage("questionario.answers.assigning", LogMessageTypeEnum.ERROR,msg));
}
unidadesUtilizadas++;
verificaAlertasUnidade(logMessages, unidadeCurricularAfeta);
List<CourseUnitImpl.Tipologia> tipologias;
155,14 → 166,27
}
}
 
//Lista de Professores para ir removendo à medida que sao usados para no final confirmar se algum
//não tinha tipologia vamos coloca-lo manualmente
Map<String,Teacher> professoresEsperados = new HashMap<String, Teacher>();
for(Teacher t: cuImpl.getTeachers()) { professoresEsperados.put(t.getSigesCode() + "", t); }
for(CourseUnitImpl.Tipologia tMerge: tipologias) { professoresEsperados.remove(tMerge.getCdDocente()); }
 
List<CourseUnitImpl.Tipologia> tipologiasEmFalta = criarTipologiasRequisitadasSimplesParaProfsForaDasTurmasPorFaltaDeSumarios(logMessages, q, unidadeCurricularAfeta, cuImpl, professoresEsperados);
tipologias.addAll(tipologiasEmFalta);
if(separateTurmas)
{
if(professoresEsperados.size() > 0)
{
msg = "!!! Unidade de um curso de turmas separadas, vamos usar apenas as tipologias para atribuir respostas, não vamos adicionar professores que não sumariaram";
serviceLogWarn(msg);
logger.warn(msg);
logMessages.addMessage(new DefaultLogMessage("questionario.answers.assigning", LogMessageTypeEnum.WARNING,msg));
}
}
else
{
//Lista de Professores para ir removendo à medida que sao usados para no final confirmar se algum
//não tinha tipologia vamos coloca-lo manualmente
List<CourseUnitImpl.Tipologia> tipologiasEmFalta = criarTipologiasRequisitadasSimplesParaProfsForaDasTurmasPorFaltaDeSumarios(logMessages, q, unidadeCurricularAfeta, cuImpl, professoresEsperados);
tipologias.addAll(tipologiasEmFalta);
}
 
for(CourseUnitImpl.Tipologia tMerge: tipologias)
{
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/UpdateCoursesAndUnitsJobService.java
424,7 → 424,7
DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().delete(cursoAfeto);
}
 
private void removeUnselectedUnits(QuestionarioPedagogicoCursoAfeto cursoAfetado, List<String> newUnidadesCodesList) {
private void removeUnselectedUnits(QuestionarioPedagogicoCursoAfeto cursoAfetado, List<Long> newUnidadesCodesList) {
/** logging **/
String msg = "Removing unselected units from course: " + cursoAfetado.getCodigoCurso();
serviceLogInfo(msg);
433,7 → 433,7
Set<QuestionarioPedagogicoUnidadeCurricularAfeta> allUnidades = cursoAfetado.getUnidadesAfetas();
for(QuestionarioPedagogicoUnidadeCurricularAfeta unidadeAfeta: allUnidades)
{
if(!newUnidadesCodesList.contains(unidadeAfeta.getCodigoUnidade()))
if(!newUnidadesCodesList.contains(unidadeAfeta.getCourseUnit().getId()))
{
/** logging **/
msg = "--->Deleting unidade: " + unidadeAfeta.getCodigoUnidade();
502,7 → 502,7
 
 
 
List<String> newUnitCodesList = new ArrayList<String>();
List<Long> newUnitCodesList = new ArrayList<Long>();
int countUnits = 0;
List<CourseUnitDaoImpl.CourseUnitResult> results = DaoFactory.getCourseUnitDaoImpl().loadCourseUnits(c.getId(), q.getSemestre(), q.getYear());
int totalUnits = results.size();
510,7 → 510,7
{
countUnits++;
CourseUnit cu = DaoFactory.getCourseUnitDaoImpl().load(cur.id);
newUnitCodesList.add(cu.getCode());
newUnitCodesList.add(cu.getId());
/** logging **/
msg = "---->(" + countUnits + " of " + totalUnits +") CourseUnit loaded: " + cu.getName() + "(" + cu.getCode() + ")";
serviceLogInfo(msg);
534,10 → 534,10
 
String msg;
QuestionarioPedagogicoUnidadeCurricularAfetaImpl unidadeAfeta = null;
List<QuestionarioPedagogicoUnidadeCurricularAfeta> unidadesFound = DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().find(cursoAfeto.getQuestionario().getId(), cursoAfeto.getCodigoCurso(), cu.getCode());
List<QuestionarioPedagogicoUnidadeCurricularAfeta> unidadesFound = DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().find(cursoAfeto.getQuestionario().getId(), cursoAfeto.getCodigoCurso(), cu.getId());
if(unidadesFound != null && unidadesFound.size() > 1)
{
msg = "Encontradas mais que uma unidade nos mesmos códigos: curso:" +cursoAfeto.getCodigoCurso() + ", unidade " + cu.getCode() + " apagando um";
msg = "Encontradas mais que uma unidade nos mesmos códigos: curso:" +cursoAfeto.getCodigoCurso() + ", unidade " + cu.getCode() + " com id sistema(" + cu.getId() + ") apagando um";
serviceLogWarn(msg);
logger.warn(msg);
logMessages.addMessage(new DefaultLogMessage("questionario.courses.selection", LogMessageTypeEnum.WARNING,msg));
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl.java
16,16 → 16,16
return (QuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl) myInstance;
}
 
public List<QuestionarioPedagogicoUnidadeCurricularAfeta> find(long questionarioId, String cursoCode,String codeUnidade)
public List<QuestionarioPedagogicoUnidadeCurricularAfeta> find(long questionarioId, String cursoCode,Long idUnidade)
{//pt.estgp.estgweb.domain.dao.DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().getCurrentSession().createCriteria(QuestionarioPedagogicoUnidadeCurricularAfeta.class).add(eq("cursoAfeto.id","1")).list()
//add(eq("cuA.questionario.id", new Long(20))).add(eq("codigoUnidade","209535")).add(eq("cuA.codigoCurso","9119"))
Query q = getCurrentSession().createQuery("select c from c in class " + QuestionarioPedagogicoUnidadeCurricularAfeta.class.getName() + " " +
" join c.cursoAfeto as curso " +
"where curso.questionario.id = :questionarioId and curso.codigoCurso = :codigoCurso" +
" and c.codigoUnidade = :codigoUnidade");
" and c.courseUnit.id = :idUnidade");
q.setLong("questionarioId", questionarioId);
q.setString("codigoCurso", cursoCode);
q.setString("codigoUnidade",codeUnidade);
q.setLong("idUnidade",idUnidade);
return q.list();
 
/*DaoFactory.getCourseDaoImpl()