some refactor
This commit is contained in:
parent
bcc64cda96
commit
ce78f8ad66
@ -3,7 +3,12 @@ package ru.ulstu.grant.controller;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.validation.Errors;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import ru.ulstu.deadline.model.DeadlineDto;
|
||||
import ru.ulstu.grant.model.Grant;
|
||||
import ru.ulstu.grant.model.GrantDto;
|
||||
@ -49,7 +54,7 @@ public class GrantController {
|
||||
public String save(@Valid GrantDto grantDto, Errors errors) throws IOException {
|
||||
filterEmptyDeadlines(grantDto);
|
||||
if (grantDto.getDeadlines().isEmpty()) {
|
||||
errors.rejectValue("deadlines", "errorCode","Не может быть пустым");
|
||||
errors.rejectValue("deadlines", "errorCode", "Не может быть пустым");
|
||||
}
|
||||
if (errors.hasErrors()) {
|
||||
return "/grants/grant";
|
||||
|
@ -6,13 +6,24 @@ import ru.ulstu.deadline.model.Deadline;
|
||||
import ru.ulstu.file.model.FileData;
|
||||
import ru.ulstu.project.model.Project;
|
||||
|
||||
import javax.persistence.*;
|
||||
import javax.persistence.CascadeType;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.EnumType;
|
||||
import javax.persistence.Enumerated;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.ManyToOne;
|
||||
import javax.persistence.OneToMany;
|
||||
import javax.persistence.Table;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Entity
|
||||
@Table(name = "grants")
|
||||
public class Grant extends BaseEntity {
|
||||
public class Grant extends BaseEntity {
|
||||
public enum GrantStatus {
|
||||
APPLICATION("Заявка"),
|
||||
ON_COMPETITION("Отправлен на конкурс"),
|
||||
@ -21,12 +32,14 @@ public class Grant extends BaseEntity {
|
||||
COMPLETED("Завершен"),
|
||||
FAILED("Провалены сроки");
|
||||
|
||||
private String name;
|
||||
GrantStatus(String name) {
|
||||
this.name = name;
|
||||
private String statusName;
|
||||
|
||||
GrantStatus(String statusName) {
|
||||
this.statusName = statusName;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
|
||||
public String getStatusName() {
|
||||
return statusName;
|
||||
}
|
||||
}
|
||||
|
||||
@ -81,13 +94,17 @@ public class Grant extends BaseEntity {
|
||||
return application;
|
||||
}
|
||||
|
||||
public void setApplication(FileData application) { this.application = application; }
|
||||
public void setApplication(FileData application) {
|
||||
this.application = application;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) { this.title = title; }
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public Project getProject() {
|
||||
return project;
|
||||
|
@ -1,14 +1,12 @@
|
||||
package ru.ulstu.grant.model;
|
||||
|
||||
import ru.ulstu.grant.model.Grant;
|
||||
|
||||
public class GrantStatusDto {
|
||||
private final String id;
|
||||
private final String name;
|
||||
|
||||
public GrantStatusDto(Grant.GrantStatus status) {
|
||||
this.id = status.name();
|
||||
this.name = status.getName();
|
||||
this.name = status.getStatusName();
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
|
@ -14,13 +14,13 @@ import ru.ulstu.project.model.ProjectDto;
|
||||
import ru.ulstu.project.service.ProjectService;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import static org.springframework.util.ObjectUtils.isEmpty;
|
||||
import static ru.ulstu.core.util.StreamApiUtils.convert;
|
||||
import static ru.ulstu.grant.model.Grant.GrantStatus.APPLICATION;
|
||||
import static ru.ulstu.grant.model.Grant.GrantStatus.IN_WORK;
|
||||
|
||||
@Service
|
||||
public class GrantService {
|
||||
@ -59,7 +59,6 @@ public class GrantService {
|
||||
public Integer create(GrantDto grantDto) throws IOException {
|
||||
Grant newGrant = copyFromDto(new Grant(), grantDto);
|
||||
newGrant = grantRepository.save(newGrant);
|
||||
//paperNotificationService.sendCreateNotification(newGrant);
|
||||
return newGrant.getId();
|
||||
}
|
||||
|
||||
@ -67,10 +66,9 @@ public class GrantService {
|
||||
grant.setComment(grantDto.getComment());
|
||||
grant.setStatus(grantDto.getStatus() == null ? APPLICATION : grantDto.getStatus());
|
||||
grant.setTitle(grantDto.getTitle());
|
||||
if (grantDto.getProject() != null) {
|
||||
if (grantDto.getProject() != null && grantDto.getProject().getId() != null) {
|
||||
grant.setProject(projectService.findById(grantDto.getProject().getId()));
|
||||
}
|
||||
//grant. setdeadlineDate(grant.getdeadlineDate() == null ? new Date() : grant.getdeadlineDate());
|
||||
grant.setDeadlines(deadlineService.saveOrCreate(grantDto.getDeadlines()));
|
||||
if (grantDto.getApplicationFileName() != null) {
|
||||
grant.setApplication(fileService.createFileFromTmp(grantDto.getApplicationFileName()));
|
||||
@ -90,9 +88,6 @@ public class GrantService {
|
||||
if (grantDto.getApplicationFileName() != null && grant.getApplication() != null) {
|
||||
fileService.deleteFile(grant.getApplication());
|
||||
}
|
||||
// if (paper.getStatus() != oldStatus) { //TODO: доделать потом все уведомления
|
||||
// paperNotificationService.statusChangeNotification(paper, oldStatus);
|
||||
// }
|
||||
grantRepository.save(copyFromDto(grant, grantDto));
|
||||
return grant.getId();
|
||||
}
|
||||
@ -120,48 +115,9 @@ public class GrantService {
|
||||
grant.setStatus(APPLICATION);
|
||||
grant.getDeadlines().add(new Deadline(deadlineDate, "первый дедлайн"));
|
||||
grant = grantRepository.save(grant);
|
||||
// paperNotificationService.sendCreateNotification(paper);
|
||||
return grant;
|
||||
}
|
||||
|
||||
// public List<PaperDto> filter(PaperFilterDto filterDto) {
|
||||
// return convert(sortPapers(paperRepository.filter(
|
||||
// filterDto.getFilterAuthorId() == null ? null : userService.findById(filterDto.getFilterAuthorId()),
|
||||
// filterDto.getYear())), PaperDto::new);
|
||||
// }
|
||||
|
||||
private List<Grant> sortGrants(List<Grant> grants) {
|
||||
return grants.stream().sorted((grant1, grant2) -> {
|
||||
int statusCompareResult =
|
||||
Integer.valueOf(Arrays.asList(Grant.GrantStatus.values()).indexOf(grant1.getStatus()))
|
||||
.compareTo(Arrays.asList(Grant.GrantStatus.values()).indexOf(grant2.getStatus()));
|
||||
if (statusCompareResult != 0) {
|
||||
return statusCompareResult;
|
||||
}
|
||||
return grant1.getTitle().compareTo(grant2.getTitle());
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public GrantDto findGrant(int id) {
|
||||
return new GrantDto(grantRepository.getOne(id));
|
||||
}
|
||||
|
||||
public void closeFailedGrants() {
|
||||
List<Grant> grants = grantRepository.findAll()
|
||||
.stream()
|
||||
.filter(grant -> grant.getNextDeadline().isPresent()
|
||||
&& (grant.getStatus() == APPLICATION
|
||||
|| grant.getStatus() == IN_WORK)
|
||||
&& grant.getNextDeadline().get().getDate().before(new Date()))
|
||||
.collect(Collectors.toList());
|
||||
grants.forEach(grant -> {
|
||||
//Grant.GrantStatus oldStatus = grant.getStatus();
|
||||
grant.setStatus(Grant.GrantStatus.FAILED);
|
||||
grantRepository.save(grant);
|
||||
//paperNotificationService.sendFailedNotification(grant, oldStatus);
|
||||
});
|
||||
}
|
||||
|
||||
public void save(GrantDto grantDto) throws IOException {
|
||||
if (isEmpty(grantDto.getId())) {
|
||||
create(grantDto);
|
||||
@ -169,8 +125,4 @@ public class GrantService {
|
||||
update(grantDto);
|
||||
}
|
||||
}
|
||||
|
||||
public GrantDto findById(Integer grantId) {
|
||||
return new GrantDto(grantRepository.findOne(grantId));
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,4 @@ import ru.ulstu.project.model.Project;
|
||||
|
||||
public interface ProjectRepository extends JpaRepository<Project, Integer> {
|
||||
|
||||
// @Query("SELECT p FROM Paper p WHERE (:author IS NULL OR :author MEMBER OF p.authors) AND (YEAR(p.createDate) = :year OR :year IS NULL)")
|
||||
// List<Paper> filter(@Param("author") User author, @Param("year") Integer year);
|
||||
}
|
||||
|
@ -10,11 +10,9 @@ import ru.ulstu.project.repository.ProjectRepository;
|
||||
import java.util.List;
|
||||
|
||||
import static org.springframework.util.ObjectUtils.isEmpty;
|
||||
import static ru.ulstu.core.util.StreamApiUtils.convert;
|
||||
|
||||
@Service
|
||||
public class ProjectService {
|
||||
private final static int MAX_DISPLAY_SIZE = 40;
|
||||
|
||||
private final ProjectRepository projectRepository;
|
||||
private final DeadlineService deadlineService;
|
||||
@ -33,7 +31,6 @@ public class ProjectService {
|
||||
public Project create(ProjectDto projectDto) {
|
||||
Project newProject = copyFromDto(new Project(), projectDto);
|
||||
newProject = projectRepository.save(newProject);
|
||||
//paperNotificationService.sendCreateNotification(newGrant);
|
||||
return newProject;
|
||||
}
|
||||
|
||||
@ -52,87 +49,11 @@ public class ProjectService {
|
||||
}
|
||||
|
||||
private Project update(ProjectDto projectDto) {
|
||||
return null;
|
||||
throw new RuntimeException("not implemented yet");
|
||||
}
|
||||
|
||||
public Project findById(Integer id) {
|
||||
return projectRepository.findOne(id);
|
||||
}
|
||||
// public void createProject(GrantDto grantDto) {
|
||||
// grantDto.setProject(new ProjectDto(grantDto.getTitle()));
|
||||
// }
|
||||
|
||||
// @Transactional
|
||||
// public Integer update(GrantDto grantDto) throws IOException {
|
||||
// Grant grant = grantRepository.findOne(grantDto.getId());
|
||||
// Grant.GrantStatus oldStatus = grant.getStatus();
|
||||
// if (grantDto.getApplicationFileName() != null && grant.getApplication() != null) {
|
||||
// fileService.deleteFile(grant.getApplication());
|
||||
// }
|
||||
//// if (paper.getStatus() != oldStatus) {
|
||||
//// paperNotificationService.statusChangeNotification(paper, oldStatus);
|
||||
//// }
|
||||
// grantRepository.save(copyFromDto(grant, grantDto));
|
||||
// return grant.getId();
|
||||
// }
|
||||
|
||||
// @Transactional
|
||||
// public void delete(Integer grantId) throws IOException {
|
||||
// Grant grant = grantRepository.findOne(grantId);
|
||||
// if (grant.getApplication() != null) {
|
||||
// fileService.deleteFile(grant.getApplication());
|
||||
// }
|
||||
// //возможно при удалении гранта будет удаляться и проект, к нему привязанный
|
||||
// grantRepository.delete(grant);
|
||||
// }
|
||||
|
||||
// public List<Grant.GrantStatus> getGrantStatuses() {
|
||||
// return Arrays.asList(Grant.GrantStatus.values());
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// public List<PaperDto> filter(PaperFilterDto filterDto) {
|
||||
// return convert(sortPapers(paperRepository.filter(
|
||||
// filterDto.getFilterAuthorId() == null ? null : userService.findById(filterDto.getFilterAuthorId()),
|
||||
// filterDto.getYear())), PaperDto::new);
|
||||
// }
|
||||
|
||||
// private List<Grant> sortGrants(List<Grant> grants) {
|
||||
// return grants.stream().sorted((grant1, grant2) -> {
|
||||
// int statusCompareResult =
|
||||
// Integer.valueOf(Arrays.asList(Grant.GrantStatus.values()).indexOf(grant1.getStatus()))
|
||||
// .compareTo(Arrays.asList(Grant.GrantStatus.values()).indexOf(grant2.getStatus()));
|
||||
// if (statusCompareResult != 0) {
|
||||
// return statusCompareResult;
|
||||
// }
|
||||
// return grant1.getTitle().compareTo(grant2.getTitle());
|
||||
// }).collect(Collectors.toList());
|
||||
// }
|
||||
//
|
||||
// public GrantDto findGrant(int id) {
|
||||
// return new GrantDto(grantRepository.getOne(id));
|
||||
// }
|
||||
//
|
||||
// public void closeFailedGrants() {
|
||||
// List<Grant> grants = grantRepository.findAll()
|
||||
// .stream()
|
||||
// .filter(grant -> grant.getNextDeadline().isPresent()
|
||||
// && (grant.getStatus() == APPLICATION
|
||||
// || grant.getStatus() == IN_WORK)
|
||||
// && grant.getNextDeadline().get().getDate().before(new Date()))
|
||||
// .collect(Collectors.toList());
|
||||
// grants.forEach(grant -> {
|
||||
// //Grant.GrantStatus oldStatus = grant.getStatus();
|
||||
// grant.setStatus(Grant.GrantStatus.FAILED);
|
||||
// grantRepository.save(grant);
|
||||
// //paperNotificationService.sendFailedNotification(grant, oldStatus);
|
||||
// });
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// public GrantDto findById(Integer grantId) {
|
||||
// return new GrantDto(grantRepository.findOne(grantId));
|
||||
// }
|
||||
}
|
||||
|
@ -17,4 +17,5 @@
|
||||
<include file="db/changelog-20181108_000000-data.xml"/>
|
||||
<include file="db/changelog-20181111_000000-schema.xml"/>
|
||||
<include file="db/changelog-20181208_000000-schema.xml"/>
|
||||
<include file="db/changelog-20181224_000000-schema.xml"/>
|
||||
</databaseChangeLog>
|
@ -11,8 +11,7 @@
|
||||
</div>
|
||||
<div class="col col-10 text-right">
|
||||
<h7 class="service-heading" th:text="${grant.title}"> title</h7>
|
||||
<p class="text-muted" th:text="${grant.comment}"> comment</p>
|
||||
<p class="text-muted" th:text="${grant.status}"> status</p>
|
||||
<p class="text-muted" th:text="${grant.status.statusName}"> status</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user