87: Save cloned RoughDraftApproval
This commit is contained in:
parent
8a050491f9
commit
57774b1c32
core/src/main/java/se/su/dsv/scipro
@ -817,9 +817,10 @@ public class CoreConfig {
|
|||||||
public SplitOrRestartProjectServiceImpl SplitOrRestartProjectService(
|
public SplitOrRestartProjectServiceImpl SplitOrRestartProjectService(
|
||||||
ProjectService projectService,
|
ProjectService projectService,
|
||||||
FinalSeminarService finalSeminarService,
|
FinalSeminarService finalSeminarService,
|
||||||
RoughDraftApprovalService roughDraftApprovalService
|
RoughDraftApprovalService roughDraftApprovalService,
|
||||||
|
EventBus eventBus
|
||||||
) {
|
) {
|
||||||
return new SplitOrRestartProjectServiceImpl(projectService, finalSeminarService, roughDraftApprovalService);
|
return new SplitOrRestartProjectServiceImpl(projectService, finalSeminarService, roughDraftApprovalService, eventBus);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
@ -1,35 +1,41 @@
|
|||||||
package se.su.dsv.scipro.project.split;
|
package se.su.dsv.scipro.project.split;
|
||||||
|
|
||||||
import com.querydsl.core.types.dsl.BooleanExpression;
|
import com.google.common.eventbus.EventBus;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import jakarta.transaction.Transactional;
|
import jakarta.transaction.Transactional;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
|
||||||
import se.su.dsv.scipro.finalseminar.FinalSeminarService;
|
import se.su.dsv.scipro.finalseminar.FinalSeminarService;
|
||||||
import se.su.dsv.scipro.project.Project;
|
import se.su.dsv.scipro.project.Project;
|
||||||
import se.su.dsv.scipro.project.ProjectService;
|
import se.su.dsv.scipro.project.ProjectService;
|
||||||
import se.su.dsv.scipro.project.ProjectStatus;
|
import se.su.dsv.scipro.project.ProjectStatus;
|
||||||
import se.su.dsv.scipro.project.QProject;
|
import se.su.dsv.scipro.project.QProject;
|
||||||
import se.su.dsv.scipro.reviewing.RoughDraftApproval;
|
import se.su.dsv.scipro.reviewing.RoughDraftApproval;
|
||||||
|
import se.su.dsv.scipro.reviewing.RoughDraftApprovalApprovedEvent;
|
||||||
import se.su.dsv.scipro.reviewing.RoughDraftApprovalService;
|
import se.su.dsv.scipro.reviewing.RoughDraftApprovalService;
|
||||||
import se.su.dsv.scipro.system.User;
|
import se.su.dsv.scipro.system.User;
|
||||||
import se.su.dsv.scipro.util.Pair;
|
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
public class SplitOrRestartProjectServiceImpl implements SplitOrRestartProjectService {
|
public class SplitOrRestartProjectServiceImpl implements SplitOrRestartProjectService {
|
||||||
|
|
||||||
private final ProjectService projectService;
|
private final ProjectService projectService;
|
||||||
private final FinalSeminarService finalSeminarService;
|
private final FinalSeminarService finalSeminarService;
|
||||||
private final RoughDraftApprovalService roughDraftApprovalService;
|
private final RoughDraftApprovalService roughDraftApprovalService;
|
||||||
|
private final EventBus eventBus;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public SplitOrRestartProjectServiceImpl(
|
public SplitOrRestartProjectServiceImpl(
|
||||||
ProjectService projectService,
|
ProjectService projectService,
|
||||||
FinalSeminarService finalSeminarService,
|
FinalSeminarService finalSeminarService,
|
||||||
RoughDraftApprovalService roughDraftApprovalService
|
RoughDraftApprovalService roughDraftApprovalService,
|
||||||
|
EventBus eventBus
|
||||||
) {
|
) {
|
||||||
this.projectService = projectService;
|
this.projectService = projectService;
|
||||||
this.finalSeminarService = finalSeminarService;
|
this.finalSeminarService = finalSeminarService;
|
||||||
this.roughDraftApprovalService = roughDraftApprovalService;
|
this.roughDraftApprovalService = roughDraftApprovalService;
|
||||||
|
this.eventBus = eventBus;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -95,12 +101,18 @@ public class SplitOrRestartProjectServiceImpl implements SplitOrRestartProjectSe
|
|||||||
childProject.setRootProjectId(
|
childProject.setRootProjectId(
|
||||||
project.getRootProjectId() != null ? project.getRootProjectId() : project.getId()
|
project.getRootProjectId() != null ? project.getRootProjectId() : project.getId()
|
||||||
);
|
);
|
||||||
|
childProject.setCloneTimestamp(Date.from(Instant.now()));
|
||||||
// Todo: add RoughDraftApproval if it's 'APPROVED'
|
|
||||||
if (result.roughDraftApproval() != null) {}
|
|
||||||
|
|
||||||
childProject = projectService.save(childProject);
|
childProject = projectService.save(childProject);
|
||||||
// Todo: Send event to eventBus to synchronize eventual Phase Two Approval with MileStone
|
|
||||||
|
// Add cloned RoughDraftApproval if it's 'APPROVED'
|
||||||
|
RoughDraftApproval rda = result.roughDraftApproval();
|
||||||
|
if (rda != null && rda.isApproved()) {
|
||||||
|
RoughDraftApproval clonedRda = roughDraftApprovalService.saveCloned(rda.cloneToProject(childProject));
|
||||||
|
|
||||||
|
// Send event to eventBus to synchronize eventual Phase Two Approval with MileStone
|
||||||
|
eventBus.post(new RoughDraftApprovalApprovedEvent(clonedRda));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parent project will set as inactive
|
// Parent project will set as inactive
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
package se.su.dsv.scipro.reviewing;
|
package se.su.dsv.scipro.reviewing;
|
||||||
|
|
||||||
public interface RoughDraftApprovalService extends ReviewerApprovalService<RoughDraftApproval> {}
|
public interface RoughDraftApprovalService extends ReviewerApprovalService<RoughDraftApproval> {
|
||||||
|
RoughDraftApproval saveCloned(RoughDraftApproval approval);
|
||||||
|
}
|
||||||
|
@ -71,4 +71,10 @@ public class RoughDraftApprovalServiceImpl
|
|||||||
public Optional<RoughDraftApproval> findBy(Project project) {
|
public Optional<RoughDraftApproval> findBy(Project project) {
|
||||||
return Optional.ofNullable(findOne(QRoughDraftApproval.roughDraftApproval.project.eq(project)));
|
return Optional.ofNullable(findOne(QRoughDraftApproval.roughDraftApproval.project.eq(project)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public RoughDraftApproval saveCloned(RoughDraftApproval approval) {
|
||||||
|
return save(approval);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user