# 🔍 Problemas Reais no Fluxo de Negócio - SIGEFP **Data:** 2025-01-XX **Baseado em:** Análise real do código existente --- ## ✅ Confirmação: Funcionalidades Existentes ### Dotações - ✅ **Existe:** Botão Wallet (💼) na página `Linhas Orçamentais` - ✅ **Funcional:** Abre modal `BudgetLineEntriesModal` - ✅ **Completo:** Permite criar, visualizar todas as dotações ### Integrações - ✅ RH → Orçamento: COMMITMENT criado automaticamente - ✅ RH → Tesouro: PaymentOrder criado automaticamente - ✅ Tesouro → Orçamento: PAYMENT criado automaticamente --- ## 🎯 Problemas Identificados ### 1. **Falta de Clareza no Fluxo Inicial** 🔴 **Problema:** - Usuário não sabe que precisa criar dotações antes de abrir exercício - Botão Wallet pode não ser intuitivo - Não há validação ao abrir exercício sem dotações **Evidência:** - `FiscalYearService.open()` não valida se há dotações - Não há aviso visual se linha não tem dotações **Impacto:** - Usuário pode abrir exercício sem dotações - Pode tentar criar empenhos sem saldo disponível - Erros só aparecem durante execução --- ### 2. **Falta de Rastreabilidade Visual** 🟡 **Problema:** - Difícil rastrear link entre PaymentOrder e BudgetExecution - Não há indicação visual de que integrações são automáticas - Falta visão consolidada do fluxo end-to-end **Evidência:** - `BudgetExecution` tem `referenceId` mas não é exibido na UI - `PaymentOrder` tem `budgetLineId` mas não há link visual - Página de Execução não mostra origem (PaymentOrder.id) **Impacto:** - Dificulta auditoria - Dificulta troubleshooting - Usuário não entende como tudo se conecta --- ### 3. **Falta de Validação Preventiva** 🟡 **Problema:** - Validações só ocorrem durante execução - Não há validação ao criar PaymentOrder se há saldo orçamentário - Não há validação ao abrir exercício **Evidência:** - `PaymentOrderService.create()` não valida saldo orçamentário - `FiscalYearService.open()` não valida dotações - Validações só em `BudgetExecutionService.registerExecution()` **Impacto:** - Erros aparecem tarde no processo - Dificulta planejamento - Pode criar ordens sem saldo disponível --- ### 4. **Falta de Documentação Visual** 🟡 **Problema:** - Não há diagrama visual do fluxo - Não há indicação de que integrações são automáticas - Falta guia passo a passo **Impacto:** - Usuário não entende o fluxo completo - Dificulta onboarding - Dificulta treinamento --- ## 🔧 Correções Recomendadas ### Prioridade 1: Melhorar UX do Fluxo Inicial #### 1.1 Adicionar Validação ao Abrir Exercício **Arquivo:** `sigefp-budget/src/main/java/br/gov/sigefp/budget/service/FiscalYearService.java` ```java public FiscalYearDTO open(UUID id) { FiscalYear fiscalYear = fiscalYearRepository.findById(id) .orElseThrow(() -> new ResourceNotFoundException("Exercício fiscal não encontrado: " + id)); // NOVO: Validar se há dotações long budgetLinesWithAllocations = budgetLineRepository.countByFiscalYearIdAndHasAllocations(id); if (budgetLinesWithAllocations == 0) { throw new BusinessException( "Não é possível abrir exercício fiscal sem dotações. Crie dotações nas linhas orçamentárias primeiro.", "NO_ALLOCATIONS", HttpStatus.PRECONDITION_FAILED ); } // ... resto do código } ``` #### 1.2 Melhorar Indicador Visual de Dotações **Arquivo:** `sigefp-frontend/src/modules/budget/pages/BudgetLinesPage.tsx` ```typescript // Adicionar badge com número de dotações {line.totalAllocated > 0 && ( {formatCurrency(line.totalAllocated)} )} // Adicionar indicador se não tem dotações {line.totalAllocated === 0 && ( Sem dotação )} ``` #### 1.3 Melhorar Tooltip do Botão **Arquivo:** `sigefp-frontend/src/modules/budget/pages/BudgetLinesPage.tsx` ```typescript ``` --- ### Prioridade 2: Melhorar Rastreabilidade #### 2.1 Adicionar Coluna de Referência em BudgetExecution **Arquivo:** `sigefp-frontend/src/modules/budget/pages/BudgetExecutionPage.tsx` ```typescript { key: 'referenceId', header: 'Referência', cell: (execution: BudgetExecutionDTO) => { if (!execution.referenceId) return '-'; return ( {execution.referenceId.substring(0, 8)}... ); }, } ``` #### 2.2 Adicionar Link para BudgetExecution em PaymentOrder **Arquivo:** `sigefp-frontend/src/modules/treasury/pages/PaymentOrdersPage.tsx` ```typescript { key: 'budgetExecution', header: 'Execução Orçamentária', cell: (order: PaymentOrderDTO) => { if (!order.budgetLineId) return '-'; return ( Ver Execução ); }, } ``` --- ### Prioridade 3: Adicionar Validações Preventivas #### 3.1 Validar Saldo ao Criar PaymentOrder **Arquivo:** `sigefp-treasury/src/main/java/br/gov/sigefp/treasury/service/PaymentOrderService.java` ```java public PaymentOrderDTO create(CreatePaymentOrderDTO dto) { // NOVO: Validar saldo orçamentário se budgetLineId presente if (dto.getBudgetLineId() != null) { budgetIntegrationService.validateBudgetAvailability( dto.getBudgetLineId(), dto.getNetAmount() ); } // ... resto do código } ``` --- ### Prioridade 4: Criar Documentação Visual #### 4.1 Criar Diagrama de Fluxo Criar arquivo `FLUXO_VISUAL_COMPLETO.md` com: - Diagrama de sequência - Fluxo de estados - Integrações automáticas destacadas --- ## 📋 Checklist de Implementação ### UX/UI - [ ] Adicionar validação ao abrir exercício fiscal - [ ] Adicionar badge com valor de dotação nas linhas - [ ] Adicionar indicador se linha não tem dotação - [ ] Melhorar tooltip do botão Wallet ### Rastreabilidade - [ ] Adicionar coluna "Referência" em BudgetExecution - [ ] Adicionar link para PaymentOrder em BudgetExecution - [ ] Adicionar link para BudgetExecution em PaymentOrder - [ ] Adicionar breadcrumbs nas páginas ### Validações - [ ] Validar saldo orçamentário ao criar PaymentOrder - [ ] Validar dotações ao abrir exercício fiscal - [ ] Adicionar validações preventivas ### Documentação - [ ] Criar diagrama visual do fluxo - [ ] Documentar integrações automáticas - [ ] Criar guia passo a passo visual --- ## 🎯 Resumo dos Problemas | Problema | Prioridade | Impacto | Solução | |----------|------------|---------|---------| | Falta clareza no fluxo inicial | 🔴 Alta | Usuário não sabe como começar | Validação + UX melhorada | | Falta rastreabilidade visual | 🟡 Média | Dificulta auditoria | Links entre páginas | | Falta validação preventiva | 🟡 Média | Erros aparecem tarde | Validações antecipadas | | Falta documentação visual | 🟡 Média | Dificulta onboarding | Diagramas e guias | --- **Documento gerado em:** 2025-01-XX **Versão:** 1.0