====== [ER_034] Migração das Licitações do Liferay ====== **Descrição**: Migração dos processos de licitação e de contratação direta publicados na página "Acesso aos Licitantes" do portal antigo (Liferay) para o novo Portal TCE-GO (WordPress). Cada processo vira um registro de **Licitação**, com seus metadados e com cada arquivo no campo correspondente (documento principal, anexos, documentos de participantes, esclarecimentos e impugnações, sessões e resultado). Esta página descreve **o que é migrado** e **como os dados foram extraídos e cruzados**. Os ajustes do formulário que a migração exigiu estão especificados em documento próprio, fora desta página. **Origem**: https://portal.tce.go.gov.br/licitacoes/licitacoes (Liferay, site ''20181'', pasta raiz ''47889''), lida em 18/09/2026. **Destino**: Portal TCE-GO (WordPress) | Licitações e Contratos | ''/licitacoes''. **Demanda**: Redmine [[https://projetos.tce.go.gov.br/issues/44009|#44009]] — [Migrar] Arquivos de Licitações. //**Gestão depois da migração.** A manutenção das licitações exibidas no portal passa a ser feita pela própria área responsável no **WP-Admin** (ambiente administrativo do WordPress): cadastro de novos processos, inclusão de arquivos, atualização de situação e do resultado. O **manual de uso do WP-Admin será publicado em documentação própria**, ainda a ser elaborada. // ===== 1. O que está sendo migrado ===== ^Conjunto^Quantidade| |Processos identificados|**951** — 647 licitações e 304 contratações diretas| |Arquivos vinculados a processos|**2.452** de 2.458 arquivos da página; 6 não ficaram em nenhum processo e vão para revisão manual| |Período|2004 a 2026| |Pastas lidas na origem|865| ==== 1.1 Processos por modalidade e época ==== ^Modalidade^2004–2012^2013–2020^2021–2023^2024–2026^Total| |Pregão (presencial e eletrônico)|80|254|95|107|**536**| |Dispensa (atos, avisos e dispensas eletrônicas)|—|—|167|45|**212**| |Inexigibilidade|—|—|92|—|**92**| |Convite (Carta-Convite)|52|10|—|—|**62**| |Tomada de Preços|17|1|2|—|**20**| |Comparação de Preços|13|—|—|—|**13**| |Concorrência|5|4|—|3|**12**| |Seleção de Consultores|3|—|—|—|**3**| |Sem modalidade identificada|—|—|—|1|**1**| O único processo sem modalidade é a pasta "Licitantes Sancionados", que não é licitação e fica fora do escopo (§2). Comparação de Preços e Seleção de Consultores são métodos de aquisição do **BID**, usados no **PROMOEX**, programa já encerrado. Tomada de Preços e Convite foram extintas pela **Lei nº 14.133/2021**. As quatro entram no portal apenas para consulta de processos históricos. ==== 1.2 Dados de cada processo ==== ^Campo^Origem no Liferay^Cobertura| |Modalidade|Nome da pasta ou do caminho|950 de 951| |Forma (presencial ou eletrônica)|Nome da pasta, texto do edital e regra por período|525 de 548 pregões e concorrências; 56 dispensas eletrônicas| |Número e ano|Nome da pasta ("nº 036-2022", "028-18", "Convite_005_2007")|698; as 253 contratações diretas restantes não têm número no legado| |Objeto|**Texto do documento principal** (edital ou ato); na falta, descrição da pasta e, por último, o nome da pasta|942 de 951 — 828 do texto, 25 da descrição, 89 do nome| |Nº do processo (SEI)|Título dos arquivos, nome do edital e texto do documento; complementado pelo painel Qlik|**832** — 816 lidos do documento e 16 recuperados do painel| |Valor estimado|Texto do edital e do ato; valores do PNCP|Parcial| |Sessão de abertura|Texto do edital ("Abertura das propostas: 23/03/2023")|325| |Situação|Nome da pasta e de arquivos ("Cancelado", "Fracassado", "Revogado", "Deserto"); para os processos de 2026, o painel Qlik|920 Concluída (22 delas pelo painel) · 9 Cancelada · 3 Fracassada · 2 Revogada · 17 a confirmar (2026)| |Empresa vencedora e valor adjudicado|Painel Qlik, contratos do PNCP e texto do ato|291 de 304 contratações diretas · 216 de 247 licitações de 2019 em diante| ==== 1.3 Para onde vai cada arquivo ==== ^Papel do arquivo^Quantidade^Campo no WordPress| |Edital ou ato (documento principal)|894|Documento principal (Edital, Carta-convite, Solicitação de propostas, Ato de dispensa, Instrumento convocatório ou Ato de inexigibilidade)| |Resultado: ata, julgamento, homologação, adjudicação, aviso de revogação|308|Anexos, e a empresa vencedora vai para o campo Resultado| |Pedidos de esclarecimento, impugnações, respostas e decisões|445 (em 196 processos)|Esclarecimentos e impugnações, agrupados por solicitante| |Projetos e plantas|246|Anexos| |Outra versão do edital|90|Anexos| |Recursos (razões, contrarrazões e decisões)|79|Anexos| |Documentos de participantes (propostas, habilitação)|74|Documentos de Participantes| |Retificações e erratas|64|Anexos, com a data no campo Retificações| |Anexos diversos, planilhas, avisos, termos de referência e documentos de contratação direta|189|Anexos| |Atas e gravações de sessão pública|9|Sessões (exclusivo de Concorrência)| |Sem papel definido (logos, recibos, arquivos sem extensão)|54|Revisão manual antes do import| ===== 2. O que não é migrado ===== ^Item^Motivo| |**Plano de Contratações Anual (PCA)**|É publicação institucional; migrado na frente de publicações (Plano Institucional › PCA)| |**Licitantes Sancionados** (4 arquivos)|Não é licitação: é a relação de sanções aplicadas; vai para mídia, ligada à página própria| |**700 processos que não estão na página**|Aparecem no painel Qlik ou no PNCP, mas não têm arquivo publicado no Liferay: 451 dispensas, 229 inexigibilidades, 9 pregões e 11 adesões a atas de outros órgãos. Ficam registrados em anexo (§6), para conhecimento e eventual publicação futura| ===== 3. Como os dados foram extraídos ===== O levantamento foi feito por scripts, sem digitação manual, para ser repetível e conferível. Cada etapa grava o seu resultado em arquivo, e a etapa seguinte parte dele. ==== 3.1 Leitura da página no Liferay ==== * Acesso pela **API JSON-WS do Liferay** (''/api/jsonws''), com usuário de leitura, percorrendo a pasta raiz da página "Acesso aos Licitantes". * De cada pasta e arquivo foram guardados: título, descrição, datas, tamanho, extensão e o **UUID** — identificador que liga o arquivo antigo ao novo e permite redirecionar as URLs do portal antigo. * Resultado: **865 pastas e 2.458 arquivos**. ==== 3.2 Identificação dos processos ==== A árvore muda de padrão ao longo dos anos (ano › modalidade › processo › etapas). As regras aplicadas: * **Chave do processo**: modalidade + número + ano (mais a forma, quando o ano tem concorrência eletrônica e presencial). Nos atos de contratação direta, que são arquivos soltos, a chave é o **número do processo SEI** do título. * **Pastas de agrupamento** ("2013 - Editais", "PREGÃO PRESENCIAL") são distinguidas das pastas de processo: só é processo quando há número de 1 a 3 dígitos ou "nº" no nome, descontados os anos. * **Mesmo processo em duas pastas** (ex.: "Pregão nº 012-2023" duplicado; Pregão 029/2024 dentro da pasta de 2023) é unido pela chave. * **Papel de cada arquivo** (edital, ata, recurso, impugnação, projeto…) vem do nome do arquivo e da subpasta em que está. ==== 3.3 Leitura do conteúdo dos documentos ==== * Os 894 documentos principais foram **baixados e convertidos em texto** (''pdftotext''). * Do texto foram extraídos: **objeto** ("tem por objeto…", "Constitui objeto…"; nos atos, a frase logo depois do CNPJ do contratado), **número do processo SEI**, **data da sessão**, **empresa contratada**, **valor** e a **forma** do pregão ("pregão eletrônico", "Comprasnet", "licitações-e" → eletrônico). * O objeto é cortado nos complementos (", para atender…", ", conforme…", ", por um período…"), para ficar só a descrição da contratação. * Exemplo: o ato antes chamado "Ato de Inexigibilidade - O Estado de São Paulo" passou a ter o objeto "Contratação de 01 (uma) assinatura digital do Jornal O Estadão". ===== 4. Como os dados foram cruzados ===== O Liferay tem os arquivos, mas não tem a empresa vencedora nem o valor adjudicado, e em parte dos processos falta o número do processo SEI. Esses dados vieram de duas fontes oficiais, cruzadas com o acervo. ==== 4.1 Chave de cruzamento: o processo SEI ==== O número do processo (formato **AAAA 00047 NNNNNN**) aparece de formas diferentes em cada fonte, inclusive com zeros a mais ou a menos ("2021000470001240", "20250004700679"). Todos os números são **normalizados** antes da comparação, nas três fontes. ==== 4.2 PNCP — Portal Nacional de Contratações Públicas ==== * Consulta à **API pública** (''https://pncp.gov.br/api/consulta/v1''), pelo CNPJ do TCE-GO (02.291.730/0001-14), ano a ano e por modalidade, de 2021 em diante. * Retorno: **576 compras** (as publicações do TCE-GO começam em 2023) e **473 contratos**. As atas de registro de preços não retornaram registros. * **290 processos** do acervo foram ligados ao PNCP: 261 pelo processo SEI e 29 pelo objeto; 242 deles têm contrato, com razão social, CNPJ e valor. * A API de itens e resultados (''/api/pncp/v1/…/itens/…/resultados'') não respondeu (HTTP 503 em 19/09/2026). ==== 4.3 Painel Qlik de licitações ==== * Fonte: [[https://paineis.tce.go.gov.br/sense/app/fb4096af-1529-4060-9b8f-e612065c2b21/sheet/b284477e-5f44-4a3c-867f-6a37675b9ac6|painel de licitações do TCE-GO]], que cobre **2019 em diante**. * A tabela do painel mostra na tela menos linhas do que possui; por isso os dados foram lidos **do próprio motor do Qlik**, em sessão anônima e somente leitura, página a página, depois de limpar as seleções padrão do painel. * Retorno: **1.252 linhas**, com 1.129 processos SEI distintos, todas com fornecedor e valor adjudicado. O painel **mascara o CNPJ** (''**.674.227/****-**''); o número completo só é gravado quando vem do PNCP ou do ato. * **480 processos** do acervo foram ligados ao painel: 464 pelo processo SEI e 16 pelo objeto. Em 53 há mais de um fornecedor (licitação por lotes). * O painel também deu a **situação** de 22 processos de 2026 que os arquivos do Liferay não permitiam confirmar: todos constam como concluídos. * Foi também do painel que vieram os **16 números de processo SEI** que faltavam no Liferay. ==== 4.4 Ligação pelo objeto, quando falta o número do processo ==== Quando o processo do Liferay não traz o SEI, a ligação é tentada pelo **objeto**: mesma modalidade, ano próximo e texto semelhante (60% ou mais das palavras relevantes em comum), aceitando só quando há **um único candidato** ou vantagem clara sobre o segundo. Toda ligação feita assim é marcada **"a conferir"** nas planilhas: 16 no painel Qlik e 29 no PNCP. ==== 4.5 Empresa vencedora ==== A empresa vencedora é definida na seguinte ordem, registrando sempre a fonte: - **Painel Qlik** (2019 em diante) — fornecedor e valor adjudicado, uma linha por lote; - **Contratos do PNCP** (2023 em diante) — razão social, CNPJ e valor; - **Texto do ato** de dispensa ou inexigibilidade ("DECLARAR inexigível a licitação em favor da empresa …, inscrita no CNPJ sob o nº …, ao custo total de R$ …"). ^Grupo^Com vencedor identificado| |Contratações diretas|**291 de 304** — 268 pelo painel, 15 pelo PNCP, 8 pelo ato| |Licitações de 2019 em diante|**216 de 247** — 211 pelo painel, 5 pelo PNCP| |Licitações até 2018|Sem fonte automática: o painel começa em 2019 e o PNCP, em 2023. Só pela leitura das atas, com revisão| O texto do edital **não** é usado para vencedor: a empresa citada ali é exemplo ou cláusula, não a contratada. ===== 5. Conferências e pontos de atenção ===== * **70 processos entram como rascunho**, para a área responsável conferir e publicar: 17 processos de 2026 cuja situação não se confirma nem pelos arquivos nem pelo painel Qlik, 56 sem documento principal identificado e 5 licitações sem número. A lista completa vai em anexo (§6). * **Situação dos processos de 2026:** os arquivos do Liferay não mostram se esses processos terminaram. Dos 39 nessa condição, **22 constam no painel Qlik como concluídos** e entram como Concluída; os outros 17 não estão no painel (no PNCP aparecem apenas como "Divulgada no PNCP") e entram como Em andamento, em rascunho. * **45 ligações marcadas "a conferir"** (16 do painel, 29 do PNCP), feitas pelo objeto. * **Objetos vindos do nome da pasta** (89) e em caixa alta (10) devem ser revistos na planilha de objetos. * **Datas do acervo antigo**: boa parte dos arquivos anteriores a 2019 tem como data de cadastro **19/11/2018**, que é a data da carga no Liferay, não a data do documento. * **Arquivos grandes**: 7 acima de 100 MB, entre eles a gravação da 2ª sessão da Concorrência 01/2026, com 3,3 GB. * **URLs antigas**: cada arquivo migrado guarda o UUID de origem, o que permite redirecionar os endereços do portal antigo para o novo. ===== 6. Anexos ===== Espaço reservado para os arquivos desta migração. Anexar nesta página, pelo menu **Adicionar imagens e outros arquivos** do DokuWiki, e substituir cada marcador abaixo pelo link do arquivo enviado. ^Arquivo^Conteúdo^Anexo| |''objetos.csv''|Um registro por processo (951): modalidade, número, ano, processo SEI, situação, objeto, origem do objeto, trecho do documento, contratada, CNPJ, valor e documento principal. Planilha de revisão dos objetos|{{ https://projetos.tce.go.gov.br/attachments/37510 |objetos.csv}}| |''vencedores.csv''|Empresa vencedora por processo, com a fonte (painel Qlik, PNCP ou ato), CNPJ, valor adjudicado, valor estimado e o tipo de ligação com cada fonte|{{ https://projetos.tce.go.gov.br/attachments/37512|vencedores.csv }}| |''processos-fora-do-liferay.csv''|Os 700 processos que aparecem no painel Qlik ou no PNCP e **não** estão na página do Liferay: modalidade, número, objeto, data, valores, fornecedores, situação e fonte|{{ https://projetos.tce.go.gov.br/attachments/37509| processos-fora-do-liferay.csv }}| |''revisao-area-responsavel.csv''|Os 70 processos que entram como rascunho, com o motivo de cada um, o processo SEI, a situação no PNCP e no painel e o caminho da pasta no Liferay|{{ https://projetos.tce.go.gov.br/attachments/37511|revisao-area-responsavel.csv }}| Capturas brutas das fontes, guardadas no repositório do projeto e disponíveis sob demanda (2 MB a 4 MB cada): ''arvore.origem.json'' (leitura do Liferay), ''processos.analise.json'' (processos identificados e papel de cada arquivo), ''pncp.origem.json'' e ''qlik.origem.json''. ===== 7. Como refazer o levantamento ===== Os scripts ficam no repositório ''TCE.PORTAL.PROTO-IA'' , em ''scripts/migracao-licitacoes/'', e rodam nesta ordem: ^Passo^O que faz| |1 · varrer|Lê a página no Liferay e grava a árvore de pastas e arquivos| |2 · analisar|Identifica os processos, os campos e o papel de cada arquivo| |3 · baixar textos|Baixa os documentos principais e extrai o texto| |4 · extrair do texto|Objeto, processo SEI, sessão, empresa, valor e forma| |5 · consultar PNCP|Compras e contratos do TCE-GO, ligados aos processos| |6 · consultar Qlik|Captura o painel de licitações e liga aos processos| |7 · consolidar|Gera as planilhas de vencedores, dos processos fora do Liferay e dos processos em rascunho| Pré-requisitos: credencial de leitura do Liferay, ''pdftotext'' (poppler) e acesso à internet para o PNCP e ao painel. As consultas ao PNCP e ao painel podem ser refeitas sem nova extração, reaproveitando as capturas gravadas. ---- — //Gerado com: análise assistida por IA sobre a API JSON-WS do Liferay, o texto dos documentos principais, a API de consulta do PNCP e o painel Qlik de licitações// \\ — //Revisado por: // @pramorim - Paulo Ricardo Amorim Silva\\ — //Atualizado em 2026-09-20//