blocking accep[ted assignment deletions

This commit is contained in:
Filip Izydorczyk 2021-01-14 16:13:09 +01:00
parent 28e872ce3a
commit 8d007c259f
2 changed files with 38 additions and 2 deletions

View File

@ -38,6 +38,15 @@ public class Assignment {
this.group = group; this.group = group;
} }
/**
*
* @param oldAssignment old assignment that we want to move to new commision
* @param newCommision commsion to move assiongment
*/
public static Assignment getNewFromAssignment(Assignment oldAssignment, Commision newCommision) {
return new Assignment(oldAssignment.getGroup(), newCommision);
}
/** /**
* If it returns trues it mesans u are assigned to group accepted by algorythm * If it returns trues it mesans u are assigned to group accepted by algorythm
* *
@ -49,9 +58,10 @@ public class Assignment {
/** /**
* Getter of commision * Getter of commision
*
* @return Commision Commision of given assignments * @return Commision Commision of given assignments
*/ */
public Commision getCommision(){ public Commision getCommision() {
return this.commision; return this.commision;
} }
@ -69,8 +79,9 @@ public class Assignment {
} }
public void setCommision(Commision commision) { public void setCommision(Commision commision) {
this.commision = commision; this.commision = commision;
} }
/** /**
* Id getter * Id getter
* *

View File

@ -1,8 +1,11 @@
package com.plannaplan.services; package com.plannaplan.services;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors;
import com.plannaplan.entities.Assignment;
import com.plannaplan.entities.Commision; import com.plannaplan.entities.Commision;
import com.plannaplan.entities.User; import com.plannaplan.entities.User;
import com.plannaplan.repositories.AssignmentRepository; import com.plannaplan.repositories.AssignmentRepository;
@ -29,11 +32,33 @@ public class CommisionService {
public Commision save(Commision commision) { public Commision save(Commision commision) {
Optional<Commision> lastCommision = this.getNewestCommision(commision.getCommisionOwner()); Optional<Commision> lastCommision = this.getNewestCommision(commision.getCommisionOwner());
if (lastCommision.isPresent()) { if (lastCommision.isPresent()) {
final List<Assignment> assignments = commision.getAssignments();
List<Long> newAssignments = null;
if (assignments != null) {
newAssignments = assignments.stream().map(Assignment::getId).collect(Collectors.toList());
}
final Commision lastCom = lastCommision.get(); final Commision lastCom = lastCommision.get();
lastCom.getAssignments().forEach(assignment -> { lastCom.getAssignments().forEach(assignment -> {
assignment.setPastAssignment(true); assignment.setPastAssignment(true);
this.aRepository.save(assignment); this.aRepository.save(assignment);
}); });
final List<Assignment> lastComAssignments = lastCom.getAssignments();
if (newAssignments != null) {
Iterator<Assignment> newAssignmentsIterator = lastComAssignments.iterator();
while (newAssignmentsIterator.hasNext()) {
final Assignment a = newAssignmentsIterator.next();
if (!newAssignments.contains(a.getId()) && a.isAccepted()) {
final Assignment assignment = Assignment.getNewFromAssignment(a, commision);
this.aRepository.save(assignment);
}
}
}
} }
this.repo.save(commision); this.repo.save(commision);
return commision; return commision;