From afed4acbfbae6f62ef41822bc730b8241178ad8f Mon Sep 17 00:00:00 2001 From: arybakov Date: Wed, 17 Jul 2024 10:55:32 -0600 Subject: [PATCH 1/5] GRAD2-2322 School Reports Archive Process: Backend endpoints and Processing To Complete --- .../report/controller/CommonController.java | 14 +++++++++ .../repository/SchoolReportsRepository.java | 15 ++++++++++ .../grad/report/service/CommonService.java | 18 +++++++++++ .../util/EducGradReportApiConstants.java | 3 ++ .../controller/CommonControllerTest.java | 18 +++++++++++ .../report/service/CommonServiceTest.java | 30 +++++++++++++++++++ 6 files changed, 98 insertions(+) diff --git a/api/src/main/java/ca/bc/gov/educ/api/grad/report/controller/CommonController.java b/api/src/main/java/ca/bc/gov/educ/api/grad/report/controller/CommonController.java index 6fa340a0..450c595e 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/grad/report/controller/CommonController.java +++ b/api/src/main/java/ca/bc/gov/educ/api/grad/report/controller/CommonController.java @@ -397,5 +397,19 @@ public ResponseEntity getStudentCredentialByType(@PathVaria return commonService.getStudentCredentialByType(UUID.fromString(studentID),type); } + @PostMapping (EducGradReportApiConstants.REPORT_COUNT) + @PreAuthorize(PermissionsConstants.READ_GRADUATION_STUDENT_REPORTS) + @Operation(summary = "Get Students Count by mincode and status", description = "Get Students Count by mincode and status", tags = { "Business" }) + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) + public ResponseEntity getReportsCount(@RequestParam String reportType, @RequestBody List schoolOfRecords) { + return response.GET(commonService.countBySchoolOfRecordsAndReportType(schoolOfRecords, reportType)); + } + @PostMapping (EducGradReportApiConstants.REPORT_ARCHIVE) + @PreAuthorize(PermissionsConstants.READ_GRADUATION_STUDENT_REPORTS) + @Operation(summary = "Get Students Count by mincode and status", description = "Get Students Count by mincode and status", tags = { "Business" }) + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) + public ResponseEntity archiveSchoolReports(@RequestParam long batchId, @RequestParam String reportType, @RequestBody List schoolOfRecords) { + return response.GET(commonService.archiveSchoolReports(batchId, schoolOfRecords, reportType)); + } } diff --git a/api/src/main/java/ca/bc/gov/educ/api/grad/report/repository/SchoolReportsRepository.java b/api/src/main/java/ca/bc/gov/educ/api/grad/report/repository/SchoolReportsRepository.java index 886cc975..3061dd24 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/grad/report/repository/SchoolReportsRepository.java +++ b/api/src/main/java/ca/bc/gov/educ/api/grad/report/repository/SchoolReportsRepository.java @@ -2,6 +2,7 @@ import ca.bc.gov.educ.api.grad.report.model.entity.SchoolReportsEntity; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; @@ -23,4 +24,18 @@ public interface SchoolReportsRepository extends JpaRepository findBySchoolOfRecordAndReportTypeCodeOrderBySchoolOfRecord(String schoolOfRecord, String reportTypeCode); + @Query("select count(*) from SchoolReportsLightEntity c where c.schoolOfRecord IN (:schoolOfRecords) and c.reportTypeCode=:reportType") + Long countBySchoolOfRecordsAndReportType(List schoolOfRecords, String reportType); + + @Query("select count(*) from SchoolReportsLightEntity c where c.reportTypeCode=:reportType") + Long countByReportType(String reportType); + + @Modifying + @Query(value="update SCHOOL_REPORT set REPORT_TYPE_CODE = :reportTypeTo, update_date = SYSDATE, update_user = 'Batch ' || :batchId || ' Archive Process' where school_of_record in (:schoolOfRecords) and REPORT_TYPE_CODE = :reportTypeFrom", nativeQuery=true) + Integer archiveSchoolReports(List schoolOfRecords, String reportTypeFrom, String reportTypeTo, long batchId); + + @Modifying + @Query(value="delete SCHOOL_REPORT where school_of_record in (:schoolOfRecords) and REPORT_TYPE_CODE = :reportType", nativeQuery=true) + Integer deleteSchoolReports(List schoolOfRecords, String reportType); + } diff --git a/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java b/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java index 574694cb..60940bf3 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java +++ b/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java @@ -845,6 +845,24 @@ private synchronized List getReportGradStudentData(String .block(); } + public Long countBySchoolOfRecordsAndReportType(List schoolOfRecords, String reportType) { + Long reportsCount = 0L; + if(schoolOfRecords != null && !schoolOfRecords.isEmpty()) { + reportsCount += schoolReportsRepository.countBySchoolOfRecordsAndReportType(schoolOfRecords, reportType); + } + return reportsCount; + } + + @Transactional + public Integer archiveSchoolReports(long batchId, List schoolOfRecords, String reportType) { + Integer reportsCount = 0; + if(schoolOfRecords != null && !schoolOfRecords.isEmpty()) { + schoolReportsRepository.deleteSchoolReports(schoolOfRecords, reportType + "ARC"); + reportsCount += schoolReportsRepository.archiveSchoolReports(schoolOfRecords, reportType, reportType + "ARC", batchId); + } + return reportsCount; + } + class UUIDPageTask implements Callable { private final PageRequest pageRequest; diff --git a/api/src/main/java/ca/bc/gov/educ/api/grad/report/util/EducGradReportApiConstants.java b/api/src/main/java/ca/bc/gov/educ/api/grad/report/util/EducGradReportApiConstants.java index d5707ea2..c35b0d1a 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/grad/report/util/EducGradReportApiConstants.java +++ b/api/src/main/java/ca/bc/gov/educ/api/grad/report/util/EducGradReportApiConstants.java @@ -23,6 +23,9 @@ private EducGradReportApiConstants(){} public static final String API_VERSION = "v1"; public static final String GRAD_REPORT_API_ROOT_MAPPING = "/api/" + API_VERSION + "/graduationreports"; + public static final String REPORT_COUNT = "/count"; + public static final String REPORT_ARCHIVE = "/archive"; + public static final String GET_ALL_CERTIFICATE_TYPE_MAPPING = "/certificatetype"; public static final String GET_ALL_CERTIFICATE_TYPE_BY_CODE_MAPPING = "/certificatetype/{certTypeCode}"; diff --git a/api/src/test/java/ca/bc/gov/educ/api/grad/report/controller/CommonControllerTest.java b/api/src/test/java/ca/bc/gov/educ/api/grad/report/controller/CommonControllerTest.java index 766248d6..bd0a0054 100644 --- a/api/src/test/java/ca/bc/gov/educ/api/grad/report/controller/CommonControllerTest.java +++ b/api/src/test/java/ca/bc/gov/educ/api/grad/report/controller/CommonControllerTest.java @@ -52,6 +52,24 @@ public void testGetStudentCertificate() { Mockito.verify(commonService).getStudentCertificate(certificateTypeCode); } + @Test + public void testGetReportsCount() { + // ID + String mincode = "123456789"; + Mockito.when(commonService.countBySchoolOfRecordsAndReportType(List.of(mincode), "reportType")).thenReturn(1L); + commonController.getReportsCount("reportType", List.of(mincode)); + Mockito.verify(commonService).countBySchoolOfRecordsAndReportType(List.of(mincode), "reportType"); + } + + @Test + public void testArchiveSchoolReports() { + // ID + String mincode = "123456789"; + Mockito.when(commonService.archiveSchoolReports(1L, List.of(mincode), "reportType")).thenReturn(1); + commonController.archiveSchoolReports(1L, "reportType", List.of(mincode)); + Mockito.verify(commonService).archiveSchoolReports(1L, List.of(mincode), "reportType"); + } + @Test public void testProcessStudentReports() { final UUID studentGuid = UUID.randomUUID(); diff --git a/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java b/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java index 75f4d963..33ac7c99 100644 --- a/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java +++ b/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java @@ -1680,6 +1680,36 @@ public void testCheckStudentCertificateExistsForSCCP_with_SCCP_Certificate() { assertThat(result).isTrue(); } + @Test + public void testCountBySchoolOfRecordsAndReportType() { + Mockito.when(schoolReportsRepository.countBySchoolOfRecordsAndReportType(List.of("12345678"), "reportType")).thenReturn(1L); + Long count = commonService.countBySchoolOfRecordsAndReportType(List.of("12345678"), "reportType"); + assertThat(count).isNotNull().isEqualTo(1L); + } + + @Test + public void testArchiveSchoolReports() { + Mockito.when(schoolReportsRepository.deleteSchoolReports(List.of("12345678"), "reportTypeARC")).thenReturn(1); + Mockito.when(schoolReportsRepository.archiveSchoolReports(List.of("12345678"), "reportType", "reportTypeARC", 1L)).thenReturn(1); + Integer count = commonService.archiveSchoolReports(1L, List.of("12345678"), "reportType"); + assertThat(count).isNotNull().isEqualTo(1); + } + + @Test + public void testArchiveSchoolReportsEmpty() { + Mockito.when(schoolReportsRepository.archiveSchoolReports(new ArrayList<>(), "reportType", "ARC", 1L)).thenReturn(0); + Integer count = commonService.archiveSchoolReports(1L, new ArrayList<>(), "reportType"); + assertThat(count).isNotNull().isEqualTo(0); + } + + @Test + public void testDeleteSchoolReports() { + Mockito.when(schoolReportsRepository.deleteSchoolReports(List.of("12345678"), "reportTypeARC")).thenReturn(1); + Mockito.when(schoolReportsRepository.archiveSchoolReports(List.of("12345678"), "reportType", "reportTypeARC", 1L)).thenReturn(1); + Integer count = commonService.archiveSchoolReports(1L, List.of("12345678"), "reportType"); + assertThat(count).isNotNull().isEqualTo(1); + } + @Test @SneakyThrows public void testGetSchoolReportGradStudentData() { From 2d10faf95a61b885f1d02c98086f8fc6e383d591 Mon Sep 17 00:00:00 2001 From: arybakov Date: Wed, 17 Jul 2024 15:38:04 -0600 Subject: [PATCH 2/5] GRAD2-2322 School Reports Archive Process: Backend endpoints and Processing To Complete --- .../gov/educ/api/grad/report/controller/CommonController.java | 2 +- .../bc/gov/educ/api/grad/report/util/PermissionsConstants.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/api/src/main/java/ca/bc/gov/educ/api/grad/report/controller/CommonController.java b/api/src/main/java/ca/bc/gov/educ/api/grad/report/controller/CommonController.java index 450c595e..af021448 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/grad/report/controller/CommonController.java +++ b/api/src/main/java/ca/bc/gov/educ/api/grad/report/controller/CommonController.java @@ -406,7 +406,7 @@ public ResponseEntity getReportsCount(@RequestParam String reportType, @Re } @PostMapping (EducGradReportApiConstants.REPORT_ARCHIVE) - @PreAuthorize(PermissionsConstants.READ_GRADUATION_STUDENT_REPORTS) + @PreAuthorize(PermissionsConstants.ARCHIVE_SCHOOL_REPORT) @Operation(summary = "Get Students Count by mincode and status", description = "Get Students Count by mincode and status", tags = { "Business" }) @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) public ResponseEntity archiveSchoolReports(@RequestParam long batchId, @RequestParam String reportType, @RequestBody List schoolOfRecords) { diff --git a/api/src/main/java/ca/bc/gov/educ/api/grad/report/util/PermissionsConstants.java b/api/src/main/java/ca/bc/gov/educ/api/grad/report/util/PermissionsConstants.java index 57a6ee55..6fac89f3 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/grad/report/util/PermissionsConstants.java +++ b/api/src/main/java/ca/bc/gov/educ/api/grad/report/util/PermissionsConstants.java @@ -22,6 +22,8 @@ private PermissionsConstants() { public static final String UPDATE_CERTIFICATE_TYPE = _PREFIX + "SCOPE_UPDATE_GRAD_CERTIFICATE_CODE_DATA" + _SUFFIX; public static final String CREATE_CERTIFICATE_TYPE = _PREFIX + "SCOPE_CREATE_GRAD_CERTIFICATE_CODE_DATA" + _SUFFIX; public static final String READ_GRAD_REPORT = _PREFIX + "SCOPE_READ_GRAD_REPORT_CODE_DATA" + _SUFFIX; + + public static final String ARCHIVE_SCHOOL_REPORT = _PREFIX + "SCOPE_ARCHIVE_SCHOOL_REPORT" + _SUFFIX; public static final String DELETE_REPORT_TYPE = _PREFIX + "SCOPE_DELETE_GRAD_REPORT_CODE_DATA" + _SUFFIX; public static final String UPDATE_REPORT_TYPE = _PREFIX + "SCOPE_UPDATE_GRAD_REPORT_CODE_DATA" + _SUFFIX; public static final String CREATE_REPORT_TYPE = _PREFIX + "SCOPE_CREATE_GRAD_REPORT_CODE_DATA" + _SUFFIX; From 35a2869aba9970d84d6fdc9cd1295e0c83b9876e Mon Sep 17 00:00:00 2001 From: arybakov Date: Thu, 18 Jul 2024 13:22:03 -0600 Subject: [PATCH 3/5] GRAD2-2322 School Reports Archive Process: Backend endpoints and Processing To Complete --- .../report/controller/CommonController.java | 2 +- .../repository/SchoolReportsRepository.java | 6 +++--- .../grad/report/service/CommonService.java | 20 +++++++++++++------ .../controller/CommonControllerTest.java | 2 +- .../report/service/CommonServiceTest.java | 19 +++++++++++------- 5 files changed, 31 insertions(+), 18 deletions(-) diff --git a/api/src/main/java/ca/bc/gov/educ/api/grad/report/controller/CommonController.java b/api/src/main/java/ca/bc/gov/educ/api/grad/report/controller/CommonController.java index af021448..7d6bc5e6 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/grad/report/controller/CommonController.java +++ b/api/src/main/java/ca/bc/gov/educ/api/grad/report/controller/CommonController.java @@ -401,7 +401,7 @@ public ResponseEntity getStudentCredentialByType(@PathVaria @PreAuthorize(PermissionsConstants.READ_GRADUATION_STUDENT_REPORTS) @Operation(summary = "Get Students Count by mincode and status", description = "Get Students Count by mincode and status", tags = { "Business" }) @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) - public ResponseEntity getReportsCount(@RequestParam String reportType, @RequestBody List schoolOfRecords) { + public ResponseEntity getReportsCount(@RequestParam String reportType, @RequestBody List schoolOfRecords) { return response.GET(commonService.countBySchoolOfRecordsAndReportType(schoolOfRecords, reportType)); } diff --git a/api/src/main/java/ca/bc/gov/educ/api/grad/report/repository/SchoolReportsRepository.java b/api/src/main/java/ca/bc/gov/educ/api/grad/report/repository/SchoolReportsRepository.java index 3061dd24..36076c21 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/grad/report/repository/SchoolReportsRepository.java +++ b/api/src/main/java/ca/bc/gov/educ/api/grad/report/repository/SchoolReportsRepository.java @@ -25,17 +25,17 @@ public interface SchoolReportsRepository extends JpaRepository findBySchoolOfRecordAndReportTypeCodeOrderBySchoolOfRecord(String schoolOfRecord, String reportTypeCode); @Query("select count(*) from SchoolReportsLightEntity c where c.schoolOfRecord IN (:schoolOfRecords) and c.reportTypeCode=:reportType") - Long countBySchoolOfRecordsAndReportType(List schoolOfRecords, String reportType); + Integer countBySchoolOfRecordsAndReportType(List schoolOfRecords, String reportType); @Query("select count(*) from SchoolReportsLightEntity c where c.reportTypeCode=:reportType") - Long countByReportType(String reportType); + Integer countByReportType(String reportType); @Modifying @Query(value="update SCHOOL_REPORT set REPORT_TYPE_CODE = :reportTypeTo, update_date = SYSDATE, update_user = 'Batch ' || :batchId || ' Archive Process' where school_of_record in (:schoolOfRecords) and REPORT_TYPE_CODE = :reportTypeFrom", nativeQuery=true) Integer archiveSchoolReports(List schoolOfRecords, String reportTypeFrom, String reportTypeTo, long batchId); @Modifying - @Query(value="delete SCHOOL_REPORT where school_of_record in (:schoolOfRecords) and REPORT_TYPE_CODE = :reportType", nativeQuery=true) + @Query(value="delete SCHOOL_REPORT where school_of_record in (:schoolOfRecords) and REPORT_TYPE_CODE = :reportType and UPDATE_DATE <= SYSDATE - 1", nativeQuery=true) Integer deleteSchoolReports(List schoolOfRecords, String reportType); } diff --git a/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java b/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java index 60940bf3..ad246d1e 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java +++ b/api/src/main/java/ca/bc/gov/educ/api/grad/report/service/CommonService.java @@ -845,8 +845,8 @@ private synchronized List getReportGradStudentData(String .block(); } - public Long countBySchoolOfRecordsAndReportType(List schoolOfRecords, String reportType) { - Long reportsCount = 0L; + public Integer countBySchoolOfRecordsAndReportType(List schoolOfRecords, String reportType) { + Integer reportsCount = 0; if(schoolOfRecords != null && !schoolOfRecords.isEmpty()) { reportsCount += schoolReportsRepository.countBySchoolOfRecordsAndReportType(schoolOfRecords, reportType); } @@ -855,12 +855,20 @@ public Long countBySchoolOfRecordsAndReportType(List schoolOfRecords, St @Transactional public Integer archiveSchoolReports(long batchId, List schoolOfRecords, String reportType) { - Integer reportsCount = 0; + Integer updatedReportsCount = 0; + Integer deletedReportsCount = 0; + Integer originalReportsCount = 0; if(schoolOfRecords != null && !schoolOfRecords.isEmpty()) { - schoolReportsRepository.deleteSchoolReports(schoolOfRecords, reportType + "ARC"); - reportsCount += schoolReportsRepository.archiveSchoolReports(schoolOfRecords, reportType, reportType + "ARC", batchId); + reportType = StringUtils.upperCase(StringUtils.endsWithIgnoreCase(reportType, "ARC") ? StringUtils.removeEndIgnoreCase(reportType, "ARC") : reportType); + String archivedReportType = StringUtils.upperCase(StringUtils.endsWith(reportType, "ARC") ? reportType : reportType + "ARC"); + originalReportsCount += schoolReportsRepository.countBySchoolOfRecordsAndReportType(schoolOfRecords, reportType); + updatedReportsCount += schoolReportsRepository.archiveSchoolReports(schoolOfRecords, reportType, archivedReportType, batchId); + if(originalReportsCount.equals(updatedReportsCount)) { + deletedReportsCount += schoolReportsRepository.deleteSchoolReports(schoolOfRecords, archivedReportType); + logger.debug("{} School Reports deleted", deletedReportsCount); + } } - return reportsCount; + return updatedReportsCount; } class UUIDPageTask implements Callable { diff --git a/api/src/test/java/ca/bc/gov/educ/api/grad/report/controller/CommonControllerTest.java b/api/src/test/java/ca/bc/gov/educ/api/grad/report/controller/CommonControllerTest.java index bd0a0054..c1bed3db 100644 --- a/api/src/test/java/ca/bc/gov/educ/api/grad/report/controller/CommonControllerTest.java +++ b/api/src/test/java/ca/bc/gov/educ/api/grad/report/controller/CommonControllerTest.java @@ -56,7 +56,7 @@ public void testGetStudentCertificate() { public void testGetReportsCount() { // ID String mincode = "123456789"; - Mockito.when(commonService.countBySchoolOfRecordsAndReportType(List.of(mincode), "reportType")).thenReturn(1L); + Mockito.when(commonService.countBySchoolOfRecordsAndReportType(List.of(mincode), "reportType")).thenReturn(1); commonController.getReportsCount("reportType", List.of(mincode)); Mockito.verify(commonService).countBySchoolOfRecordsAndReportType(List.of(mincode), "reportType"); } diff --git a/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java b/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java index 33ac7c99..3c09544e 100644 --- a/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java +++ b/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java @@ -1682,30 +1682,35 @@ public void testCheckStudentCertificateExistsForSCCP_with_SCCP_Certificate() { @Test public void testCountBySchoolOfRecordsAndReportType() { - Mockito.when(schoolReportsRepository.countBySchoolOfRecordsAndReportType(List.of("12345678"), "reportType")).thenReturn(1L); - Long count = commonService.countBySchoolOfRecordsAndReportType(List.of("12345678"), "reportType"); + Mockito.when(schoolReportsRepository.countBySchoolOfRecordsAndReportType(List.of("12345678"), "reportType")).thenReturn(1); + Integer count = commonService.countBySchoolOfRecordsAndReportType(List.of("12345678"), "reportType"); assertThat(count).isNotNull().isEqualTo(1L); } @Test public void testArchiveSchoolReports() { - Mockito.when(schoolReportsRepository.deleteSchoolReports(List.of("12345678"), "reportTypeARC")).thenReturn(1); - Mockito.when(schoolReportsRepository.archiveSchoolReports(List.of("12345678"), "reportType", "reportTypeARC", 1L)).thenReturn(1); + Mockito.when(schoolReportsRepository.deleteSchoolReports(List.of("12345678"), "reportTypeARC".toUpperCase())).thenReturn(1); + Mockito.when(schoolReportsRepository.archiveSchoolReports(List.of("12345678"), "reportType".toUpperCase(), "reportTypeARC".toUpperCase(), 1L)).thenReturn(1); Integer count = commonService.archiveSchoolReports(1L, List.of("12345678"), "reportType"); assertThat(count).isNotNull().isEqualTo(1); + + Mockito.when(schoolReportsRepository.deleteSchoolReports(List.of("12345678"), "reportTypeARC".toUpperCase())).thenReturn(0); + Mockito.when(schoolReportsRepository.archiveSchoolReports(List.of("12345678"), "reportType".toUpperCase(), "reportTypeARC".toUpperCase(), 1L)).thenReturn(0); + count = commonService.archiveSchoolReports(1L, List.of("12345678"), "reportType"); + assertThat(count).isNotNull().isEqualTo(0); } @Test public void testArchiveSchoolReportsEmpty() { - Mockito.when(schoolReportsRepository.archiveSchoolReports(new ArrayList<>(), "reportType", "ARC", 1L)).thenReturn(0); + Mockito.when(schoolReportsRepository.archiveSchoolReports(new ArrayList<>(), "reportType".toUpperCase(), "reportTypeARC".toUpperCase(), 1L)).thenReturn(0); Integer count = commonService.archiveSchoolReports(1L, new ArrayList<>(), "reportType"); assertThat(count).isNotNull().isEqualTo(0); } @Test public void testDeleteSchoolReports() { - Mockito.when(schoolReportsRepository.deleteSchoolReports(List.of("12345678"), "reportTypeARC")).thenReturn(1); - Mockito.when(schoolReportsRepository.archiveSchoolReports(List.of("12345678"), "reportType", "reportTypeARC", 1L)).thenReturn(1); + Mockito.when(schoolReportsRepository.deleteSchoolReports(List.of("12345678"), "reportTypeARC".toUpperCase())).thenReturn(1); + Mockito.when(schoolReportsRepository.archiveSchoolReports(List.of("12345678"), "reportType".toUpperCase(), "reportTypeARC".toUpperCase(), 1L)).thenReturn(1); Integer count = commonService.archiveSchoolReports(1L, List.of("12345678"), "reportType"); assertThat(count).isNotNull().isEqualTo(1); } From c6bcb98d36cc419cbfdf325f49ea54e9e70b37cc Mon Sep 17 00:00:00 2001 From: arybakov Date: Thu, 18 Jul 2024 13:43:14 -0600 Subject: [PATCH 4/5] GRAD2-2322 School Reports Archive Process: Backend endpoints and Processing To Complete --- .../bc/gov/educ/api/grad/report/service/CommonServiceTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java b/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java index 3c09544e..3fe83c70 100644 --- a/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java +++ b/api/src/test/java/ca/bc/gov/educ/api/grad/report/service/CommonServiceTest.java @@ -1684,7 +1684,7 @@ public void testCheckStudentCertificateExistsForSCCP_with_SCCP_Certificate() { public void testCountBySchoolOfRecordsAndReportType() { Mockito.when(schoolReportsRepository.countBySchoolOfRecordsAndReportType(List.of("12345678"), "reportType")).thenReturn(1); Integer count = commonService.countBySchoolOfRecordsAndReportType(List.of("12345678"), "reportType"); - assertThat(count).isNotNull().isEqualTo(1L); + assertThat(count).isNotNull().isEqualTo(1); } @Test From 7b3ef2d1b139536d7d1a08e5d7cb4abbdbe207bc Mon Sep 17 00:00:00 2001 From: Alexander Rybakov <83988488+arybakov-cgi@users.noreply.github.com> Date: Tue, 23 Jul 2024 11:04:51 -0600 Subject: [PATCH 5/5] Added FROM to delete statement --- .../api/grad/report/repository/SchoolReportsRepository.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/main/java/ca/bc/gov/educ/api/grad/report/repository/SchoolReportsRepository.java b/api/src/main/java/ca/bc/gov/educ/api/grad/report/repository/SchoolReportsRepository.java index 36076c21..979ad177 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/grad/report/repository/SchoolReportsRepository.java +++ b/api/src/main/java/ca/bc/gov/educ/api/grad/report/repository/SchoolReportsRepository.java @@ -35,7 +35,7 @@ public interface SchoolReportsRepository extends JpaRepository schoolOfRecords, String reportTypeFrom, String reportTypeTo, long batchId); @Modifying - @Query(value="delete SCHOOL_REPORT where school_of_record in (:schoolOfRecords) and REPORT_TYPE_CODE = :reportType and UPDATE_DATE <= SYSDATE - 1", nativeQuery=true) + @Query(value="delete from SCHOOL_REPORT where school_of_record in (:schoolOfRecords) and REPORT_TYPE_CODE = :reportType and UPDATE_DATE <= SYSDATE - 1", nativeQuery=true) Integer deleteSchoolReports(List schoolOfRecords, String reportType); }