Bring progress KPI "Global progress of the project" to DashboardModel.
FEA: ItEr75S27PerProjectDashboard
This commit is contained in:
parent
51c1b75375
commit
e0e2a5ca08
3 changed files with 84 additions and 6 deletions
|
|
@ -84,6 +84,27 @@ public class TaskGroup extends TaskElement {
|
|||
return planningData.getProgressAllByNumHours();
|
||||
}
|
||||
|
||||
public BigDecimal getTheoreticalProgressByNumHoursForAllTasksUntilNow() {
|
||||
if (planningData == null) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
return planningData.getTheoreticalProgressByNumHoursForAllTasks();
|
||||
}
|
||||
|
||||
public BigDecimal getTheoreticalProgressByDurationForCriticalPathUntilNow() {
|
||||
if (planningData == null) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
return planningData.getTheoreticalProgressByDurationForCriticalPath();
|
||||
}
|
||||
|
||||
public BigDecimal getTheoreticalProgressByNumHoursForCriticalPathUntilNow() {
|
||||
if (planningData == null) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
return planningData.getTheoreticalProgressByNumHoursForCriticalPath();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
@AssertTrue(message = "order element associated to a task group must be not null")
|
||||
private boolean theOrderElementMustBeNotNull() {
|
||||
|
|
|
|||
|
|
@ -69,11 +69,16 @@ public class DashboardController extends GenericForwardComposer {
|
|||
if (dashboardModel.getPercentageOfFinishedTasks() == null) {
|
||||
return "NULL";
|
||||
}
|
||||
String out = dashboardModel.getPercentageOfFinishedTasks().toString() + " " +
|
||||
dashboardModel.getPercentageOfInProgressTasks() + " " +
|
||||
dashboardModel.getPercentageOfReadyToStartTasks() + " " +
|
||||
dashboardModel.getPercentageOfBlockedTasks() + "\n" +
|
||||
dashboardModel.getTheoreticalAdvancePercentageByHoursUntilNow();
|
||||
String out = "% Finished: " + dashboardModel.getPercentageOfFinishedTasks().toString() + "" +
|
||||
"% In progress: " + dashboardModel.getPercentageOfInProgressTasks() + " " +
|
||||
"% Ready to Start: " + dashboardModel.getPercentageOfReadyToStartTasks() + " " +
|
||||
"% Blocked: " + dashboardModel.getPercentageOfBlockedTasks() + " " +
|
||||
"A% hours: " + dashboardModel.getAdvancePercentageByHours() + " " +
|
||||
"TA% hours: " + dashboardModel.getTheoreticalAdvancePercentageByHoursUntilNow() + " " +
|
||||
"ACP% hours: " + dashboardModel.getCriticalPathProgressByNumHours() + " " +
|
||||
"TACP% hours: " + dashboardModel.getTheoreticalProgressByNumHoursForCriticalPathUntilNow() + " " +
|
||||
"ACP% duration: " + dashboardModel.getCriticalPathProgressByDuration() + " " +
|
||||
"TACP% duration: " + dashboardModel.getTheoreticalProgressByDurationForCriticalPathUntilNow();
|
||||
return out;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import java.util.Map;
|
|||
|
||||
import org.libreplan.business.orders.entities.Order;
|
||||
import org.libreplan.business.planner.entities.TaskElement;
|
||||
import org.libreplan.business.planner.entities.TaskGroup;
|
||||
import org.libreplan.business.planner.entities.TaskStatusEnum;
|
||||
import org.libreplan.business.planner.entities.visitors.AccumulateTasksStatusVisitor;
|
||||
import org.libreplan.business.planner.entities.visitors.ResetTasksStatusVisitor;
|
||||
|
|
@ -55,6 +56,7 @@ public class DashboardModel {
|
|||
this.calculateTaskStatusStatistics();
|
||||
}
|
||||
|
||||
/* Progress KPI: "Number of tasks by status" */
|
||||
public BigDecimal getPercentageOfFinishedTasks() {
|
||||
return taskStatusStats.get(TaskStatusEnum.FINISHED);
|
||||
}
|
||||
|
|
@ -71,8 +73,58 @@ public class DashboardModel {
|
|||
return taskStatusStats.get(TaskStatusEnum.BLOCKED);
|
||||
}
|
||||
|
||||
/* Progress KPI: "Global Progress of the Project" */
|
||||
public BigDecimal getAdvancePercentageByHours(){
|
||||
TaskGroup rootAsTaskGroup = (TaskGroup)getRootTask();
|
||||
if(rootAsTaskGroup == null) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
BigDecimal ratio = rootAsTaskGroup.getProgressAllByNumHours();
|
||||
return ratio.multiply(BigDecimal.TEN).multiply(BigDecimal.TEN);
|
||||
}
|
||||
|
||||
public BigDecimal getTheoreticalAdvancePercentageByHoursUntilNow(){
|
||||
BigDecimal ratio = getRootTask().getTheoreticalAdvancePercentageUntilDate(new Date());
|
||||
TaskGroup rootAsTaskGroup = (TaskGroup)getRootTask();
|
||||
if(rootAsTaskGroup == null) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
BigDecimal ratio = rootAsTaskGroup.getTheoreticalProgressByNumHoursForAllTasksUntilNow();
|
||||
return ratio.multiply(BigDecimal.TEN).multiply(BigDecimal.TEN);
|
||||
}
|
||||
|
||||
public BigDecimal getCriticalPathProgressByNumHours() {
|
||||
TaskGroup rootAsTaskGroup = (TaskGroup)getRootTask();
|
||||
if(rootAsTaskGroup == null) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
BigDecimal ratio = rootAsTaskGroup.getCriticalPathProgressByNumHours();
|
||||
return ratio.multiply(BigDecimal.TEN).multiply(BigDecimal.TEN);
|
||||
}
|
||||
|
||||
public BigDecimal getTheoreticalProgressByNumHoursForCriticalPathUntilNow() {
|
||||
TaskGroup rootAsTaskGroup = (TaskGroup)getRootTask();
|
||||
if(rootAsTaskGroup == null) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
BigDecimal ratio = rootAsTaskGroup.getTheoreticalProgressByNumHoursForCriticalPathUntilNow();
|
||||
return ratio.multiply(BigDecimal.TEN).multiply(BigDecimal.TEN);
|
||||
}
|
||||
|
||||
public BigDecimal getCriticalPathProgressByDuration() {
|
||||
TaskGroup rootAsTaskGroup = (TaskGroup)getRootTask();
|
||||
if(rootAsTaskGroup == null) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
BigDecimal ratio = rootAsTaskGroup.getCriticalPathProgressByDuration();
|
||||
return ratio.multiply(BigDecimal.TEN).multiply(BigDecimal.TEN);
|
||||
}
|
||||
|
||||
public BigDecimal getTheoreticalProgressByDurationForCriticalPathUntilNow() {
|
||||
TaskGroup rootAsTaskGroup = (TaskGroup)getRootTask();
|
||||
if(rootAsTaskGroup == null) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
BigDecimal ratio = rootAsTaskGroup.getTheoreticalProgressByDurationForCriticalPathUntilNow();
|
||||
return ratio.multiply(BigDecimal.TEN).multiply(BigDecimal.TEN);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue