|
|
@ -3,15 +3,15 @@ package ru.ulstu.project.service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.thymeleaf.util.StringUtils;
|
|
|
|
import org.thymeleaf.util.StringUtils;
|
|
|
|
import ru.ulstu.deadline.model.Deadline;
|
|
|
|
|
|
|
|
import ru.ulstu.deadline.service.DeadlineService;
|
|
|
|
import ru.ulstu.deadline.service.DeadlineService;
|
|
|
|
import ru.ulstu.grant.model.Grant;
|
|
|
|
import ru.ulstu.file.service.FileService;
|
|
|
|
|
|
|
|
import ru.ulstu.grant.repository.GrantRepository;
|
|
|
|
import ru.ulstu.project.model.Project;
|
|
|
|
import ru.ulstu.project.model.Project;
|
|
|
|
import ru.ulstu.project.model.ProjectDto;
|
|
|
|
import ru.ulstu.project.model.ProjectDto;
|
|
|
|
import ru.ulstu.project.repository.ProjectRepository;
|
|
|
|
import ru.ulstu.project.repository.ProjectRepository;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.util.Arrays;
|
|
|
|
import java.util.Arrays;
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
import static org.springframework.util.ObjectUtils.isEmpty;
|
|
|
|
import static org.springframework.util.ObjectUtils.isEmpty;
|
|
|
@ -24,11 +24,17 @@ public class ProjectService {
|
|
|
|
|
|
|
|
|
|
|
|
private final ProjectRepository projectRepository;
|
|
|
|
private final ProjectRepository projectRepository;
|
|
|
|
private final DeadlineService deadlineService;
|
|
|
|
private final DeadlineService deadlineService;
|
|
|
|
|
|
|
|
private final GrantRepository grantRepository;
|
|
|
|
|
|
|
|
private final FileService fileService;
|
|
|
|
|
|
|
|
|
|
|
|
public ProjectService(ProjectRepository projectRepository,
|
|
|
|
public ProjectService(ProjectRepository projectRepository,
|
|
|
|
DeadlineService deadlineService) {
|
|
|
|
DeadlineService deadlineService,
|
|
|
|
|
|
|
|
GrantRepository grantRepository,
|
|
|
|
|
|
|
|
FileService fileService) {
|
|
|
|
this.projectRepository = projectRepository;
|
|
|
|
this.projectRepository = projectRepository;
|
|
|
|
this.deadlineService = deadlineService;
|
|
|
|
this.deadlineService = deadlineService;
|
|
|
|
|
|
|
|
this.grantRepository = grantRepository;
|
|
|
|
|
|
|
|
this.fileService = fileService;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public List<Project> findAll() {
|
|
|
|
public List<Project> findAll() {
|
|
|
@ -50,21 +56,28 @@ public class ProjectService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Transactional
|
|
|
|
@Transactional
|
|
|
|
public Project create(ProjectDto projectDto) {
|
|
|
|
public Project create(ProjectDto projectDto) throws IOException {
|
|
|
|
Project newProject = copyFromDto(new Project(), projectDto);
|
|
|
|
Project newProject = copyFromDto(new Project(), projectDto);
|
|
|
|
newProject = projectRepository.save(newProject);
|
|
|
|
newProject = projectRepository.save(newProject);
|
|
|
|
return newProject;
|
|
|
|
return newProject;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private Project copyFromDto(Project project, ProjectDto projectDto) {
|
|
|
|
private Project copyFromDto(Project project, ProjectDto projectDto) throws IOException {
|
|
|
|
project.setDescription(projectDto.getDescription());
|
|
|
|
project.setDescription(projectDto.getDescription());
|
|
|
|
project.setStatus(projectDto.getStatus() == null ? APPLICATION : projectDto.getStatus());
|
|
|
|
project.setStatus(projectDto.getStatus() == null ? APPLICATION : projectDto.getStatus());
|
|
|
|
project.setTitle(projectDto.getTitle());
|
|
|
|
project.setTitle(projectDto.getTitle());
|
|
|
|
|
|
|
|
if (projectDto.getGrant() != null && projectDto.getGrant().getId() != null) {
|
|
|
|
|
|
|
|
project.setGrant(grantRepository.findOne(projectDto.getGrant().getId()));
|
|
|
|
|
|
|
|
}
|
|
|
|
project.setRepository(projectDto.getRepository());
|
|
|
|
project.setRepository(projectDto.getRepository());
|
|
|
|
|
|
|
|
project.setDeadlines(deadlineService.saveOrCreate(projectDto.getDeadlines()));
|
|
|
|
|
|
|
|
if (projectDto.getApplicationFileName() != null) {
|
|
|
|
|
|
|
|
project.setApplication(fileService.createFileFromTmp(projectDto.getApplicationFileName()));
|
|
|
|
|
|
|
|
}
|
|
|
|
return project;
|
|
|
|
return project;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public Project save(ProjectDto projectDto) {
|
|
|
|
public Project save(ProjectDto projectDto) throws IOException {
|
|
|
|
if (isEmpty(projectDto.getId())) {
|
|
|
|
if (isEmpty(projectDto.getId())) {
|
|
|
|
return create(projectDto);
|
|
|
|
return create(projectDto);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|