信息化的进出校园门禁管理可以节省人力和物力,并且具有较高的精确性。随着计算机技术和网络技术的迅猛发展,进出校园门禁管理系统不断向着集成化、智能化、网络化与分布式的方向发展。本文主要针对目前大部分高校校园进出管理方式落后、管理效率低下的状况,结合当前最新的门禁管理方式,提出了一套校园进出信息化管理的实现方案。该方案主要包括硬件布设和软件开发两个方面,着重分析了系统功能需求及总体构成;分别针对访客用户、学生用户和教师用户进校和离校过程,设计了系统的工作流程;分析了系统的功能模块和数据库结构,并采用java语言进行软件开发。进出校园门禁管理系统能实现学生、访客和教师进出校园的无纸化登记,支持实时查询人员出入信息,自动形成各种报表等功能,具有操作简单、使用方便、实时性高等特点。
关键词:进出校园门禁管理;java语言;springboot框架
Abstract
The management of campus access control through informatization can save manpower and material resources, and has high accuracy. With the rapid development of computer and network technology, campus access control management systems are constantly moving towards integration, intelligence, networking, and distribution. This article mainly focuses on the current situation of outdated and inefficient campus access management in most universities. Combining with the latest access control management methods, a set of implementation plans for campus access information management is proposed. This plan mainly includes two aspects: hardware deployment and software development, with a focus on analyzing the system's functional requirements and overall composition; Designed the workflow of the system for visitor users, student users, and teacher users during their entry and exit processes; Analyzed the functional modules and database structure of the system, and developed the software using Java language. The campus access control management system can achieve paperless registration of students, visitors, and teachers entering and exiting the campus, support real-time query of personnel entry and exit information, and automatically generate various reports. It has the characteristics of simple operation, convenient use, and high real-time performance.
Keywords: Campus access control management for entry and exit; Java language; Springboot framework
目录
1 绪论
1.1 课题研究意义
门禁系统作为校园数字安防的核心应用,已广泛应用在众多校园中,它可以加强校园安全管理,为学校构建一道有效的安全防护屏障,有效的保护校园人员安全,降低来自外来人员的潜在威胁。然而,现有门禁系统在面对校园人员自身产生异常或受到安全威胁的情况时,在防范上却有所缺失。随着人们安全意识的提高,对校园安防的需求已经逐渐从重点部门、要害地点变成了全面安防,门禁系统逐渐增多,面对系统产生的海量进出数据,基于门禁安防数据进行分析和挖掘,实现一个智能化的进出校园门禁管理系统具有较大的现实意义。
欧美门禁系统市场开始进入成熟阶段,其产业分工明确,如美国的HⅠD公司、Hl-dala 公司、德国的De s t e l e公司。生产控制器的公司只研究生产控制器和软件程序。由于市场的不断成熟发展,人们在感受到门禁系统带来的便利性和使用性后,可以自行购买零部件组装而成—套完整的门禁系统。从目前门禁系统的发展趋势和运用前景来看,磁卡和接触式门禁系统开始逐渐退出市场,非接触式门禁系统以它优越的性能和运用领域开始主导门禁系统市场。
RFID卡在国外很早就得到重视并且开始大量的投入研究,特别是在美国和欧洲,但在近几年才开始RFID卡方面的研究使用。RF ID卡、读卡器设计和生产关键技术掌握在欧美国家和部分亚洲国家中,单只有美国能实现大批次的设计生产.当今世界上RFID卡主流产品是飞利浦(P h il i ps)公司的Mifa r e技术,己经被制定为国际标准lS O/I E C 14 4 4 3 T y p eA标准.欧洲及其他发展中国家的一些RFID卡、读卡器制造商都以Mifare技术为标准进行设计生产3]。
国内研究状况:
我国本土厂商(如爱迪尔、华本、芯微)等已经成功研发了指纹识别芯片,国内对门禁系统的研究已经从认识研究阶段发展到自主研究阶段,而在系统的结构方面,国内的门禁系统的核心就是控制器,门控器大多由国外企业开发研制,但国内大部分厂家对门禁系统的研究仍然处于仿制阶段,没有对门禁系统核心技术惊醒自主研究开发。
(1)进出校园门禁管理系统中的web后台管理中的后端不再使用古老的jsp+javabean+servlet[5]技术,而是使用当前主流的springboot[6]框架,它减少java配置代码,简化编程代码,目前springboot框架也是很多企业选择的框架之一。
(2)进出校园门禁管理系统中的web后台管理中的前端使用的是bootstrap框架,它配合ajax和jquery可以美化页面设计。
(3)流行vue框架结合jQuery技术,在jQuery基础上扩展一些插件,通过自己定义插件更好的实现前端的设计。
(4)进出校园门禁管理系统中数据库用的mysql5.7,它执行效率高。
2 进出校园门禁管理系统分析
通过了解对进出校园门禁管理系统的真实需求后,将进出校园门禁管理系统所需要的角色划分整理成了下图2-1,图2-2和图2-3。
从开发工具来看,由于进出校园门禁管理系统是基于JAVA的,因此有很多开发工具都可以进行开发,这些功能强大的开发工具可以给我来设计进出校园门禁管理系统带来非常大的方便。
从进出校园门禁管理系统的本身技术来说,对于我来开发一个进出校园门禁管理系统这个毕设是不费事的。进出校园门禁管理系统的开发可以简单的分为前台端、后台端开发以及数据库开发。其中的大部分技术难点在我上学时已经使用过了,同时网络上很多技术点可以让我来借鉴。Web后台管理使用JAVA的springboot架构开发,数据库使用mysql,页面上使用javascript脚本,因此为我在开发进出校园门禁管理系统这个毕设上省去了很多多余代码,这给我的毕设项目编写带来了极大的便利。综上所述,从技术层面来看开发进出校园门禁管理系统是可行的。
从用户体验来看,市面上很多被广泛使用的系统案例可以让我来参考,因此我可以综合它们的页面交互设计的优点,基于我的毕设项目特点来进行改版,最后达到令用户满意的页面交互体验。综上所述,从技术层面来看开发进出校园门禁管理系统是可行的。
从进出校园门禁管理系统的开发成本来看,进出校园门禁管理系统的设计和开发都是我自己完成的,没有其他成本上的开销。
从进出校园门禁管理系统的维护成本来看,进出校园门禁管理系统的开发遵循一套完整的代码编写规范,并且进出校园门禁管理系统的结构设计非常灵活,遵循高内聚低耦合的原则,因此易于维护和迭代开发。
在进出校园门禁管理系统上线之后,上线前期我会根据真实需求来调查,对使用我开发的进出校园门禁管理系统来制定一套符合的使用费。系统运行稳定后我会将推广范围到其他的校园当中,其他校园可以使用我的进出校园门禁管理系统,只需要缴纳一点点的定金,我会给他们引入广告投资和自营业务。
综合以上的分析,进出校园门禁管理系统所带来的经济效益将会带来极大的收益。并且随着我的推广,来使用我开发的进出校园门禁管理系统的市场将越来越大,进出校园门禁管理系统带来的利润也就越来越多。因此,从经济层面来看开发进出校园门禁管理系统的是可行的。
进出校园门禁管理系统从角色上划分为了学生、教师、访客和管理员四种角色。
管理员用户角色:
(1)登录:管理员的账号是在数据表表中直接设置生成的,不需要进行注册;
(2)系统用户管理:当点击“系统用户管理”这一菜单的时候,会出现管理员+访客+学生+教师四个子菜单,可以对这四个模块进行增删改查操作;
(3)门禁设备管理:当点击“门禁设备添加”这一菜单的时候,由管理员填写设备名称、编号、配置、安装时间、维护时间、运行状态等完成添加门禁设备信息,也可对门禁设备信息进行查询、重置或删除等操作;
(4)访客登记管理:当点击“访客登记列表”这一菜单的时候,可查看访客进入校园申请信息,对访客进入申请进行审核回复,并可进行重置或删除等相应操作;
(5)访客离开管理:当点击“访客离开列表”这一菜单的时候,可查看访客离开校园详细信息,并可进行重置或删除等相应操作;
(6)学生登记管理:管理员可对“学生登记管理”信息进行详情、查询或删除等相应操作;
(7)学生离开管理:管理员可对“学生离开管理”信息进行详情、查询或删除等相应操作;
(8)学生请假管理:管理员可对“学生请假管理”信息进行详情、查询或删除等相应操作;
(9)报失挂失管理:管理员可对学生的报失或挂失申请信息进行审核回复;
(10)教师请假管理:管理员对教师请假申请进行审核并回复;
(11)出入人数管理:管理员在“出入人数添加”一栏可对当天的出去人数和进入人数进行统计管理;
访客用户角色:
(1)注册登录模块:当访客想要进入本进出校园门禁管理系统中对访客进出信息进行添加或登录等操作的时候,就必须要登录到系统当中,要是新的访客没有进出校园门禁管理系统的账号的话,点击“注册”按钮,就会进入到新用户注册这个界面上,用户输入对应的账号(必须填写)+密码(必须填写)+确认密码(必须填写,而且要与密码一直)+昵称+邮箱+手机号+选择用户身份等信息,然后点击“注册”,系统在访客用户这一数据库中会查询账号是不是存在,两次密码是不是一样,都填写正确就会注册成功,然后再进行登录,如果是之前已经注册过的访客用户很长时间没有使用,忘记密码,也可以点击“忘记密码”进行找回;
(2)访客登记管理:在后台首页的“访客登记管理”页面系统会自动生成访客账号、姓名、年龄和联系电话等信息,访客只需输入进入时间、进入理由完成访客信息登记,由管理员进行审核回复,访客用户可进行查询、重置或删除等操作;
(3)访客离开管理:访客点击后台首页的“访客离开管理”页面系统会自动生成访客账号、姓名、年龄和联系电话等信息,访客只需输入离开时间完成访客离开信息,由管理员进行审核回复,访客用户可进行查询、重置或删除等操作;
(4)个人信息:访客用户点击访客昵称可对个人基本信息和密码进行修改操作。
学生用户角色:
(1)登录:学生用户通过账号+密码进行验证进行登录进出校园门禁管理系统;
(2)学生登记管理:学生用户点击后台首页的“学生登记添加”页面系统会自动生成学生账号、姓名、性别、学号、联系电话和门禁卡号等信息,学生用户只需选择进入时间和进入次数完成学生登记管理,学生用户可对登记信息进行查询、重置或删除等操作;
(3)学生离开管理:学生用户点击后台首页的“学生离开添加”页面系统会自动生成学生账号、姓名、性别、学号、联系电话、门禁卡号、进入时间、进入次数等信息,学生用户只需选择离开时间和离开次数完成学生离开信息管理,学生用户可对离开信息进行查询、重置或删除等操作;
(4)学生请假管理:学生用户点击后台首页的“学生请假添加”页面系统会自动生成学生账号、姓名、学号等信息,学生用户需选择教师账号、请假时间、请假类型、申请日期和结束日期并填写教师姓名和请假事由完成学生请假申请信息,学生请假申请由教师进行审核并回复,学生用户可对请假信息进行查询、重置或删除等操作;
(5)报失挂失管理:学生用户点击后台首页的“报失挂失添加”页面系统会自动生成学生账号、姓名、性别、学号、联系电话和门禁卡号等信息,学生用户需选择申请日期和申请状态并填写其他报备完成报失或挂失申请,报失挂失申请由管理员进行审核并回复,学生用户可对报失挂失信息进行查询、重置或删除等操作;
教师用户角色:
- 登录:教师用户通过账号+密码进行验证进行登录进出校园门禁管理系统;
- 学生登记管理:教师用户可在“学生登记列表”页面查看本校学生进入校园信息,如:学生账号、姓名、性别、学号、联系电话、门禁卡号、进入时间、进入次数等详细信息;
- 学生离开管理:教师用户可在“学生离开列表”页面查看本校学生离开校园信息,如:学生账号、姓名、性别、学号、联系电话、门禁卡号、离开时间、离开次数等详细信息;
- 学生请假管理:教师用户可在“学生请假列表”页面查看本校某个学生的请假申请信息进行审核回复操作;
- 教师请假管理:教师用户点击后台首页的“教师请假添加”页面系统会自动生成教师账号、姓名、性别、联系电话等信息,教师用户需选择申请日期、请假类型、请假时间、结束时间并填写请假事由提交教师请假申请,由管理员进行审核回复。
进出校园门禁管理系统的非功能性需求比如进出校园门禁管理系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2-1进出校园门禁管理系统非功能需求表
安全性 | 主要指进出校园门禁管理系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指进出校园门禁管理系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响进出校园门禁管理系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着进出校园门禁管理系统的页面展示内容进行操作,就可以了。 |
可维护性 | 进出校园门禁管理系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3 系统用例分析
根据上一节功能分析,可以得出系统的用例,学生角色用例如图2.1所示。

图2.1 进出校园门禁管理系统中学生角色用例图
教师角色用例如图2.2所示。

图2.2 进出校园门禁管理系统教师角色用例图
访客角色用例如图2.3所示。

图2.3 进出校园门禁管理系统访客角色用例图
进出校园门禁管理系统的管理员是维护整个进出校园门禁管理系统中一系列数据流程,管理员角色用例如图2.3所示。

3 进出校园门禁管理系统总体设计
根据第二章中进出校园门禁管理系统的功能分析可知,进出校园门禁管理系统中整体功能模块图如图3.1所示,

图3.1 进出校园门禁管理系统功能模块图
3.3.1 数据库概念结构设计
下面是整个进出校园门禁管理系统中主要的数据库表总E-R实体关系图。

图3.2 进出校园门禁管理系统总E-R关系图
通过上一小节中进出校园门禁管理系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
表access_control_equipment (门禁设备)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | access_control_equipment_id | int | 10 | 0 | N | Y | 门禁设备ID | |
2 | device_name | varchar | 64 | 0 | Y | N | 设备名称 | |
3 | equipment_number | varchar | 64 | 0 | N | N | 设备编号 | |
4 | equipment_configuration | varchar | 64 | 0 | Y | N | 设备配置 | |
5 | installation_time | date | 10 | 0 | Y | N | 安装时间 | |
6 | maintenance_time | datetime | 19 | 0 | Y | N | 维护时间 | |
7 | running_state | varchar | 64 | 0 | Y | N | 运行状态 | |
8 | other_remarks | text | 65535 | 0 | Y | N | 其他备注 | |
9 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | loss_reporting_id | int | 10 | 0 | N | Y | 报失挂失ID | |
2 | student_account | int | 10 | 0 | Y | N | 0 | 学生账号 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | student_gender | varchar | 64 | 0 | Y | N | 学生性别 | |
5 | student_id | varchar | 64 | 0 | Y | N | 学生学号 | |
6 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
7 | access_control_card_number | varchar | 64 | 0 | Y | N | 门禁卡号 | |
8 | application_date | date | 10 | 0 | Y | N | 申请日期 | |
9 | application_status | varchar | 64 | 0 | Y | N | 申请状态 | |
10 | other_remarks | text | 65535 | 0 | Y | N | 其他备注 | |
11 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
12 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
13 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表number_of_people_entering_and_exiting (出入人数)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | number_of_people_entering_and_exiting_id | int | 10 | 0 | N | Y | 出入人数ID | |
2 | date_of_entry_and_exit | date | 10 | 0 | Y | N | 出入日期 | |
3 | number_of_people_going_out | int | 10 | 0 | Y | N | 0 | 出去人数 |
4 | number_of_people_entering | int | 10 | 0 | Y | N | 0 | 进入人数 |
5 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | sensitive_vocabulary_id | int | 10 | 0 | N | Y | 敏感词汇ID | |
2 | sensitive_vocabulary | varchar | 64 | 0 | Y | N | 敏感词汇 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | students_leaving_id | int | 10 | 0 | N | Y | 学生离开ID | |
2 | student_account | int | 10 | 0 | Y | N | 0 | 学生账号 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | student_gender | varchar | 64 | 0 | Y | N | 学生性别 | |
5 | student_id | varchar | 64 | 0 | Y | N | 学生学号 | |
6 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
7 | access_control_card_number | varchar | 64 | 0 | Y | N | 门禁卡号 | |
8 | entry_time | datetime | 19 | 0 | Y | N | 进入时间 | |
9 | number_of_entries | int | 10 | 0 | Y | N | 0 | 进入次数 |
10 | departure_time | datetime | 19 | 0 | Y | N | 离开时间 | |
11 | number_of_departures | int | 10 | 0 | Y | N | 0 | 离开次数 |
12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | students_taking_leave_id | int | 10 | 0 | N | Y | 学生请假ID | |
2 | student_account | int | 10 | 0 | Y | N | 0 | 学生账号 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | student_id | varchar | 64 | 0 | Y | N | 学生学号 | |
5 | teacher_account | int | 10 | 0 | Y | N | 0 | 教师账号 |
6 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
7 | application_date | date | 10 | 0 | Y | N | 申请日期 | |
8 | leave_type | varchar | 64 | 0 | Y | N | 请假类型 | |
9 | leave_time | datetime | 19 | 0 | Y | N | 请假时间 | |
10 | end_time | datetime | 19 | 0 | Y | N | 结束时间 | |
11 | reason_for_leave | text | 65535 | 0 | Y | N | 请假事由 | |
12 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
13 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
14 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | student_registration_id | int | 10 | 0 | N | Y | 学生登记ID | |
2 | student_account | int | 10 | 0 | Y | N | 0 | 学生账号 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | student_gender | varchar | 64 | 0 | Y | N | 学生性别 | |
5 | student_id | varchar | 64 | 0 | Y | N | 学生学号 | |
6 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
7 | access_control_card_number | varchar | 64 | 0 | Y | N | 门禁卡号 | |
8 | entry_time | datetime | 19 | 0 | Y | N | 进入时间 | |
9 | number_of_entries | int | 10 | 0 | Y | N | 0 | 进入次数 |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | student_users_id | int | 10 | 0 | N | Y | 学生用户ID | |
2 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
3 | student_gender | varchar | 64 | 0 | Y | N | 学生性别 | |
4 | student_age | int | 10 | 0 | Y | N | 0 | 学生年龄 |
5 | student_id | varchar | 64 | 0 | N | N | 学生学号 | |
6 | contact_phone_number | varchar | 16 | 0 | Y | N | 联系电话 | |
7 | access_control_card_number | varchar | 64 | 0 | Y | N | 门禁卡号 | |
8 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
9 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
10 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | teachers_leave_id | int | 10 | 0 | N | Y | 教师请假ID | |
2 | teacher_account | int | 10 | 0 | Y | N | 0 | 教师账号 |
3 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
4 | teacher_gender | varchar | 64 | 0 | Y | N | 教师性别 | |
5 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
6 | application_date | date | 10 | 0 | Y | N | 申请日期 | |
7 | leave_type | varchar | 64 | 0 | Y | N | 请假类型 | |
8 | leave_time | datetime | 19 | 0 | Y | N | 请假时间 | |
9 | end_time | datetime | 19 | 0 | Y | N | 结束时间 | |
10 | reason_for_leave | text | 65535 | 0 | Y | N | 请假事由 | |
11 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
12 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
13 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | teacher_users_id | int | 10 | 0 | N | Y | 教师用户ID | |
2 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
3 | teacher_gender | varchar | 64 | 0 | Y | N | 教师性别 | |
4 | teacher_age | int | 10 | 0 | Y | N | 0 | 教师年龄 |
5 | contact_phone_number | varchar | 16 | 0 | Y | N | 联系电话 | |
6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | visitors_leaving_id | int | 10 | 0 | N | Y | 访客离开ID | |
2 | guest_account | int | 10 | 0 | Y | N | 0 | 访客账号 |
3 | visitor_name | varchar | 64 | 0 | Y | N | 访客姓名 | |
4 | visitor_age | varchar | 64 | 0 | Y | N | 访客年龄 | |
5 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
6 | entry_time | datetime | 19 | 0 | Y | N | 进入时间 | |
7 | departure_time | datetime | 19 | 0 | Y | N | 离开时间 | |
8 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | visitor_registration_id | int | 10 | 0 | N | Y | 访客登记ID | |
2 | guest_account | int | 10 | 0 | Y | N | 0 | 访客账号 |
3 | visitor_name | varchar | 64 | 0 | Y | N | 访客姓名 | |
4 | visitor_age | varchar | 64 | 0 | Y | N | 访客年龄 | |
5 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系电话 | |
6 | entry_time | datetime | 19 | 0 | Y | N | 进入时间 | |
7 | reason_for_entry | text | 65535 | 0 | Y | N | 进入理由 | |
8 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
9 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | visitor_users_id | int | 10 | 0 | N | Y | 访客用户ID | |
2 | visitor_name | varchar | 64 | 0 | Y | N | 访客姓名 | |
3 | visitor_gender | varchar | 64 | 0 | Y | N | 访客性别 | |
4 | visitor_age | int | 10 | 0 | Y | N | 0 | 访客年龄 |
5 | contact_phone_number | varchar | 16 | 0 | Y | N | 联系电话 | |
6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
4 进出校园门禁管理系统设计与实现
进出校园门禁管理系统的详细设计与实现主要是根据前面的进出校园门禁管理系统的需求分析和进出校园门禁管理系统的总体设计来设计页面并实现业务逻辑。主要从进出校园门禁管理系统界面实现、业务逻辑实现这两部分进行介绍。
不是进出校园门禁管理系统中正式用户的是可以在线进行注册的,如果你没有本进出校园门禁管理系统的账号的话,添加“注册”,当填写上自己的账号+密码+确认密码+昵称+邮箱+姓名+性别+年龄+联系电话等信息后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。注册界面实现了访客+学生+教师三个用户的注册,以访客用户注册界面展示如下图4.1所示。

图4.1 注册界面图
进出校园门禁管理系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当会员输入完整的自己的账号和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账号+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到进出校园门禁管理系统的首页中;否则将会提示相应错误信息,访客用户登录界面如下图4.2所示。

图4.2登录界面图
当管理员点击“门禁设备添加”以后就会进入到以下界面,管理员可以输入设备名称、编号、配置、安装时间、维护时间、运行状态等完成门禁设备信息的添加,也可对门禁设备信息进行查询、重置或删除等操作;其界面展示如下图4.3所示。

图4.3 门禁设备添加界面图
管理员在“出入人数添加”一栏选择出入日期和填写出去人数和进入人数进行出入人数的添加管理,也可对出入人数信息进行查询、重置或删除等操作;其界面展示如下图4.4所示。

图4.4 添加出入人数界面图
学生用户点击后台首页的“报失挂失添加”页面系统会自动生成学生账号、姓名、性别、学号、联系电话和门禁卡号等信息,学生用户需选择申请日期和申请状态并填写其他报备完成报失或挂失申请,报失挂失申请由管理员进行审核并回复,学生用户可对报失挂失信息进行查询、重置或删除等操作,其界面展示如下图4.5 4.6所示。

图4.5 报失挂失添加界面图
管理员点击“报失挂失”这个按钮后就会跳转到学生提交的报失挂失申请的信息,管理员任选一条没有审核过的报失挂失申请点击“编辑”这一按钮,可以选择审核状态下拉菜单中的未审核、已通过、未通过进行提交审核,其界面展示如下图4.11所示。

图4.6 报失挂失审核回复界面图
当学生和教师各自进入到后台以后,会出现访客登记/学生登记这一菜单,访客/学生点击“访客登记/学生登记”分别输入进入/离开时间、进入事由和进入次数、离开时间、离开次数等信息进行提交登记信息,访客进出登记由管理员审核回复,以访客用户为例,其界面展示如下图4.7 4.8所示。

图4.7 访客登记添加界面图

图4.8 访客登记审核界面图
学生点击“请假申请”,选择“添加”按钮后就会进入到请假申请添加这个界面,系统会自动填写账号、姓名、学号,然后学生教师账号、申请日期、请假类型、请假时间、结束时间和填写请假事由、教师姓名,点击“提交”就添加成功了;其界面展示如下图4.9 4.10所示。

图4.9 添加请假申请界面图
教师点击“学生请假”这个按钮后就会跳转到本班学生提交的请假申请的信息,教师任选一条没有审核过的请假申请点击“编辑”这一按钮,可以选择审核状态下拉菜单中的未审核、已通过、未通过进行提交审核,其界面展示如下图4.11所示。

图4.10请假审核界面图
5进出校园门禁管理系统测试
进出校园门禁管理系统测试是为了检验软件是否达到设计要求,是否存在错误,通过测试的方法来检查进出校园门禁管理系统,以便发现进出校园门禁管理系统中的错误。测试工作是保证进出校园门禁管理系统质量的关键。
问题1:数据库无法添加中文。
解决过程:重新创建数据库,将库的编码格式改为utf8。
效果:能在新库的表中添加中文。
问题2:控制台报错前台与后台参数不一致
解决过程:检查代码,找到报错参数完成修改,继续报错,服务器移除项目重新运行。
效果:重启项目不再报错。
问题3:报错No bean named 'sysLogServiceImpl' available找不到名为sysLogServiceImpl的bean的对象。
解决过程:询问导师报错原因,发现错误原因是未添加注解@Service,需要在在impl实现类的外面添加@Service注解。
效果:重新debug项目无报错。
问题4:启动项目时报错:Mapped Statements collection does not contain value for
解决过程:网上搜索解决办法,出错可能的原因有多个,经过努力排查,错误原因是mapper映射地址有误。在mybatis-config里重新配置地址。
效果:项目启动正常
系统测试包括:门禁设备添加功能测试、请假申请功能测试、出行报备添加功能测试、疫苗预约功能测试这四大功能测试,如表5.1到5.4所示:
表5.1门禁设备添加功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
门禁设备添加功能模块测试 | 管理员添加门禁设备信息功能是否正常 | 管理员登录成功后点击“添加门禁设备”菜单 | 管理员根据提示并依次输入设备名称+编号+设备配置+安装时间+维护时间等信息,后点击“提交”按钮 | 门禁设备添加信息功能正常 |
表5.2 请假申请功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
请假申请添加功能模块测试 | 学生添加请假申请功能是否正常 | 学生登录成功后点击“添加请假申请”菜单 | 学生根据提示并依次输入请假时间+请假事由等,后点击“提交”按钮 | 请假申请添加信息功能正常 |
表5.3 报失挂失添加功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
报失挂失添加功能模块测试 | 学生添加报失挂失功能是否正常 | 学生登录成功后点击“添加报失挂失”菜单 | 学生根据提示并依次输入申请日期+申请状态+其他备注等,后点击“提交”按钮 | 报失挂失添加信息功能正常 |
表5.4出入人数添加功能测试表
测试功能 | 操作过程 | 预期结果 | 测试结果 | |
出入人数添加功能模块测试 | 管理员添加出入人数功能是否正常 | 管理员登录成功后点击“添加出入人数”菜单 | 管理员根据提示填写出入日期+出去人数+进入分数信息,后点击“提交”按钮 | 出入人数添加功能正常 |
通过上面章节编写进出校园门禁管理系统的测试用例,已经测试完毕了门禁设备添加功能测试、请假申请功能测试、报失挂失添加功能测试、出入人数添加功能测试,通过这4大模块为进出校园门禁管理系统的后期推广运营提供了强力的技术支撑。
结论
至此,进出校园门禁管理系统已经结束,在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如springboot、JAVA技术、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。
当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。
参考文献
[1]杨芬, 宋晓燕. MySQL数据库应用的课程教学分析[J]. 电子技术, 2023, 52 (10): 180-181.
[2]Enhancing Security in the Heart of the Big Apple: YDA Security Solutions' Access Control Systems[J]. M2 Presswire, 2023,
[3]Vertex Security System's Recent Blog Post Shares Information On 5 Common Types of Access Control Systems[J]. M2 Presswire, 2023,
[4]袁琳琳. 浅析Java语言在计算机软件开发中的应用[J]. 信息记录材料, 2023, 24 (09): 81-83.
[5]闫立誉. 基于Java平台开发的软件保护技术探究[J]. 数字技术与应用, 2023, 41 (08): 199-201.
[6]熊群毓. 大数据时代MySQL数据库的应用分析[J]. 信息与电脑(理论版), 2023, 35 (14): 209-212.
[7]李青. 校园智慧门禁系统的设计与实现[J]. 电脑知识与技术, 2023, 19 (02): 20-24+46.
[8]Simon Larsen, Jean-Remy Falleri, Benoit Baudry, Martin Monperrus. Spork: Structured Merge for Java With Formatting Preservation[J]. IEEE Transactions on Software Engineering, 2023, 49 (1): 64-83.
[9]赖翔. 校级统一门禁管理系统的研究与设计[J]. 电子技术与软件工程, 2022, (10): 191-194.
[10]徐伟, 张程, 艾伟清. 基于图像处理技术的实验室智能门禁管理系统设计[J]. 常熟理工学院学报, 2019, 33 (02): 48-51.
[11]叶钢. 基于物联网的学生公寓门禁管理系统的设计[J]. 科学技术创新, 2019, (08): 72-73.
[12]秦超, 刘正强, 刘林, 先杨, 黎艳, 朱倩钰, 蒋玲. 基于树莓派的人脸识别校园门禁管理系统[J]. 物联网技术, 2019, 9 (02): 13-14.
[13]张天津. 高校实验室门禁与考勤管理系统的设计与实现[J]. 宁德师范学院学报(自然科学版), 2018, 30 (02): 197-200.
[14]戴冶, 郭欣, 邵凤伟, 王磊. “校园一卡通”的多方位门禁管理体系分析[J]. 信息化研究, 2018, 42 (02): 9-12.
[15]刘倩, 郭玉娇, 李志华. 一种基于Web新型校园门禁管理系统[J]. 海峡科技与产业, 2018, (03): 64-65.
[16]张媛. 基于校园一卡通的门禁和通道管理系统建设[J]. 中国现代教育装备, 2019, (11): 17-19.
[17]张新岭, 梁晓明, 王惠芳, 陈巍, 田杰. 基于无线通信的校园门禁管理系统设计[J]. 科技信息, 2019, (13): 345-346.
[18]曾党泉. 基于物联网技术的校园安防系统的研究与设计[J]. 现代电子技术, 2021, 36 (24): 43-46.
[19]郭盛, 黄刚, 王峰. 校园卡门禁系统在高校实验室中的应用研究[J]. 中国现代教育装备, 2019, (19): 8-10.
[20]冯为华, 章卫星, 钟平. “校园一卡通”考勤及门禁管理系统的开发与研究[J]. 四川理工学院学报(自然科学版), 2018, (01): 71-74.
致 谢
时间过的很快,不知不觉,在中北大学的学习生活即将结束。毕业之际,我真诚地向帮助过我的老师、家人、同学、朋友们表达感谢。首先要感谢的是我的母校。感谢母校给了我美好的生活和优越的学习环境,使我能学到了很多知识,也不断的变得优秀;感谢家人在这四年期间一直给与我的爱和无条件的支持,让我没有后顾之忧地完成学业;感谢软件学院的任课老师们给我鼓励和认可,让我有信心去做好每一件事情;感谢同学们的帮助,让我的大学生活更有意义。在此次毕业设计的实现过程中, 我得到了老师们的耐心指导让我顺利完成了该设计。从最初的选题和开题开始,老师就给予我很多帮助,他们认真负责的态度、丰富的教学经验让我学到了很多。
同时也要感谢我敬爱的班主任和实训课程的老师,他们在各个方面都教给了我丰富的经验,在面对各种困难时如何处理。因为今年的特殊性,老师们不仅在学习中给我以精心的指导,同时还在其它方面给予我观关怀,指导老师不辞辛苦的为大家录制视频和一遍遍讲解让我心怀感激之情。在此,我真诚的感恩、感谢我的指导教师们。
还要感谢实习期间不厌其烦教导我鼓励我的技术师傅,他指导了我各个方面的技巧,尤其是编程方面,迄今我的很多技巧和编写规范都有赖于他的指导、纠正。
最后还要特别感谢身边的各位同学们,一直支持鼓励我,无论何时何种境况。我很荣幸获得同学们的帮助,也很开心能够和大家共度大学四年的时光。
最后的最后,再次发自肺腑的感谢所有帮助过我的人。
关注&点赞&收藏&私信博主,免费领取项目源码