# Pontos de Interesse - Identificação de Transito na Área

## Descrição da Interface

O módulo apresentado é utilizado para identificação de veículos em áreas geográficas específicas. A interface possui duas telas principais: uma tela de listagem (pesquisa) e uma tela de edição/criação, ambas com o título "Identificação de Trânsito na Área" e é parte do sistema de gerenciamento de frota "CONCEPT RASTREAMENTO".

A primeira tela exibe uma lista de registros em formato tabular, permitindo ao usuário visualizar, filtrar e interagir com os dados. A segunda tela permite a criação e edição de novos registros, com um componente de mapa para definição de áreas geográficas através de polígonos.

Os usuários podem definir áreas geográficas específicas e períodos de tempo para identificar veículos que transitaram por essas áreas. O processamento em batch acontece a cada 30 minutos.

Para acessar clique no menu FROTAS, seção PONTOS DE INTERESSE, opção IDENTIFICAÇÃO DE TRÂNSITO NA ÁREA.

## Elementos da Interface

### Tela de Listagem (Pesquisa)

#### Seção de Filtros

- **Nome**: Campo de texto para filtrar registros pelo nome
- **Botões de Ação**: 
    - Botão de Pesquisa (ícone de lupa)
    - Botão Limpar Filtros (ícone de arquivo)
    - Botão Novo (ícone de adição)

#### Tabela de Registros

- **Colunas**: 
    - **\#**: Número sequencial
    - **NOME**: Nome do registro
    - **PERÍODO**: Período de início e fim (formato dd/mm/yy)
    - **HORÁRIO**: Horário de início e fim (formato hh:mm:ss)
    - **STATUS**: Status do processamento (valores: NAO\_INICIADO, EM\_PROCESSAMENTO, FINALIZADO)
    - **HORA STATUS**: Data e hora da última atualização do status
    - **PROGRESSO**: Percentual de conclusão do processamento (0-100%)

#### Rodapé

- Contador de registros: Exibe o total de registros encontrados

### Tela de Edição/Criação

#### Seção de Formulário

- **Nome**: Campo de texto obrigatório
- **Período Início**: Dois seletores de data para definir o período de início e fim (obrigatórios)
- **Horário**: Dois seletores de hora para definir o horário de início e fim

#### Seção de Informações do Registro (visível apenas para registros existentes)

- **Cadastrado**: Data e hora de cadastro
- **Status**: Status atual do processamento
- **Data Status**: Data e hora da última atualização do status
- **Progresso**: Percentual de conclusão do processamento

#### Seção de Mapa

- **Botões de Controle**: 
    - Botão Limpar: Remove todos os pontos do mapa
    - Botão Localizar Endereço: Abre um diálogo para buscar um endereço específico
    - Botão Centralizar Perímetro: Centraliza o mapa no perímetro definido (visível apenas quando há pontos no mapa)
- **Mapa Interativo**: Interface do Google Maps onde o usuário pode clicar para adicionar pontos e formar um polígono

#### Seção de Resultado (visível apenas para registros existentes)

- Área de texto para exibição dos resultados do processamento

#### Botões de Ação

- **Gravar**: Salva o registro (disponível somente se o status for NAO\_INICIADO)
- **Excluir**: Remove o registro (não disponível se o status for EM\_PROCESSAMENTO)
- **Voltar**: Retorna para a tela de listagem

#### Modal de Pesquisa de Endereço

- Campo de texto para inserir o endereço a ser pesquisado
- Botões OK e Fechar

## Propósito e Fluxo de Trabalho

Este sistema tem como propósito permitir a identificação de veículos que transitaram por áreas geográficas específicas em determinados períodos. O fluxo de trabalho típico é:

1. O usuário acessa a tela de listagem para visualizar os registros existentes
2. Para criar um novo registro, o usuário clica no botão Novo
3. Na tela de edição, o usuário: 
    - Define um nome para a identificação
    - Seleciona o período de datas para análise
    - Seleciona o horário de início e fim para cada dia
    - Define o perímetro no mapa, clicando para adicionar pontos
4. Após configurar todos os parâmetros, o usuário salva o registro
5. O sistema inicia o processamento em segundo plano (batch)
6. O usuário pode acompanhar o progresso acessando novamente o registro
7. Quando o processamento é concluído, o resultado é exibido na área específica

O sistema utiliza um processo em lote (batch) para analisar os dados de rastreamento dos veículos e identificar quais veículos passaram pelo perímetro definido durante o período especificado.

## Instruções Passo a Passo

### Como Criar uma Nova Identificação de Trânsito

1. Na tela de listagem, clique no botão com ícone "+" (Novo)
2. Na tela de edição: 
    - Digite um nome descritivo no campo "Nome"
    - Selecione a data de início e a data de fim para o período de análise
    - Defina o horário de início e fim para cada dia do período
3. Defina o perímetro no mapa: 
    - Utilize o botão "Localizar Endereço" para encontrar a área desejada
    - Clique no mapa para adicionar pontos ao perímetro (mínimo de 3 pontos)
    - O sistema desenhará automaticamente o polígono conforme você adiciona pontos
    - Se necessário, use o botão "Limpar" para recomeçar
4. Verifique se todos os campos obrigatórios estão preenchidos corretamente
5. Clique no botão "Gravar" para salvar a identificação
6. O sistema retornará automaticamente para a tela de listagem

### Como Consultar os Resultados de uma Identificação

1. Na tela de listagem, localize o registro desejado na tabela
2. Clique na linha correspondente ao registro
3. Na tela de edição, o sistema exibirá: 
    - As informações do registro
    - O perímetro definido no mapa
    - O status atual do processamento e o progresso
    - Se o processamento estiver concluído, os resultados serão exibidos na área específica

### Como Filtrar Registros na Listagem

1. Na tela de listagem, digite o nome ou parte do nome no campo de filtro
2. Clique no botão com ícone de lupa para pesquisar
3. A tabela será atualizada exibindo apenas os registros que correspondem ao filtro
4. Para limpar o filtro, clique no botão com ícone de arquivo

### Como Excluir uma Identificação

1. Na tela de listagem, localize o registro desejado na tabela
2. Clique na linha correspondente ao registro
3. Na tela de edição, clique no botão "Excluir"
4. Confirme a exclusão quando solicitado
5. O sistema retornará automaticamente para a tela de listagem

**Nota**: Não é possível excluir registros com status "EM\_PROCESSAMENTO".

## Regras de Negócio e Validações

### Validações do Formulário

1. **Nome**: Campo obrigatório, não pode estar em branco
2. **Período**: 
    - Data de início e data de fim são obrigatórias
    - A data de fim deve ser posterior à data de início
3. **Perímetro**: 
    - É necessário definir no mínimo 3 pontos para formar um polígono válido

### Regras de Processamento

1. **Status de Processamento**:
    
    
    - **NAO\_INICIADO**: Estado inicial após a criação do registro
    - **EM\_PROCESSAMENTO**: O processamento está em andamento
    - **FINALIZADO**: O processamento foi concluído
2. **Restrições de Edição e Exclusão**:
    
    
    - Não é possível alterar registros com status diferente de "NAO\_INICIADO"
    - Não é possível excluir registros com status "EM\_PROCESSAMENTO"
3. **Processamento em Lote**:
    
    
    - O sistema processa os registros em segundo plano
    - Para cada dia no período especificado, o sistema verifica os veículos que passaram pelo perímetro definido
    - Os horários de início e fim são aplicados para cada dia do período
    - O progresso é atualizado conforme o processamento avança
    - Os resultados mostram as placas dos veículos e os horários em que passaram pelo perímetro
4. **Visualização de Marcadores no Mapa**:
    
    
    - Os marcadores são exibidos no mapa de acordo com o nível de zoom
    - O sistema agrupa ou reduz a quantidade de marcadores exibidos para melhorar o desempenho

## Perguntas Frequentes

### 1. O que é a "Identificação de Trânsito na Área"?

É uma funcionalidade que permite definir uma área geográfica e um período de tempo para identificar quais veículos transitaram por essa área durante o período especificado.

### 2. Como funciona o processamento?

Após salvar um registro, o sistema analisa os dados de rastreamento dos veículos da frota durante o período definido e verifica quais deles passaram dentro do perímetro estabelecido no mapa. O processamento é realizado em lote e pode levar algum tempo dependendo da quantidade de dados a serem analisados.

### 3. Por que não consigo editar um registro já processado?

Por questões de integridade dos dados, não é permitido alterar registros que já foram processados ou estão em processamento. Se precisar fazer alterações, é necessário criar um novo registro.

### 4. O que significa o campo "Progresso"?

O campo "Progresso" indica o percentual de conclusão do processamento em lote. Ele vai de 0% a 100%, sendo atualizado conforme o processamento avança.

### 5. Como definir corretamente um perímetro no mapa?

Para definir um perímetro, você deve clicar no mapa para adicionar pontos que formarão um polígono. É necessário adicionar pelo menos 3 pontos para formar um polígono válido. Os pontos podem ser arrastados para ajustar o perímetro conforme necessário.

### 6. Posso programar uma identificação para ser executada no futuro?

Não, o sistema processa as identificações assim que são criadas ou quando o processo em lote é iniciado. Não há uma funcionalidade de agendamento.

### 7. O que acontece se eu definir um período muito longo?

Períodos mais longos resultarão em processamentos mais demorados, pois o sistema precisará analisar uma quantidade maior de dados. O progresso será exibido para que você possa acompanhar o andamento.

### 8. Como posso encontrar um endereço específico no mapa?

Utilize o botão "Localizar Endereço" na tela de edição para abrir um diálogo onde você pode inserir o endereço desejado. O sistema utilizará o serviço Nominatim para localizar o endereço e centralizar o mapa nessa posição.

### 9. O que acontece se não houver veículos no perímetro durante o período?

Se nenhum veículo for identificado dentro do perímetro durante o período especificado, o resultado ficará vazio após o processamento ser concluído.

### 10. Como posso ver os resultados de uma identificação já processada?

Na tela de listagem, clique no registro desejado para acessar a tela de edição, onde os resultados serão exibidos na área específica à direita do mapa, mostrando as placas dos veículos e os horários em que passaram pelo perímetro.