ItEr14S11CUConfiguracionDeOrganizacionsDeTraballoConUnidadesTraballoItEr13S13: Basic changes at model,
adding new attributes and moving ActivityWork set to TaskWorkLeaf.
This commit is contained in:
parent
9652efb04d
commit
df70af8fef
6 changed files with 136 additions and 48 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
package org.navalplanner.business.workorders.entities;
|
package org.navalplanner.business.workorders.entities;
|
||||||
|
|
||||||
import org.hibernate.validator.NotNull;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
public class ActivityWork {
|
public class ActivityWork {
|
||||||
|
|
||||||
|
|
@ -10,9 +10,16 @@ public class ActivityWork {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
private Integer workingHours;
|
private Integer workingHours;
|
||||||
|
|
||||||
|
private BigDecimal percentage;
|
||||||
|
|
||||||
|
public enum HoursPolicies {
|
||||||
|
NO_FIXED, FIXED_HOURS, FIXED_PERCENTAGE
|
||||||
|
};
|
||||||
|
|
||||||
|
private HoursPolicies hoursPolicy = HoursPolicies.NO_FIXED;
|
||||||
|
|
||||||
public void setWorkingHours(Integer workingHours) {
|
public void setWorkingHours(Integer workingHours) {
|
||||||
this.workingHours = workingHours;
|
this.workingHours = workingHours;
|
||||||
}
|
}
|
||||||
|
|
@ -21,4 +28,20 @@ public class ActivityWork {
|
||||||
return workingHours;
|
return workingHours;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setPercentage(BigDecimal percentage) {
|
||||||
|
this.percentage = percentage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getPercentage() {
|
||||||
|
return percentage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHoursPolicy(HoursPolicies hoursPolicy) {
|
||||||
|
this.hoursPolicy = hoursPolicy;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HoursPolicies getHoursPolicy() {
|
||||||
|
return hoursPolicy;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,7 @@
|
||||||
package org.navalplanner.business.workorders.entities;
|
package org.navalplanner.business.workorders.entities;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.hibernate.validator.NotNull;
|
import org.hibernate.validator.NotNull;
|
||||||
|
|
||||||
|
|
@ -18,21 +15,15 @@ public abstract class TaskWork {
|
||||||
|
|
||||||
private Date endDate;
|
private Date endDate;
|
||||||
|
|
||||||
private Set<ActivityWork> activityWorks = new HashSet<ActivityWork>();
|
private Boolean mandatoryInit = false;
|
||||||
|
|
||||||
|
private Boolean mandatoryEnd = false;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
|
||||||
public abstract Integer getWorkHours();
|
public abstract Integer getWorkHours();
|
||||||
|
|
||||||
public void setActivities(List<ActivityWork> activities) {
|
public abstract List<ActivityWork> getActivities();
|
||||||
this.activityWorks = new HashSet<ActivityWork>(activities);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addActivity(ActivityWork activityWork) {
|
|
||||||
activityWorks.add(activityWork);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ActivityWork> getActivities() {
|
|
||||||
return new ArrayList<ActivityWork>(activityWorks);
|
|
||||||
}
|
|
||||||
|
|
||||||
public long getId() {
|
public long getId() {
|
||||||
return id;
|
return id;
|
||||||
|
|
@ -73,15 +64,32 @@ public abstract class TaskWork {
|
||||||
this.endDate = endDate;
|
this.endDate = endDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void remove(TaskWork lastAsTask);
|
public void setMandatoryInit(Boolean mandatoryInit) {
|
||||||
|
this.mandatoryInit = mandatoryInit;
|
||||||
|
}
|
||||||
|
|
||||||
public abstract void replace(TaskWork old, TaskWork newTask);
|
public Boolean isMandatoryInit() {
|
||||||
|
return mandatoryInit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMandatoryEnd(Boolean mandatoryEnd) {
|
||||||
|
this.mandatoryEnd = mandatoryEnd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean isMandatoryEnd() {
|
||||||
|
return mandatoryEnd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
public abstract TaskWorkContainer asContainer();
|
public abstract TaskWorkContainer asContainer();
|
||||||
|
|
||||||
public void forceLoadActivities() {
|
public abstract void forceLoadActivities();
|
||||||
for (ActivityWork activityWork : activityWorks) {
|
|
||||||
activityWork.getWorkingHours();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -66,4 +66,20 @@ public class TaskWorkContainer extends TaskWork implements ITaskWorkContainer {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void forceLoadActivities() {
|
||||||
|
for (TaskWork taskWork : children) {
|
||||||
|
taskWork.forceLoadActivities();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ActivityWork> getActivities() {
|
||||||
|
List<ActivityWork> activities = new ArrayList<ActivityWork>();
|
||||||
|
for (TaskWork taskWork : children) {
|
||||||
|
activities.addAll(taskWork.getActivities());
|
||||||
|
}
|
||||||
|
return activities;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,16 @@
|
||||||
package org.navalplanner.business.workorders.entities;
|
package org.navalplanner.business.workorders.entities;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
public class TaskWorkLeaf extends TaskWork {
|
public class TaskWorkLeaf extends TaskWork {
|
||||||
|
|
||||||
|
private Boolean fixedHours = false;
|
||||||
|
|
||||||
|
private Set<ActivityWork> activityWorks = new HashSet<ActivityWork>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Integer getWorkHours() {
|
public Integer getWorkHours() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
@ -28,25 +34,17 @@ public class TaskWorkLeaf extends TaskWork {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void remove(TaskWork taskWork) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TaskWorkContainer asContainer() {
|
public TaskWorkContainer asContainer() {
|
||||||
TaskWorkContainer result = new TaskWorkContainer();
|
TaskWorkContainer result = new TaskWorkContainer();
|
||||||
result.setName(getName());
|
result.setName(getName());
|
||||||
result.setInitDate(getInitDate());
|
result.setInitDate(getInitDate());
|
||||||
result.setEndDate(getEndDate());
|
result.setEndDate(getEndDate());
|
||||||
result.setActivities(getActivities());
|
// FIXME
|
||||||
|
// result.setActivities(getActivities());
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void replace(TaskWork old, TaskWork newTask) {
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setWorkHours(Integer workingHours) {
|
public void setWorkHours(Integer workingHours) {
|
||||||
List<ActivityWork> activities = getActivities();
|
List<ActivityWork> activities = getActivities();
|
||||||
|
|
||||||
|
|
@ -63,4 +61,37 @@ public class TaskWorkLeaf extends TaskWork {
|
||||||
|
|
||||||
setActivities(activities);
|
setActivities(activities);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setActivities(List<ActivityWork> activities) {
|
||||||
|
this.activityWorks = new HashSet<ActivityWork>(activities);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addActivity(ActivityWork activityWork) {
|
||||||
|
activityWorks.add(activityWork);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void deleteActivity(ActivityWork value) {
|
||||||
|
activityWorks.remove(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ActivityWork> getActivities() {
|
||||||
|
return new ArrayList<ActivityWork>(activityWorks);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void forceLoadActivities() {
|
||||||
|
for (ActivityWork activityWork : activityWorks) {
|
||||||
|
activityWork.getWorkingHours();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFixedHours(Boolean fixedHours) {
|
||||||
|
this.fixedHours = fixedHours;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean isFixedHours() {
|
||||||
|
return fixedHours;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,14 +23,13 @@
|
||||||
<id name="id" type="long" access="field">
|
<id name="id" type="long" access="field">
|
||||||
<generator class="native" />
|
<generator class="native" />
|
||||||
</id>
|
</id>
|
||||||
<set name="activityWorks" access="field" cascade="all">
|
|
||||||
<key column="PARENT_TASK" not-null="false"></key>
|
|
||||||
<one-to-many class="ActivityWork" />
|
|
||||||
</set>
|
|
||||||
|
|
||||||
<property name="name" access="field" />
|
<property name="name" access="field" />
|
||||||
<property name="initDate" access="field" />
|
<property name="initDate" access="field" />
|
||||||
<property name="endDate" access="field" />
|
<property name="endDate" access="field" />
|
||||||
|
<property name="mandatoryInit" access="field" />
|
||||||
|
<property name="mandatoryEnd" access="field" />
|
||||||
|
<property name="description" access="field" />
|
||||||
|
|
||||||
<joined-subclass name="TaskWorkContainer">
|
<joined-subclass name="TaskWorkContainer">
|
||||||
<key column="TASKWORKID"></key>
|
<key column="TASKWORKID"></key>
|
||||||
|
|
@ -43,6 +42,13 @@
|
||||||
|
|
||||||
<joined-subclass name="TaskWorkLeaf">
|
<joined-subclass name="TaskWorkLeaf">
|
||||||
<key column="TASKWORKID"></key>
|
<key column="TASKWORKID"></key>
|
||||||
|
|
||||||
|
<property name="fixedHours" access="field" />
|
||||||
|
|
||||||
|
<set name="activityWorks" access="field" cascade="all">
|
||||||
|
<key column="PARENT_TASK" not-null="false"></key>
|
||||||
|
<one-to-many class="ActivityWork" />
|
||||||
|
</set>
|
||||||
</joined-subclass>
|
</joined-subclass>
|
||||||
</class>
|
</class>
|
||||||
|
|
||||||
|
|
@ -50,6 +56,10 @@
|
||||||
<id name="id" type="long" access="field">
|
<id name="id" type="long" access="field">
|
||||||
<generator class="native" />
|
<generator class="native" />
|
||||||
</id>
|
</id>
|
||||||
<property name="workingHours"></property>
|
|
||||||
|
<property name="workingHours" access="field" />
|
||||||
|
<property name="percentage" access="field" />
|
||||||
|
<property name="hoursPolicy" access="field" />
|
||||||
|
|
||||||
</class>
|
</class>
|
||||||
</hibernate-mapping>
|
</hibernate-mapping>
|
||||||
|
|
@ -1,5 +1,13 @@
|
||||||
package org.navalplanner.business.test.workorders.services;
|
package org.navalplanner.business.test.workorders.services;
|
||||||
|
|
||||||
|
import static org.hamcrest.CoreMatchers.equalTo;
|
||||||
|
import static org.hamcrest.CoreMatchers.notNullValue;
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
|
import static org.junit.Assert.assertThat;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
import static org.navalplanner.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE;
|
||||||
|
import static org.navalplanner.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
@ -20,14 +28,6 @@ import org.springframework.test.context.ContextConfiguration;
|
||||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.equalTo;
|
|
||||||
import static org.hamcrest.CoreMatchers.notNullValue;
|
|
||||||
import static org.junit.Assert.assertFalse;
|
|
||||||
import static org.junit.Assert.assertThat;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.navalplanner.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE;
|
|
||||||
import static org.navalplanner.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests for {@link ProjectWork}. <br />
|
* Tests for {@link ProjectWork}. <br />
|
||||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||||
|
|
@ -171,7 +171,7 @@ public class ProjectWorkServiceTest {
|
||||||
TaskWorkContainer containerReloaded = (TaskWorkContainer) reloaded
|
TaskWorkContainer containerReloaded = (TaskWorkContainer) reloaded
|
||||||
.getTaskWorks().get(0);
|
.getTaskWorks().get(0);
|
||||||
assertThat(containerReloaded.getActivities().size(),
|
assertThat(containerReloaded.getActivities().size(),
|
||||||
equalTo(0));
|
equalTo(1));
|
||||||
assertThat(containerReloaded.getChildren().size(),
|
assertThat(containerReloaded.getChildren().size(),
|
||||||
equalTo(1));
|
equalTo(1));
|
||||||
TaskWork leaf = containerReloaded.getChildren().get(0);
|
TaskWork leaf = containerReloaded.getChildren().get(0);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue