From 645016128b05dafe6f4f3a10610907c5c3308b16 Mon Sep 17 00:00:00 2001 From: Chris Ditcher Date: Tue, 9 Jul 2024 08:46:58 -0700 Subject: [PATCH] Updating release branch for patch (#537) * Updated to Ubuntu 22.04 (cherry picked from commit b90fba4e204c23a1f0a90326f72ded6adc46a117) * Hotfix/alex grad2 2855 (#536) * GRAD2-2855 P2 GRAD Incident: Not-Yet Graduated Report is Not Updated when ALL the students are graduated in the REGALG * GRAD2-2855 P2 GRAD Incident: Not-Yet Graduated Report is Not Updated when ALL the students are graduated in the REGALG * Update pom.xml Updated to 1.8.59 --------- Co-authored-by: chris.ditcher Co-authored-by: Alexander Rybakov <83988488+arybakov-cgi@users.noreply.github.com> --- .../graduation/service/GraduationService.java | 29 ++++++++++++------- .../util/EducGraduationApiConstants.java | 3 ++ api/src/main/resources/application.yaml | 1 + .../service/GraduationServiceTest.java | 6 +++- api/src/test/resources/application.yaml | 1 + 5 files changed, 28 insertions(+), 12 deletions(-) diff --git a/api/src/main/java/ca/bc/gov/educ/api/graduation/service/GraduationService.java b/api/src/main/java/ca/bc/gov/educ/api/graduation/service/GraduationService.java index 4e69edee..b2471da1 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/graduation/service/GraduationService.java +++ b/api/src/main/java/ca/bc/gov/educ/api/graduation/service/GraduationService.java @@ -307,7 +307,8 @@ private List filterStudentList(List stdList, String mincode, String accessToken, int numberOfReports) { - if(stdList != null && !stdList.isEmpty()) { + Integer studentsCount = countStudentsForAmalgamatedSchoolReport(schoolObj.getMincode()); + if(studentsCount > 0) { ReportData gradReport = getReportDataObj(schoolObj, stdList); createAndSaveSchoolReportGradRegReport(gradReport, mincode, accessToken); numberOfReports++; @@ -316,7 +317,8 @@ private int processGradRegReport(School schoolObj, List stdList, String } private int processNonGradRegReport(School schoolObj, List stdList, String mincode, int numberOfReports) { - if(stdList != null && !stdList.isEmpty()) { + Integer studentsCount = countStudentsForAmalgamatedSchoolReport(schoolObj.getMincode()); + if(studentsCount > 0) { ReportData gradReport = getReportDataObj(schoolObj, stdList); createAndSaveSchoolReportNonGradRegReport(gradReport, mincode); numberOfReports++; @@ -324,6 +326,20 @@ private int processNonGradRegReport(School schoolObj, List stdList, Str return numberOfReports; } + private int processStudentNonGradPrjReport(School schoolObj, List stdList, String mincode, String accessToken, int numberOfReports) { + Integer studentsCount = countStudentsForAmalgamatedSchoolReport(schoolObj.getMincode()); + if(studentsCount > 0) { + ReportData nongradProjected = getReportDataObj(schoolObj, stdList); + createAndSaveSchoolReportStudentNonGradPrjReport(nongradProjected, mincode, accessToken); + numberOfReports++; + } + return numberOfReports; + } + + private int countStudentsForAmalgamatedSchoolReport(String mincode) { + return restService.get(String.format(educGraduationApiConstants.getGradStudentCountSchoolReport(), mincode), Integer.class); + } + private ReportData getReportDataObj(School schoolObj, List stdList) { ReportData data = new ReportData(); schoolObj.setStudents(stdList); @@ -333,15 +349,6 @@ private ReportData getReportDataObj(School schoolObj, List stdList) { return data; } - private int processStudentNonGradPrjReport(School schoolObj, List stdList, String mincode, String accessToken, int numberOfReports) { - if(stdList != null && !stdList.isEmpty()) { - ReportData nongradProjected = getReportDataObj(schoolObj, stdList); - createAndSaveSchoolReportStudentNonGradPrjReport(nongradProjected, mincode, accessToken); - numberOfReports++; - } - return numberOfReports; - } - /** private int processStudentNonGradReport(School schoolObj, List stdList, String mincode, String accessToken, int numberOfReports) { ReportData nongradProjected = getReportDataObj(schoolObj, stdList); diff --git a/api/src/main/java/ca/bc/gov/educ/api/graduation/util/EducGraduationApiConstants.java b/api/src/main/java/ca/bc/gov/educ/api/graduation/util/EducGraduationApiConstants.java index 00e70adc..cd95174c 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/graduation/util/EducGraduationApiConstants.java +++ b/api/src/main/java/ca/bc/gov/educ/api/graduation/util/EducGraduationApiConstants.java @@ -67,6 +67,9 @@ public class EducGraduationApiConstants { @Value("${endpoint.grad-student-api.student-for-school-report}") private String gradStudentListSchoolReport; + + @Value("${endpoint.grad-student-api.student-count-for-school-report}") + private String gradStudentCountSchoolReport; @Value("${endpoint.grad-student-api.read-grad-student-record}") private String readGradStudentRecord; diff --git a/api/src/main/resources/application.yaml b/api/src/main/resources/application.yaml index d3fb4cf3..9a0e0583 100644 --- a/api/src/main/resources/application.yaml +++ b/api/src/main/resources/application.yaml @@ -87,6 +87,7 @@ endpoint: update-grad-status-algo-error: ${GRAD_STUDENT_API}api/v1/student/algorithmerror/%s?isGraduated=%s update-grad-status-projected: ${GRAD_STUDENT_API}api/v1/student/projected/studentid/%s student-for-school-report: ${GRAD_STUDENT_API}api/v1/student/batch/schoolreport/%s + student-count-for-school-report: ${GRAD_STUDENT_API}api/v1/student/amalgamated/schoolreport/%s/count school-nongrad-year-end-students: ${GRAD_STUDENT_API}api/v1/student/studentschoolreportdata student-nongrad-report-data: ${GRAD_STUDENT_API}api/v1/student/studentnongradreportdata student-nongrad-report-data-mincode: ${GRAD_STUDENT_API}api/v1/student/studentnongradreportdata/%s diff --git a/api/src/test/java/ca/bc/gov/educ/api/graduation/service/GraduationServiceTest.java b/api/src/test/java/ca/bc/gov/educ/api/graduation/service/GraduationServiceTest.java index 21740d62..0d846529 100644 --- a/api/src/test/java/ca/bc/gov/educ/api/graduation/service/GraduationServiceTest.java +++ b/api/src/test/java/ca/bc/gov/educ/api/graduation/service/GraduationServiceTest.java @@ -2035,10 +2035,12 @@ public void testCreateAndStoreSchoolReports() { when(this.tokenUtils.getAccessToken(any())).thenReturn(Pair.of("accessToken", System.currentTimeMillis())); when(this.tokenUtils.checkAndGetAccessToken(any())).thenReturn(Pair.of("accessToken", System.currentTimeMillis())); + when(this.restService.get(any(), any())).thenReturn(1); + Mockito.when(gradStatusService.getStudentListByMinCode(mincode, "accessToken")).thenReturn(sList); Mockito.when(schoolService.getTraxSchoolDetails(mincode, "accessToken", exception)).thenReturn(sTrax); int numberOfRecord = graduationService.createAndStoreSchoolReports(uniqueList,"REGALG","accessToken"); - assertEquals(1,numberOfRecord); + assertEquals(2,numberOfRecord); Mockito.when(gradStatusService.getStudentListByMinCode(mincode, "accessToken")).thenReturn(List.of()); numberOfRecord = graduationService.createAndStoreSchoolReports(uniqueList,"REGALG","accessToken"); @@ -2264,6 +2266,8 @@ public void testCreateAndStoreSchoolReports_TVR() { when(this.tokenUtils.getAccessToken(any())).thenReturn(Pair.of("accessToken", System.currentTimeMillis())); + when(this.restService.get(any(), any())).thenReturn(1); + Mockito.when(gradStatusService.getStudentListByMinCode(mincode, "accessToken")).thenReturn(sList); Mockito.when(schoolService.getTraxSchoolDetails(mincode, "accessToken", exception)).thenReturn(sTrax); int numberOfRecord = graduationService.createAndStoreSchoolReports(uniqueList,"TVRRUN","accessToken"); diff --git a/api/src/test/resources/application.yaml b/api/src/test/resources/application.yaml index a5c9cd3c..b599f683 100644 --- a/api/src/test/resources/application.yaml +++ b/api/src/test/resources/application.yaml @@ -88,6 +88,7 @@ endpoint: update-grad-status-algo-error: https://educ-grad-student-api-77c02f-test.apps.silver.devops.gov.bc.ca/api/v1/student/algorithmerror/%s?isGraduated=%s update-grad-status-projected: https://educ-grad-student-api-77c02f-dev.apps.silver.devops.gov.bc.ca/api/v1/student/projected/studentid/%s student-for-school-report: https://educ-grad-student-api-77c02f-dev.apps.silver.devops.gov.bc.ca/api/v1/student/batch/schoolreport/%s + student-count-for-school-report: https://educ-grad-student-api-77c02f-dev.apps.silver.devops.gov.bc.ca/api/v1/student/amalgamated/schoolreport/%s/count school-nongrad-year-end-students: https://educ-grad-student-api-77c02f-dev.apps.silver.devops.gov.bc.ca/api/v1/student/studentschoolreportdata student-nongrad-report-data: https://educ-grad-student-api-77c02f-dev.apps.silver.devops.gov.bc.ca/api/v1/student/studentnongradreportdata student-nongrad-report-data-mincode: https://educ-grad-student-api-77c02f-dev.apps.silver.devops.gov.bc.ca/api/v1/student/studentnongradreportdata/%s