diff --git a/src/main/java/ru/soune/nocopy/repository/ViolationRepository.java b/src/main/java/ru/soune/nocopy/repository/ViolationRepository.java index 75a0382..0e3a8c0 100644 --- a/src/main/java/ru/soune/nocopy/repository/ViolationRepository.java +++ b/src/main/java/ru/soune/nocopy/repository/ViolationRepository.java @@ -42,6 +42,8 @@ public interface ViolationRepository extends JpaRepository { List findByFileEntityIn(List files); + List findByFileEntityInAndStatusNot(List files, String excludeStatus); + Page findByFileEntityIn(List files, Pageable pageable); Page findByFileEntityInAndStatus(List files, String status, Pageable pageable); @@ -58,6 +60,10 @@ public interface ViolationRepository extends JpaRepository { LocalDateTime startDate, LocalDateTime endDate); + List findByFileEntityInAndCreatedDateBetweenAndStatusNot(List files, + LocalDateTime startDate, + LocalDateTime endDate, String excludeStatus); + Page findByFileEntityInAndStatusNot(List files, String excludeStatus, Pageable pageable); Page findByFileEntityInAndStatusNotAndStatus(List files, String excludeStatus, diff --git a/src/main/java/ru/soune/nocopy/service/violation/ViolationService.java b/src/main/java/ru/soune/nocopy/service/violation/ViolationService.java index 12d4e19..a418846 100644 --- a/src/main/java/ru/soune/nocopy/service/violation/ViolationService.java +++ b/src/main/java/ru/soune/nocopy/service/violation/ViolationService.java @@ -137,13 +137,16 @@ public class ViolationService { List violations; if (status != null && !status.isEmpty() && startDate != null && endDate != null) { - violations = violationRepository.findByFileEntityInAndStatusAndCreatedDateBetween(files, status, startDate, endDate); + violations = violationRepository.findByFileEntityInAndStatusAndCreatedDateBetween(files, status, + startDate, endDate); } else if (status != null && !status.isEmpty()) { violations = violationRepository.findByFileEntityInAndStatus(files, status); } else if (startDate != null && endDate != null) { - violations = violationRepository.findByFileEntityInAndCreatedDateBetween(files, startDate, endDate); + violations = violationRepository.findByFileEntityInAndCreatedDateBetweenAndStatusNot(files, startDate, + endDate, ViolationStatus.NOT_OWNER_FILE.name()); } else { - violations = violationRepository.findByFileEntityIn(files); + violations = violationRepository.findByFileEntityInAndStatusNot(files, + ViolationStatus.NOT_OWNER_FILE.name()); } Map grouped = violations.stream()