ItEr41S23CUImportarTraballoRealizadoPorSubcontrata: Added information about criterion requirements to order element exportation process.
This commit is contained in:
parent
b1a202a3b2
commit
99a18db7ab
10 changed files with 227 additions and 15 deletions
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* This file is part of ###PROJECT_NAME###
|
||||
*
|
||||
* Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e
|
||||
* Desenvolvemento Tecnolóxico de Galicia
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.navalplanner.ws.orders.api;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAttribute;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
import org.navalplanner.business.requirements.entities.CriterionRequirement;
|
||||
|
||||
/**
|
||||
* DTO for {@link CriterionRequirement} entity.
|
||||
*
|
||||
* @author Manuel Rego Casasnovas <mrego@igalia.com>
|
||||
*/
|
||||
@XmlRootElement(name = "criterion-requirement")
|
||||
public class CriterionRequirementDTO {
|
||||
|
||||
@XmlAttribute
|
||||
public String name;
|
||||
|
||||
@XmlAttribute
|
||||
public String type;
|
||||
|
||||
public CriterionRequirementDTO() {
|
||||
}
|
||||
|
||||
public CriterionRequirementDTO(String name, String type) {
|
||||
this.name = name;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
* This file is part of ###PROJECT_NAME###
|
||||
*
|
||||
* Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e
|
||||
* Desenvolvemento Tecnolóxico de Galicia
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.navalplanner.ws.orders.api;
|
||||
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
import org.navalplanner.business.requirements.entities.DirectCriterionRequirement;
|
||||
|
||||
/**
|
||||
* DTO for {@link DirectCriterionRequirement} entity.
|
||||
*
|
||||
* @author Manuel Rego Casasnovas <mrego@igalia.com>
|
||||
*/
|
||||
@XmlRootElement(name = "direct-criterion-requirement")
|
||||
public class DirectCriterionRequirementDTO extends CriterionRequirementDTO {
|
||||
|
||||
public DirectCriterionRequirementDTO() {
|
||||
}
|
||||
|
||||
public DirectCriterionRequirementDTO(String name, String type) {
|
||||
super(name, type);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -20,7 +20,13 @@
|
|||
|
||||
package org.navalplanner.ws.orders.api;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAttribute;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlElementWrapper;
|
||||
import javax.xml.bind.annotation.XmlElements;
|
||||
|
||||
import org.navalplanner.business.orders.entities.HoursGroup;
|
||||
import org.navalplanner.ws.common.api.ResourceEnumDTO;
|
||||
|
|
@ -41,14 +47,22 @@ public class HoursGroupDTO {
|
|||
@XmlAttribute(name = "working-hours")
|
||||
public Integer workingHours;
|
||||
|
||||
@XmlElementWrapper(name = "criterion-requirements")
|
||||
@XmlElements( {
|
||||
@XmlElement(name = "direct-criterion-requirement", type = DirectCriterionRequirementDTO.class),
|
||||
@XmlElement(name = "indirect-criterion-requirement", type = IndirectCriterionRequirementDTO.class) })
|
||||
public Set<CriterionRequirementDTO> criterionRequirements = new HashSet<CriterionRequirementDTO>();
|
||||
|
||||
public HoursGroupDTO() {
|
||||
}
|
||||
|
||||
public HoursGroupDTO(String name, ResourceEnumDTO resourceType,
|
||||
Integer workingHours) {
|
||||
Integer workingHours,
|
||||
Set<CriterionRequirementDTO> criterionRequirements) {
|
||||
this.code = name;
|
||||
this.resourceType = resourceType;
|
||||
this.workingHours = workingHours;
|
||||
this.criterionRequirements = criterionRequirements;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
* This file is part of ###PROJECT_NAME###
|
||||
*
|
||||
* Copyright (C) 2009 Fundación para o Fomento da Calidade Industrial e
|
||||
* Desenvolvemento Tecnolóxico de Galicia
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.navalplanner.ws.orders.api;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAttribute;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
import org.navalplanner.business.requirements.entities.IndirectCriterionRequirement;
|
||||
|
||||
/**
|
||||
* DTO for {@link IndirectCriterionRequirement} entity.
|
||||
*
|
||||
* @author Manuel Rego Casasnovas <mrego@igalia.com>
|
||||
*/
|
||||
@XmlRootElement(name = "indirect-criterion-requirement")
|
||||
public class IndirectCriterionRequirementDTO extends CriterionRequirementDTO {
|
||||
|
||||
@XmlAttribute(name = "is-valid")
|
||||
public boolean isValid = true;
|
||||
|
||||
public IndirectCriterionRequirementDTO() {
|
||||
}
|
||||
|
||||
public IndirectCriterionRequirementDTO(String name, String type,
|
||||
boolean isValid) {
|
||||
super(name, type);
|
||||
this.isValid = isValid;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -51,10 +51,12 @@ public class OrderDTO extends OrderLineGroupDTO {
|
|||
String description, Set<LabelDTO> labels,
|
||||
Set<MaterialAssignmentDTO> materialAssignments,
|
||||
Set<AdvanceMeasurementDTO> advanceMeasurements,
|
||||
Set<CriterionRequirementDTO> criterionRequirements,
|
||||
List<OrderElementDTO> children,
|
||||
Boolean dependenciesConstraintsHavePriority, String calendarName) {
|
||||
super(name, code, initDate, deadline, description, labels,
|
||||
materialAssignments, advanceMeasurements, children);
|
||||
materialAssignments, advanceMeasurements,
|
||||
criterionRequirements, children);
|
||||
this.dependenciesConstraintsHavePriority = dependenciesConstraintsHavePriority;
|
||||
this.calendarName = calendarName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ import java.util.Set;
|
|||
import javax.xml.bind.annotation.XmlAttribute;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlElementWrapper;
|
||||
import javax.xml.bind.annotation.XmlElements;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
|
|
@ -66,13 +67,20 @@ public class OrderElementDTO {
|
|||
@XmlElement(name = "advance-measurement")
|
||||
public Set<AdvanceMeasurementDTO> advanceMeasurements = new HashSet<AdvanceMeasurementDTO>();
|
||||
|
||||
@XmlElementWrapper(name = "criterion-requirements")
|
||||
@XmlElements( {
|
||||
@XmlElement(name = "direct-criterion-requirement", type = DirectCriterionRequirementDTO.class),
|
||||
@XmlElement(name = "indirect-criterion-requirement", type = IndirectCriterionRequirementDTO.class) })
|
||||
public Set<CriterionRequirementDTO> criterionRequirements = new HashSet<CriterionRequirementDTO>();
|
||||
|
||||
public OrderElementDTO() {
|
||||
}
|
||||
|
||||
public OrderElementDTO(String name, String code, Date initDate,
|
||||
Date deadline, String description, Set<LabelDTO> labels,
|
||||
Set<MaterialAssignmentDTO> materialAssignments,
|
||||
Set<AdvanceMeasurementDTO> advanceMeasurements) {
|
||||
Set<AdvanceMeasurementDTO> advanceMeasurements,
|
||||
Set<CriterionRequirementDTO> criterionRequirements) {
|
||||
this.name = name;
|
||||
this.code = code;
|
||||
this.initDate = initDate;
|
||||
|
|
@ -81,6 +89,7 @@ public class OrderElementDTO {
|
|||
this.labels = labels;
|
||||
this.materialAssignments = materialAssignments;
|
||||
this.advanceMeasurements = advanceMeasurements;
|
||||
this.criterionRequirements = criterionRequirements;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -50,9 +50,10 @@ public class OrderLineDTO extends OrderElementDTO {
|
|||
String description, Set<LabelDTO> labels,
|
||||
Set<MaterialAssignmentDTO> materialAssignments,
|
||||
Set<AdvanceMeasurementDTO> advanceMeasurements,
|
||||
Set<CriterionRequirementDTO> criterionRequirements,
|
||||
Set<HoursGroupDTO> hoursGroups) {
|
||||
super(name, code, initDate, deadline, description, labels,
|
||||
materialAssignments, advanceMeasurements);
|
||||
materialAssignments, advanceMeasurements, criterionRequirements);
|
||||
this.hoursGroups = hoursGroups;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -55,9 +55,10 @@ public class OrderLineGroupDTO extends OrderElementDTO {
|
|||
Date deadline, String description, Set<LabelDTO> labels,
|
||||
Set<MaterialAssignmentDTO> materialAssignments,
|
||||
Set<AdvanceMeasurementDTO> advanceMeasurements,
|
||||
Set<CriterionRequirementDTO> criterionRequirements,
|
||||
List<OrderElementDTO> children) {
|
||||
super(name, code, initDate, deadline, description, labels,
|
||||
materialAssignments, advanceMeasurements);
|
||||
materialAssignments, advanceMeasurements, criterionRequirements);
|
||||
this.children = children;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,30 +29,34 @@ package org.navalplanner.ws.orders.impl;
|
|||
public class ConfigurationOrderElementConverter {
|
||||
|
||||
public static ConfigurationOrderElementConverter all() {
|
||||
return new ConfigurationOrderElementConverter(true, true, true, true);
|
||||
return new ConfigurationOrderElementConverter(true, true, true, true,
|
||||
true);
|
||||
}
|
||||
|
||||
public static ConfigurationOrderElementConverter none() {
|
||||
return new ConfigurationOrderElementConverter(false, false, false,
|
||||
false);
|
||||
false, false);
|
||||
}
|
||||
|
||||
public static ConfigurationOrderElementConverter noAdvanceMeasurements() {
|
||||
return new ConfigurationOrderElementConverter(true, true, false, true);
|
||||
return new ConfigurationOrderElementConverter(true, true, false, true,
|
||||
true);
|
||||
}
|
||||
|
||||
private boolean labels;
|
||||
private boolean materialAssignments;
|
||||
private boolean advanceMeasurements;
|
||||
private boolean hoursGroups;
|
||||
private boolean criterionRequirements;
|
||||
|
||||
private ConfigurationOrderElementConverter(boolean labels,
|
||||
boolean materialAssignments, boolean advanceMeasurements,
|
||||
boolean hoursGroups) {
|
||||
boolean hoursGroups, boolean criterionRequirements) {
|
||||
this.labels = labels;
|
||||
this.materialAssignments = materialAssignments;
|
||||
this.advanceMeasurements = advanceMeasurements;
|
||||
this.hoursGroups = hoursGroups;
|
||||
this.criterionRequirements = criterionRequirements;
|
||||
}
|
||||
|
||||
public boolean isLabels() {
|
||||
|
|
@ -71,4 +75,8 @@ public class ConfigurationOrderElementConverter {
|
|||
return hoursGroups;
|
||||
}
|
||||
|
||||
public boolean isCriterionRequirements() {
|
||||
return criterionRequirements;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,12 +50,17 @@ import org.navalplanner.business.orders.entities.Order;
|
|||
import org.navalplanner.business.orders.entities.OrderElement;
|
||||
import org.navalplanner.business.orders.entities.OrderLine;
|
||||
import org.navalplanner.business.orders.entities.OrderLineGroup;
|
||||
import org.navalplanner.business.requirements.entities.CriterionRequirement;
|
||||
import org.navalplanner.business.requirements.entities.IndirectCriterionRequirement;
|
||||
import org.navalplanner.business.resources.entities.ResourceEnum;
|
||||
import org.navalplanner.ws.common.api.IncompatibleTypeException;
|
||||
import org.navalplanner.ws.common.api.ResourceEnumDTO;
|
||||
import org.navalplanner.ws.common.impl.ResourceEnumConverter;
|
||||
import org.navalplanner.ws.orders.api.AdvanceMeasurementDTO;
|
||||
import org.navalplanner.ws.orders.api.CriterionRequirementDTO;
|
||||
import org.navalplanner.ws.orders.api.DirectCriterionRequirementDTO;
|
||||
import org.navalplanner.ws.orders.api.HoursGroupDTO;
|
||||
import org.navalplanner.ws.orders.api.IndirectCriterionRequirementDTO;
|
||||
import org.navalplanner.ws.orders.api.LabelDTO;
|
||||
import org.navalplanner.ws.orders.api.MaterialAssignmentDTO;
|
||||
import org.navalplanner.ws.orders.api.OrderDTO;
|
||||
|
|
@ -102,18 +107,26 @@ public final class OrderElementConverter {
|
|||
.getReportGlobalAdvanceAssignment());
|
||||
}
|
||||
|
||||
Set<CriterionRequirementDTO> criterionRequirements = new HashSet<CriterionRequirementDTO>();
|
||||
if (configuration.isCriterionRequirements()) {
|
||||
for (CriterionRequirement criterionRequirement : orderElement
|
||||
.getCriterionRequirements()) {
|
||||
criterionRequirements.add(toDTO(criterionRequirement));
|
||||
}
|
||||
}
|
||||
|
||||
if (orderElement instanceof OrderLine) {
|
||||
Set<HoursGroupDTO> hoursGroups = new HashSet<HoursGroupDTO>();
|
||||
if (configuration.isHoursGroups()) {
|
||||
for (HoursGroup hoursGroup : ((OrderLine) orderElement)
|
||||
.getHoursGroups()) {
|
||||
hoursGroups.add(toDTO(hoursGroup));
|
||||
hoursGroups.add(toDTO(hoursGroup, configuration));
|
||||
}
|
||||
}
|
||||
|
||||
return new OrderLineDTO(name, code, initDate, deadline,
|
||||
description, labels, materialAssignments,
|
||||
advanceMeasurements, hoursGroups);
|
||||
advanceMeasurements, criterionRequirements, hoursGroups);
|
||||
} else { // orderElement instanceof OrderLineGroup
|
||||
List<OrderElementDTO> children = new ArrayList<OrderElementDTO>();
|
||||
for (OrderElement element : orderElement.getChildren()) {
|
||||
|
|
@ -131,16 +144,30 @@ public final class OrderElementConverter {
|
|||
|
||||
return new OrderDTO(name, code, initDate, deadline,
|
||||
description, labels, materialAssignments,
|
||||
advanceMeasurements, children,
|
||||
advanceMeasurements, criterionRequirements, children,
|
||||
dependenciesConstraintsHavePriority, calendarName);
|
||||
} else { // orderElement instanceof OrderLineGroup
|
||||
return new OrderLineGroupDTO(name, code, initDate, deadline,
|
||||
description, labels, materialAssignments,
|
||||
advanceMeasurements, children);
|
||||
advanceMeasurements, criterionRequirements, children);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static CriterionRequirementDTO toDTO(
|
||||
CriterionRequirement criterionRequirement) {
|
||||
String name = criterionRequirement.getCriterion().getName();
|
||||
String type = criterionRequirement.getCriterion().getType().getName();
|
||||
|
||||
if (criterionRequirement instanceof IndirectCriterionRequirement) {
|
||||
boolean isValid = ((IndirectCriterionRequirement) criterionRequirement)
|
||||
.isIsValid();
|
||||
return new IndirectCriterionRequirementDTO(name, type, isValid);
|
||||
} else { // criterionRequirement instanceof DirectCriterionRequirement
|
||||
return new DirectCriterionRequirementDTO(name, type);
|
||||
}
|
||||
}
|
||||
|
||||
public final static Set<AdvanceMeasurementDTO> toDTO(
|
||||
DirectAdvanceAssignment advanceAssignment) {
|
||||
Set<AdvanceMeasurementDTO> advanceMeasurements = new HashSet<AdvanceMeasurementDTO>();
|
||||
|
|
@ -183,11 +210,21 @@ public final class OrderElementConverter {
|
|||
return new LabelDTO(label.getName(), label.getType().getName());
|
||||
}
|
||||
|
||||
public final static HoursGroupDTO toDTO(HoursGroup hoursGroup) {
|
||||
public final static HoursGroupDTO toDTO(HoursGroup hoursGroup,
|
||||
ConfigurationOrderElementConverter configuration) {
|
||||
ResourceEnumDTO resourceType = ResourceEnumConverter.toDTO(hoursGroup
|
||||
.getResourceType());
|
||||
|
||||
Set<CriterionRequirementDTO> criterionRequirements = new HashSet<CriterionRequirementDTO>();
|
||||
if (configuration.isCriterionRequirements()) {
|
||||
for (CriterionRequirement criterionRequirement : hoursGroup
|
||||
.getCriterionRequirements()) {
|
||||
criterionRequirements.add(toDTO(criterionRequirement));
|
||||
}
|
||||
}
|
||||
|
||||
return new HoursGroupDTO(hoursGroup.getCode(), resourceType, hoursGroup
|
||||
.getWorkingHours());
|
||||
.getWorkingHours(), criterionRequirements);
|
||||
}
|
||||
|
||||
public final static OrderElement toEntity(OrderElementDTO orderElementDTO,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue