批发和零售企业档案管理普遍面临:单据(采购单、销售单、出入库单)堆积如山、查找困难;供应商与客户资质文件过期或丢失;商品信息(规格、批次、质检报告)更新不及时;历史数据难以统计分析。本指南旨在通过一套低成本的数字化方案,解决上述问题,实现档案的电子化存储、结构化分类、权限化访问、快速检索与备份,让档案从负担变为资产。
无需购买昂贵软件。我们采用“开源文档管理系统 + 规范化目录结构 + 自动化脚本”的组合。
使用 Docker 部署 Mayan EDMS,这是一个专为文档管理设计的开源系统,支持 OCR(文字识别)、版本控制、工作流。
步骤 1:在服务器(如 CentOS 7)上安装 Docker 和 Docker Compose。
执行以下命令:
``` sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ```创建部署目录并编写配置文件。
步骤 2:创建项目目录和 docker-compose.yml 文件。
执行:
``` mkdir ~/mayan-edms && cd ~/mayan-edms nano docker-compose.yml ```将以下完整配置复制到文件中:
``` version: '3' services: redis: image: redis:alpine networks: - mayan postgres: image: postgres:13-alpine environment: POSTGRES_DB: mayan POSTGRES_USER: mayan POSTGRES_PASSWORD: your_strong_password_here volumes: - postgres_data:/var/lib/postgresql/data networks: - mayan app: image: mayanedms/mayanedms:latest depends_on: - redis - postgres environment: MAYAN_DATABASE_ENGINE: django.db.backends.postgresql MAYAN_DATABASE_NAME: mayan MAYAN_DATABASE_USER: mayan MAYAN_DATABASE_PASSWORD: your_strong_password_here MAYAN_DATABASE_HOST: postgres MAYAN_DATABASE_PORT: "5432" MAYAN_REDIS_HOST: redis volumes: - mayan_data:/var/lib/mayan - ./media:/media ports: - "80:8000" networks: - mayan networks: mayan: volumes: postgres_data: mayan_data: ```注意:将“your_strong_password_here”替换为高强度密码。
步骤 3:启动服务。
执行:
``` docker-compose up -d ```等待2-3分钟,在浏览器访问服务器IP地址(如 http://你的服务器IP),即可进入Mayan EDMS初始化界面,创建管理员账户。
这是制度建设的核心,决定了后续使用的效率。在Mayan中,对应“文档类型”和“标签”。
登录系统后,进入“设置” -> “文档类型”,创建以下类型:

进入“标签”菜单,创建以下标签,用于交叉过滤:
为每类纸质档案准备一个物理文件夹,按上述分类命名。使用带自动进纸器的扫描仪,扫描为PDF格式。扫描时,文件名按“日期_档案类型_简要描述.pdf”规则命名,如“20231026_供应商档案_XX公司营业执照.pdf”。
在Mayan中,进入“文档” -> “上传”,选择对应“文档类型”,批量上传PDF文件。
进入“设置” -> “文档类型”,编辑“业务单据”类型。
OCR完成后,系统能对扫描件内容进行全文搜索。
对于每日产生的电子版单据(如从ERP导出的PDF对账单),可编写脚本实现自动上传归档。创建一个Python脚本 `auto_upload.py`:
``` !/usr/bin/env python3 import requests import os from pathlib import Path MAYAN_URL = "http://你的服务器IP/api/v4/documents/" MAYAN_TOKEN = "你的API令牌" 在Mayan用户设置中创建 WATCH_FOLDER = "/path/to/your/watch/folder" 监控的文件夹路径 def upload_file(file_path): headers = {'Authorization': f'Token {MAYAN_TOKEN}'} data = {'document_type': '业务单据'} 根据文件类型修改 files = {'file': open(file_path, 'rb')} response = requests.post(MAYAN_URL + 'upload/', headers=headers, data=data, files=files) if response.status_code == 202: print(f"成功上传: {file_path}") os.remove(file_path) 上传成功后删除原文件 else: print(f"上传失败 {file_path}: {response.text}") if __name__ == "__main__": for file in Path(WATCH_FOLDER).glob(".pdf"): upload_file(file) ```使用crontab设置定时任务,每5分钟执行一次该脚本:
``` /5 /usr/bin/python3 /path/to/auto_upload.py ```进入“权限”菜单,创建角色组并分配权限:
在用户管理中,将员工添加到对应组。
检索:在“文档”页面,使用顶部的搜索框,可直接输入单据编号、供应商名称(OCR识别的结果)进行全文搜索。或使用左侧的“标签”和“文档类型”过滤器进行组合筛选。
维护:
在服务器上创建备份脚本 `backup_mayan.sh`:
``` !/bin/bash BACKUP_DIR="/backup/mayan_$(date +%Y%m%d)" mkdir -p $BACKUP_DIR cd ~/mayan-edms 备份数据库 docker-compose exec -T postgres pg_dump -U mayan mayan > $BACKUP_DIR/mayan_db.sql 备份媒体文件 tar -czf $BACKUP_DIR/media.tar.gz ./media 备份Docker卷数据(可选,更完整) docker run --rm -v mayanedms_postgres_data:/source -v $BACKUP_DIR:/backup alpine tar -czf /backup/volume_postgres.tar.gz -C /source . docker run --rm -v mayanedms_mayan_data:/source -v $BACKUP_DIR:/backup alpine tar -czf /backup/volume_mayan.tar.gz -C /source . 保留最近7天备份 find /backup -name "mayan_" -type d -mtime +7 -exec rm -rf {} \; ```设置每日凌晨2点执行备份:
``` 0 2 /bin/bash /path/to/backup_mayan.sh ```如需更换服务器,在新服务器上重复“第二部分”的部署步骤。然后:
docker-compose up -d,然后停止服务:docker-compose down。docker-compose run --rm app python manage.py dbrestore --noinput --path=/path/to/mayan_db.sqldocker-compose up -d。至此,一套完整的、可落地的批发零售企业数字化档案管理制度与系统即部署完成。核心在于前期清晰的分类标签设计,以及利用自动化工具减少人工操作。后续只需按规范执行日常归档与维护即可。