diff --git a/Poc/README.md b/Poc/README.md new file mode 100644 index 0000000..fbe8087 --- /dev/null +++ b/Poc/README.md @@ -0,0 +1,122 @@ +# Poc — Scope Manager Evoluído: Projetos Engenheirados de Máquinas Elétricas Girantes + +Esta pasta contém os artefatos de modelagem para a solução recomendada de **Gerenciamento de Projetos Engenheirados de Máquinas Elétricas Girantes** (Scope Manager Evoluído — Opções 1 + 4). + +--- + +## 👁️ Visualização Rápida Online (sem instalar nada) + +> Clique nos links abaixo para abrir cada arquivo diretamente no navegador: + +| Arquivo | Abrir Online | Descrição | +|---|---|---| +| 📐 `architecture-diagram.drawio` | **[▶ Abrir no diagrams.net](https://app.diagrams.net/#Uhttps://raw.githubusercontent.com/filhormnilton/PythonCode/main/Poc/architecture-diagram.drawio)** | Diagrama de arquitetura — Fluxo Padrão + Módulo Engenheirado + API | +| 🔄 `engineered-project-flow.bpmn` | **[▶ Abrir no bpmn.io](https://demo.bpmn.io/)** *(faça upload do arquivo)* | Processo BPMN 2.0 com 5 swim lanes e gates de aprovação | +| 📄 `README.md` | Você está aqui ✅ | Renderizado automaticamente pelo GitHub | + +### Como visualizar o diagrama Draw.io (1 clique) +1. Clique no link **"▶ Abrir no diagrams.net"** na tabela acima +2. O diagrama abrirá automaticamente no navegador, sem login nem download + +### Como visualizar o BPMN (sem instalar o Camunda Modeler) +**Opção A — bpmn.io (online, gratuito):** +1. Acesse **[demo.bpmn.io](https://demo.bpmn.io/)** +2. Clique em **"open"** ou arraste o arquivo `engineered-project-flow.bpmn` para a página + +**Opção B — Camunda Modeler (desktop, completo):** +1. Baixe e instale o **[Camunda Modeler](https://camunda.com/download/modeler/)** (versão 5+) +2. Abra o app e clique em **File → Open File…** +3. Selecione `engineered-project-flow.bpmn` + +**Opção C — VS Code:** +1. Instale a extensão **[BPMN Editor](https://marketplace.visualstudio.com/items?itemName=bpmnio.bpmn-vscode-extension)** no VS Code +2. Abra o arquivo `.bpmn` diretamente no editor — ele renderiza automaticamente + +--- + +## Arquivos desta pasta + +| Arquivo | Descrição | Ferramenta | +|---|---|---| +| `engineered-project-flow.bpmn` | Processo BPMN 2.0 completo do fluxo engenheirado, com 5 swim lanes, gateways, boundary timers e service tasks | Camunda Modeler v5+ / bpmn.io | +| `architecture-diagram.drawio` | Diagrama de arquitetura com as 3 seções da solução: Fluxo Padrão, Módulo Engenheirado e Orquestração API | app.diagrams.net / VS Code Draw.io | +| `README.md` | Esta documentação | GitHub / qualquer editor Markdown | + +--- + +## Comparativo: Produto Padrão vs Projeto Engenheirado + +| Dimensão | Produto Padrão (atual) | Projeto Engenheirado (novo) | +|---|---|---| +| **Escopo** | Fixo / configurável por hierarquia | Variável / customizado por projeto | +| **Hierarquia** | Rígida: `Configuration → Platform → Product → Commercial → ElectricalPlatform → ElectricalProject → Collection` | Flexível: `EngineeringProject → AnchorProduct + DeviationRegister + ApprovalGates → ScopeConsolidation` | +| **Rastreabilidade** | Por plataforma e produto | Por projeto e cliente, com rastreio de cada desvio | +| **Ciclo de Vida** | Cotação → Pedido | Requisito → Engenharia → Aprovação Técnica → Aprovação Comercial → Cotação | +| **Reuso** | Alto (templates rígidos) | Médio (produto âncora + delta de desvios) | +| **Aprovações** | Automáticas (fluxo padrão) | Manuais por etapa: Gate 1 (Técnico) e Gate 2 (Comercial), com timeout de 5 dias | + +--- + +## Entidades do Módulo Engenheirado + +### `EngineeringProject` +Entidade de primeiro nível que representa um projeto engenheirado. Contém: +- `cliente` — identificação do cliente +- `descricao` — descrição do projeto +- `prazo` — data limite +- `tipo` — `ENGINEERED` ou `SEMI-ENGINEERED` +- `status` — `DRAFT | TECHNICAL_REVIEW | COMMERCIAL_REVIEW | LIBERADO_PARA_COTACAO` + +### `AnchorProduct` +Referência a um produto existente no fluxo padrão do Scope Manager (obtido via Finder na `Collection ElectricalSystem`). Serve como base para o escopo engenheirado. Todos os desvios são registrados em relação a este produto âncora. + +### `DeviationRegister` +Lista de desvios em relação ao produto âncora. Cada desvio contém: +- `campo` — campo ou especificação que diverge +- `spec` — especificação customizada para este projeto +- `bom_impact` — impacto na lista de materiais (BOM) +- `justificativa_tecnica` — obrigatório para desvios críticos + +### `ApprovalGates` +Workflow de aprovação em duas etapas: +- **Gate 1 — Technical Review:** Revisão pelo Aprovador de Engenharia. Timeout de 5 dias gera notificação de reescalonamento. +- **Gate 2 — Commercial Review:** Revisão pelo Aprovador Comercial. Timeout de 5 dias gera notificação de reescalonamento. +- Em caso de rejeição no Gate 1, o Engenheiro revisa os desvios. +- Em caso de rejeição no Gate 2, o Solicitante revisa os requisitos. + +### `ScopeConsolidation` +Output final do processo engenheirado: +- Consolida automaticamente: **Produto Âncora + Lista de Desvios aprovados** +- Gera status `LIBERADO_PARA_COTACAO` +- Alimenta o processo de cotação ao cliente + +--- + +## Processo BPMN — Swim Lanes + +| Lane | Responsabilidade | +|---|---| +| **Solicitante Comercial** | Inicia o projeto, seleciona âncora, revisa requisitos (se rejeitado), envia cotação ao cliente | +| **Engenheiro Elétrico** | Captura requisitos técnicos, registra desvios, documenta justificativas técnicas, revisa desvios (se rejeitado) | +| **Aprovador de Engenharia** | Aprova ou rejeita o escopo técnico consolidado (Gate 1) | +| **Aprovador Comercial** | Aprova ou rejeita a cotação e escopo consolidado (Gate 2) | +| **Sistema (Scope Manager)** | Verifica existência de desvios críticos, consolida o escopo (Âncora + Desvios), gera output de cotação | + +--- + +## Nota de Compatibilidade + +### BPMN — Camunda 7 (namespace atual) +O arquivo `engineered-project-flow.bpmn` usa o namespace **Camunda Platform 7**: +```xml +xmlns:camunda="http://camunda.org/schema/1.0/bpmn" +``` + +### Migração para Camunda 8 / Zeebe +Para migrar para **Camunda 8 (Zeebe)**, as seguintes alterações são necessárias: +- Substituir `xmlns:camunda` por `xmlns:zeebe="http://camunda.org/schema/zeebe/1.0"` +- Substituir `camunda:assignee` por `zeebe:assignmentDefinition assignee="..."` dentro de `` +- Substituir `camunda:expression` em Service Tasks por `zeebe:taskDefinition type="..."` com workers Zeebe +- Substituir `camunda:formData` por `zeebe:userTaskForm` ou formulários Camunda Forms +- Revisar `camunda:candidateGroups` para o formato Zeebe equivalente +- Usar a ferramenta **[Camunda Modeler Migration Assistant](https://docs.camunda.io/docs/guides/migrating-from-camunda-7/)** para automatizar parte da migração diff --git a/Poc/architecture-diagram.drawio b/Poc/architecture-diagram.drawio new file mode 100644 index 0000000..03c0b22 --- /dev/null +++ b/Poc/architecture-diagram.drawio @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Poc/engineered-project-flow.bpmn b/Poc/engineered-project-flow.bpmn new file mode 100644 index 0000000..69d0fc6 --- /dev/null +++ b/Poc/engineered-project-flow.bpmn @@ -0,0 +1,556 @@ + + + + + + + + + startEvent_1 + task_criar_projeto + task_selecionar_anchor + task_revisar_requisitos + task_enviar_cotacao + endEvent_1 + + + task_capturar_requisitos + task_registrar_desvios + task_documentar_justificativa + task_revisar_desvios + + + task_revisar_escopo_tecnico + gateway_aprovado_eng + + + task_revisar_cotacao + gateway_aprovado_comercial + + + task_consolidar_scope + gateway_desvios_criticos + task_gerar_output + + + + + + flow_start_to_criar + + + + flow_enviar_to_end + + + + + Criar projeto engenheirado com: cliente, descrição, prazo, tipo (ENGINEERED/SEMI-ENGINEERED) + + + + + + + + + + + + flow_start_to_criar + flow_criar_to_anchor + + + + Buscar produto âncora no Collection ElectricalSystem via Finder + + + + + + + flow_criar_to_anchor + flow_anchor_to_requisitos + + + + Revisão de requisitos após rejeição comercial + flow_rejeitado_comercial + flow_revisao_to_capturar + + + + Enviar cotação final aprovada ao cliente + flow_output_to_enviar + flow_enviar_to_end + + + + + Capturar: ElectricalSpecs, MechanicalConstraints, SiteConditions + + + + + + + + flow_anchor_to_requisitos + flow_revisao_to_capturar + flow_requisitos_to_desvios + + + + Registrar todos os desvios em relação ao produto âncora (campo, spec, impacto BOM) + + + + + + + flow_requisitos_to_desvios + flow_revisar_desvios_to_registrar + flow_desvios_to_gateway + + + + Documentar justificativa técnica para desvios críticos identificados + + + + + + flow_gateway_sim + flow_justificativa_to_consolidar + + + + Revisar desvios após rejeição da aprovação de engenharia + flow_rejeitado_eng + flow_revisar_desvios_to_registrar + + + + + flow_desvios_to_gateway + flow_gateway_sim + flow_gateway_nao + + + + flow_revisar_escopo_to_gateway_eng + flow_aprovado_eng + flow_rejeitado_eng + + + + flow_revisar_cotacao_to_gateway_comercial + flow_aprovado_comercial + flow_rejeitado_comercial + + + + + Consolidar: Scope Final = Produto Âncora + Lista de Desvios aprovados + flow_gateway_nao + flow_justificativa_to_consolidar + flow_consolidar_to_gate1 + + + + Gerar output final: Status = LIBERADO PARA COTAÇÃO + flow_aprovado_comercial + flow_output_to_enviar + + + + + Gate 1 — Revisar escopo técnico consolidado (Âncora + Desvios) + + + + + + + + + + flow_consolidar_to_gate1 + flow_timer_gate1 + flow_revisar_escopo_to_gateway_eng + + + + + PT5D + + flow_timer_gate1 + + + + Gate 2 — Revisar cotação e escopo consolidado aprovado pela engenharia + + + + + + + + + + flow_aprovado_eng + flow_timer_gate2 + flow_revisar_cotacao_to_gateway_comercial + + + + + PT5D + + flow_timer_gate2 + + + + + + + + + + ${desvios_criticos == true} + + + ${desvios_criticos == false} + + + + + + + ${aprovacao_eng == 'APROVADO'} + + + ${aprovacao_eng == 'REJEITADO'} + + + + + + ${aprovacao_comercial == 'APROVADO'} + + + ${aprovacao_comercial == 'REJEITADO'} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/README.md b/README.md index a603b5f..592752d 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,38 @@ Ferramenta CLI para gerenciamento de configurações via APIs do Orchestra (WEG). -## Estrutura +--- + +## 📁 Estrutura do Repositório + +``` +PythonCode/ +├── Poc/ # ← Pasta Poc (ver abaixo) +│ ├── README.md +│ ├── architecture-diagram.drawio +│ └── engineered-project-flow.bpmn +├── orchestra_tool/ +│ ├── api/ +│ ├── models/ +│ ├── services/ +│ └── utils/ +├── main.py +└── requirements.txt +``` + +## 📂 Pasta Poc — Scope Manager Evoluído + +> A pasta **[`Poc/`](./Poc/)** contém os artefatos de modelagem para o módulo de **Projetos Engenheirados de Máquinas Elétricas Girantes**. + +| Arquivo | Visualizar Online | +|---|---| +| `architecture-diagram.drawio` | **[▶ Abrir no diagrams.net](https://app.diagrams.net/#Uhttps://raw.githubusercontent.com/filhormnilton/PythonCode/main/Poc/architecture-diagram.drawio)** | +| `engineered-project-flow.bpmn` | **[▶ Abrir no bpmn.io](https://demo.bpmn.io/)** (arraste o arquivo) | +| `README.md` (documentação completa) | **[📄 Ver documentação](./Poc/README.md)** | + +--- + +## Estrutura do `orchestra_tool` ``` orchestra_tool/