@@ -20,8 +20,7 @@ public class UsingCoSkyAPIv2 {
20
20
public static void main (String [] args ) {
21
21
API api = new API ("" );
22
22
boolean success = api .authenticate ("" , "" );
23
-
24
-
23
+
25
24
if (success ) {
26
25
try {
27
26
ApiData data = api .navigate (ApiData .class , api .getRoot ());
@@ -31,57 +30,56 @@ public static void main (String[] args) {
31
30
System .out .println (datas );
32
31
UserData user = api .navigate (UserData .class , datas .getLocation ());
33
32
34
- EntityLinkCollection users = api .navigate (EntityLinkCollection .class , data .getLink ("list-users" ));
33
+ UserDataSet users = api .navigate (UserDataSet .class , data .getLink ("list-users" ));
35
34
36
- for (EntityLink u : users .getItems ()) {
35
+ for (UserData u : users .getItems ()) {
37
36
System .out .println (u );
38
37
}
39
38
40
-
41
39
if (user != null ) {
42
40
43
- EntityLinkCollection problems = api .navigate (EntityLinkCollection .class , user .getLink ("list-problems" ));
41
+ RoutingProblemDataSet problems = api .navigate (RoutingProblemDataSet .class , user .getLink ("list-problems" ));
44
42
45
43
RoutingProblemUpdateRequest newProblem = new RoutingProblemUpdateRequest ("exampleProblem" );
46
44
ResponseData result = api .navigate (ResponseData .class , user .getLink ("create-problem" ), newProblem );
47
45
System .out .println (result );
48
- problems = api .navigate (EntityLinkCollection .class , user .getLink ("list-problems" ));
46
+ problems = api .navigate (RoutingProblemDataSet .class , user .getLink ("list-problems" ));
49
47
RoutingProblemData problem1 = api .navigate (RoutingProblemData .class , problems .getItems ().get (0 ).getLink ("self" ));
50
48
51
49
System .out .println (problem1 );
52
50
CoordinateData coordinateData = new CoordinateData ();
53
-
54
- // coordinateData.setLatitude(62.244588);
55
- // coordinateData.setLongitude(25.742683);
51
+
52
+ coordinateData .setLatitude (62.244588 );
53
+ coordinateData .setLongitude (25.742683 );
56
54
57
55
//Saksa
58
- coordinateData .setLatitude (54.130888 );
59
- coordinateData .setLongitude (12.00938 );
56
+ // coordinateData.setLatitude(54.130888);
57
+ // coordinateData.setLongitude(12.00938);
60
58
coordinateData .setSystem (CoordinateData .CoordinateSystem .WGS84 );
61
59
LocationData locationData = new LocationData ();
62
60
locationData .setCoordinatesData (coordinateData );
63
61
64
62
CoordinateData pickup = new CoordinateData ();
65
63
66
64
67
- // pickup.setLatitude(62.247906);
68
- // pickup.setLongitude(25.867395);
65
+ pickup .setLatitude (62.247906 );
66
+ pickup .setLongitude (25.867395 );
69
67
70
68
//Saksa
71
- pickup .setLatitude (54.14454 );
72
- pickup .setLongitude (12.108808 );
69
+ // pickup.setLatitude(54.14454);
70
+ // pickup.setLongitude(12.108808);
73
71
pickup .setSystem (CoordinateData .CoordinateSystem .WGS84 );
74
72
LocationData pickupLocation = new LocationData ();
75
73
pickupLocation .setCoordinatesData (pickup );
76
74
77
75
CoordinateData delivery = new CoordinateData ();
78
76
79
- // delivery.setLatitude(61.386909);
80
- // delivery.setLongitude(24.654106);
77
+ delivery .setLatitude (61.386909 );
78
+ delivery .setLongitude (24.654106 );
81
79
82
80
//Saksa
83
- delivery .setLatitude (53.545867 );
84
- delivery .setLongitude (10.276409 );
81
+ // delivery.setLatitude(53.545867);
82
+ // delivery.setLongitude(10.276409);
85
83
delivery .setSystem (CoordinateData .CoordinateSystem .WGS84 );
86
84
LocationData deliveryLocation = new LocationData ();
87
85
deliveryLocation .setCoordinatesData (delivery );
@@ -96,47 +94,44 @@ public static void main (String[] args) {
96
94
timeWindows .add (new TimeWindowData (morning , evening ));
97
95
98
96
VehicleUpdateRequest vehicleRequest = new VehicleUpdateRequest ("demoVehicle" ,capacities , locationData , locationData );
97
+ VehicleUpdateRequest vehicle2 = new VehicleUpdateRequest ("demoVehicle2" ,capacities , locationData , locationData );
99
98
vehicleRequest .setTimeWindows (timeWindows );
100
-
101
- result = api .navigate (ResponseData .class , problem1 .getLink ("create-vehicle" ), vehicleRequest );
102
-
103
- EntityLinkCollection vehicles = api .navigate (EntityLinkCollection .class , problem1 .getLink ("list-vehicles" ));
104
-
105
- for ( EntityLink zdf : vehicles .getItems ()) {
106
- System .out .println (zdf );
107
- }
108
-
99
+ vehicle2 .setTimeWindows (timeWindows );
100
+
101
+ //New way to add many vehicles at the same time, is WAY faster than doing it one by one.
102
+ VehicleSetImportRequest vehicles = new VehicleSetImportRequest ();
103
+ ArrayList <VehicleUpdateRequest > set = new ArrayList <VehicleUpdateRequest >();
104
+ set .add (vehicle2 );
105
+ set .add (vehicleRequest );
106
+ vehicles .setItems (set );
107
+ result = api .navigate (ResponseData .class , problem1 .getLink ("import-vehicles" ), vehicles );
108
+
109
+
109
110
ArrayList <CapacityData > taskCapacity = new ArrayList <CapacityData >();
110
111
taskCapacity .add (new CapacityData ("Weight" , 1 ));
111
-
112
+ ArrayList < TaskUpdateRequest > tasks = new ArrayList < TaskUpdateRequest >();
112
113
for (int i = 0 ; i < 4 ; i ++) {
113
- ArrayList <TaskEventUpdateRequest > taskEvents = new ArrayList <TaskEventUpdateRequest >();
114
+ ArrayList <TaskEventUpdateRequest > taskEvents = new ArrayList <TaskEventUpdateRequest >();
114
115
taskEvents .add (new TaskEventUpdateRequest (Type .Pickup , pickupLocation , taskCapacity ));
115
116
taskEvents .add (new TaskEventUpdateRequest (Type .Delivery , deliveryLocation , taskCapacity ));
116
117
TaskUpdateRequest task = new TaskUpdateRequest (taskEvents );
117
- task .setName ("testTask" );
118
+ task .setName ("testTask" + i );
118
119
taskEvents .get (0 ).setTimeWindows (timeWindows );
119
120
taskEvents .get (1 ).setTimeWindows (timeWindows );
120
121
taskEvents .get (0 ).setServiceTime (10 );
121
122
taskEvents .get (1 ).setServiceTime (10 );
122
-
123
- result = api .navigate (ResponseData .class , problem1 .getLink ("create-task" ), task );
124
-
123
+ tasks .add (task );
125
124
}
126
-
125
+
126
+ //New way to add many tasks in one request, is WAY faster than doing it one by one.
127
+ TaskSetImportRequest taskeSetImport = new TaskSetImportRequest ();
128
+ taskeSetImport .setItems (tasks );
129
+ result = api .navigate (ResponseData .class , problem1 .getLink ("import-tasks" ), taskeSetImport );
130
+
127
131
ArrayList <TaskEventData > taskEvents = new ArrayList <TaskEventData >();
128
132
taskEvents .add (new TaskEventData (Type .Pickup , pickupLocation , taskCapacity ));
129
133
taskEvents .add (new TaskEventData (Type .Delivery , deliveryLocation , taskCapacity ));
130
-
131
- if (result .getItems () != null ) {
132
- System .out .println (result .getItems ());
133
- }
134
-
135
- TaskDataSet taskData = api .navigate (TaskDataSet .class , problem1 .getLink ("list-tasks" ) );
136
- for (TaskData td : taskData .getItems ()) {
137
- System .out .println (td );
138
- }
139
-
134
+
140
135
problem1 = api .navigate (RoutingProblemData .class , problem1 .getLink ("self" ));
141
136
System .out .println (problem1 );
142
137
//starting optimization
@@ -154,35 +149,30 @@ public static void main (String[] args) {
154
149
Thread .sleep (1500 );
155
150
problem1 = api .navigate (RoutingProblemData .class , problem1 .getLink ("self" ));
156
151
System .out .println ("Optimization is " + problem1 .getState () +" at percentage " + problem1 .getProgress ());
152
+ /*
157
153
objectiveValues = api.navigate(ObjectiveValueDataSet.class, problem1.getLink("objective-values"), qp);
158
154
159
155
if (objectiveValues != null && !objectiveValues.getItems().isEmpty()) {
160
156
for (ObjectiveValueData item : objectiveValues.getItems()) {
161
157
System.out.println( "Objective values from " + qp.get("start") + " to " + qp.get("end") + ": [" + item.getTimeStamp() + "] " + item.getValue() );
162
158
}
163
159
}
164
-
160
+ */
165
161
if (problem1 .getState ().equals ("Stopped" )) break ;
166
162
} catch (InterruptedException e ) {
167
163
e .printStackTrace ();
168
164
}
169
165
}
170
166
171
- EntityLinkCollection v = api .navigate (EntityLinkCollection .class , problem1 .getLink ("list-vehicles " ));
167
+ PlanData v = api .navigate (PlanData .class , problem1 .getLink ("plan " ));
172
168
173
- //Gets the routeevent
174
- for (EntityLink el : v .getItems ()) {
175
- VehicleData vd = api .navigate (VehicleData .class , el .getLink ("self" ));
176
- System .out .println ("Vehicles route: " );
177
- RouteEventDataSet routeEvents = api .navigate (RouteEventDataSet .class , vd .getLink ("list-events" ));
178
- for (RouteEventData red : routeEvents .getItems ()) {
179
- System .out .println (red );
180
- }
169
+ //Go through the plan.
170
+ for (FieldsItem el : v .getItems ()) {
171
+ System .out .println (el );
181
172
}
182
- //Tasks do not contain the information about their task events anymore.
183
173
}
184
-
185
- } catch (NFleetException e ) {
174
+
175
+ } catch (NFleetRequestException e ) {
186
176
System .out .println ("Something went wrong" );
187
177
} catch (IOException e ) {
188
178
System .out .println (e );
0 commit comments