44,6 → 44,7 |
int studentsNew = 0; |
int studentsZeroUnits = 0; |
int unitsNotFound = 0; |
int unitsNotFoundTurma = 0; |
int unitsRemovedToStudents = 0; |
int unitsLocalAddedNotRemoved = 0; |
int unitsLocallyRemovedNotAdded = 0; |
58,6 → 59,7 |
studentsNew = 0; |
studentsZeroUnits = 0; |
unitsNotFound = 0; |
unitsNotFoundTurma = 0; |
unitsRemovedToStudents = 0; |
unitsLocalAddedNotRemoved = 0; |
unitsLocallyRemovedNotAdded = 0; |
68,6 → 70,8 |
String activeImportYear = DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear(); |
|
String msgS = "STARTING STUDENTS IMPORT SERVICE FOR YEAR: " + year; |
|
|
serviceLogInfo(msgS); |
logger.info(msgS); |
|
82,6 → 86,7 |
{ |
serviceLogInfo("STARTING WEB SERVICE AT " + WSDL); |
service = new SiGesWEB(new URL(WSDL), new QName(Globals.SIGES_WEBSERVICE_TARGET_NAMESPACE, "SiGesWEB")); |
|
} |
catch (MalformedURLException e) |
{ |
149,7 → 154,7 |
DaoFactory.getStudentDaoImpl().save(s); |
newUser = true; |
} |
persist(alunoSiges, s, newUser,year,activeImportYear,logMessages); |
persist(alunoSiges, s, newUser,year,activeImportYear,logMessages,service); |
//Advising CommonsServicesManager before change password |
|
if (newUser) |
199,6 → 204,7 |
serviceLogInfo("#Students Merged: " + studentsMerged); |
serviceLogInfo("#Students Zero Units: " + studentsZeroUnits); |
serviceLogInfo("#Units not found: " + unitsNotFound); |
serviceLogInfo("#Units not found in real course (turma ok): " + unitsNotFoundTurma); |
serviceLogInfo("#Units added to Students: " + unitsAddedToStudents); |
serviceLogInfo("#Units removed to Students: " + unitsRemovedToStudents); |
serviceLogInfo("#Units not Removed because localy added: " + unitsLocalAddedNotRemoved); |
211,6 → 217,7 |
logger.info("#Students Merged: " + studentsMerged); |
logger.info("#Students Zero Units: " + studentsZeroUnits); |
logger.info("#Units not found: " + unitsNotFound); |
logger.info("#Units not found in real course (turma ok): " + unitsNotFoundTurma); |
logger.info("#Units added to Students: " + unitsAddedToStudents); |
logger.info("#Units removed to Students: " + unitsRemovedToStudents); |
logger.info("#Units not Removed because localy added: " + unitsLocalAddedNotRemoved); |
257,6 → 264,82 |
} |
} |
|
public BigDecimal getRealCourse(String turma,String year, String semestre, SiGesWEB service) |
{ |
HashMap<String,List<BigDecimal>> pairs = getCourseTurmaPairs(year,semestre,service); |
List<BigDecimal> cursos = pairs.get(turma); |
if(cursos.size() > 1) |
{ |
String msgAdmin = ""; |
String msg = "####Atenção existe um caso de dúvida nas inscrições : " + year + "-" + semestre + " turma " + turma; |
msgAdmin += msg + "\n"; |
logger.warn(msg); |
serviceLogWarn(msg); |
msg = "####A turma " + turma + " tem " + cursos.size() + " cursos associados: "; |
logger.warn(msg); |
serviceLogWarn(msg); |
msgAdmin += msg + "\n"; |
for(BigDecimal curso: cursos) |
{ |
msg = "######->turma:" + turma + " -> curso siges: " + curso.longValue(); |
msgAdmin += msg + "\n"; |
logger.warn(msg); |
serviceLogWarn(msg); |
} |
sendNotificationAdmin("Atenção existe um caso de dúvida nas inscrições",msgAdmin); |
} |
if(cursos.size() > 0) |
return cursos.get(0); |
else |
{ |
String msg = "####Atenção existe um em que uma turma nao tem curso associado : " + year + "-" + semestre + " turma " + turma; |
sendNotificationAdmin("Atenção existe um em que uma turma nao tem curso associado",msg); |
logger.error(msg); |
serviceLogError(msg); |
return null; |
} |
} |
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) |
{ |
HashMap<String,List<BigDecimal>> turmaCourses = semestreTurmaCursosPairs.get(year + ";" + semestre); |
if(turmaCourses == null) |
{ |
String msg = "Starting structure pairs turma curso para : " + year + "-" + semestre; |
logger.info(msg); |
serviceLogInfo(msg); |
ArrayOfTurmaCurso arrayOfTurmaCurso = service.getSiGesWEBSoap().loadParesTurmaCurso( |
new BigDecimal(DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode()) |
, year,semestre); |
turmaCourses = new HashMap<String, List<BigDecimal>>(); |
for(TurmaCurso turmaCursoPair: arrayOfTurmaCurso.getTurmaCurso()) |
{ |
List<BigDecimal> cursos = turmaCourses.get(turmaCursoPair.getCdTurma()); |
if(cursos == null) |
{ |
cursos = new ArrayList<BigDecimal>(); |
turmaCourses.put(turmaCursoPair.getCdTurma(),cursos); |
} |
if(turmaCursoPair.getCodigoCurso().intValue() > 0) |
{ |
cursos.add(turmaCursoPair.getCodigoCurso()); |
msg = "Adding:" + turmaCursoPair.getCdTurma() + "->" + turmaCursoPair.getCodigoCurso(); |
logger.info(msg); |
serviceLogInfo(msg); |
} |
else |
{ |
msg = "Excluding:" + turmaCursoPair.getCdTurma() + "->" + turmaCursoPair.getCodigoCurso(); |
logger.warn(msg); |
serviceLogInfo(msg); |
} |
} |
semestreTurmaCursosPairs.put(year + ";" + semestre,turmaCourses); |
/***END INICIALIZACAO***/ |
} |
/**Inicialização da Estrutura de Suporte aos Cursos/Turma*/ |
return turmaCourses; |
} |
|
|
/** |
266,7 → 349,7 |
* @param alunoSiges Aluno |
* @param student Student |
*/ |
private void persist(Aluno alunoSiges, Student student, boolean newUser, String year, String activeImportYear, DefaultLogMessages logMessages) |
private void persist(Aluno alunoSiges, Student student, boolean newUser, String year, String activeImportYear, DefaultLogMessages logMessages, SiGesWEB service) |
{ |
if(newUser) |
{ |
363,17 → 446,29 |
ArrayOfDisciplina disciplinas = alunoSiges.getDisciplinasInscrito(); |
for (Disciplina disciplina : disciplinas.getDisciplina()) |
{ |
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(),"" + disciplina.getCodigoCurso(),disciplina.getCdDuracao(),disciplina.getCdLectivo() |
BigDecimal codigoDoCursoReal = disciplina.getCodigoCurso(); |
if(disciplina.getCdTipoDisciplina() != null && disciplina.getCdTipoDisciplina().intValue() == ImportCourseService.SIGES_CODIGO_TIPO_DISCIPLINA_EXTRA_CURRICULAR) |
{ |
|
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; |
serviceLogInfo(msg); |
logger.info(msg); |
} |
|
CourseUnit courseUnit = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique("" + disciplina.getCodigo(),"" + codigoDoCursoReal,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) |
{ |
courseUnit = tryFindCourseUnitWithOutTurma(logMessages,disciplina); |
unitsNotFoundTurma++; |
courseUnit = tryFindCourseUnitWithOutTurma(logMessages,disciplina.getCdDuracao(),""+disciplina.getCodigo().intValue() |
,"" + codigoDoCursoReal.intValue(),disciplina.getCdLectivo(),disciplina.getCdTurma()); |
} |
if(courseUnit == null) |
{ |
unitsNotFound++; |
String msg = "Unit not found: semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " course:" + disciplina.getCodigoCurso() + " year:" + disciplina.getCdLectivo() + " turma: " + disciplina.getCdTurma(); |
String msg = "Unit not found: semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " course:" + codigoDoCursoReal + " year:" + disciplina.getCdLectivo() + " turma: " + disciplina.getCdTurma(); |
serviceLogWarn(msg); |
logger.warn(msg); |
} |
474,17 → 569,17 |
} |
} |
|
private CourseUnit tryFindCourseUnitWithOutTurma(DefaultLogMessages logMessages, Disciplina disciplina) |
private CourseUnit tryFindCourseUnitWithOutTurma(DefaultLogMessages logMessages, String cdDuracao, String codigo,String codigoCurso,String cdLectivo,String cdTurma) |
{ |
CourseUnit courseUnit = null; |
String msg = "Unit not found with turma code : semestre:" + disciplina.getCdDuracao() + " codigo:" + disciplina.getCodigo() + " course:" + disciplina.getCodigoCurso() + " year:" + disciplina.getCdLectivo() + " turma: " + disciplina.getCdTurma(); |
String msg = "Unit not found with turma code : semestre:" + cdDuracao + " codigo:" + codigo + " course:" + codigoCurso + " year:" + cdLectivo + " turma: " + cdTurma; |
logMessages.addMessage(new DefaultLogMessage("", LogMessageTypeEnum.WARNING,msg)); |
serviceLogWarn(msg); |
logger.warn(msg); |
msg = "Trying without Turma code..."; |
serviceLogWarn(msg); |
logger.warn(msg); |
List<CourseUnit> cus = DaoFactory.getCourseUnitDaoImpl().loadBySigesCode("" + disciplina.getCodigo(),"" + disciplina.getCodigoCurso(),disciplina.getCdDuracao(),disciplina.getCdLectivo()); |
List<CourseUnit> cus = DaoFactory.getCourseUnitDaoImpl().loadBySigesCode("" + codigo,"" + codigoCurso,cdDuracao,cdLectivo); |
if(cus != null && cus.size() == 1) |
{ |
courseUnit = cus.get(0); |