Histórico da Página
01. DADOS GERAIS
| Produto: | TOTVS Agro Plataforma (API + FRONT) |
|---|---|
| Linha de Produto: | Linha PIMS |
| Segmento: | Agroindústria |
| Módulo: | Framework |
| Função: | Todas |
| País: | Brasil |
| Ticket: | |
| Requisito/Story/Issue (informe o requisito relacionado) : |
DAGROFRAME-5541 - Plataforma Agro (Frontend) :: Validação ao logar (licenças de usuários/dispositivos excedidas) (Imagem 1 & Imagem 2) Concluído DAGROFRAME-5542 - Plataforma Agro (Frontend) :: Nova tela de "Gestão de Licenças" (botão ação grid "Clientes") (Imagem 3) Concluído
02. SITUAÇÃO/REQUISITO
|
02. SITUAÇÃO/REQUISITO
- Construir APIs e tela para:
- Visualizar histórico de pulsos de licença enviados pelos aplicativos móveis com às colunas: Ações, T-Code, ID Dispositivo, Aplicativo, ID Usuário, Tipo Pulso, Pulsado Em e Data Atualização;
- Coluna Ações deverá ter ícone de documento que abre modal para exibir Detalhes do Token de Licença;
- Coluna Tipo Pulso deverá exibir badges coloridos diferenciados por tipo de pulso:
- LOGIN_SUCCESS, DATA_SYNC_SUCCESS, APP_OPENING e DATA_SYNC_FIRST em verde (color-10);
- LOGIN_FAILURE e DATA_SYNC_FAILURE em vermelho (color-07);
- APP_CLOSE em cinza (color-05);
- LOGIN_ATTEMPT e DATA_SYNC_ATTEMPT em amarelo (color-02);
- OTHER em roxo (color-08).
- Colunas Pulso Em e Data Atualização deverão exibir data no formato dd/MM/yyyy HH:mm:ss (exemplo: 13/11/2025 10:32:20) (considerando UTC);
- Filtrar dados por cliente (T-Code), Data Inicial, Data Final, Aplicativo, Usuário, Dispositivo Móvel, Tipo Pulso, Status (status da licença) e Autorizado;
- Exibir métricas agregadas de Dispositivos Únicos, Aplicativos Únicos e Usuários Únicos em relação ao Total de Registros;
- Permitir busca rápida por texto livre com correspondência parcial (case-insensitive)
- Visualizar histórico de pulsos de licença enviados pelos aplicativos móveis com às colunas: Ações, T-Code, ID Dispositivo, Aplicativo, ID Usuário, Tipo Pulso, Pulsado Em e Data Atualização;
- Visualizar histórico completo de pulsos de licença enviados pelos aplicativos móveis;
- Filtrar dados por cliente (T-Code), aplicativo, dispositivo, usuário, tipo de pulso, período (datas), status da licença e autorização;
- Exibir métricas agregadas de dispositivos únicos, aplicativos únicos e usuários únicos em relação ao total de registros;
- Permitir busca rápida por texto livre com correspondência parcial (case-insensitive)
- nos campos: T-Code, ID
- Dispositivo, Nome App, Nome Exibição App, ID Usuário, Tipo Pulso, Mensagem (token de licença) e Status (token de licença);
- Exportar dados
- filtrados para arquivo CSV com mesmo critério de busca aplicado na tela (desconsiderar paginação);
- Visualizar detalhes
- de cada pulso incluindo informações do token de licença (
- Data Emissão,
- Expiração,
- Status,
- Autorização,
- Mensagem) e dados JSON do evento Dados (Pulso);
- Validar período de datas obrigatoriamente em conjunto (ambas devem ser preenchidas) e garantir que data final seja maior ou igual à inicial;
- Exibir badges coloridos diferenciados por tipo de pulso:
- LOGIN_SUCCESS, DATA_SYNC_SUCCESS, APP_OPENING e DATA_SYNC_FIRST em verde (color-10);
- LOGIN_FAILURE e DATA_SYNC_FAILURE em vermelho (color-07);
- APP_CLOSE em cinza (color-05);
- LOGIN_ATTEMPT e DATA_SYNC_ATTEMPT em amarelo (color-02);
- OTHER em roxo (color-08).
- Definir filtros de data padrão automaticamente ao carregar a tela, sendo Data Inicial o primeiro dia do mês corrente e Data Final o dia atual;
- Manter persistência do arquivo exportado em localStorage permitindo download posterior, só é atualizado se clicar no botão "Confirmar" e caso a aba seja recarregada;
- Aplicar formatação CSS compacta na tabela para melhor visualização de grande volume de dados (modificar CSS da tabela do PO UI no componente da tela);
03. SOLUÇÃO
- Refatorado o fluxo de login para centralizar o set/captura do token, evitando múltiplos pontos de manipulação e corrigindo problemas de autenticação;
- Implementada verificação de licenças excedidas após login (para Role do tipo CLIENTE);
- Adicionada coluna de ações na tabela de Gestão de Clientes para redirecionamento à tela de Gestão de Licenças;
- Criada tela "Gestão de Licenças" com dois containers:
- Licença (container superior): permite gerenciar a licença geral do cliente, com opção de habilitar/desabilitar (switch) e inputs numéricos para "Acessos", "Usuários Móveis" e "Dispositivos Móveis";
- Configurações por Aplicativos Móveis (container inferior): exibe tabela com colunas "Aplicativo Móvel", "Autorizado" (badge verde/vermelho), "Acessos", "Dispositivos Móveis" e "Ações" (ícone de lápis para editar). Ao editar, abre modal com botão "Confirmar" que insere ou atualiza os dados.
...
- Back-End (foram desenvolvidas APIs no endpoint /v1/services/license/pulse/history):
- Método: GET | Endpoint: /client-distinct | Descrição: Retorna lista de clientes únicos (tcode + displayName) para popular filtro T-Code;
- Método: POST | Endpoint: /app-distinct | Descrição: Retorna lista de aplicativos móveis únicos, opcionalmente filtrados por tcodes (body);
- Método: POST | Endpoint: /device-distinct | Descrição: Retorna lista de dispositivos únicos, opcionalmente filtrados por tcodes (body);
- Método: POST | Endpoint: /user-distinct | Descrição: Retorna lista de usuários únicos, opcionalmente filtrados por tcodes (body);
- Método: POST | Endpoint: /metrics-distinct | Descrição: Retorna métricas agregadas (dispositivos, apps, usuários únicos + total de registros) (filtro body);
- Método: POST | Endpoint: /filter | Descrição: Retorna dados paginados aplicando filtros (body) e paginação;
- Método: POST | Endpoint: /export | Descrição: Exporta todos dados filtrados para CSV (ignora paginação).
- Front-end: (foram desenvolvidos os seguintes recursos):
Inicialização automática:
- Carrega opções de filtros via 4 APIs distintas (clientes, apps, dispositivos, usuários);
- Define datas padrão: 1º dia do mês atual até hoje;
- PO-UI dispara busca automaticamente ao preencher initValue nas datas.
- Widgets de métricas:
- Dispositivos Únicos / Total Registros na Tabela;
- Aplicativos Únicos / Total Registros na Tabela;
- Usuários Únicos / Total Registros na Tabela.
- Colunas da Tabela (Ações | T-Code | ID Dispositivo | Aplicativo | Usuário ID | Tipo Pulso (badge colorido) | Pulsado em | Data Criação);
- Busca rápida: Campo texto livre que busca em 8 campos (limpa filtros avançados);
- Busca avançada: 9 filtros com validação de datas obrigatórias juntas e data final ≥ inicial;
- Modal de detalhes:
- Com Token E Dados: Exibe seção token completa + JSON;
- Sem Token, Com Dados: Oculta seção token, exibe apenas JSON;
- Com Token, Sem Dados: Exibe token completo, JSON vazio {};
- Sem Token E Sem Dados: Modal não abre, exibe notificação informativa.
- Exportação CSV:
- Botão desabilitado se tabela vazia;
- Confirmação via popover com loading (mínimo 500ms);
- Referência do Blob salvo em localStorage com persistência entre recargas;
- Nome arquivo: license-pulse-history-YYYY-MM-DD.csv;
- Limpeza automática no ngOnDestroy.
CSS da tabela do PO UI customizado:
- font-size 11px, padding 6px, line-height 0.9;
- Escopo local (:host ::ng-deep) para não afetar outras telas.
- Demonstração:
- Figura 1:
- Figura 2:
- Figura 3:
- Figura 4:
04. DEMAIS INFORMAÇÕES
Não se aplica.
05. ASSUNTOS RELACIONADOS
Não se aplica.
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas







