From a3951f98a080bb99cb90076325cba0cd038c400d Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Tue, 6 Oct 2009 16:03:00 +0200 Subject: [PATCH] ItEr29S13CUVistaRecursosTempoEmpresa: Showing the load of all resources in the chart. --- .../business/orders/entities/Order.java | 10 +++++ .../web/planner/OrderPlanningModel.java | 41 +++++++++++++++---- 2 files changed, 42 insertions(+), 9 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java index fa8e972de..054700377 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/Order.java @@ -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.
@@ -218,4 +220,12 @@ public class Order extends BaseEntity implements IOrderLineGroup, IValidable { return result; } + public Set getResources() { + Set resources = new HashSet(); + for (DayAssignment dayAssignment : getDayAssignments()) { + resources.add(dayAssignment.getResource()); + } + return resources; + } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java index e74095b18..e56ecd6eb 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java @@ -225,14 +225,10 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { } private Chart getChartComponent(Order order) { - SortedMap 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 dayAssignments = order.getDayAssignments(); + + SortedMap 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 dayAssignments = new ArrayList(); + + Set resources = order.getResources(); + for (Resource resource : resources) { + dayAssignments.addAll(resource.getAssignments()); + } + + SortedMap mapDayAssignments = calculateHoursAdditionByDay(dayAssignments); + for (LocalDate day : mapDayAssignments.keySet()) { + Integer hours = mapDayAssignments.get(day); + xymodel.addValue(title, new Long(day.toDateTimeAtStartOfDay() + .getMillis()), hours); + } + } + private SortedMap calculateHoursAdditionByDay( - Order order) { + List dayAssignments) { SortedMap map = new TreeMap(); - List dayAssignments = order.getDayAssignments(); if (dayAssignments.isEmpty()) { return map; }