diff --git a/src/main/java/ru/ulstu/paper/model/Paper.java b/src/main/java/ru/ulstu/paper/model/Paper.java index ed55e98..c09fd28 100644 --- a/src/main/java/ru/ulstu/paper/model/Paper.java +++ b/src/main/java/ru/ulstu/paper/model/Paper.java @@ -169,4 +169,13 @@ public class Paper extends BaseEntity implements UserContainer { .filter(d -> d.getDate().after(new Date())) .findFirst(); } + + public boolean lastDeadlineFailed() { + return !deadlines + .stream() + .filter(deadline -> deadline.getDate() != null) + .filter(d -> d.getDate().after(new Date())) + .findAny() + .isPresent(); + } } diff --git a/src/main/java/ru/ulstu/paper/service/PaperService.java b/src/main/java/ru/ulstu/paper/service/PaperService.java index affbf0e..74e4fb5 100644 --- a/src/main/java/ru/ulstu/paper/service/PaperService.java +++ b/src/main/java/ru/ulstu/paper/service/PaperService.java @@ -166,11 +166,10 @@ public class PaperService { public void closeFailedPapers() { List papers = paperRepository.findAll() .stream() - .filter(paper -> paper.getNextDeadline().isPresent() + .filter(paper -> paper.lastDeadlineFailed() && (paper.getStatus() == ON_PREPARATION || paper.getStatus() == DRAFT - || paper.getStatus() == ATTENTION) - && paper.getNextDeadline().get().getDate().before(new Date())) + || paper.getStatus() == ATTENTION)) .collect(Collectors.toList()); papers.forEach(paper -> { Paper.PaperStatus oldStatus = paper.getStatus(); diff --git a/src/main/resources/mail_templates/paperFailedNotification.html b/src/main/resources/mail_templates/paperFailedNotification.html index cacc7e9..3eb1399 100644 --- a/src/main/resources/mail_templates/paperFailedNotification.html +++ b/src/main/resources/mail_templates/paperFailedNotification.html @@ -11,7 +11,7 @@

Статья "Title" провалена. - Предыдущий статус - "oldStatus". + Предыдущий статус - "oldStatus".

Regards,