@Override public TourActivity duplicate() { return new DeliverShipment(this); }
private DeliverShipment(DeliverShipment deliveryShipmentActivity) { this.shipment = (Shipment) deliveryShipmentActivity.getJob(); this.arrTime = deliveryShipmentActivity.getArrTime(); this.endTime = deliveryShipmentActivity.getEndTime(); this.capacity = deliveryShipmentActivity.getSize(); setIndex(deliveryShipmentActivity.getIndex()); this.earliest = deliveryShipmentActivity.getTheoreticalEarliestOperationStartTime(); this.latest = deliveryShipmentActivity.getTheoreticalLatestOperationStartTime(); }
public String toString() { return "[type=" + getName() + "][locationId=" + getLocation().getId() + "][size=" + getSize().toString() + "][twStart=" + Activities.round(getTheoreticalEarliestOperationStartTime()) + "][twEnd=" + Activities.round(getTheoreticalLatestOperationStartTime()) + "]"; }
@Override public void visit(TourActivity activity) { //shipment if (activity instanceof PickupShipment) { openShipments.put(((PickupShipment) activity).getJob().getId(), (PickupShipment) activity); } else if (activity instanceof DeliverShipment) { String jobId = ((DeliverShipment) activity).getJob().getId(); if (!openShipments.containsKey(jobId)) { //deliverShipment without pickupShipment stateManager.putActivityState(activity, shipment_id, true); shipmentConstraintOnRouteViolated = true; } else { PickupShipment removed = openShipments.remove(jobId); stateManager.putActivityState(removed, shipment_id, false); stateManager.putActivityState(activity, shipment_id, false); } } else stateManager.putActivityState(activity, shipment_id, false); //backhaul if (activity instanceof DeliverService && pickupOccured) { stateManager.putActivityState(activity, backhaul_id, true); backhaulConstraintOnRouteViolated = true; } else { if (activity instanceof PickupService || activity instanceof ServiceActivity || activity instanceof PickupShipment) { pickupOccured = true; stateManager.putActivityState(activity, backhaul_id, false); } else stateManager.putActivityState(activity, backhaul_id, false); } }
@Override public void visit(TourActivity activity) { //shipment if (activity instanceof PickupShipment) { openShipments.put(((PickupShipment) activity).getJob().getId(), (PickupShipment) activity); } else if (activity instanceof DeliverShipment) { String jobId = ((DeliverShipment) activity).getJob().getId(); if (!openShipments.containsKey(jobId)) { //deliverShipment without pickupShipment stateManager.putActivityState(activity, shipment_id, true); shipmentConstraintOnRouteViolated = true; } else { PickupShipment removed = openShipments.remove(jobId); stateManager.putActivityState(removed, shipment_id, false); stateManager.putActivityState(activity, shipment_id, false); } } else stateManager.putActivityState(activity, shipment_id, false); //backhaul if (activity instanceof DeliverService && pickupOccured) { stateManager.putActivityState(activity, backhaul_id, true); backhaulConstraintOnRouteViolated = true; } else { if (activity instanceof PickupService || activity instanceof ServiceActivity || activity instanceof PickupShipment) { pickupOccured = true; stateManager.putActivityState(activity, backhaul_id, false); } else stateManager.putActivityState(activity, backhaul_id, false); } }
private DeliverShipment(DeliverShipment deliveryShipmentActivity) { this.shipment = (Shipment) deliveryShipmentActivity.getJob(); this.arrTime = deliveryShipmentActivity.getArrTime(); this.endTime = deliveryShipmentActivity.getEndTime(); this.capacity = deliveryShipmentActivity.getSize(); setIndex(deliveryShipmentActivity.getIndex()); this.earliest = deliveryShipmentActivity.getTheoreticalEarliestOperationStartTime(); this.latest = deliveryShipmentActivity.getTheoreticalLatestOperationStartTime(); }
public String toString() { return "[type=" + getName() + "][locationId=" + getLocation().getId() + "][size=" + getSize().toString() + "][twStart=" + Activities.round(getTheoreticalEarliestOperationStartTime()) + "][twEnd=" + Activities.round(getTheoreticalLatestOperationStartTime()) + "]"; }
@Override public AbstractActivity createDelivery(Shipment shipment) { return new DeliverShipment(shipment); }
@Override public TourActivity duplicate() { return new DeliverShipment(this); }
@Override public AbstractActivity createDelivery(Shipment shipment) { return new DeliverShipment(shipment); }