Sequência de parada
Especificação de Correções e Melhorias no Sistema de Roteirização
Objetivo:
Ajustar a exibição e contagem de pacotes do tipo "Extra", aperfeiçoar o mapeamento do sentido das vias por GPS e corrigir a contagem e ordenação de paradas (Parada vs Ordem).
1. Tratamento de Pacotes do Tipo "Extra"
-
Identificação Visual no Mapa:
- Pacotes marcados como "Extra" devem exibir o caractere "-" no marcador do mapa e nos ícones, em vez de um número de parada ou de ordem.
- Esses pacotes não possuem número sequencial de parada nem de ordem vinculados a eles no fluxo tradicional.
.
-
Contagem nos Totais:
- Apesar de não possuírem número de parada/ordem, os pacotes "Extra" devem ser contabilizados normalmente como itens/objetos nos mostradores do topo da tela (PACOTES e PARADAS).
- Exemplo: Se houver 110 paradas normais e 8 pacotes extras, o mostrador de totais deve contabilizar os objetos corretamente no painel.
02- Respeito, Aprendizado e Mapeamento Dinâmico do Sentido das Vias
- Perfil de Veículo: Garantir que as requisições de rota utilizem o perfil explícito para carros/motos (profile: driving), respeitando o atributo oneway das vias.
- Inversão Manual: Ao inverter manualmente o sentido de uma rua na interface, o sistema deve salvar essa correção no banco de dados.
- Ajuste por GPS em Vias Conhecidas: Se o veículo rodar no sentido contrário ao cadastrado no mapa, a navegação deve reajustar a direção em tempo real e atualizar a base automaticamente.
- Mapeamento em Ruas Sem Informação (Triângulos Ausentes): Em vias que não possuem marcadores de sentido (sem os triângulos), o aplicativo deve capturar o vetor de deslocamento do GPS do veículo ao passar por elas e salvar automaticamente a direção percorrida como o sentido correto da rua para rotas futuras.
03- Correção na Contagem e Ordenação de Paradas (Parada vs Ordem)
- Remoção de Números Fantasmas: Corrigir a lógica de indexação para que a ordenação seja estritamente contínua (1, 2, 3 \dots N), eliminando números inexistentes no lote de entregas.
- Padronização da Interface: Garantir consistência nos rótulos e botões (ex: Parada 11 / Ordem 13), mantendo a integridade entre o total exibido no painel superior e os marcadores no mapa.
01. Pacotes do Tipo 'Extra':
- No mapa e nos ícones, pacotes extras devem ser exibidos com o símbolo "-" (sem número de parada ou de ordem).
- Importante: Mesmo sem número sequencial, eles devem ser contados como objetos nos contadores superiores de PACOTES e PARADAS.
2. Sentido das Ruas e Aprendizado Dinâmico:
- Usar perfil de veículo (driving) para respeitar vias de sentido único.
- Inversão Manual: Salvar o sentido correto no banco ao ser alterado na tela.
- Ajuste Automático por GPS: Se o veículo andar no sentido inverso ao mapa, reajustar a navegação e atualizar o banco.
- Mapeamento de Vias Sem Sinalização: Em ruas sem o indicador de sentido (sem os triângulos), registrar a direção percorrida pelo GPS e salvar automaticamente como o sentido válido da rua para as próximas rotas.
3. Correção nos Índices e Sequência das Paradas:
- Corrigir a inclusão de ordens/números inexistentes na lista.
- Padronizar a exibição dos lotes/cards (Parada X • Ordem Y) para manter uma sequência limpa e exata do início ao fim da rota."
Solicitação de Funcionalidade: Sistema de Fallback de IA e Exibição de Status do Provedor Ativo
Objetivo: Garantir que o sistema de roteirização não fique sem suporte de IA quando o Ollama não responder, implementando uma lista de contingência (fallback) com múltiplos provedores gratuitos, além de exibir no modal de confirmação qual IA processou com sucesso a rota.
1. Sistema de Contingência (Fallback) para Provedores de IA
Implementar uma fila de prioridade na requisição de IA. Caso o provedor primário falhe, fique offline ou dê timeout, o sistema deve tentar automaticamente a próxima opção antes de prosseguir sem IA.
Ordem sugerida de tentativa:
- Ollama Local (
http://localhost:11434) - LM Studio / Servidor Local Alternativo (
http://localhost:1234) - Groq API (Gratuito / Llama 3)
- OpenRouter API (Modelos Free)
- Google AI Studio / Gemini API (Plano gratuito)
- Fallback final: Prosseguir com o algoritmo de roteirização tradicional sem IA.
2. Indicação da IA Ativa na Interface
- Tela "Lista Carregada" (Modal de Confirmação):
- Se uma IA for utilizada com sucesso, exibir uma mensagem dinâmica confirmando qual serviço respondeu (Exemplo: "Otimizado via IA: Groq (Llama 3)" ou "IA local (Ollama) ativa").
- Se o sistema percorrer toda a lista de fallback e nenhuma IA responder, apresentar o aviso de falha apenas no final (Exemplo: "Nenhum serviço de IA respondeu. Seguindo com roteirização padrão.").
- Menu do Roterizador:
- Atualizar o botão e o texto de status dinamicamente de acordo com o provedor que está ativo ou configurado como preferencial no momento.
3. Exemplo de Lógica Esperada (Código)
const provedoresIA = [
{ nome: 'Ollama', endpoint: 'http://localhost:11434/api/...', tipo: 'local' },
{ nome: 'LM Studio', endpoint: 'http://localhost:1234/v1/...', tipo: 'local' },
{ nome: 'Groq API', endpoint: 'https://api.groq.com/openai/v1/...', tipo: 'cloud' },
{ nome: 'OpenRouter Free', endpoint: 'https://openrouter.ai/api/v1/...', tipo: 'cloud' }
];
async function processarRotaComFallback(dadosLista) {
for (const provedor of provedoresIA) {
try {
const resposta = await chamarProvedor(provedor, dadosLista);
if (resposta && resposta.sucesso) {
return {
sucesso: true,
provedorUtilizado: provedor.nome,
dadosRota: resposta.dados
};
}
} catch (error) {
console.warn(`Provedor ${provedor.nome} indisponível. Tentando próximo...`);
}
}
return {
sucesso: false,
provedorUtilizado: null,
dadosRota: gerarRotaPadraoSemIA(dadosLista)
};
}
Imagens de referência:
01- Exibição da Sequência do Lote (Três Modos de Ordenação)
Permitir que o painel de lote ("Lote Atual") exiba os botões alternando entre três modos de sequência, de acordo com a escolha do usuário:
- Modo 1: Sequência Numérica
- Exibe os itens em ordem crescente direta dos seus números (1, 2, 3 \dots N), considerando o filtro ativo (Paradas ou Ordens).
-
Modo 2: Sequência por Proximidade
- Ordena os botões do lote com base na distância real no mapa, exibindo primeiro as entregas mais próximas da posição atual do veículo.
- Modo 3: Sequência Pacotes Extras
- Agrupa e exibe especificamente a lista dos pacotes do tipo "Extra" ("-"), permitindo visualizá-los e gerenciá-los de forma isolada na fila.
2. Tratamento e Fluxo dos Pacotes do Tipo "Extra"
- Identificação Visual:
- Exibidos com o caractere "-" no mapa e nos ícones (sem número fixo de parada ou ordem).
- Ações de Pular ou Anular:
- Se o entregador clicar em "Pular" ou "Anular" em um pacote extra, o sistema deve movê-lo automaticamente para o final das entregas da rota.
- Tratamento no Encerramento:
- Se houver pacotes extras restantes não entregues durante o trajeto, o sistema deve deixá-los marcados para o final da rota, exibindo um aviso/notificação ao motorista ao concluir as entregas normais.
- Contagem nos Totais:
- Devem continuar a ser somados normalmente como 1 objeto nos mostradores superiores (PACOTES e PARADAS).
3. Sentido das Vias e Aprendizado Dinâmico
- Perfil de Veículo: Utilizar o perfil driving nas requisições do motor de rotas para respeitar vias de sentido único.
- Inversão Manual: Salvar no banco de dados qualquer sentido ajustado manualmente pelo usuário na tela.
- Ajuste por GPS: Se o veículo andar no sentido contrário ao do mapa, reajustar a navegação e atualizar o sentido da via automaticamente no banco.
- Vias Sem Informação (Triângulos Ausentes): Em ruas que não possuem indicação de sentido (sem os triângulos), capturar a direção do GPS do veículo ao trafegar por elas e salvar essa direção automaticamente como o sentido correto da rua.
Texto Resumo:
"Boas! Fiz um ajuste importante na parte dos lotes, agora são três opções de sequência:
1. Modos de Ordenação do Lote Atual:
- 01 - Sequência Numérica: Exibir botões em ordem crescente (1, 2, 3 \dots) conforme a seleção (Paradas ou Ordens).
- 02 - Sequência por Proximidade: Ordenar por distância real no mapa, exibindo primeiro os pontos mais próximos do veículo.
- 03 - Sequência Pacotes Extras: Filtrar e exibir apenas a lista dos pacotes extras ("-").
2. Regras para Pacotes Extras ("-"):
- Ao clicar em PULAR ou ANULAR num pacote extra, enviá-lo para o final das entregas.
- Se não forem entregues durante o percurso, mantê-los para o final da rota e avisar o entregador ao concluir os normais.
- Continuar contabilizando os extras como objetos nos mostradores do topo (PACOTES e PARADAS).
3. Ajustes de Ruas e GPS:
- Garantir perfil driving para evitar rotas na contramão.
- Salvar no banco as correções manuais de sentido das ruas.
- Se o veículo andar no sentido inverso, reajustar o mapa e atualizar o banco automaticamente.
- Em vias sem o triângulo de indicação, gravar a direção percorrida pelo GPS como o sentido correto da via."
Aqui estão as orientações organizadas para enviar ao seu designer/desenvolvedor para ajustar o ícone e redesenhar o painel superior de informações da interface:
1. Redesign do Ícone do Aplicativo (RotaFácil GPS)
Objetivo: Substituir o ícone atual por uma identidade visual mais moderna e profissional.
- Análise Visual: O ícone atual (com fundo preto e pin azul/amarelo) possui traços simples demais. O segundo ícone (azul claro com elemento centralizado) apresenta um acabamento estético mais refinado, uniforme e com cantos arredondados no estilo moderno de app de smartphone.
- Diretriz de Design:
- Nome do App: RotaFácil GPS.
- Conceito: Criar um ícone profissional mantendo o tema de localização/navegação/roteirização, com gradientes suaves, bordas arredondadas (estilo squircle) e um símbolo central forte e limpo (ex: um pin de GPS estilizado se fundindo a uma rota ou caixa de entrega).
2. Reestruturação do Painel de Status (Topo da Tela de Navegação)
Objetivo: Reorganizar os contadores em um bloco compacto com fundo escuro, juntando as métricas e o cronômetro para otimizar o espaço do mapa.
- Layout e Estrutura dos Quadros:
- Manter o fundo preto/escuro translúcido do painel.
- Organizar os dados em blocos simples (quadrados/retângulos arredondados, sem a necessidade de ícones).
- Disposição em Grade (Grid):
- Coluna 1 (Linha superior / Linha inferior):
PACOTES / ENTREGUES
- Coluna 2 (Linha superior / Linha inferior):
PARADAS / FALTA
- Coluna 3 (Centralizado/Ao lado):
TEMPO (Cronômetro integrado)
Texto Resumido para Copiar e Enviar:
"Boas! Preciso de dois ajustes visuais/UI no projeto:
1. Novo Ícone do App (RotaFácil GPS):
- O ícone atual está muito simples. Preciso de um redesenho com acabamento moderno e profissional (estilo app premium de logística/navegação), usando o nome RotaFácil GPS como referência.
2. Compactação do Painel Superior de Status:
- Reorganizar os contadores da parte superior da tela para ficarem mais juntos dentro de um mesmo bloco de fundo escuro/preto.
- Estrutura sugerida:
PACOTES e PARADAS (na linha de cima)
ENTREGUES e FALTA (logo abaixo deles)
TEMPO (cronômetro posicionado ao lado/na frente dos blocos para caber no mesmo espaço do topo).
- Não precisa de ícones dentro dos botões, apenas caixas simples retangulares/quadradas bem alinhadas."
Erro crítico:
Entendido! Analisando os dois prints, o erro está na regra de agrupamento/soma do sistema ao alternar o modo de visualização entre Paradas e Ordens:
- No modo Parada (
46-2): O sistema isola apenas 1 pacote daquela sub-parada individual.
- No modo Ordem (
-): O sistema junta TODOS os pacotes do endereço (Avenida da Saudade, nº 442), somando 24 pacotes e mostrando a lista inteira de ordens (- / - / 50 / 51 / 52... (+19)).
O correto é que a contagem e o agrupamento por endereço funcionem de forma consistente, independentemente de estar selecionado "Paradas" ou "Ordens".
Aqui está o relatório técnico para enviar ao seu programador corrigir essa inconsistência na lógica:
Especificação de Correção: Inconsistência de Agrupamento entre "Paradas" e "Ordens"
Problema Identificado:
Ao alternar o filtro do lote entre Paradas e Ordens, o sistema altera o comportamento de contagem de pacotes para o mesmo endereço (Avenida da Saudade, nº 442):
- Modo Paradas: Exibe a sub-parada fragmentada (ex:
Parada 46-2), contando apenas 1 pacote.
- Modo Ordens: Agrupa todas as ordens do mesmo endereço no mesmo ponto, resultando em 24 pacotes no total.
Regra Esperada:
O total de pacotes de um mesmo endereço (Rua + Número) deve ser sempre consistente ou seguir uma regra única de agrupamento, sem divergir dramaticamente entre os modos de exibição.
Ajustes Necessários no Código:
- Unificação da Lógica de Agrupamento por Endereço:
- Se o endereço possui 24 pacotes no total no mesmo local (
nº 442), essa quantidade precisa ser refletida de forma clara em ambos os modos.
- Se a parada for dividida em sub-paradas (ex:
46-1, 46-2), o card deve indicar a fração correta (ex: 1 pacote desta ordem / 24 pacotes no local) ou manter o total agrupado da parada pai (Parada 46).
- Consistência nos Indicadores de Ordem (O.E.):
- Garantir que no modo Paradas, o cabeçalho também informe o agrupamento das ordens pertencentes àquele ponto, em vez de isolar apenas uma fração sem contexto.
Texto Resumido para Copiar e Enviar ao Programador:
"Boas! Encontrei um bug na contagem de pacotes ao alternar entre Paradas e Ordens para o mesmo endereço (ex: Avenida da Saudade, nº 442):
- No modo Parada (
46-2): O app mostra apenas 1 pacote.
- No modo Ordem (
-): O app agrupa tudo e mostra 24 pacotes (O.E: - / - / 50 / 51...).
Correção necessária:
- Ajustar a query/função de agrupamento para que a contagem do local seja consistente em ambas as telas.
- Se o local tem 24 pacotes no total, isso precisa ser informado corretamente mesmo se o usuário estiver navegando por Paradas (mostrando o total do endereço ou especificando
x de 24 pacotes no local)."














Comentários
Postar um comentário