7.6 KiB
| name | description |
|---|---|
| analise-ncs | Gera o Relatório de Qualidade ISO 9001 multi-abas da De Paula Contadores a partir do PAR de arquivos exportados do Sigsistem: o .xlsx de OCORRÊNCIAS (dados estruturados) e o .xls de AÇÕES (HTML, fonte dos relatos de acompanhamento). Use SEMPRE que o usuário anexar esses dois arquivos (nomes típicos: "ocorrencias_pa_DDMMAAAA.xlsx" e "acoes_DDMMAAAA.xls" / "acoesDDMMAAAA.xls") e pedir para "gerar o relatório", "rodar o relatório de qualidade", "analisar as ocorrências", "fazer a análise da planilha", "formatar a planilha de ocorrências", ou mencionar ações em atraso, acompanhamentos, NCs sem ação corretiva, ocorrências sem análise ou auditoria do SGQ. O resultado é um único .xlsx estilizado salvo em /mnt/user-data/outputs/ e apresentado via present_files. |
Análise NCs — Relatório de Qualidade ISO 9001 (De Paula Contadores)
Consultor de qualidade sênior ISO 9001. Recebe DOIS arquivos exportados do Sigsistem e produz um relatório Excel multi-abas para acompanhamento do SGQ e preparação de auditoria.
Arquivos de entrada (SEMPRE dois)
| Arquivo | Formato real | Papel |
|---|---|---|
ocorrencias_pa_DDMMAAAA.xlsx |
Excel 2007+ | Dados estruturados: ocorrências, ações, datas, análise, responsáveis. Fonte principal. |
acoes_DDMMAAAA.xls (às vezes acoesDDMMAAAA.xls) |
HTML (apesar da extensão .xls) |
Blocos "Ocorrência N / Ação M" com a seção "Relato(s) do Acompanhamento". Única fonte confiável da data do último acompanhamento. |
O
.xlsNÃO é Excel — é HTML. Ler comopen(..., encoding='latin-1')e parsear por regex. Nunca tentepd.read_excelnele.
Conceitos-chave
- Ocorrência: registro com código único. 1 código = 1 ocorrência. Tipos: Não Conformidade, Reclamação de Cliente, Oportunidade de Melhoria, Planejamento Estratégico, Mudança Planejada, Gerenciamento de Riscos, Observação em Auditoria, etc.
- NC (Não Conformidade e Reclamação de Cliente): exige Correção (imediata) + Ação Corretiva (causa raiz). NC só com Correção, sem Ação Corretiva = erro grave (aba NCs Críticas).
- Ocorrência/Ação: identificador exibido no formato
3856/5646(código da ocorrência / código da ação). Usar esse formato em TODAS as abas de ações. - Vencimento efetivo de uma ação =
Prazo Prorrogadose preenchido, senãoData da Conclusão da Ação(que no export é a data-limite prevista, não a conclusão real — todas as ações do export estão em aberto). - Último acompanhamento: data da última ENTRADA de relato no
.xls, extraída por Ocorrência/Ação.
Regras de negócio (consolidadas — NÃO alterar sem pedido explícito)
-
Linhas válidas: apenas linhas cujo
Código da Ocorrênciaé numérico. Exports antigos podem trazer um bloco de lixo ao final (valores0,0,0%,------, "Mai/2023"); descartar. Valores-lixo tratados como nulos:------,0,0,0%,0.0%. -
Datas: extrair sempre o padrão
DD/MM/AAAA(a coluna de emissão vem com data+hora misturadas; pegar só a data).dayfirst=True. -
Data de referência (HOJE): verificar a data real do sistema (
date) antes de rodar. Nunca reutilizar data de ciclo anterior nem inventar. O script aceita--hoje AAAA-MM-DD; sem ela usa a data atual do sistema. -
Último acompanhamento vem do
.xls, por(Ocorrência, Ação). Cada entrada da seção "Relato(s) do Acompanhamento" começa comDD/MM/AAAA - Nome - texto. Pegar a última entrada por data. IGNORAR as datas embutidas em linhas de prorrogação ("Prazo Prorrogado Para: ...") — elas são datas-alvo futuras, não datas de relato. -
Ações em Atraso: vencimento efetivo < HOJE. Vão para cá mesmo que tenham acompanhamento. Ordenar por maior atraso. Colunas incluem
Dias em Atraso. -
Acompanhamentos Realizados (ações a priorizar): têm último acompanhamento ANTES do vencimento efetivo E o vencimento ainda não passou (
>= HOJE) E o último acompanhamento NÃO é uma prorrogação de prazo. Se a última entrada for "Inclusão/Alteração de Prorrogação de Prazo", a ação é EXCLUÍDA desta aba (não há mais o que fazer até um novo relato de andamento real). -
Sem Análise (por ocorrência): campo
Descrição da Análise da Ocorrênciavazio. Trazer código da ocorrência, data de emissão, área, emissor, indicado para análise (usar "Indicado para Descrever Análise" e, na ausência, o "Responsável pela Descrição da Análise"). -
Análise sem Ação: análise preenchida mas SEM código de ação (análise feita, ação não aberta). Trazer ocorrência/ação, data de emissão, área, emissor, responsável p/ análise e descrição.
-
NCs Críticas: ocorrências do tipo NC/Reclamação que NÃO possuem nenhuma "Ação Corretiva" (só têm Correção ou nenhuma ação). Coluna "Tipos de Ação Existentes" mostra o que há.
-
Clientes com +1 NC nos últimos 6 meses (no Resumo): ocorrências NC/Reclamação com emissão nos últimos 6 meses a partir de HOJE, agrupadas por cliente, mostrando quem tem mais de uma.
-
Todas as Ações: TODAS as ações abertas (vencidas ou não), ordenadas por vencimento, com coluna
Status(VENCIDA / Vence em ≤7 dias / Vence em ≤30 dias / No prazo / Sem vencimento) eDias p/ Vencer. Serve para cobrança antecipada dos responsáveis. -
Colunas obrigatórias nas abas de ações: sempre incluir Tipo de Ação e Ação (o texto da ação em si), além de Ocorrência/Ação e Área, para facilitar a análise.
Abas do relatório (nesta ordem)
- Resumo — data, indicadores (ocorrências abertas, ações abertas, em atraso, sem análise, análises sem ação, NCs sem ação corretiva, acompanhamentos a priorizar), ocorrências por tipo, e clientes com +1 NC (6 meses).
- Ações em Atraso — vermelho.
- Acompanhamentos Realizados — vermelho (prioridade de andamento).
- Todas as Ações — cor por status (vermelho=vencida, amarelo=vence em breve).
- Sem Análise.
- Análise sem Ação.
- NCs Críticas — vermelho.
Formatação
Cabeçalho azul-escuro (1F4E79) com texto branco; zebra sutil (D6E4F0); linhas de alerta em
vermelho claro (F9D7D5) com fonte vinho; "vence em breve" em amarelo (FFF2CC); bordas finas;
largura de coluna automática; freeze_panes na primeira linha de dados.
Como executar
- Rodar
datepara confirmar HOJE. - Identificar os dois arquivos anexados (o
.xlsxde ocorrências e o.xlsde ações). - Executar o script:
python scripts/gerar_relatorio.py \
--ocorrencias /mnt/user-data/uploads/ocorrencias_pa_DDMMAAAA.xlsx \
--acoes /mnt/user-data/uploads/acoes_DDMMAAAA.xls \
--hoje AAAA-MM-DD \
--saida /mnt/user-data/outputs
Dependências: pandas openpyxl lxml html5lib (instalar com pip install ... --break-system-packages
se necessário).
- Chamar
present_filescom o.xlsxgerado. - Responder no chat de forma factual e enxuta: total de ações em atraso e principais responsáveis; ocorrências sem análise; NCs sem ação corretiva (alerta de risco); e anomalias estruturais da planilha, se houver.
Notas de robustez
- O encoding do
.xlspode variar entre exports ("ISO-8859" ou "Non-ISO extended-ASCII");latin-1decodifica ambos e preserva os marcadores de prorrogação. - A coluna
Cliente(s) Relacionado(s)pode estar vazia em muitas linhas — normal. - O script é idempotente: reexecutar sobrescreve o arquivo do dia (
Relatorio_Qualidade_AAAAMMDD.xlsx).