52,7 → 52,14 |
int studentsChangeBI = 0; |
int unitsAddedToStudents = 0; |
int alunosErasmusCadeirasEcontradas = 0; |
int turmaMoreThanOneRegularCourse = 0; |
|
//Vasco da Gama |
//Cadeiras a Vulso |
//Erasmus |
//disciplinas a vulso ESS |
Integer[] cursosFicticios = {19,4,0,22}; |
|
public ILogMessages run(String year) throws ServiceException |
{ |
|
68,6 → 75,7 |
studentsChangeBI = 0; |
unitsAddedToStudents = 0; |
alunosErasmusCadeirasEcontradas = 0; |
turmaMoreThanOneRegularCourse = 0; |
|
String activeImportYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(); |
|
212,6 → 220,8 |
serviceLogInfo("#Units not Removed because localy added: " + unitsLocalAddedNotRemoved); |
serviceLogInfo("#Units not Added because localy removed: " + unitsLocallyRemovedNotAdded); |
serviceLogInfo("#ERASMUS Sum Subscriptions Replaced: " + alunosErasmusCadeirasEcontradas); |
if(turmaMoreThanOneRegularCourse > 0) |
serviceLogInfo("#########!!!!!!!PROBLEMA TURMAS COM MAIS DE UM CURSO: " + turmaMoreThanOneRegularCourse); |
|
logger.info("############################"); |
logger.info("############################"); |
226,6 → 236,9 |
logger.info("#Units not Removed because localy added: " + unitsLocalAddedNotRemoved); |
logger.info("#Units not Added because localy removed: " + unitsLocallyRemovedNotAdded); |
logger.info("#ERASMUS Sum Subscriptions Replaced: " + alunosErasmusCadeirasEcontradas); |
if(turmaMoreThanOneRegularCourse > 0) |
logger.warn("#########!!!!!!!PROBLEMA TURMAS COM MAIS DE UM CURSO: " + turmaMoreThanOneRegularCourse); |
|
if(studentsChangeBI>0) |
{ |
serviceLogInfo("#>>>>>AVISO AVISO<<<<<<<<<: "); |
268,9 → 281,9 |
} |
} |
|
public BigDecimal getRealCourse(String turma,String year, String semestre, SiGesWEB service) |
public BigDecimal getRealCourse(String turma,String year, String semestre, SiGesWEB service, DefaultLogMessages messages) |
{ |
HashMap<String,List<BigDecimal>> pairs = getCourseTurmaPairs(year,semestre,service); |
HashMap<String,List<BigDecimal>> pairs = getCourseTurmaPairs(year,semestre,service,messages); |
List<BigDecimal> cursos = pairs.get(turma); |
if(cursos.size() > 1) |
{ |
303,8 → 316,21 |
return null; |
} |
} |
|
boolean isCursoFicticio(int cursoCode) |
{ |
for(Integer cursoFicticio: cursosFicticios) |
{ |
if(cursoFicticio.intValue() == cursoCode) |
{ |
return true; |
} |
} |
return false; |
} |
|
HashMap<String,HashMap<String,List<BigDecimal>>> semestreTurmaCursosPairs = new HashMap<String, HashMap<String, List<BigDecimal>>>(); |
private HashMap<String,List<BigDecimal>> getCourseTurmaPairs(String year,String semestre, SiGesWEB service) |
private HashMap<String,List<BigDecimal>> getCourseTurmaPairs(String year,String semestre, SiGesWEB service, DefaultLogMessages messages) |
{ |
HashMap<String,List<BigDecimal>> turmaCourses = semestreTurmaCursosPairs.get(year + ";" + semestre); |
if(turmaCourses == null) |
324,12 → 350,31 |
cursos = new ArrayList<BigDecimal>(); |
turmaCourses.put(turmaCursoPair.getCdTurma(),cursos); |
} |
if(turmaCursoPair.getCodigoCurso().intValue() > 0) |
if(turmaCursoPair.getCodigoCurso().intValue() >= 0) |
{ |
cursos.add(turmaCursoPair.getCodigoCurso()); |
msg = "Adding:" + turmaCursoPair.getCdTurma() + "->" + turmaCursoPair.getCodigoCurso(); |
logger.info(msg); |
serviceLogInfo(msg); |
boolean cursoFicticio = isCursoFicticio(turmaCursoPair.getCodigoCurso().intValue()); |
if(!cursoFicticio) |
{ |
cursos.add(turmaCursoPair.getCodigoCurso()); |
|
msg = "Adding:" + turmaCursoPair.getCdTurma() + "->" + turmaCursoPair.getCodigoCurso(); |
logger.info(msg); |
serviceLogInfo(msg); |
if(cursos.size()>1) |
{ |
turmaMoreThanOneRegularCourse++; |
msg = "Warning: turma " + turmaCursoPair.getCdTurma() + " has more than one regular course associated "; |
logger.warn(msg); |
serviceLogWarn(msg); |
messages.addMessage(new DefaultLogMessage("", LogMessageTypeEnum.WARNING,msg)); |
} |
} |
else |
{ |
msg = "Not adding:" + turmaCursoPair.getCdTurma() + "->" + turmaCursoPair.getCodigoCurso() + " -> Codigo de Curso Ficticio ->não vai ser considerado"; |
logger.info(msg); |
serviceLogInfo(msg); |
} |
} |
else |
{ |
448,44 → 493,54 |
//todo mudar isto |
//todo mudar nos webservices quando vai buscar o mapa de turmas |
final int ERASMUS_CODE = 0; |
//FALTA AQUI O VASCO DA GAMA |
//FALTA AQUI DISCIPLINAS A VULSO |
|
//PASSO 1 |
Set<CourseUnit> unitsFromSigesPersistentInBaco = new HashSet<CourseUnit>(); |
ArrayOfDisciplina disciplinas = alunoSiges.getDisciplinasInscrito(); |
for (Disciplina disciplina : disciplinas.getDisciplina()) |
{ |
BigDecimal codigoDoCursoReal = disciplina.getCodigoCurso(); |
boolean cursoFicticio = isCursoFicticio(disciplina.getCodigoCurso().intValue()); |
BigDecimal codigoDoCurso = disciplina.getCodigoCurso(); |
if(disciplina.getCdTipoDisciplina() != null |
&& (disciplina.getCdTipoDisciplina().intValue() |
== ImportCourseService.SIGES_CODIGO_TIPO_DISCIPLINA_EXTRA_CURRICULAR |
|| disciplina.getCodigoCurso().intValue() == ERASMUS_CODE)) |
&& |
(disciplina.getCdTipoDisciplina().intValue() == ImportCourseService.SIGES_CODIGO_TIPO_DISCIPLINA_EXTRA_CURRICULAR |
|| |
cursoFicticio)) |
{ |
|
if(disciplina.getCodigoCurso().intValue() == ERASMUS_CODE) |
if(cursoFicticio) |
{ |
alunosErasmusCadeirasEcontradas++; |
String msg = "Disciplina para Aluno de Erasmus Encontrada (" + student.getSigesCode() + ") vamos trocar para código de curso real"; |
String msg = "Disciplina para Aluno " + student.getSigesCode() + " de Curso Ficticio " +disciplina.getCodigoCurso().intValue() + " encontrada vamos trocar para código de curso real"; |
serviceLogInfo(msg); |
logger.info(msg); |
} |
codigoDoCursoReal = getRealCourse(disciplina.getCdTurma(),year,disciplina.getCdDuracao(),service); |
String msg = "Codigo de curso (" + disciplina.getCodigoCurso() + ") da disciplina " + disciplina.getCodigo() + " tipo: " + disciplina.getCdTipoDisciplina() + " nome:" + disciplina.getNome() + "turma: " + disciplina.getCdTurma() + " Modificado para o real: " + codigoDoCursoReal; |
else |
{ |
String msg = "Disciplina para Aluno " + student.getSigesCode() + " ExtraCurricular " +disciplina.getCodigoCurso().intValue() + " encontrada vamos trocar para código de curso real"; |
serviceLogInfo(msg); |
logger.info(msg); |
} |
codigoDoCurso = getRealCourse(disciplina.getCdTurma(),year,disciplina.getCdDuracao(),service,logMessages); |
String msg = "Codigo de curso (" + disciplina.getCodigoCurso() + ") da disciplina " + disciplina.getCodigo() + " tipo: " + disciplina.getCdTipoDisciplina() + " nome:" + disciplina.getNome() + "turma: " + disciplina.getCdTurma() + " Modificado para o real: " + codigoDoCurso; |
serviceLogInfo(msg); |
logger.info(msg); |
} |
|
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(),"" + codigoDoCursoReal,disciplina.getCdDuracao(),disciplina.getCdLectivo() |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(),"" + codigoDoCurso,disciplina.getCdDuracao(),disciplina.getCdLectivo() |
,disciplina.getCdTurma()); |
//Special procedure for Aluno to check if turma not exist will find without turma code to keep old years compatibility |
if(courseUnit == null) |
{ |
unitsNotFoundTurma++; |
courseUnit = tryFindCourseUnitWithOutTurma(logMessages,disciplina.getCdDuracao(),""+disciplina.getCodigo().intValue() |
,"" + codigoDoCursoReal.intValue(),disciplina.getCdLectivo(),disciplina.getCdTurma()); |
,"" + codigoDoCurso.intValue(),disciplina.getCdLectivo(),disciplina.getCdTurma()); |
} |
if(courseUnit == null) |
{ |
unitsNotFound++; |
String msg = "Unit not found: semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " course:" + codigoDoCursoReal + " year:" + disciplina.getCdLectivo() + " turma: " + disciplina.getCdTurma(); |
String msg = "Unit not found (student " + student.getSigesCode() + "): semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " course:" + codigoDoCurso + " year:" + disciplina.getCdLectivo() + " turma: " + disciplina.getCdTurma(); |
serviceLogWarn(msg); |
logger.warn(msg); |
} |