diff --git a/src/main/java/ru/ulstu/paper/model/Paper.java b/src/main/java/ru/ulstu/paper/model/Paper.java index ac65f50..ad6950a 100644 --- a/src/main/java/ru/ulstu/paper/model/Paper.java +++ b/src/main/java/ru/ulstu/paper/model/Paper.java @@ -12,7 +12,7 @@ import java.util.List; @Entity public class Paper extends BaseEntity { public enum PaperStatus { - DRAFT("Черновик"), ON_PREPARATION("На подготовке"), COMPLETED("Завершена"), ATTENTION("Обратить внимание"); + ATTENTION("Обратить внимание"), ON_PREPARATION("На подготовке"), DRAFT("Черновик"), COMPLETED("Завершена"); private String name; diff --git a/src/main/java/ru/ulstu/paper/repository/PaperRepository.java b/src/main/java/ru/ulstu/paper/repository/PaperRepository.java index fb2f5c4..613bb6a 100644 --- a/src/main/java/ru/ulstu/paper/repository/PaperRepository.java +++ b/src/main/java/ru/ulstu/paper/repository/PaperRepository.java @@ -3,5 +3,7 @@ package ru.ulstu.paper.repository; import org.springframework.data.jpa.repository.JpaRepository; import ru.ulstu.paper.model.Paper; +import java.util.List; + public interface PaperRepository extends JpaRepository { } diff --git a/src/main/java/ru/ulstu/paper/service/PaperService.java b/src/main/java/ru/ulstu/paper/service/PaperService.java index 430e66c..563c86a 100644 --- a/src/main/java/ru/ulstu/paper/service/PaperService.java +++ b/src/main/java/ru/ulstu/paper/service/PaperService.java @@ -8,7 +8,9 @@ import ru.ulstu.paper.model.PaperDto; import ru.ulstu.paper.repository.PaperRepository; import java.io.IOException; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; import static ru.ulstu.core.util.StreamApiUtils.convert; @@ -25,7 +27,17 @@ public class PaperService { } public List findAll() { - return convert(paperRepository.findAll(), PaperDto::new); + List allPapers = paperRepository.findAll(); + allPapers = allPapers.stream().sorted((paper1, paper2) -> { + int statusCompareResult = + Integer.valueOf(Arrays.asList(Paper.PaperStatus.values()).indexOf(paper1.getStatus())) + .compareTo(Integer.valueOf(Arrays.asList(Paper.PaperStatus.values()).indexOf(paper2.getStatus()))); + if (statusCompareResult != 0) { + return statusCompareResult; + } + return paper1.getTitle().compareTo(paper2.getTitle()); + }).collect(Collectors.toList()); + return convert(allPapers, PaperDto::new); } @Transactional