Skip to content

Instantly share code, notes, and snippets.

@jonathanalves
Last active March 10, 2022 11:07
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jonathanalves/f77b5de9dc105819e0bdda198260ecff to your computer and use it in GitHub Desktop.
Save jonathanalves/f77b5de9dc105819e0bdda198260ecff to your computer and use it in GitHub Desktop.
select substring(nome from '\d+'), nome, * from arquivo_morto am where pasta = 'titulos' and substring(nome from '[a-zA-Z\s]+') is null
update arquivo_morto set nome = replace(replace(nome, 'TIT', ''), '.pdf', '') where pasta = 'titulos' and substring(nome from '[a-zA-Z\s]+') is null;
update arquivo_morto set nome = substring(nome from '\d+')::numeric::text where pasta = 'titulos' and substring(nome from '[a-zA-Z\s]+') is null;
-- Títulos:
with arquivos as (
select
p.id referencia
, replace( arquivo, './', '') caminho
, replace( replace( arquivo, './', ''), '.pdf', '') nome
, NULLIF(regexp_replace(split_part(replace( replace( arquivo, './', ''), '.pdf', ''), '-', 1), '\D','','g'), '')::numeric codigo
, p.codigo
from tabelas_auxiliares.arquivos_pdf pm
join public.protocolo p on tipo_protocolo = 'NORMAL' and dominio = 'PROTOCOLO_RI'
and p.codigo = NULLIF(regexp_replace(split_part(replace( arquivo, '.pdf', ''), '-', 1), '\D','','g'), '')::numeric
and pm.pasta = 'titulos'
)
INSERT INTO public.anexo (referencia, entidade, tamanho, hash, extensao, tipo, nome, nome_anexo, caminho)
select
referencia,
'PROTOCOLO' entidade,
0 tamanho,
md5(caminho) hash,
'pdf' extensao,
'application/pdf' tipo,
nome,
nome nome_anexo,
'uploads/importacao/titulos/'||caminho as caminho
from arquivos
-- Indicador Pessoal
with arquivos as (
select
p.uuid_asgard referencia
, replace( arquivo, './', '') arquivo
from tabelas_auxiliares.arquivos_pdf pm
join cartisc.pessoa p on p."oid" = replace( arquivo, '.pdf', '')
and pm.pasta = 'indicador-pessoal'
)
INSERT INTO public.anexo (referencia, entidade, tamanho, hash, extensao, tipo, nome, nome_anexo, caminho)
select
referencia,
'INDICADOR_PESSOAL' entidade,
0 tamanho,
md5(arquivo) hash,
'pdf' extensao,
'application/pdf' tipo,
arquivo,
'Digitalização' nome_anexo,
'uploads/importacao/indicador-pessoal/'||arquivo as caminho
from arquivos
-- Transcrições:
with ids as (
select t.*, ir.id indicador
from migracao.transcricoes_inserts t
join indicador_real ir on ir.livro = 'TRANSCRICAO'
and t.registro = ir.codigo::text
and t.folha = ir.livro_folha
)
update migracao.transcricoes_inserts set indicador_real_id = ids.indicador
from ids where transcricoes_inserts.pasta = ids.pasta and transcricoes_inserts.arquivo = ids.arquivo and transcricoes_inserts.registro = ids.registro
update migracao.transcricoes_inserts set id = case when indicador_real_id is not null then indicador_real_id else Uuid_generate_v4() end;
-- ARQUIVOS DA GUIA
with arquivos as (
select
p.uuid_asgard as referencia
, ga.descricao as nome
, NULLIF(replace(split_part(ga.nome, 'ARQUIVOS', 2), '\', '/'), '') as caminho
, public.oid_to_uuid(ga."oid", p.uuid_asgard::text)::uuid as id
, case when ga.nome ilike '%.jpg' then 'image/jpg' else 'application/pdf' end as tipo
, case when ga.nome ilike '%.jpg' then 'jpg' else 'pdf' end as extensao
, ga.nome arq
from cartisc.guia___arquivos ga
join cartisc.guia g on g."oid" = ga.guia
join cartisc.protocolo p on p.guia = g."oid"
where ga.nome ilike '%\\ARQUIVOS\\%'
)
INSERT INTO public.anexo (id, referencia, entidade, tamanho, hash, extensao, tipo, nome, nome_anexo, caminho)
select
id,
referencia,
'PROTOCOLO' entidade,
0 tamanho,
md5(id::text) hash, extensao, tipo,
nome,
nome as nome_anexo,
replace('uploads/importacao/arquivos/'||caminho, '/', '/') as caminho,
arq
from arquivos;
---- TRANSCRICOES
with imagens as (
select
ta.uuid_asgard id, t.uuid_asgard referencia, nome as original, replace(split_part(nome, 'transc', 2), '\', '/') nome
from cartisc.transcricao___arquivos ta
join cartisc.transcricao t on t."oid" = ta.transcricao
)
--INSERT INTO public.anexo (id, referencia, entidade, tamanho, hash, extensao, tipo, nome, nome_anexo, caminho)
select
id,
referencia,
'DIGITALIZACAO_INDICADOR_REAL' entidade,
0 tamanho,
md5(id::text) hash, 'jpg' as extensao, 'image/jpg' as tipo,
replace(TRIM( leading '/' from nome), '/', '-') as nome,
replace(TRIM( leading '/' from nome), '/', '-') as nome_anexo,
'uploads/importacao/transcricoes'||nome as caminho
from imagens
--- indicador pessoal
with arquivos as (
select
p.uuid_asgard referencia
, caminho arquivo
, replace(replace( caminho, '.pdf', ''), 'uploads/importacao/indicador-pessoal/', '') nome
from public.arquivo_morto pm
join cartisc.pessoa p on replace(replace( p.arquivo_imagens, '.tif', ''), 'IndPess\', '') = replace(replace( caminho, '.pdf', ''), 'uploads/importacao/indicador-pessoal/', '')
where pm.pasta = 'indicador-pessoal' and caminho ilike '%.pdf'
)
INSERT INTO public.anexo (id, referencia, entidade, tamanho, hash, extensao, tipo, nome, nome_anexo, caminho)
select
referencia id,
referencia,
'INDICADOR_PESSOAL' entidade,
0 tamanho,
md5(referencia::text) hash,
'pdf' extensao,
'application/pdf' tipo,
arquivo,
nome nome_anexo,
arquivo as caminho
from arquivos
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment