门禁管理系统
创建于 2025 年 5 月 7 日
项目介绍
门禁管理系统是一个面向园区、厂区与办公场景的门禁安防管理后台,项目在芋道 RuoYi-Vue-Pro(yudao 2.4.2-jdk8)框架基础上扩展出独立的 yudao-module-door 门禁业务模块。系统以”人员资料 + HID 卡号”为核心主数据,围绕”发卡办证 → 门禁授权 → 刷卡进出 → 记录查询 → 违规积分”的完整业务链路组织功能:从区域与设备的点位配置,到按人员批量开通门禁点位权限,再到进出记录留痕与在库人数实时看板,最后落到人员资质冻结、注销还原、车辆黑名单与违规积分考核等管控手段。
项目后端采用 Java 8 + Spring Boot 2.7.18,数据访问层使用 MyBatis-Plus 3.5.10.1 与 Druid 连接池,数据库为 SQL Server(dbo.sql 完整导出 75 张表,其中门禁业务表包括 door_channel 区域、door_device 设备、door_fp 点位权限、door_record 进出记录、hr_emp 人员、hr_vehicle 车辆、hr_collect 领证、hr_delete 注销卡资料,以及积分相关的 add_point_rule、credit_rule、jf_total_data 等);管理后台前端基于 Vue 3.5 + TypeScript + Vite 5 + Element Plus 2.9 + Pinia 构建,src/views/door 下按业务组织了 15 个子页面,并附带一套独立的深色”智能门禁安防看板”大屏页面。
项目架构
项目沿用芋道框架经典的微服务单体混合结构,核心模块如下:
| 模块 | 技术栈 | 说明 |
|---|---|---|
yudao-module-door | Spring Boot 2.7.18、MyBatis-Plus 3.5.10.1、Druid 1.2.24、Redisson | 门禁业务模块,按 controller → service → dal 分层,含设备/通道/人员/权限/记录/看板/积分/车辆/领证等子域 |
yudao-module-system | Spring Security、OAuth2 Token | 框架内置:用户、角色、菜单、部门、字典、操作日志、数据权限等基础能力 |
yudao-module-infra | Knife4j、定时任务、文件存储 | 框架内置:接口文档、代码生成、任务调度、文件管理等基础设施 |
yudao-ui-admin-vue3-门禁系统 | Vue 3.5.12、TypeScript 5.3.3、Vite 5.1.4、Element Plus 2.9.1、Pinia | 管理后台前端,src/views/door 为门禁业务页面,src/api/door 按域封装接口 |
dbo.sql | SQL Server 2008+ | 全库导出脚本:框架系统表 + 门禁业务表 + 演示数据 |
后端门禁代码分层清晰:controller/admin 下按域拆分控制器(DeviceController、ChannelController、EmpController、FpController、RecordController、DashboardController、VehicleController、CollectController、HrDeleteController 与积分相关三个控制器);service 层承载业务规则;dal/mysql 配合 resources/mapper 下的自定义 XML(DashboardMapper.xml、RecordMapper.xml、FpMapper.xml)实现复杂联表统计。框架的部门数据权限(@DataPermission)、多租户、操作日志(@LogRecord)、Excel 导入导出(ExcelUtils)等能力被门禁模块大量复用。
核心功能
基础数据管理。 区域信息(door_channel)支持增删改查,区域类型区分安检(1)与办公(2),并绑定所属部门;设备管理(door_device)维护设备编号、通道、IP 端口、型号、序列号与设备分类(1 人脸机、2 门禁控制器),列表分页并支持 Excel 导出。人员资料(hr_emp)登记工号、HID 卡号、身份证号、电话、住址、职务、证件状态、资格证描述、通行区域描述与照片,提供分页查询、下拉检索、Excel 导出,以及通过 Excel 批量冻结资质(freeze-by-excel 接口将权限标记为 ifsend=3 冻结态,unfreeze 接口解冻恢复)等能力。
门禁点位授权与单证核验。 门禁授权页(door/fp)基于人员列表选择一台或多台设备批量开通点位权限(batchCreate),写入 door_fp(工号 + 卡号 + 设备),创建时校验人员存在与重复授权;权限记录通过 ifsend 通讯状态(0 正常 / 2 待删除 / 3 冻结)与 sync_result 处理标志反映与门禁主机的同步进度,删除权限采用软删标记便于设备端同步,支持批量删除与 Excel 导出。配套”权限查询”页面按部门、姓名、HID 卡号、通讯状态筛选授权明细;“单证核验”页输入卡号/姓名/身份证一键检索,以标签页展示人员基础资料、资格证与通行区域等证卡信息。
进出记录与数据看板。 门禁进出记录(door_record)记录工号、卡号、进/出库时间、进出设备、区域名称、进出抓拍照片路径与员工/访客标志(employee_flag),支持按部门、姓名、卡号、进/出库时间区间、区域名称组合查询并导出 Excel。看板页(dashboard)以深色大屏展示”智能门禁安防看板”:总在库人数、今日累计进入、今日告警次数、访客数量四张汇总卡,按区域展示在库人数卡片(支持区域筛选),右侧滚动展示实时进出记录(12 条)与重点监管人员进出记录(8 条),可先选重点监管部门再选人员多选追踪,看板每 10 秒自动轮询刷新,统计查询按登录用户的部门数据权限过滤。
人员资质生命周期与领证管理。 注销的人事卡资料(hr_delete)集中管理被注销人员,支持查询、导出与”还原”操作恢复资质;删除人员时同步把其全部门禁权限标记为待删除(ifsend=2)。领证管理(door/collect)面向发卡场景:刷卡查询领证人资料(scan),系统按部门解析待领证人员清单,完成”领取保存”(receive)并记录领证历史,支持导出历史明细。
车辆管理与违规积分考核。 车辆资料(hr_vehicle)覆盖车牌、VIN、证件有效期等字段,状态机包括使用中(1)、已归还(2)、已过期(3)、黑名单(4),支持 Excel 导入导出、导入模板下载、批量修改、证件延期(extend,黑名单车辆禁止续期)、加入/解除黑名单并自动追加操作备注;配套车辆统计页。积分体系包含三条链路:积分规则(credit_rule)定义违规类别与分值,积分登记明细(add_point_rule)记录每次违规并支持”处理”标记,积分统计分析(jf_total_data)按年度执行数据分析(analyze),按身份证号分组汇总未处理记录生成年度积分档案,支持单条/批量冻结与解冻(积分值不足 6 分不可冻结),冻结后限定生效起止日期。
功能截图
暂无运行截图。
快速上手
-
准备数据库:使用 SQL Server(2008 以上)执行
dbo.sql全量脚本(框架系统表 + 门禁业务表 + 演示数据均已包含;仓库sql/目录还提供 MySQL、PostgreSQL、Oracle 等多方言脚本),库中已预置”办公门禁”角色与区域、设备、人员等示例数据。 -
启动后端:
cd ruoyi-vue-pro-门禁系统
# 修改 yudao-server/src/main/resources/application-local.yaml 中的数据库地址、账号、密码
mvn -pl yudao-server -am package -DskipTests
java -jar yudao-server/target/yudao-server.jar
- 启动前端:
cd yudao-ui-admin-vue3-门禁系统
npm install
npm run dev # http://localhost:8080,默认账号 admin / admin123
- 体验流程:在”人员管理”维护人员与 HID 卡号 → “门禁授权”勾选设备批量开通点位权限 → 看板实时查看在库人数与进出记录 → 在”积分统计分析”按年度分析违规积分并冻结 → 在”车辆管理”维护车辆、办理延期或加入黑名单。
总结
门禁管理系统是一个业务完整度很高的实战型管理后台项目:以芋道 RuoYi-Vue-Pro 为底座,从零扩展出”区域/设备/人员/车辆”四大基础数据、“授权-核验-记录”门禁业务主线与”看板监控-积分考核-黑名单管控”管理闭环,覆盖了从发卡办证到违规处理的完整安防业务流程。技术上严格遵循框架规范,深度复用其数据权限、操作日志、多租户、Excel 导入导出与代码生成能力,Mapper XML 中按部门联表统计在库人数的写法、ifsend 权限同步状态机、积分”不足 6 分不可冻结”等业务规则都体现了对真实门禁与厂区管理场景的细致考量。对于想学习在成熟脚手架(Spring Boot + MyBatis-Plus + Vue 3 + Element Plus)上快速落地行业业务模块的开发者,这是一个完整的参考案例。