Added flaging assignment. Coumetr froup infor needs to be added

This commit is contained in:
BuildTools
2020-11-14 16:52:22 +01:00
parent 1ddeb83cb4
commit c34ce94fb0
7 changed files with 97 additions and 16 deletions

View File

@ -18,12 +18,17 @@ public class Assignment {
@ManyToOne
@JoinColumn(name = "commision_id")
private Commision commision;
private boolean isPastAssignment;
public Assignment(Groups group, Commision commision) {
public Assignment(Groups group, Commision commision, boolean isPastAssignment) {
this.commision = commision;
this.group = group;
}
public Assignment(Groups group, Commision commision) {
this(group, commision, false);
}
public Assignment() {
}
@ -34,4 +39,12 @@ public class Assignment {
public Groups getGroup() {
return this.group;
}
public boolean isPastAssignment() {
return isPastAssignment;
}
public void setPastAssignment(boolean isPastAssignment) {
this.isPastAssignment = isPastAssignment;
}
}

View File

@ -4,6 +4,7 @@ import java.sql.Timestamp;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@ -21,9 +22,14 @@ public class Commision {
private User commisionOwner;
private Timestamp commisionDate;
@OneToMany(mappedBy = "commision")
@OneToMany(mappedBy = "commision", fetch = FetchType.EAGER)
private List<Assignment> assignments;
/**
*
* @param user owner of commission. Can not be null otherwise saving commision
* will fail.
*/
public Commision(User user) {
this.commisionDate = new Timestamp(System.currentTimeMillis());
this.commisionOwner = user;
@ -44,4 +50,8 @@ public class Commision {
return commisionOwner;
}
public List<Assignment> getAssignments() {
return this.assignments;
}
}

View File

@ -1,6 +1,7 @@
package com.plannaplan.services;
import java.util.List;
import java.util.Optional;
import com.plannaplan.entities.Assignment;
import com.plannaplan.entities.Commision;
@ -17,8 +18,8 @@ public class AssignmentService {
public AssignmentService() {
}
public void save(Assignment assignment) {
this.repo.save(assignment);
public Assignment save(Assignment assignment) {
return this.repo.save(assignment);
}
public List<Assignment> getCommisionAssignments(Commision com) {
@ -28,4 +29,8 @@ public class AssignmentService {
public long getAssignmentsAmmount() {
return this.repo.count();
}
public Optional<Assignment> getById(Long id) {
return this.repo.findById(id);
}
}

View File

@ -5,6 +5,7 @@ import java.util.Optional;
import com.plannaplan.entities.Commision;
import com.plannaplan.entities.User;
import com.plannaplan.repositories.AssignmentRepository;
import com.plannaplan.repositories.CommisionRepository;
import org.springframework.beans.factory.annotation.Autowired;
@ -14,11 +15,21 @@ import org.springframework.stereotype.Service;
public class CommisionService {
@Autowired
private CommisionRepository repo;
@Autowired
private AssignmentRepository aRepository;
public CommisionService() {
}
public Commision save(Commision commision) {
Optional<Commision> lastCommision = this.getNewestCommision(commision.getCommisionOwner());
if (lastCommision.isPresent()) {
final Commision lastCom = lastCommision.get();
lastCom.getAssignments().forEach(assignment -> {
assignment.setPastAssignment(true);
this.aRepository.save(assignment);
});
}
this.repo.save(commision);
return commision;