Exemplo 4 – Cargas separadas por tipo de veículo
Neste exemplo, temos uma requisição para resolver um problema logístico de uma empresa que utiliza veículos especializados para diferentes tipos de carga: congelados, resfriados e secos.
Há 3 veículos disponíveis — um para refrigerados (capaz de transportar cargas congeladas e resfriadas), um para cargas secas e um híbrido (capaz de transportar todos os tipos).
Ao todo, existem 15 operações de entrega, com produtos atribuídos a grupos específicos, garantindo que cada veículo transporte apenas cargas compatíveis.
Descrição do problema
As entregas envolvem produtos como peixe (congelado), leite (resfriado) e soja (seco). Os veículos são configurados com compartimentos que restringem os grupos permitidos, simulando cenários reais da logística de alimentos perecíveis, em que temperatura e tipo de carga são fatores críticos.
As janelas de horário definidas cobrem todo o período operacional disponível para os veículos (das 08:00 de um dia até as 18:00 do dia seguinte), ou seja, não impõem nenhuma restrição adicional além da própria disponibilidade da frota. O foco do planejamento, portanto, está em respeitar a compatibilidade de compartimentos e otimizar a distância percorrida.
![]() 15 OPERAÇÕES DE ENTREGA | ![]() 1 DEPÓSITO | ![]() 3 VEÍCULOS ESPECIALIZADOS (REFRIGERADO, SECO, HÍBRIDO) | ![]() 3 TIPOS DE PRODUTOS (CONGELADO, RESFRIADO, SECO) |
Os pontos de entrega estão distribuídos em diferentes localidades — inclusive há dois clientes (STOPPOINT_7 e STOPPOINT_8) que compartilham as mesmas coordenadas, simulando, por exemplo, dois destinatários no mesmo hub ou galpão. A otimização atribui cargas compatíveis a cada veículo: o refrigerado transporta leite e, quando o roteiro compensa, também peixe (já que seu compartimento aceita ambos os tipos de embalagem); o veículo para cargas secas transporta soja; e o veículo híbrido atende às demais entregas, combinando os três tipos de produto num único compartimento.
Essa abordagem evita contaminação cruzada ou violações de temperatura, situações comuns em cadeias de suprimento de alimentos.
Parâmetros que resolvem a combinação carga-veículo
Antes de olhar a requisição completa, vale isolar os três parâmetros que efetivamente decidem qual veículo pode carregar qual produto. São eles que a Planning API cruza internamente para montar as rotas — os demais campos do payload (perfis, legislação, janelas de horário, etc.) não interferem nessa combinação e são tratados em outro artigo.
products[].packagings— define a que tipo de embalagem/acondicionamento cada produto pertence. No exemplo,PEIXEestá emCONGELADOS,LEITEemRESFRIADOSeSOJAemSECOS. Esse campo não fala nada sobre veículos — ele só rotula o produto.vehicleTypes[].compartmentConfigurations[].compartments[].allowedPackagings— do lado do veículo, cada compartimento declara quais embalagens ele aceita. É aqui que a compatibilidade realmente acontece: o compartimentoREFRIGERADOaceita["CONGELADOS", "RESFRIADOS"], oSECOaceita só["SECOS"], e oHIBRIDOaceita os três —["CONGELADOS", "RESFRIADOS", "SECOS"].compartments[].type(FIXED) ecompartments[].maximumCapacity— além de aceitar ou não a embalagem, cada compartimento tem uma capacidade máxima fixa (neste exemplo, 1000 para todos). A API só aloca uma operação num compartimento se a embalagem do produto estiver emallowedPackagingse a soma de volume/peso ainda couber dentro demaximumCapacity.
Juntando os dois primeiros campos, dá para montar a matriz de compatibilidade usada neste caso de uso sem precisar rodar a API:
| Produto | Packaging (products[].packagings) | Compartimentos compatíveis (allowedPackagings) |
|---|---|---|
| PEIXE | CONGELADOS | REFRIGERADO, HIBRIDO |
| LEITE | RESFRIADOS | REFRIGERADO, HIBRIDO |
| SOJA | SECOS | SECO, HIBRIDO |
Note que o veículo HIBRIDO é o único compatível com os três produtos — por isso ele absorve a maior parte das entregas na solução final, enquanto REFRIGERADO e SECO ficam restritos aos produtos das suas respectivas embalagens.
Requisição completa
A requisição completa pode ser conferida abaixo. Preste atenção nos blocos products e vehicleTypes.compartmentConfigurations — são exatamente os três parâmetros descritos acima:
{
"optimizationProfile": "BRAZIL46",
"tripsProfile": "MAPLINKBR",
"startDate": 1624608000000,
"legislationProfiles": [
{
"name": "DEFAULT"
}
],
"logisticConstraints": [
{
"name": "DEFAULT"
}
],
"products": [
{
"name": "PEIXE",
"packagings": [
"CONGELADOS"
]
},
{
"name": "LEITE",
"packagings": [
"RESFRIADOS"
]
},
{
"name": "SOJA",
"packagings": [
"SECOS"
]
}
],
"sites": [
{
"name": "STOPPOINT_1",
"coordinates": {
"latitude": -23.524322,
"longitude": -46.706273
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_2",
"coordinates": {
"latitude": -23.623525,
"longitude": -46.703297
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_3",
"coordinates": {
"latitude": -23.588551,
"longitude": -46.646401
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_4",
"coordinates": {
"latitude": -23.504494,
"longitude": -46.857385
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_5",
"coordinates": {
"latitude": -29.823819,
"longitude": -51.14773
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_6",
"coordinates": {
"latitude": -25.556829,
"longitude": -49.348827
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_7",
"coordinates": {
"latitude": -29.827506,
"longitude": -51.172703
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_8",
"coordinates": {
"latitude": -29.827506,
"longitude": -51.172703
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_9",
"coordinates": {
"latitude": -25.242227,
"longitude": -53.981779
},
"logisticConstraints": "DEFAULT"
},
{
"name": "STOPPOINT_10",
"coordinates": {
"latitude": -29.638353,
"longitude": -51.004301
},
"logisticConstraints": "DEFAULT"
}
],
"depots": [
{
"name": "DEPOT",
"coordinates": {
"latitude": -23.504494,
"longitude": -46.857385
},
"logisticConstraints": "DEFAULT"
}
],
"vehicleTypes": [
{
"name": "REFRIGERADO",
"maxVolume": 100,
"maxWeight": 100,
"size": 10,
"compartmentsAccessMode": "REAR_ACCESS",
"compartmentConfigurations": [
{
"name": "COMPARTIMENTO_REFRIGERADO",
"compartments": [
{
"name": "REFRIGERADO",
"type": "FIXED",
"maximumCapacity": 1000,
"loadingRule": "NONE",
"allowedPackagings": [
"CONGELADOS",
"RESFRIADOS"
]
}
]
}
]
},
{
"name": "SECO",
"maxVolume": 100,
"maxWeight": 100,
"size": 10,
"compartmentsAccessMode": "REAR_ACCESS",
"compartmentConfigurations": [
{
"name": "COMPARTIMENTO_SECO",
"compartments": [
{
"name": "SECO",
"type": "FIXED",
"maximumCapacity": 1000,
"loadingRule": "NONE",
"allowedPackagings": [
"SECOS"
]
}
]
}
]
},
{
"name": "HIBRIDO",
"maxVolume": 100,
"maxWeight": 100,
"size": 10,
"compartmentsAccessMode": "REAR_ACCESS",
"compartmentConfigurations": [
{
"name": "COMPARTIMENTO_HIBRIDO",
"compartments": [
{
"name": "HIBRIDO",
"type": "FIXED",
"maximumCapacity": 1000,
"loadingRule": "NONE",
"allowedPackagings": [
"CONGELADOS",
"RESFRIADOS",
"SECOS"
]
}
]
}
]
}
],
"vehicles": [
{
"name": "VEHICLE_1",
"vehicleType": "REFRIGERADO",
"legislationProfile": "DEFAULT",
"availablePeriods": [
{
"departureSite": "DEPOT",
"arrivalSite": "DEPOT",
"timeWindow": {
"start": 1624608000000,
"end": 1624730400000
},
"maxRoutesNumber": 1
}
]
},
{
"name": "VEHICLE_2",
"vehicleType": "SECO",
"legislationProfile": "DEFAULT",
"availablePeriods": [
{
"departureSite": "DEPOT",
"arrivalSite": "DEPOT",
"timeWindow": {
"start": 1624608000000,
"end": 1624730400000
},
"maxRoutesNumber": 1
}
]
},
{
"name": "VEHICLE_3",
"vehicleType": "HIBRIDO",
"legislationProfile": "DEFAULT",
"availablePeriods": [
{
"departureSite": "DEPOT",
"arrivalSite": "DEPOT",
"timeWindow": {
"start": 1624608000000,
"end": 1624730400000
},
"maxRoutesNumber": 1
}
]
}
],
"operations": [
{
"id": "STOPPOINT_1",
"priority": 0,
"volume": 10,
"weight": 5,
"product": "PEIXE",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_1",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_2",
"priority": 0,
"volume": 10,
"weight": 5,
"product": "PEIXE",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_2",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_3",
"priority": 0,
"volume": 10,
"weight": 5,
"product": "PEIXE",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_3",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_4",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "PEIXE",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_4",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_5",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "PEIXE",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_5",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_6",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "LEITE",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_6",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_7",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "LEITE",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_7",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_8",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "LEITE",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_8",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_9",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "LEITE",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_9",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_10",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "LEITE",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_10",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_11",
"priority": 0,
"volume": 100,
"weight": 100,
"product": "SOJA",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_1",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_12",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "SOJA",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_2",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_13",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "SOJA",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_3",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_14",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "SOJA",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_4",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
},
{
"id": "STOPPOINT_15",
"priority": 0,
"volume": 0,
"weight": 0,
"product": "SOJA",
"type": "DELIVERY",
"depotSite": "DEPOT",
"customerSite": "STOPPOINT_5",
"customerTimeWindows": [
{
"start": 1624608000000,
"end": 1624730400000
}
]
}
]
}
Note que só as operações de PEIXE nos três primeiros pontos (30kg/30L no total) e a operação de SOJA no STOPPOINT_11 (100kg/100L) carregam volume e peso reais — as demais representam paradas de visita/entrega simbólicas, mantidas em zero de propósito para que o exemplo fique focado na compatibilidade de compartimento em vez de na otimização de capacidade. Vale notar que a operação de soja (100/100) já nasce no limite exato do maximumCapacity do compartimento SECO — ou seja, além de validar a embalagem, o exemplo também exercita o limite de capacidade do veículo.
Solução do problema logístico
A resposta da API retorna o melhor sequenciamento das operações para cada veículo, respeitando a matriz de compatibilidade descrita acima. Na prática:
- VEHICLE_1 (REFRIGERADO) entrega em STOPPOINT_9, STOPPOINT_6 (leite) e STOPPOINT_4 (peixe) — como seu compartimento aceita tanto
RESFRIADOSquantoCONGELADOS, ele pode atender esse peixe sem violar a regra de embalagem, mesmo sendo o “veículo do leite”. - VEHICLE_2 (SECO) entrega apenas em STOPPOINT_1, carregando a soja (100kg/100L) — a única embalagem que seu compartimento aceita, e no limite máximo de capacidade.
- VEHICLE_3 (HIBRIDO) absorve o restante das 15 operações, já que é o único compartimento compatível com as três embalagens ao mesmo tempo (inclusive o peixe com volume real em STOPPOINT_1, 2 e 3).
O detalhamento campo a campo da resposta (atividades, indicadores, tempos de rota etc.) é tratado em um artigo dedicado à estrutura de resposta da Planning API.

Resposta completa
A resposta completa pode ser conferida abaixo:
{
"id": "69dd5d8d8620796cf45f002b",
"clientId": "maplink",
"vehicleRoutes": [
{
"routes": [
{
"id": "NewRoute_1_1",
"activities": [
{
"activity": "ROUTE_START",
"timeWindow": {
"start": 1624608000000,
"end": 1624608000000
},
"type": "SITE",
"site": "DEPOT",
"operations": []
},
{
"activity": "LOADING",
"timeWindow": {
"start": 1624608000000,
"end": 1624608000000
},
"type": "SITE",
"site": "DEPOT",
"fixedTimeSite": 0,
"volume": 30.0,
"weight": 15.0,
"operations": [
"STOPPOINT_14",
"STOPPOINT_1",
"STOPPOINT_12",
"STOPPOINT_2",
"STOPPOINT_3",
"STOPPOINT_13",
"STOPPOINT_5",
"STOPPOINT_15",
"STOPPOINT_10",
"STOPPOINT_7",
"STOPPOINT_8"
],
"operationCompartments": [
{
"groupId": "STOPPOINT_14",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_1",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 5.0,
"capacityVolumeUsed": 10.0
}
]
},
{
"groupId": "STOPPOINT_12",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_2",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 5.0,
"capacityVolumeUsed": 10.0
}
]
},
{
"groupId": "STOPPOINT_3",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 5.0,
"capacityVolumeUsed": 10.0
}
]
},
{
"groupId": "STOPPOINT_13",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_5",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_15",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_10",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_7",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_8",
"compartmentSolutions": [
{
"compartment": "HIBRIDO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
}
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624608000000,
"end": 1624657932000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_5",
"departureSite": "DEPOT",
"distance": 1120701,
"nominalDuration": 49932
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624657932000,
"end": 1624657932000
},
"type": "SITE",
"site": "STOPPOINT_5",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_15",
"STOPPOINT_5"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624657932000,
"end": 1624658489000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_8",
"departureSite": "STOPPOINT_5",
"distance": 5660,
"nominalDuration": 557
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624658489000,
"end": 1624658489000
},
"type": "SITE",
"site": "STOPPOINT_8",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_8"
]
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624658489000,
"end": 1624658489000
},
"type": "SITE",
"site": "STOPPOINT_7",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_7"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624658489000,
"end": 1624660506000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_10",
"departureSite": "STOPPOINT_7",
"distance": 34459,
"nominalDuration": 2017
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624660506000,
"end": 1624660506000
},
"type": "SITE",
"site": "STOPPOINT_10",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_10"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624660506000,
"end": 1624711033000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_2",
"departureSite": "STOPPOINT_10",
"distance": 1116318,
"nominalDuration": 50527
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624711033000,
"end": 1624711033000
},
"type": "SITE",
"site": "STOPPOINT_2",
"fixedTimeSite": 0,
"volume": 10.0,
"weight": 5.0,
"operations": [
"STOPPOINT_12",
"STOPPOINT_2"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624711033000,
"end": 1624711941000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_3",
"departureSite": "STOPPOINT_2",
"distance": 9321,
"nominalDuration": 908
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624711941000,
"end": 1624711941000
},
"type": "SITE",
"site": "STOPPOINT_3",
"fixedTimeSite": 0,
"volume": 10.0,
"weight": 5.0,
"operations": [
"STOPPOINT_3",
"STOPPOINT_13"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624711941000,
"end": 1624713373000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_1",
"departureSite": "STOPPOINT_3",
"distance": 13302,
"nominalDuration": 1432
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624713373000,
"end": 1624713373000
},
"type": "SITE",
"site": "STOPPOINT_1",
"fixedTimeSite": 0,
"volume": 10.0,
"weight": 5.0,
"operations": [
"STOPPOINT_1"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624713373000,
"end": 1624714661000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_4",
"departureSite": "STOPPOINT_1",
"distance": 19063,
"nominalDuration": 1288
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624714661000,
"end": 1624714661000
},
"type": "SITE",
"site": "STOPPOINT_4",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_14"
]
},
{
"activity": "ROUTE_END",
"timeWindow": {
"start": 1624714661000,
"end": 1624714661000
},
"type": "SITE",
"site": "DEPOT",
"operations": []
}
],
"compartmentConfiguration": "COMPARTIMENTO_HIBRIDO"
}
],
"vehicle": "VEHICLE_3",
"period": {
"timeWindow": {
"start": 1624608000000,
"end": 1624730400000
},
"departureSite": "DEPOT",
"arrivalSite": "DEPOT",
"maxRoutesNumber": 1
}
},
{
"routes": [
{
"id": "NewRoute_2_1",
"activities": [
{
"activity": "ROUTE_START",
"timeWindow": {
"start": 1624608000000,
"end": 1624608000000
},
"type": "SITE",
"site": "DEPOT",
"operations": []
},
{
"activity": "LOADING",
"timeWindow": {
"start": 1624608000000,
"end": 1624608000000
},
"type": "SITE",
"site": "DEPOT",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_4",
"STOPPOINT_9",
"STOPPOINT_6"
],
"operationCompartments": [
{
"groupId": "STOPPOINT_4",
"compartmentSolutions": [
{
"compartment": "REFRIGERADO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_9",
"compartmentSolutions": [
{
"compartment": "REFRIGERADO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
},
{
"groupId": "STOPPOINT_6",
"compartmentSolutions": [
{
"compartment": "REFRIGERADO",
"capacityWeightUsed": 0.001,
"capacityVolumeUsed": 0.001
}
]
}
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624608000000,
"end": 1624651585000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_9",
"departureSite": "DEPOT",
"distance": 953923,
"nominalDuration": 43585
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624651585000,
"end": 1624651585000
},
"type": "SITE",
"site": "STOPPOINT_9",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_9"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624651585000,
"end": 1624680059000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_6",
"departureSite": "STOPPOINT_9",
"distance": 561860,
"nominalDuration": 28474
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624680059000,
"end": 1624680059000
},
"type": "SITE",
"site": "STOPPOINT_6",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_6"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624680059000,
"end": 1624700312000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_4",
"departureSite": "STOPPOINT_6",
"distance": 422688,
"nominalDuration": 20253
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624700312000,
"end": 1624700312000
},
"type": "SITE",
"site": "STOPPOINT_4",
"fixedTimeSite": 0,
"volume": 0.0,
"weight": 0.0,
"operations": [
"STOPPOINT_4"
]
},
{
"activity": "ROUTE_END",
"timeWindow": {
"start": 1624700312000,
"end": 1624700312000
},
"type": "SITE",
"site": "DEPOT",
"operations": []
}
],
"compartmentConfiguration": "COMPARTIMENTO_REFRIGERADO"
}
],
"vehicle": "VEHICLE_1",
"period": {
"timeWindow": {
"start": 1624608000000,
"end": 1624730400000
},
"departureSite": "DEPOT",
"arrivalSite": "DEPOT",
"maxRoutesNumber": 1
}
},
{
"routes": [
{
"id": "NewRoute_3_1",
"activities": [
{
"activity": "ROUTE_START",
"timeWindow": {
"start": 1624608000000,
"end": 1624608000000
},
"type": "SITE",
"site": "DEPOT",
"operations": []
},
{
"activity": "LOADING",
"timeWindow": {
"start": 1624608000000,
"end": 1624608000000
},
"type": "SITE",
"site": "DEPOT",
"fixedTimeSite": 0,
"volume": 100.0,
"weight": 100.0,
"operations": [
"STOPPOINT_11"
],
"operationCompartments": [
{
"groupId": "STOPPOINT_11",
"compartmentSolutions": [
{
"compartment": "SECO",
"capacityWeightUsed": 100.0,
"capacityVolumeUsed": 100.0
}
]
}
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624608000000,
"end": 1624609233000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "STOPPOINT_1",
"departureSite": "DEPOT",
"distance": 18005,
"nominalDuration": 1233
},
{
"activity": "DELIVERY",
"timeWindow": {
"start": 1624609233000,
"end": 1624609233000
},
"type": "SITE",
"site": "STOPPOINT_1",
"fixedTimeSite": 0,
"volume": 100.0,
"weight": 100.0,
"operations": [
"STOPPOINT_11"
]
},
{
"activity": "DRIVING",
"timeWindow": {
"start": 1624609233000,
"end": 1624610521000
},
"type": "DRIVING",
"operations": [],
"arrivalSite": "DEPOT",
"departureSite": "STOPPOINT_1",
"distance": 19063,
"nominalDuration": 1288
},
{
"activity": "ROUTE_END",
"timeWindow": {
"start": 1624610521000,
"end": 1624610521000
},
"type": "SITE",
"site": "DEPOT",
"operations": []
}
],
"compartmentConfiguration": "COMPARTIMENTO_SECO"
}
],
"vehicle": "VEHICLE_2",
"period": {
"timeWindow": {
"start": 1624608000000,
"end": 1624730400000
},
"departureSite": "DEPOT",
"arrivalSite": "DEPOT",
"maxRoutesNumber": 1
}
}
],
"indicators": {
"totalServiceTime": 0,
"totalDeliveringTime": 0,
"dayWorkingTotalTime": 136814,
"nightWorkingTotalTime": 64680,
"totalUnloadingTime": 0,
"totalWorkingTime": 201494,
"totalCollectingTime": 0,
"timeWindowNumber": 3,
"totalDrivingTime": 201494,
"totalLoadingTime": 0,
"totalTime": 201494,
"totalDistance": 4294363,
"averageOccupancyRateVolume": 43.34,
"averageOccupancyRateWeight": 38.34,
"rejectOperationsNumber": 0,
"totalWaitingTime": 0,
"totalRestTime": 0,
"routesNumber": 3
}
}



