Appearance
企业文档管理系统
项目概况
项目名称:企业文档管理系统(NumberOne)
项目类型:企业级文档管理与权限控制系统
服务客户:某建设工程/招投标企业
项目地点:贵州省
上线时间:2020年
系统组成:
- 前端界面:Thymeleaf模板 + Bootstrap + jQuery + zTree
- 后端服务:Spring Boot 2.1.1 + MyBatis + Apache Shiro
- 数据库:MySQL + Druid连接池
- 缓存框架:EhCache
- 定时任务:Quartz
项目背景
行业痛点
企业在文档管理过程中面临诸多挑战:
| 痛点 | 具体表现 | 影响 |
|---|---|---|
| 文档分散存储 | 文件散落在个人电脑、U盘、邮件中 | 查找困难,版本混乱 |
| 权限管理混乱 | 谁可以查看、编辑、下载文档不明确 | 信息泄露风险 |
| 缺乏备份机制 | 重要文件丢失后无法恢复 | 数据安全隐患 |
| 协作效率低 | 多人协作时版本冲突频繁 | 工作效率低下 |
| 审计追溯难 | 无法追踪文档的操作历史 | 责任界定困难 |
项目目标
- 建立统一的企业文档管理平台
- 实现文档的集中存储和分类管理
- 建立完善的权限控制体系
- 提供双备份机制保障数据安全
- 实现操作审计和追溯
核心功能模块
一、文档管理
1.1 目录树管理
基于zTree组件的目录结构管理:
文档中心
├── 项目文件
│ ├── 招投标文件
│ ├── 合同文件
│ ├── 施工图纸
│ └── 验收资料
├── 商务文件
│ ├── 客户资料
│ ├── 供应商档案
│ └── 合作协议
├── 行政文件
│ ├── 规章制度
│ ├── 通知公告
│ └── 会议纪要
└── 财务文件
├── 财务报表
├── 发票凭证
└── 审计资料1.2 文件上传
| 功能 | 说明 |
|---|---|
| 多文件上传 | 支持批量选择文件上传 |
| 大文件支持 | 最大支持5030MB文件上传 |
| 进度显示 | 上传进度实时显示 |
| 格式限制 | 可配置允许上传的文件类型 |
| 重复检测 | 自动检测重复文件 |
1.3 文件操作
| 操作 | 说明 |
|---|---|
| 下载 | 单文件/批量下载 |
| 移动 | 文件在不同目录间移动 |
| 复制 | 文件复制到其他目录 |
| 重命名 | 修改文件名称 |
| 删除 | 逻辑删除,可恢复 |
| 锁定 | 锁定文件防止修改 |
1.4 在线预览
- PDF预览:浏览器内直接预览PDF文件
- 图片预览:支持常见图片格式预览
- 文本预览:支持txt、log等文本文件
1.5 双路径备份
核心安全机制:
文件上传
│
├──→ 原始路径存储 (profile)
│
└──→ 备份路径存储 (profilebak)- 文件上传时自动保存到两个独立路径
- 主存储损坏时可从备份恢复
- 支持备份策略配置
二、权限管理
2.1 RBAC权限模型
基于Apache Shiro实现的完整权限控制:
用户 (SysUser)
│
├──→ 角色 (SysRole) → 菜单权限
│
└──→ 部门 (SysDept) → 数据权限2.2 权限控制粒度
| 权限类型 | 控制内容 |
|---|---|
| 菜单权限 | 控制可访问的功能模块 |
| 按钮权限 | 控制页面上的操作按钮(增删改查) |
| 数据权限 | 控制可见的文档范围 |
| 目录权限 | 控制对特定目录的访问 |
2.3 数据权限范围
| 范围级别 | 说明 |
|---|---|
| 全部数据 | 可见所有文档 |
| 本部门数据 | 仅可见本部门文档 |
| 本部门及以下 | 可见本部门及子部门文档 |
| 仅本人数据 | 仅可见自己上传的文档 |
| 自定义数据 | 按配置可见指定部门文档 |
2.4 角色管理
- 管理员:拥有所有权限
- 部门经理:管理部门内文档
- 普通员工:管理个人文档
- 访客:仅查看权限
三、系统管理
3.1 用户管理
| 功能 | 说明 |
|---|---|
| 用户增删改查 | 用户信息的完整管理 |
| 密码重置 | 管理员重置用户密码 |
| 状态管理 | 启用/禁用用户账号 |
| 批量导入 | Excel批量导入用户 |
3.2 部门管理
- 树形部门结构
- 部门增删改查
- 部门人员管理
- 部门权限配置
3.3 岗位管理
- 岗位定义
- 岗位与用户关联
- 岗位权限配置
3.4 字典管理
- 文件类型字典
- 文档状态字典
- 系统参数配置
四、系统监控
4.1 在线用户
| 功能 | 说明 |
|---|---|
| 实时在线 | 查看当前登录用户 |
| 会话信息 | 显示登录时间、IP地址 |
| 强制下线 | 管理员可强制用户下线 |
| 会话统计 | 在线人数统计 |
4.2 操作日志
- 操作记录:记录用户的所有操作
- 操作类型:新增、修改、删除、查询、导出等
- 操作时间:精确到秒的操作时间
- 操作结果:成功/失败状态
- IP地址:记录操作来源IP
4.3 登录日志
- 登录时间
- 登录IP
- 登录地点
- 登录结果
- 浏览器信息
4.4 服务监控
基于OSHI实现的服务器监控:
| 监控项 | 内容 |
|---|---|
| CPU监控 | CPU使用率、核心数 |
| 内存监控 | 内存使用率、可用内存 |
| 磁盘监控 | 磁盘使用率、可用空间 |
| JVM监控 | JVM内存、GC情况 |
| 系统信息 | 操作系统、运行时长 |
4.5 数据监控
Druid数据源监控:
- SQL执行监控
- 慢SQL记录
- 连接池状态
- 数据源配置
五、系统工具
5.1 代码生成器
基于Velocity模板引擎的代码生成:
| 功能 | 说明 |
|---|---|
| 表结构导入 | 从数据库导入表结构 |
| 代码生成 | 自动生成Entity、Mapper、Service、Controller |
| 模板定制 | 支持自定义代码模板 |
| 批量生成 | 支持多表批量生成 |
5.2 表单构建
可视化表单设计器:
- 拖拽式表单设计
- 多种表单组件
- 表单预览
- 代码生成
5.3 定时任务
基于Quartz的定时任务管理:
| 功能 | 说明 |
|---|---|
| 任务管理 | 创建、编辑、删除定时任务 |
| Cron表达式 | 支持Cron表达式配置 |
| 任务执行 | 手动触发、定时触发 |
| 执行日志 | 记录任务执行历史 |
| 任务状态 | 启用/停用任务 |
技术架构
架构设计
企业文档管理系统采用Spring Boot单体架构,前后端通过模板引擎整合,适合中小型企业快速部署使用。
系统分层:
- Web层:Thymeleaf模板渲染页面
- 业务层:文档管理、权限控制、系统监控
- 数据层:MySQL持久化 + EhCache本地缓存
- 存储层:双路径文件存储(主存储+备份)
核心技术栈
| 层级 | 技术选型 | 说明 |
|---|---|---|
| 模板引擎 | Thymeleaf | 服务端页面渲染 |
| UI框架 | Bootstrap + jQuery | 经典Web UI方案 |
| 树形组件 | zTree | 目录树形展示 |
| 后端框架 | Spring Boot 2.1 | 快速开发框架 |
| 数据访问 | MyBatis | SQL映射框架 |
| 权限控制 | Apache Shiro | RBAC权限模型 |
| 连接池 | Druid | 数据库连接监控 |
| 缓存 | EhCache | 本地缓存加速 |
| 定时任务 | Quartz | 定时备份任务 |
| 系统监控 | OSHI | 服务器资源监控 |
技术亮点
- 双路径备份:文件自动同步到主备两个目录,数据安全有保障
- RBAC权限:基于角色的细粒度权限控制,支持数据权限范围配置
- 本地缓存:EhCache减少数据库查询,提升响应速度
- 系统监控:实时展示CPU、内存、磁盘、JVM运行状态
后端技术
| 技术 | 版本 | 用途 |
|---|---|---|
| Spring Boot | 2.1.1.RELEASE | 核心框架 |
| MyBatis | 1.3.2 | ORM持久层 |
| Apache Shiro | 1.4.0 | 安全认证授权 |
| Druid | 1.1.10 | 数据库连接池 |
| PageHelper | 1.2.5 | 分页插件 |
| Swagger | 2.7.0 | API文档 |
| Quartz | - | 定时任务 |
| OSHI | 3.9.1 | 系统监控 |
前端技术
| 技术 | 用途 |
|---|---|
| Thymeleaf | 模板引擎 |
| Bootstrap | UI框架 |
| jQuery | JS库 |
| zTree | 树形组件 |
| Layer | 弹窗组件 |
| FontAwesome | 图标库 |
数据库设计
核心表结构
| 表名 | 说明 |
|---|---|
| sys_user | 用户表 |
| sys_role | 角色表 |
| sys_menu | 菜单权限表 |
| sys_dept | 部门/目录表 |
| sys_files | 文件表 |
| sys_user_role | 用户角色关联表 |
| sys_role_menu | 角色菜单关联表 |
| sys_oper_log | 操作日志表 |
| sys_logininfor | 登录日志表 |
| sys_job | 定时任务表 |
文件表结构 (sys_files)
| 字段 | 说明 |
|---|---|
| fileid | 文件ID |
| filename | 文件名 |
| filesize | 文件大小 |
| filepath | 文件存储路径 |
| backuppath | 备份路径 |
| dept_id | 所属目录ID |
| lock_flag | 锁定标志 |
| del_flag | 删除标志 |
| create_by | 创建者 |
| create_time | 创建时间 |
核心优势
安全可靠
| 优势 | 说明 |
|---|---|
| 双路径备份 | 文件自动备份到两个独立路径 |
| 权限控制 | 细粒度的RBAC权限控制 |
| 操作审计 | 完整的操作日志记录 |
| 数据加密 | 敏感数据加密存储 |
功能完善
| 优势 | 说明 |
|---|---|
| 目录管理 | 灵活的树形目录结构 |
| 文件操作 | 完整的文件操作功能 |
| 在线预览 | 支持多种格式在线预览 |
| 系统监控 | 完善的监控和日志体系 |
易于扩展
| 优势 | 说明 |
|---|---|
| 代码生成 | 自动生成前后端代码 |
| 模块化设计 | Maven多模块架构 |
| 配置灵活 | 丰富的配置选项 |
| 文档完善 | Swagger API文档 |
业务价值
对企业
| 价值点 | 具体体现 |
|---|---|
| 文档集中化 | 所有文档统一管理,避免分散 |
| 安全可控 | 权限控制 + 双备份,数据安全有保障 |
| 效率提升 | 快速查找、在线预览,提升工作效率 |
| 合规审计 | 操作日志完整,满足审计要求 |
对管理员
| 价值点 | 具体体现 |
|---|---|
| 管理便捷 | 用户、权限、文档一站式管理 |
| 监控全面 | 实时监控服务器和系统状态 |
| 追溯容易 | 操作日志完整,问题可追溯 |
对员工
| 价值点 | 具体体现 |
|---|---|
| 查找快速 | 目录分类清晰,搜索功能强大 |
| 协作顺畅 | 权限明确,多人协作不冲突 |
| 使用简单 | 界面简洁,操作直观 |
应用场景
场景一:工程项目文档管理
- 招投标文件归档
- 合同文件管理
- 施工图纸存储
- 验收资料整理
场景二:企业知识库建设
- 规章制度文档
- 培训资料管理
- 技术文档沉淀
- 经验案例分享
场景三:财务档案管理
- 财务报表归档
- 发票凭证管理
- 审计资料存储
- 合同档案管理
项目成果
上线效果
- 系统稳定:基于成熟的Spring Boot技术栈
- 功能全面:涵盖文档管理、权限控制、系统监控等完整功能
- 体验良好:界面简洁美观,操作便捷
- 安全可靠:双备份机制 + 细粒度权限控制
技术亮点
- 双路径备份:独创的双路径备份机制,数据安全有保障
- RBAC权限:完整的RBAC权限模型,控制粒度精细
- 代码生成:自动生成代码,开发效率高
- 系统监控:基于OSHI的服务器监控,实时掌握系统状态
客户评价
"企业文档管理系统解决了我们长期以来的文件管理难题。以前项目资料分散在各个部门,查找困难,版本混乱。现在统一平台管理,权限清晰,双备份机制也让我们对数据安全更有信心。"
—— 张经理,某建设工程公司信息部
"作为部门负责人,我最喜欢的是权限管理功能。可以精确控制每个员工能看哪些文件、能做什么操作,敏感资料得到了很好的保护。操作日志也让我们能追溯每个文件的操作历史。"
—— 李主管,某企业行政部门
想了解我们的服务如何帮助您的企业实现文档数字化管理?欢迎联系我们。