[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 #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.

ConjuntoQuantidade
Processos identificados951 — 647 licitações e 304 contratações diretas
Arquivos vinculados a processos2.452 de 2.458 arquivos da página; 6 não ficaram em nenhum processo e vão para revisão manual
Período2004 a 2026
Pastas lidas na origem865
Modalidade2004–20122013–20202021–20232024–2026Total
Pregão (presencial e eletrônico)8025495107536
Dispensa (atos, avisos e dispensas eletrônicas)16745212
Inexigibilidade9292
Convite (Carta-Convite)521062
Tomada de Preços171220
Comparação de Preços1313
Concorrência54312
Seleção de Consultores33
Sem modalidade identificada11

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.

CampoOrigem no LiferayCobertura
ModalidadeNome da pasta ou do caminho950 de 951
Forma (presencial ou eletrônica)Nome da pasta, texto do edital e regra por período525 de 548 pregões e concorrências; 56 dispensas eletrônicas
Número e anoNome 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
ObjetoTexto do documento principal (edital ou ato); na falta, descrição da pasta e, por último, o nome da pasta942 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 Qlik832 — 816 lidos do documento e 16 recuperados do painel
Valor estimadoTexto do edital e do ato; valores do PNCPParcial
Sessão de aberturaTexto do edital (“Abertura das propostas: 23/03/2023”)325
SituaçãoNome da pasta e de arquivos (“Cancelado”, “Fracassado”, “Revogado”, “Deserto”); para os processos de 2026, o painel Qlik920 Concluída (22 delas pelo painel) · 9 Cancelada · 3 Fracassada · 2 Revogada · 17 a confirmar (2026)
Empresa vencedora e valor adjudicadoPainel Qlik, contratos do PNCP e texto do ato291 de 304 contratações diretas · 216 de 247 licitações de 2019 em diante
Papel do arquivoQuantidadeCampo no WordPress
Edital ou ato (documento principal)894Documento 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ção308Anexos, e a empresa vencedora vai para o campo Resultado
Pedidos de esclarecimento, impugnações, respostas e decisões445 (em 196 processos)Esclarecimentos e impugnações, agrupados por solicitante
Projetos e plantas246Anexos
Outra versão do edital90Anexos
Recursos (razões, contrarrazões e decisões)79Anexos
Documentos de participantes (propostas, habilitação)74Documentos de Participantes
Retificações e erratas64Anexos, com a data no campo Retificações
Anexos diversos, planilhas, avisos, termos de referência e documentos de contratação direta189Anexos
Atas e gravações de sessão pública9Sessões (exclusivo de Concorrência)
Sem papel definido (logos, recibos, arquivos sem extensão)54Revisão manual antes do import
ItemMotivo
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áginaAparecem 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

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.

  • 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.

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á.
  • 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”.

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.

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.

  • 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).
  • Fonte: 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.

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.

A empresa vencedora é definida na seguinte ordem, registrando sempre a fonte:

  1. Painel Qlik (2019 em diante) — fornecedor e valor adjudicado, uma linha por lote;
  2. Contratos do PNCP (2023 em diante) — razão social, CNPJ e valor;
  3. 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$ …”).
GrupoCom vencedor identificado
Contratações diretas291 de 304 — 268 pelo painel, 15 pelo PNCP, 8 pelo ato
Licitações de 2019 em diante216 de 247 — 211 pelo painel, 5 pelo PNCP
Licitações até 2018Sem 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.

  • 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.

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.

ArquivoConteúdoAnexo
objetos.csvUm 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 objetosobjetos.csv
vencedores.csvEmpresa vencedora por processo, com a fonte (painel Qlik, PNCP ou ato), CNPJ, valor adjudicado, valor estimado e o tipo de ligação com cada fontevencedores.csv
processos-fora-do-liferay.csvOs 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 processos-fora-do-liferay.csv
revisao-area-responsavel.csvOs 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 Liferayrevisao-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.

Os scripts ficam no repositório TCE.PORTAL.PROTO-IA , em scripts/migracao-licitacoes/, e rodam nesta ordem:

PassoO que faz
1 · varrerLê a página no Liferay e grava a árvore de pastas e arquivos
2 · analisarIdentifica os processos, os campos e o papel de cada arquivo
3 · baixar textosBaixa os documentos principais e extrai o texto
4 · extrair do textoObjeto, processo SEI, sessão, empresa, valor e forma
5 · consultar PNCPCompras e contratos do TCE-GO, ligados aos processos
6 · consultar QlikCaptura o painel de licitações e liga aos processos
7 · consolidarGera 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

  • pres/gerti/gestao_de_ativos/portal/er_034.txt
  • Última modificação: 21/09/2026 14:41
  • por pramorim