agentic_huge_data_base / wiki
页面 2.1 · Paperless-ngx 与 Mayan EDMS·事实基线:一期只借鉴 EDMS 模式,不迁移 SVN

2.1 Paperless-ngx 与 Mayan EDMS

两个开源文档管理系统都不会成为本项目的事实源,但它们的消费管道文档类型 / 多文件版本对象级 ACL 是现成的设计参考。

类别文档事实源与电子文档治理 阶段一期设计模式借鉴 · 不替代 SVN
Decision一期不迁移 SVN,只抽取 EDMS 设计模式。
Paperless借鉴消费管道、自动匹配、标签优于文件夹。
Mayan借鉴文档容器、多文件版本、对象级 ACL。
相关来源文件
  • docs/11-reference-platforms-agentic-knowledge-base.md · §3 Paperless-ngx 与 Mayan EDMS。
  • docs/03-baseline-requirements.md · §4 数据与权限基线。

两者定位

维度Paperless-ngxMayan EDMS
产品定位把纸质 / 扫描 / 日常文件变成 可检索归档企业级电子文档管理系统
核心抽象tags · correspondents · document types · 自定义字段 · 存储路径document type 是核心对象,文档继承类型上的设置
自动匹配给 tag / correspondent / document type / storage path 配匹配规则更强调文档类型、工作流、ACL、版本
权限对象权限、owner、privileges、列表权限RBAC + 全局权限 + 对象级 ACL + 类型继承
版本保留原始文件 + 归档版本Document 是容器,可有多个 document files / versions
工作流工作流可修改元数据和权限状态、转换、版本、签名、REST 接口 更完整
适配成本较轻较重
来源docs/11-reference-platforms-agentic-knowledge-base.md §3.2。

Paperless-ngx 可借鉴设计

图 2.1.1 · Paperless-ngx 的消费管道。
图 2.1.1 · Paperless-ngx 的消费管道。
  1. 消费管道:文件进入后统一产生处理任务,包括 OCR、文本抽取、元数据匹配、入库。本项目可对应到 ingestion_job
  2. 自动匹配算法:给标签、往来方、文档类型设置 matchmatching_algorithm,自动判断是否应用。可作为标签规则引擎原型。
  3. 标签优于文件夹:一个文档可有多个标签,跨目录组织。本项目应弱化 SVN 目录树作为唯一组织维度。
  4. 原件不覆盖:保留原始文件,同时生成可搜索 / 归档版本。对应"Word 留档 + 盖章 PDF + OCR 文本"分层。
  5. 管理列表:tags / document types / 已保存视图 / 工作流都是独立可维护对象。
不要照搬 correspondent
Paperless 的 correspondent 适合账单、信函、家庭归档,但本项目需要 客户 / 政府单位 / 合同主体 / 我方主体 / 政策 / 项目 等多实体模型。Paperless 的自动匹配也容易在企业复杂业务中误匹配,必须叠加人审与冲突优先级。
来源docs/11-reference-platforms-agentic-knowledge-base.md §3.3。
Code paperless-ngx/paperless-ngx · 消费管道 src/documents/consumer.pysrc/documents/tasks.py; 自动匹配 src/documents/matching.pysrc/documents/models.pyMatchingModel 抽象类与 matching_algorithm 字段); 工作流模板 src/documents/templating/

Mayan EDMS 可借鉴设计

图 2.1.2 · Mayan EDMS 文档容器模型。
图 2.1.2 · Mayan EDMS 文档容器模型。
  1. 文档类型优先:合同、发票、申报材料、评审意见、政策文件、会议纪要等应是稳定类型,元数据规则继承自类型。
  2. 文档容器模型:同一业务文档可关联 Word 留档、盖章 PDF、扫描图片、修订版、附件包;本项目对应 documentsdocument_files(见 §4)。
  3. 非破坏性版本:索引文本、OCR 文本、人工修正文稿、源文件不互相覆盖。
  4. 对象级权限:权限不是前端过滤,而是对象 / 类型 / 路径级约束。
  5. 工作流状态:待解析、解析失败、待人审、已确认、需重建索引、已废弃应作为一等字段,而不是隐式状态。
不要把它当事实源
Mayan 是重型系统。一期把原始文件迁出 SVN 会引发权限、目录习惯、版本历史和用户阻力。SVN authz 是事实边界;Mayan 的 ACL 不应覆盖 SVN authz,只能作为治理层参考。
来源docs/11-reference-platforms-agentic-knowledge-base.md §3.4。
Code mayan-edms/mayan-edms(GitLab) · 文档容器与多文件 apps/documents/models/document_models.pydocument_file_models.pydocument_version_models.py; 文档类型继承 apps/documents/models/document_type_models.py; 对象级 ACL apps/acls/; 工作流状态机 apps/document_states/; 事件审计 apps/events/

迁移到本项目的对照表

EDMS 概念本项目对应实现位置
Document 类型合同 / 政策 / 申报书 / 评审意见 / 会议纪要 / 台账document_types 表 + 类型规则
文档容器 + 多文件一份业务文档对应 Word 留档、盖章 PDF、扫描图片documents + document_versions
Tag / CorrespondentL1 / L2 / L2.5 / L3 标签 + 客户 / 政府单位实体tags + entities
自动匹配路径规则 + 文件名规则 + 关键词规则规则引擎 + AI suggestion
工作流 status待解析 / 解析失败 / 待人审 / 已确认 / 已废弃document_status 状态机
对象级访问控制SVN authz + 路径前缀映射 + 角色范围permissions 表 + 检索过滤层
Storage pathSVN 路径 + 镜像规则svn_path + 增量同步策略

这张表后续会在 1.3 入库管线页转成具体表 schema。

来源docs/11-reference-platforms-agentic-knowledge-base.md §3、§10。
Code Paperless 概念 → 代码:tags src/documents/models.pyTag)、document types Document类型、自定义字段 CustomField、存储路径 StoragePath、工作流与 src/documents/signals/handlers.py。 Mayan 概念 → 代码:types apps/documents/models/document_type_models.py、元数据 apps/元数据/、权限 apps/权限/

继续阅读