Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1276 → Rev 1277

/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportStudentsService.java
48,6 → 48,7
int unitsRemovedToStudents = 0;
int unitsLocalAddedNotRemoved = 0;
int unitsLocallyRemovedNotAdded = 0;
int unitsRepeated = 0;
int alunosFound = 0;
int studentsChangeBI = 0;
int unitsAddedToStudents = 0;
75,6 → 76,7
studentsChangeBI = 0;
unitsAddedToStudents = 0;
alunosErasmusCadeirasEcontradas = 0;
unitsRepeated = 0;
turmaMoreThanOneRegularCourse = 0;
 
String activeImportYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear();
219,6 → 221,7
serviceLogInfo("#Units removed to Students: " + unitsRemovedToStudents);
serviceLogInfo("#Units not Removed because localy added: " + unitsLocalAddedNotRemoved);
serviceLogInfo("#Units not Added because localy removed: " + unitsLocallyRemovedNotAdded);
serviceLogInfo("#Units repeated: " + unitsRepeated);
serviceLogInfo("#ERASMUS Sum Subscriptions Replaced: " + alunosErasmusCadeirasEcontradas);
if(turmaMoreThanOneRegularCourse > 0)
serviceLogInfo("#########!!!!!!!PROBLEMA TURMAS COM MAIS DE UM CURSO: " + turmaMoreThanOneRegularCourse);
235,6 → 238,7
logger.info("#Units removed to Students: " + unitsRemovedToStudents);
logger.info("#Units not Removed because localy added: " + unitsLocalAddedNotRemoved);
logger.info("#Units not Added because localy removed: " + unitsLocallyRemovedNotAdded);
logger.info("#Units repeated: " + unitsRepeated);
logger.info("#ERASMUS Sum Subscriptions Replaced: " + alunosErasmusCadeirasEcontradas);
if(turmaMoreThanOneRegularCourse > 0)
logger.warn("#########!!!!!!!PROBLEMA TURMAS COM MAIS DE UM CURSO: " + turmaMoreThanOneRegularCourse);
471,8 → 475,8
}
if(!student.isPropinasEmDia())
{
serviceLogWarn("ATENTION Estudante sem propina em dia: codigo " + alunoSiges.getCodigo());
logger.warn("ATENTION Estudante sem propina em dia: codigo " + alunoSiges.getCodigo());
serviceLogInfo("ATENTION Estudante sem propina em dia: codigo " + alunoSiges.getCodigo());
logger.info("ATENTION Estudante sem propina em dia: codigo " + alunoSiges.getCodigo());
}
}
/*Desta forma as relacoes antigas sao ignoradas cria-se uma lista nova e atribui-se ao Teacher, o Hibernate faz resto e apaga as chaves estrangeiras antigas */
528,16 → 532,24
logger.info(msg);
}
 
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(),"" + codigoDoCurso,disciplina.getCdDuracao(),disciplina.getCdLectivo()
,disciplina.getCdTurma());
//TODO JA FOI ALTERADO PARA DAR O AVISO DEVIDO AO LEGADO DAS TURMAS
List<CourseUnit> courseUnits = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(),"" + codigoDoCurso,disciplina.getCdDuracao(),disciplina.getCdLectivo());
if(courseUnits != null && courseUnits.size() > 1 )
{
unitsRepeated++;
logMessages.addMessage(new DefaultLogMessage("import.error","Unidade Repetida: (" + disciplina.getCodigo() + ") curso: " + disciplina.getCodigoCurso() + " " + disciplina.getCdDuracao() + " " + year, "see log for details", LogMessageTypeEnum.WARNING));
logger.fatal(logMessages.getLastMessage());
serviceLogWarn(logMessages.getLastMessage());
}
//CourseUnit courseUnit = null;
//Special procedure for Aluno to check if turma not exist will find without turma code to keep old years compatibility
if(courseUnit == null)
/*if(courseUnit == null)
{
unitsNotFoundTurma++;
courseUnit = tryFindCourseUnitWithOutTurma(logMessages,disciplina.getCdDuracao(),""+disciplina.getCodigo().intValue()
,"" + codigoDoCurso.intValue(),disciplina.getCdLectivo(),disciplina.getCdTurma());
}
if(courseUnit == null)
}*/
if(courseUnits == null || courseUnits.size() == 0)
{
unitsNotFound++;
String msg = "Unit not found (student " + student.getSigesCode() + "): semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " course:" + codigoDoCurso + " year:" + disciplina.getCdLectivo() + " turma: " + disciplina.getCdTurma();
545,7 → 557,7
logger.warn(msg);
}
else
unitsFromSigesPersistentInBaco.add(courseUnit);
unitsFromSigesPersistentInBaco.addAll(courseUnits);
}
 
//PASSO 2 - Sao retiradas da lista unitsFromSigesPersistentInBaco as que o aluno tem mas que foram removidas localmente
/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportCourseService.java
2,10 → 2,10
 
import jomm.dao.impl.AbstractDao;
import org.apache.log4j.Logger;
import org.hibernate.NonUniqueResultException;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.Course;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.CourseUnitImpl;
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.CourseView;
19,7 → 19,9
import pt.estgp.estgweb.services.logresults.impl.DefaultLogMessages;
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.utils.Email;
import pt.ipportalegre.siges.web.services.*;
import pt.ipportalegre.siges.web.services.ArrayOfDisciplina;
import pt.ipportalegre.siges.web.services.Disciplina;
import pt.ipportalegre.siges.web.services.SiGesWEB;
import pt.utl.ist.berserk.logic.serviceManager.IService;
 
import javax.xml.namespace.QName;
39,6 → 41,7
 
int newUnits = 0;
int newCourses = 0;
int unitsRepeated = 0;
public ILogMessages run(String year) throws ServiceException
{
String msgS = "STARTING COURSES IMPORT SERVICE FOR YEAR: " + year;
47,6 → 50,7
 
newUnits = 0;
newCourses = 0;
unitsRepeated = 0;
 
DefaultLogMessages logMessages = new DefaultLogMessages();
try
146,6 → 150,7
serviceLogInfo("#Units Imported T4:" + disciplinasMapT4.size());
serviceLogInfo("#New Courses Found:" + newCourses);
serviceLogInfo("#New Units Found:" + newUnits);
serviceLogInfo("#Unidades Repetidas:" + unitsRepeated);
 
logger.info("######################################");
logger.info("######################################");
159,6 → 164,7
logger.info("#Units Imported T4:" + disciplinasMapT4.size());
logger.info("#New Courses Found:" + newCourses);
logger.info("#New Units Found:" + newUnits);
logger.info("#Unidades Repetidas:" + unitsRepeated);
 
 
}
259,65 → 265,45
 
continue;
}
CourseUnit c;
try{
c = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + d.getCodigo(), "" + d.getCodigoCurso(), semestre, year, d.getCdTurma());
}catch(NonUniqueResultException e)
//CourseUnit c = null;
List<CourseUnit> cus = null;
 
cus= DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + d.getCodigo(), "" + d.getCodigoCurso(), semestre, year);
if(cus != null && cus.size() > 1 )
{
logMessages.addMessage(new DefaultLogMessage("import.error","Unidade Repetida: (" + d.getCodigo() + ") curso: " + d.getCodigoCurso() + " " + semestre + " " + year, "see log for details", LogMessageTypeEnum.ERROR));
unitsRepeated++;
logMessages.addMessage(new DefaultLogMessage("import.error","Unidade Repetida: (" + d.getCodigo() + ") curso: " + d.getCodigoCurso() + " " + semestre + " " + year, "see log for details, vai atualizar as duas", LogMessageTypeEnum.ERROR));
logger.fatal(logMessages.getLastMessage());
serviceLogWarn(logMessages.getLastMessage());
 
throw e;
}
//NOVO pode ainda nao ter turma
if(c == null)
{
List<CourseUnit> cus = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeTurmaNull("" + d.getCodigo(), "" + d.getCodigoCurso(), semestre, year);
if(cus == null || cus.size() == 0 )
{
// nao faz nada deixa ir null para criar
 
}
else if(cus.size() == 1)
{
//Tem de levar turma
c = cus.get(0);
c.setCdTurma(d.getCdTurma());
//é a primeira leva com o primeiro código de turma mete-se já este mas a seguir pode vir outro
logger.info("Adding turma code: " + d.getCdTurma() + " to unit:" + d.getCodigo() + "/" + d.getNome() + " curso:" + d.getCodigoCurso() + "/" + d.getNomeCurso());
serviceLogInfo("Adding turma code: " + d.getCdTurma() + " to unit:" + d.getCodigo() + "/" + d.getNome() + " curso:" + d.getCodigoCurso() + "/" + d.getNomeCurso());
}
else
{
logMessages.addMessage(new DefaultLogMessage("import.error", "Unidade Repetida: (" + d.getCodigo() + ") curso: " + d.getCodigoCurso() + " " + semestre + " " + year + " " + d.getCdTurma(), "see log for details", LogMessageTypeEnum.ERROR));
logger.fatal(logMessages.getLastMessage());
serviceLogWarn(logMessages.getLastMessage());
}
}
//NOVO
if (c == null)
 
if (cus == null || cus.size() == 0)
{
c = DomainObjectFactory.createCourseUnitImpl();
CourseUnitImpl c = DomainObjectFactory.createCourseUnitImpl();
DaoFactory.getCourseUnitDaoImpl().save(c);
logMessages.addMessage(new DefaultLogMessage("import.error", "New Unit Found: (" + d.getCodigo() + ") " + d.getNome() + " - curso (" + d.getNomeCurso() + ") " + d.getNomeCurso() + " turma(" + d.getCdTurma() + ")", "see log for details", LogMessageTypeEnum.INFO));
logger.info(logMessages.getLastMessage());
serviceLogInfo(logMessages.getLastMessage());
newUnits++;
cus = new ArrayList<CourseUnit>();
cus.add(c);
}
//NOVO
 
c.setCdTurma("" + d.getCdTurma());
//FIM NOVO
c.setName(d.getNome());
c.setInstitutionCode("" + DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode());
c.setCode("" + d.getCodigo().intValue());
c.setCourseCode("" + d.getCodigoCurso());
c.setCourseName("" + d.getNomeCurso());
c.setSemestre(semestre);
c.setImportYear(year);
Course course = DaoFactory.getCourseDaoImpl().findCourseByCode(c.getCourseCode());
c.setCourse(course);
for(CourseUnit c: cus)
{
//todo deixa de atualizar c.setCdTurma("" + d.getCdTurma());
c.setName(d.getNome());
c.setInstitutionCode("" + DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode());
c.setCode("" + d.getCodigo().intValue());
c.setCourseCode("" + d.getCodigoCurso());
c.setCourseName("" + d.getNomeCurso());
c.setSemestre(semestre);
c.setImportYear(year);
Course course = DaoFactory.getCourseDaoImpl().findCourseByCode(c.getCourseCode());
c.setCourse(course);
}
}
}