ItEr29S13CUVistaRecursosTempoEmpresa: Showing the load of all resources in the chart.

This commit is contained in:
Manuel Rego Casasnovas 2009-10-06 16:03:00 +02:00 committed by Javier Moran Rua
parent 1e2add05a2
commit a3951f98a0
2 changed files with 42 additions and 9 deletions

View file

@ -22,6 +22,7 @@ package org.navalplanner.business.orders.entities;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@ -34,6 +35,7 @@ import org.navalplanner.business.common.exceptions.ValidationException;
import org.navalplanner.business.planner.entities.DayAssignment;
import org.navalplanner.business.planner.entities.ResourceAllocation;
import org.navalplanner.business.planner.entities.TaskElement;
import org.navalplanner.business.resources.entities.Resource;
/**
* It represents an {@link Order} with its related information. <br />
@ -218,4 +220,12 @@ public class Order extends BaseEntity implements IOrderLineGroup, IValidable {
return result;
}
public Set<Resource> getResources() {
Set<Resource> resources = new HashSet<Resource>();
for (DayAssignment dayAssignment : getDayAssignments()) {
resources.add(dayAssignment.getResource());
}
return resources;
}
}

View file

@ -225,14 +225,10 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
}
private Chart getChartComponent(Order order) {
SortedMap<LocalDate, Integer> mapDayAssignments = calculateHoursAdditionByDay(order);
XYModel xymodel = new SimpleXYModel();
for (LocalDate day : mapDayAssignments.keySet()) {
Integer hours = mapDayAssignments.get(day);
xymodel.addValue("", new Long(day.toDateTimeAtStartOfDay()
.getMillis()), hours);
}
addDayAssignmentsLoad(order, xymodel, "order");
addResourcesLoad(order, xymodel, "all");
Chart chart = new Chart();
chart.setType("time_series");
@ -243,11 +239,38 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
return chart;
}
private void addDayAssignmentsLoad(Order order, XYModel xymodel,
String title) {
List<DayAssignment> dayAssignments = order.getDayAssignments();
SortedMap<LocalDate, Integer> mapDayAssignments = calculateHoursAdditionByDay(dayAssignments);
for (LocalDate day : mapDayAssignments.keySet()) {
Integer hours = mapDayAssignments.get(day);
xymodel.addValue(title, new Long(day.toDateTimeAtStartOfDay()
.getMillis()), hours);
}
}
private void addResourcesLoad(Order order, XYModel xymodel, String title) {
List<DayAssignment> dayAssignments = new ArrayList<DayAssignment>();
Set<Resource> resources = order.getResources();
for (Resource resource : resources) {
dayAssignments.addAll(resource.getAssignments());
}
SortedMap<LocalDate, Integer> mapDayAssignments = calculateHoursAdditionByDay(dayAssignments);
for (LocalDate day : mapDayAssignments.keySet()) {
Integer hours = mapDayAssignments.get(day);
xymodel.addValue(title, new Long(day.toDateTimeAtStartOfDay()
.getMillis()), hours);
}
}
private SortedMap<LocalDate, Integer> calculateHoursAdditionByDay(
Order order) {
List<DayAssignment> dayAssignments) {
SortedMap<LocalDate, Integer> map = new TreeMap<LocalDate, Integer>();
List<DayAssignment> dayAssignments = order.getDayAssignments();
if (dayAssignments.isEmpty()) {
return map;
}