文件版本管理-初步优化

This commit is contained in:
Cheng Zhou
2026-01-14 11:35:37 +08:00
parent ef1e67218c
commit f9ef5c109f
46 changed files with 4603 additions and 30 deletions
+153
View File
@@ -0,0 +1,153 @@
-- Optional seed data for document version management module
INSERT INTO public.studies (
id, code, name, status, created_at
) VALUES (
'dddddddd-1111-2222-3333-444444444444', 'DOC-DEMO', 'Document Demo Study', 'DRAFT', now()
)
ON CONFLICT (code) DO NOTHING;
INSERT INTO public.workflow_templates (
id, trial_id, name, description, is_active, created_by, created_at, updated_at
) VALUES
(
'11111111-aaaa-bbbb-cccc-111111111211',
(SELECT id FROM public.studies WHERE code = 'DOC-DEMO'),
'标准审批(PM 单签)',
'PM 单节点审批,适用于一般文件',
true,
(SELECT id FROM public.users WHERE email = 'pm@example.com'),
now(),
now()
),
(
'11111111-aaaa-bbbb-cccc-111111111212',
(SELECT id FROM public.studies WHERE code = 'DOC-DEMO'),
'严格审批(CRA→PM→QA',
'三节点审批,适用于关键文件',
true,
(SELECT id FROM public.users WHERE email = 'pm@example.com'),
now(),
now()
)
ON CONFLICT (id) DO UPDATE
SET name = EXCLUDED.name,
description = EXCLUDED.description,
is_active = EXCLUDED.is_active,
trial_id = EXCLUDED.trial_id,
created_by = EXCLUDED.created_by,
updated_at = EXCLUDED.updated_at;
INSERT INTO public.workflow_nodes (
id, template_id, node_order, role, name, is_required, created_at
) VALUES
(
'22222222-aaaa-bbbb-cccc-222222222311',
'11111111-aaaa-bbbb-cccc-111111111211',
1,
'PM',
'项目经理审批',
true,
now()
),
(
'22222222-aaaa-bbbb-cccc-222222222312',
'11111111-aaaa-bbbb-cccc-111111111212',
1,
'CRA',
'CRA 初审',
true,
now()
),
(
'22222222-aaaa-bbbb-cccc-222222222313',
'11111111-aaaa-bbbb-cccc-111111111212',
2,
'PM',
'项目经理复审',
true,
now()
),
(
'22222222-aaaa-bbbb-cccc-222222222314',
'11111111-aaaa-bbbb-cccc-111111111212',
3,
'QA',
'QA 终审',
true,
now()
)
ON CONFLICT (id) DO UPDATE
SET template_id = EXCLUDED.template_id,
node_order = EXCLUDED.node_order,
role = EXCLUDED.role,
name = EXCLUDED.name,
is_required = EXCLUDED.is_required;
INSERT INTO public.documents (
id, trial_id, site_id, doc_no, doc_type, title, scope_type, owner_id, status, created_at, updated_at
) VALUES (
'eeeeeeee-1111-2222-3333-444444444444',
(SELECT id FROM public.studies WHERE code = 'DOC-DEMO'),
NULL,
'SOP-001',
'SOP',
'Sample SOP for Versioning',
'GLOBAL',
(SELECT id FROM public.users WHERE email = 'pm@example.com'),
'ACTIVE',
now(),
now()
)
ON CONFLICT (trial_id, doc_no) DO NOTHING;
INSERT INTO public.documents (
id, trial_id, site_id, doc_no, doc_type, title, scope_type, owner_id, status, created_at, updated_at
) VALUES (
'eeeeeeee-1111-2222-3333-444444444445',
(SELECT id FROM public.studies WHERE code = 'DOC-DEMO'),
(SELECT id FROM public.sites WHERE study_id = (SELECT id FROM public.studies WHERE code = 'DOC-DEMO') LIMIT 1),
'SITE-SOP-001',
'SOP',
'DOC-DEMO 分中心 SOP',
'SITE',
(SELECT id FROM public.users WHERE email = 'pm@example.com'),
'ACTIVE',
now(),
now()
)
ON CONFLICT (trial_id, doc_no) DO NOTHING;
INSERT INTO public.document_versions (
id, document_id, version_no, status, file_uri, file_hash, file_size, mime_type, change_summary, created_by, created_at
) VALUES (
'ffffffff-1111-2222-3333-444444444444',
(SELECT id FROM public.documents WHERE doc_no = 'SOP-001' AND trial_id = (SELECT id FROM public.studies WHERE code = 'DOC-DEMO')),
'V1.0',
'DRAFT',
'/uploads/docs/SOP-001/V1.0/sample.pdf',
'9f2b4c6d8e0f1234567890abcdef1234567890abcdef1234567890abcdef1234',
2048,
'application/pdf',
'初稿',
(SELECT id FROM public.users WHERE email = 'pm@example.com'),
now()
)
ON CONFLICT (document_id, version_no) DO NOTHING;
INSERT INTO public.document_versions (
id, document_id, version_no, status, file_uri, file_hash, file_size, mime_type, change_summary, created_by, created_at
) VALUES (
'ffffffff-1111-2222-3333-444444444445',
(SELECT id FROM public.documents WHERE doc_no = 'SITE-SOP-001' AND trial_id = (SELECT id FROM public.studies WHERE code = 'DOC-DEMO')),
'1.0',
'EFFECTIVE',
'/code/app/uploads/documents/demo/SITE-SOP-001-v1.pdf',
'a3b2c1d0e9f8e7d6c5b4a3f2e1d0c9b8a7f6e5d4c3b2a1f0e9d8c7b6a5f4e3d2',
2048,
'application/pdf',
'分中心 SOP 首版',
(SELECT id FROM public.users WHERE email = 'pm@example.com'),
now()
)
ON CONFLICT (document_id, version_no) DO NOTHING;