Fix bug discard TaskGroups in CriticalPath

FEA: ItEr63OTS06MonteCarlo
This commit is contained in:
Diego Pino Garcia 2010-11-11 12:25:39 +01:00
parent 6d719d5746
commit 0549f8d22b
2 changed files with 10 additions and 7 deletions

View file

@ -26,7 +26,7 @@ import java.util.Map;
import org.joda.time.LocalDate;
import org.navalplanner.business.orders.entities.Order;
import org.navalplanner.business.planner.entities.Task;
import org.navalplanner.business.planner.entities.TaskElement;
/**
@ -39,7 +39,7 @@ public interface IMonteCarloModel {
Map<LocalDate, BigDecimal> calculateMonteCarlo(int times);
void setCriticalPath(Order order, List<Task> criticalPath);
void setCriticalPath(Order order, List<TaskElement> criticalPath);
String getOrderName();

View file

@ -36,6 +36,7 @@ import org.apache.commons.lang.Validate;
import org.joda.time.LocalDate;
import org.navalplanner.business.orders.entities.Order;
import org.navalplanner.business.planner.entities.Task;
import org.navalplanner.business.planner.entities.TaskElement;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@ -55,15 +56,17 @@ public class MonteCarloModel implements IMonteCarloModel {
private Map<MonteCarloTask, Set<EstimationRange>> estimationRangesForTasks = new HashMap<MonteCarloTask, Set<EstimationRange>>();
@Override
@Transactional(readOnly=true)
public void setCriticalPath(Order order, List<Task> criticalPath) {
@Transactional(readOnly = true)
public void setCriticalPath(Order order, List<TaskElement> criticalPath) {
this.criticalPath.clear();
for (Task each: sortByStartDate(criticalPath)) {
this.criticalPath.add(MonteCarloTask.create(each));
for (TaskElement each : sortByStartDate(criticalPath)) {
if (each instanceof Task) {
this.criticalPath.add(MonteCarloTask.create((Task) each));
}
}
}
private List<Task> sortByStartDate(List<Task> tasks) {
private List<TaskElement> sortByStartDate(List<TaskElement> tasks) {
Collections.sort(tasks, Task.getByStartDateComparator());
return tasks;
}