|
|
@ -18,6 +18,9 @@ import java.util.List;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
import static ru.ulstu.core.util.StreamApiUtils.convert;
|
|
|
|
import static ru.ulstu.core.util.StreamApiUtils.convert;
|
|
|
|
|
|
|
|
import static ru.ulstu.paper.model.Paper.PaperStatus.ATTENTION;
|
|
|
|
|
|
|
|
import static ru.ulstu.paper.model.Paper.PaperStatus.DRAFT;
|
|
|
|
|
|
|
|
import static ru.ulstu.paper.model.Paper.PaperStatus.ON_PREPARATION;
|
|
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
@Service
|
|
|
|
public class PaperService {
|
|
|
|
public class PaperService {
|
|
|
@ -65,7 +68,7 @@ public class PaperService {
|
|
|
|
paper.setComment(paperDto.getComment());
|
|
|
|
paper.setComment(paperDto.getComment());
|
|
|
|
paper.setCreateDate(paper.getCreateDate() == null ? new Date() : paper.getCreateDate());
|
|
|
|
paper.setCreateDate(paper.getCreateDate() == null ? new Date() : paper.getCreateDate());
|
|
|
|
paper.setLocked(paperDto.getLocked());
|
|
|
|
paper.setLocked(paperDto.getLocked());
|
|
|
|
paper.setStatus(paperDto.getStatus() == null ? Paper.PaperStatus.DRAFT : paperDto.getStatus());
|
|
|
|
paper.setStatus(paperDto.getStatus() == null ? DRAFT : paperDto.getStatus());
|
|
|
|
paper.setTitle(paperDto.getTitle());
|
|
|
|
paper.setTitle(paperDto.getTitle());
|
|
|
|
paper.setUpdateDate(new Date());
|
|
|
|
paper.setUpdateDate(new Date());
|
|
|
|
paper.setDeadlineDate(paperDto.getDeadlineDate());
|
|
|
|
paper.setDeadlineDate(paperDto.getDeadlineDate());
|
|
|
@ -115,7 +118,7 @@ public class PaperService {
|
|
|
|
paper.setDeadlineDate(deadlineDate);
|
|
|
|
paper.setDeadlineDate(deadlineDate);
|
|
|
|
paper.setCreateDate(new Date());
|
|
|
|
paper.setCreateDate(new Date());
|
|
|
|
paper.setUpdateDate(new Date());
|
|
|
|
paper.setUpdateDate(new Date());
|
|
|
|
paper.setStatus(Paper.PaperStatus.DRAFT);
|
|
|
|
paper.setStatus(DRAFT);
|
|
|
|
paper = paperRepository.save(paper);
|
|
|
|
paper = paperRepository.save(paper);
|
|
|
|
|
|
|
|
|
|
|
|
paperNotificationService.sendCreateNotification(paper);
|
|
|
|
paperNotificationService.sendCreateNotification(paper);
|
|
|
@ -126,4 +129,21 @@ public class PaperService {
|
|
|
|
public List<PaperDto> filter(PaperFilterDto filterDto) {
|
|
|
|
public List<PaperDto> filter(PaperFilterDto filterDto) {
|
|
|
|
return convert(paperRepository.filter(userService.findById(filterDto.getAuthorId()), filterDto.getYear()), PaperDto::new);
|
|
|
|
return convert(paperRepository.filter(userService.findById(filterDto.getAuthorId()), filterDto.getYear()), PaperDto::new);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void closeFailedPapers() {
|
|
|
|
|
|
|
|
List<Paper> papers = paperRepository.findAll()
|
|
|
|
|
|
|
|
.stream()
|
|
|
|
|
|
|
|
.filter(paper -> paper.getDeadlineDate() != null
|
|
|
|
|
|
|
|
&& (paper.getStatus() == ON_PREPARATION
|
|
|
|
|
|
|
|
|| paper.getStatus() == DRAFT
|
|
|
|
|
|
|
|
|| paper.getStatus() == ATTENTION)
|
|
|
|
|
|
|
|
&& paper.getDeadlineDate().before(new Date()))
|
|
|
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
|
|
papers.forEach(paper -> {
|
|
|
|
|
|
|
|
Paper.PaperStatus oldStatus = paper.getStatus();
|
|
|
|
|
|
|
|
paper.setStatus(Paper.PaperStatus.FAILED);
|
|
|
|
|
|
|
|
paperRepository.save(paper);
|
|
|
|
|
|
|
|
paperNotificationService.sendFailedNotification(paper, oldStatus);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|