mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
bugfix issue #78
This commit is contained in:
parent
cef0453c90
commit
8f749c9fdf
4 changed files with 203 additions and 29 deletions
|
|
@ -316,11 +316,14 @@ public class VrpXMLReader{
|
|||
int cap = getCap(shipmentConfig);
|
||||
Shipment.Builder builder = Shipment.Builder.newInstance(id, cap);
|
||||
|
||||
//pickup-locationId
|
||||
String pickupLocationId = shipmentConfig.getString("pickup.locationId");
|
||||
builder.setPickupLocation(pickupLocationId);
|
||||
if(pickupLocationId != null){
|
||||
builder.setPickupLocation(pickupLocationId);
|
||||
}
|
||||
|
||||
//pickup-coord
|
||||
Coordinate pickupCoord = getCoord(shipmentConfig,"pickup.");
|
||||
|
||||
if(pickupCoord != null){
|
||||
builder.setPickupCoord(pickupCoord);
|
||||
if(pickupLocationId != null){
|
||||
|
|
@ -331,17 +334,23 @@ public class VrpXMLReader{
|
|||
builder.setPickupLocation(pickupCoord.toString());
|
||||
}
|
||||
}
|
||||
|
||||
//pickup-tw
|
||||
String pickupTWStart = shipmentConfig.getString("pickup.timeWindows.timeWindow(0).start");
|
||||
String pickupTWEnd = shipmentConfig.getString("pickup.timeWindows.timeWindow(0).end");
|
||||
TimeWindow pickupTW = TimeWindow.newInstance(Double.parseDouble(pickupTWStart), Double.parseDouble(pickupTWEnd));
|
||||
builder.setPickupTimeWindow(pickupTW);
|
||||
if(pickupTWStart != null && pickupTWEnd != null){
|
||||
TimeWindow pickupTW = TimeWindow.newInstance(Double.parseDouble(pickupTWStart), Double.parseDouble(pickupTWEnd));
|
||||
builder.setPickupTimeWindow(pickupTW);
|
||||
}
|
||||
|
||||
|
||||
//delivery-locaitonId
|
||||
String deliveryLocationId = shipmentConfig.getString("delivery.locationId");
|
||||
builder.setDeliveryLocation(deliveryLocationId);
|
||||
if(deliveryLocationId != null){
|
||||
builder.setDeliveryLocation(deliveryLocationId);
|
||||
}
|
||||
|
||||
//delivery-coord
|
||||
Coordinate deliveryCoord = getCoord(shipmentConfig,"delivery.");
|
||||
|
||||
if(deliveryCoord != null){
|
||||
builder.setDeliveryCoord(deliveryCoord);
|
||||
if(deliveryLocationId != null){
|
||||
|
|
@ -349,14 +358,17 @@ public class VrpXMLReader{
|
|||
}
|
||||
else{
|
||||
vrpBuilder.addLocation(deliveryCoord.toString(),deliveryCoord);
|
||||
builder.setPickupLocation(deliveryCoord.toString());
|
||||
builder.setDeliveryLocation(deliveryCoord.toString());
|
||||
}
|
||||
}
|
||||
|
||||
String delTWStart = shipmentConfig.getString("delivery.timeWindows.timeWindow(0).start");
|
||||
String delTWEnd = shipmentConfig.getString("delivery.timeWindows.timeWindow(0).end");
|
||||
TimeWindow delTW = TimeWindow.newInstance(Double.parseDouble(delTWStart), Double.parseDouble(delTWEnd));
|
||||
builder.setDeliveryTimeWindow(delTW);
|
||||
if(delTWStart != null && delTWEnd != null){
|
||||
TimeWindow delTW = TimeWindow.newInstance(Double.parseDouble(delTWStart), Double.parseDouble(delTWEnd));
|
||||
builder.setDeliveryTimeWindow(delTW);
|
||||
}
|
||||
|
||||
|
||||
Shipment shipment = builder.build();
|
||||
vrpBuilder.addJob(shipment);
|
||||
|
|
@ -391,7 +403,7 @@ public class VrpXMLReader{
|
|||
int cap = getCap(serviceConfig);
|
||||
Service.Builder builder = serviceBuilderFactory.createBuilder(type, id, cap);
|
||||
String serviceLocationId = serviceConfig.getString("locationId");
|
||||
builder.setLocationId(serviceLocationId);
|
||||
if(serviceLocationId != null) builder.setLocationId(serviceLocationId);
|
||||
Coordinate serviceCoord = getCoord(serviceConfig,"");
|
||||
if(serviceCoord != null){
|
||||
builder.setCoord(serviceCoord);
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
<xs:element name="location">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="id" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="id" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="coord" minOccurs="0" maxOccurs="1">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="x" type="xs:decimal" use="required"/>
|
||||
|
|
@ -95,7 +95,7 @@
|
|||
<xs:element name="service" minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="locationId" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="locationId" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="coord" type="coordType" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="capacity-demand" type="xs:integer" minOccurs="0" maxOccurs="1" default="0"/>
|
||||
<xs:element name="duration" type="xs:decimal" minOccurs="0" maxOccurs="1" default="0.0"/>
|
||||
|
|
@ -125,7 +125,7 @@
|
|||
<xs:element name="pickup" minOccurs="1" maxOccurs="1">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="locationId" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="locationId" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="coord" type="coordType" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="duration" type="xs:decimal" minOccurs="0" maxOccurs="1" default="0.0"/>
|
||||
<xs:element name="timeWindows" minOccurs="0" maxOccurs="1">
|
||||
|
|
@ -141,7 +141,7 @@
|
|||
<xs:element name="delivery" minOccurs="1" maxOccurs="1">
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="locationId" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
||||
<xs:element name="locationId" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="coord" type="coordType" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="duration" type="xs:decimal" minOccurs="0" maxOccurs="1" default="0.0"/>
|
||||
<xs:element name="timeWindows" minOccurs="0" maxOccurs="1">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue