@@ -70,16 +70,24 @@ public <T extends Object> void processEvent(T request, Event event) {
7070 public void processStudent (TraxGraduationUpdateDTO updateGrad , StudentGradDTO currentStudent , String accessToken ) {
7171 boolean isChanged = false ;
7272 log .info (" Process Student : studentID = {}, pen = {}" , currentStudent .getStudentID (), updateGrad .getPen ());
73+
74+ // Student Status - This step is moved to top to determine the update fields based on new status.
75+ String newStudentStatus = getGradStudentStatus (updateGrad .getStudentStatus (), updateGrad .getArchiveFlag ());
76+ if (newStudentStatus != null ) {
77+ processStudentStatus (currentStudent , newStudentStatus );
78+ log .info (" => student status : current = {}, request = {}" , currentStudent .getStudentStatus (), currentStudent .getNewStudentStatus ());
79+ isChanged = true ;
80+ }
7381 // Processing order is important for the first 3 fields below.
7482 // 1. School of Record Guid
7583 if (updateGrad .getSchoolOfRecordId () != null ) {
76- isChanged = processSchoolOfRecordId (currentStudent , updateGrad .getSchoolOfRecordId ());
84+ isChanged = processSchoolOfRecordId (currentStudent , updateGrad .getSchoolOfRecordId ()) || isChanged ;
7785 log .info (" => school of record id : current = {}, request = {}" , currentStudent .getSchoolOfRecordId (), currentStudent .getNewSchoolOfRecordId ());
7886 }
7987 // 2. Grad Program
8088 String gradProgram = getGradProgram (updateGrad .getGraduationRequirementYear (), currentStudent .getUpToDateSchoolOfRecordId (), null );
8189 if (gradProgram != null ) {
82- isChanged = processGraduationProgram (currentStudent , updateGrad .getPen (), gradProgram , accessToken );
90+ isChanged = processGraduationProgram (currentStudent , updateGrad .getPen (), gradProgram , accessToken ) || isChanged ;
8391 if (isChanged && StringUtils .isNotBlank (currentStudent .getNewProgram ())) {
8492 log .info (" => grad program : current = {}, request = {}" , currentStudent .getProgram (), currentStudent .getNewProgram ());
8593 } else {
@@ -89,7 +97,7 @@ public void processStudent(TraxGraduationUpdateDTO updateGrad, StudentGradDTO cu
8997 // 3. SLP Date
9098 String slpDate = updateGrad .getSlpDateWithDefaultFormat ();
9199 if (slpDate != null && "SCCP" .equalsIgnoreCase (currentStudent .getUpToDateGradProgram ())) {
92- isChanged = processSlpDate (currentStudent , slpDate );
100+ isChanged = processSlpDate (currentStudent , slpDate ) || isChanged ;
93101 if (isChanged ) {
94102 log .info (" => slp date : current = {}, request = {}" , currentStudent .getGradDate (), slpDate );
95103 } else {
@@ -98,21 +106,14 @@ public void processStudent(TraxGraduationUpdateDTO updateGrad, StudentGradDTO cu
98106 }
99107 // 4. Student Grade
100108 if (StringUtils .isNotBlank (updateGrad .getStudentGrade ())) {
101- isChanged = processStudentGrade (currentStudent , updateGrad .getStudentGrade ());
109+ isChanged = processStudentGrade (currentStudent , updateGrad .getStudentGrade ()) || isChanged ;
102110 log .info (" => student grade : current = {}, request = {}" , currentStudent .getStudentGrade (), currentStudent .getNewStudentGrade ());
103111 }
104112 // 5. Citizenship
105113 if (StringUtils .isNotBlank (updateGrad .getCitizenship ())) {
106- isChanged = processCitizenship (currentStudent , updateGrad .getCitizenship ());
114+ isChanged = processCitizenship (currentStudent , updateGrad .getCitizenship ()) || isChanged ;
107115 log .info (" => student citizenship : current = {}, request = {}" , currentStudent .getCitizenship (), currentStudent .getNewCitizenship ());
108116 }
109- String newStudentStatus = getGradStudentStatus (updateGrad .getStudentStatus (), updateGrad .getArchiveFlag ());
110- // 6. Student Status
111- if (newStudentStatus != null ) {
112- processStudentStatus (currentStudent , newStudentStatus );
113- log .info (" => student status : current = {}, request = {}" , currentStudent .getStudentStatus (), currentStudent .getNewStudentStatus ());
114- isChanged = true ;
115- }
116117
117118 if (isChanged ) {
118119 log .info (" Save Student : studentID = {}, pen = {}" , currentStudent .getStudentID (), updateGrad .getPen ());
0 commit comments