diff --git a/src/main/java/ru/ulstu/grant/controller/GrantController.java b/src/main/java/ru/ulstu/grant/controller/GrantController.java index 7777be6..1b6de6c 100644 --- a/src/main/java/ru/ulstu/grant/controller/GrantController.java +++ b/src/main/java/ru/ulstu/grant/controller/GrantController.java @@ -51,7 +51,9 @@ public class GrantController { @GetMapping("/grant") public void getGrant(ModelMap modelMap, @RequestParam(value = "id") Integer id) { if (id != null && id > 0) { - modelMap.put("grantDto", grantService.findOneDto(id)); + GrantDto grantDto = grantService.findOneDto(id); + attachPaper(grantDto); + modelMap.put("grantDto", grantDto); } else { modelMap.put("grantDto", new GrantDto()); } @@ -79,6 +81,17 @@ public class GrantController { return GRANT_PAGE; } + @PostMapping(value = "/grant", params = "attachPaper") + public String attachPaper(GrantDto grantDto) { + if (!grantDto.getPaperIds().isEmpty()) { + grantDto.getPapers().clear(); + grantDto.setPapers(grantService.getGrantPapers(grantDto.getPaperIds())); + } else { + grantDto.getPapers().clear(); + } + return GRANT_PAGE; + } + @PostMapping(value = "/grant", params = "addDeadline") public String addDeadline(@Valid GrantDto grantDto, Errors errors) { filterEmptyDeadlines(grantDto); @@ -115,8 +128,8 @@ public class GrantController { } @ModelAttribute("allPapers") - public List getGrantPapers() { - return grantService.getGrantPapers(); + public List getAllPapers() { + return grantService.getAllPapers(); } private void filterEmptyDeadlines(GrantDto grantDto) { diff --git a/src/main/java/ru/ulstu/grant/model/GrantDto.java b/src/main/java/ru/ulstu/grant/model/GrantDto.java index a9071a9..d979e23 100644 --- a/src/main/java/ru/ulstu/grant/model/GrantDto.java +++ b/src/main/java/ru/ulstu/grant/model/GrantDto.java @@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import org.apache.commons.lang3.StringUtils; import org.hibernate.validator.constraints.NotEmpty; import ru.ulstu.deadline.model.Deadline; -import ru.ulstu.paper.model.PaperDto; +import ru.ulstu.paper.model.Paper; import ru.ulstu.project.model.ProjectDto; import ru.ulstu.user.model.UserDto; @@ -34,7 +34,7 @@ public class GrantDto { private boolean hasAge; private boolean hasDegree; private List paperIds = new ArrayList<>(); - private List papers = new ArrayList<>(); + private List papers = new ArrayList<>(); public GrantDto() { deadlines.add(new Deadline()); @@ -54,7 +54,7 @@ public class GrantDto { @JsonProperty("hasAge") boolean hasAge, @JsonProperty("hasDegree") boolean hasDegree, @JsonProperty("paperIds") List paperIds, - @JsonProperty("papers") List papers) { + @JsonProperty("papers") List papers) { this.id = id; this.title = title; this.status = status; @@ -86,7 +86,7 @@ public class GrantDto { this.hasAge = false; this.hasDegree = false; this.paperIds = convert(grant.getPapers(), paper -> paper.getId()); - this.papers = convert(grant.getPapers(), PaperDto::new); + this.papers = grant.getPapers(); } public Integer getId() { @@ -208,11 +208,11 @@ public class GrantDto { this.paperIds = paperIds; } - public List getPapers() { + public List getPapers() { return papers; } - public void setPapers(List papers) { + public void setPapers(List papers) { this.papers = papers; } } diff --git a/src/main/java/ru/ulstu/grant/service/GrantService.java b/src/main/java/ru/ulstu/grant/service/GrantService.java index 1625604..57f9821 100644 --- a/src/main/java/ru/ulstu/grant/service/GrantService.java +++ b/src/main/java/ru/ulstu/grant/service/GrantService.java @@ -92,9 +92,8 @@ public class GrantService { grant.setLeader(userService.findById(grantDto.getLeaderId())); } grant.getPapers().clear(); - if (grantDto.getPaperIds() != null && !grantDto.getAuthorIds().isEmpty()) { - grantDto.getPaperIds().forEach(paperIds -> - grant.getPapers().add(paperService.findEntityById(paperIds))); + if (grantDto.getPaperIds() != null && !grantDto.getPaperIds().isEmpty()) { + grantDto.getPaperIds().forEach(paperIds -> grant.getPapers().add(paperService.findEntityById(paperIds))); } return grant; } @@ -168,7 +167,12 @@ public class GrantService { .collect(Collectors.toList()); } - public List getGrantPapers() { + public List getGrantPapers(List paperIds) { + return paperService.findAllSelect(paperIds); + + } + + public List getAllPapers() { return paperService.findAll(); } diff --git a/src/main/java/ru/ulstu/paper/repository/PaperRepository.java b/src/main/java/ru/ulstu/paper/repository/PaperRepository.java index 343e9e2..cab9b1a 100644 --- a/src/main/java/ru/ulstu/paper/repository/PaperRepository.java +++ b/src/main/java/ru/ulstu/paper/repository/PaperRepository.java @@ -14,4 +14,6 @@ public interface PaperRepository extends JpaRepository { List filter(@Param("author") User author, @Param("year") Integer year); List findByIdNotIn(List paperIds); + + List findAllByIdIn(List paperIds); } diff --git a/src/main/java/ru/ulstu/paper/service/PaperService.java b/src/main/java/ru/ulstu/paper/service/PaperService.java index a10d941..a484a63 100644 --- a/src/main/java/ru/ulstu/paper/service/PaperService.java +++ b/src/main/java/ru/ulstu/paper/service/PaperService.java @@ -229,6 +229,10 @@ public class PaperService { } + public List findAllSelect(List paperIds) { + return sortPapers(paperRepository.findAllByIdIn(paperIds)); + } + public List getPaperAuthors() { return userService.findAll(); } diff --git a/src/main/resources/templates/grants/grant.html b/src/main/resources/templates/grants/grant.html index 99e9704..6a2beb8 100644 --- a/src/main/resources/templates/grants/grant.html +++ b/src/main/resources/templates/grants/grant.html @@ -146,7 +146,7 @@ - - - +
+
+ +
+ + +
+
+ +
+
+ +
+ + + Статус статьи + +
+
+
+
@@ -219,6 +250,22 @@ $("#authors [value='" + lid + "']").attr("disabled", "disabled"); } + +