摘 要
本文旨在设计并实现一个基于Spring Boot框架的高等职业院校实验室信息管理系统。该系统采用B/S体系结构,以MySQL作为数据库管理平台,结合前端技术如HTML、CSS和JQuery,为用户提供一个功能全面、操作便捷的实验室信息管理平台。
在系统设计与实现过程中,我们深入分析了高等职业院校实验室管理的实际需求,结合Spring Boot框架的优势,设计了系统的整体架构和功能模块。系统实现了院校班级管理、实验教室管理、设备分类管理、实验设备管理、设备采购管理、设备报废管理、实验课程管理、课程预约管理等诸多模块,形成了一套完整的实验室综合管理体系。
通过采用Spring Boot框架和MySQL数据库,我们成功地实现了系统的业务逻辑处理和数据存储管理。同时,结合前端技术,我们为用户提供了友好的交互界面和便捷的操作体验。
本文详细介绍了系统的设计与实现过程,包括需求分析、系统设计、数据库设计、系统实现和系统测试等阶段。通过实际应用验证,该系统能够有效地满足高等职业院校实验室管理的实际需求,提高实验室的利用率和管理效率,为实验教学的顺利开展提供了有力支持。
本文的研究成果不仅为高等职业院校实验室信息管理提供了有效的解决方案,也为类似系统的设计与实现提供了有益的参考和借鉴。
关键词:实验室信息管理;Vue;Spring Boot框架
Design and Implementation of Laboratory Information Management in Higher Vocational Colleges
Abstract
This article aims to design and implement a laboratory information management system for higher vocational colleges based on the Spring Boot framework. The system adopts a B/S architecture, uses MySQL as the database management platform, and combines front-end technologies such as HTML, CSS, and JQuery to provide users with a comprehensive and user-friendly laboratory information management platform.
In the process of system design and implementation, we deeply analyzed the actual needs of laboratory management in higher vocational colleges, combined with the advantages of the Spring Boot framework, and designed the overall architecture and functional modules of the system. The system has implemented many modules such as college class management, experimental classroom management, equipment classification management, experimental equipment management, equipment procurement management, equipment scrapping management, experimental course management, course reservation management, etc., forming a complete comprehensive laboratory management system.
By adopting the Spring Boot framework and MySQL database, we have successfully implemented the system's business logic processing and data storage management. At the same time, combined with front-end technology, we provide users with a friendly interactive interface and a convenient operating experience.
This article provides a detailed introduction to the design and implementation process of the system, including requirements analysis, system design, database design, system implementation, and system testing stages. Through practical application verification, the system can effectively meet the practical needs of laboratory management in higher vocational colleges, improve the utilization and management efficiency of laboratories, and provide strong support for the smooth implementation of experimental teaching.
The research results of this article not only provide effective solutions for laboratory information management in higher vocational colleges, but also provide useful reference and inspiration for the design and implementation of similar systems.
Key words:Laboratory information management; Vue; Spring Boot framework
目 录
随着信息技术的快速发展和高等职业院校教育体制改革的逐步深入,传统的实验室管理方式已经无法满足当前的教学和管理需求。实验室作为高校教学和科研的重要基地,其管理效率和管理水平直接影响到教学和科研的质量。因此,开发一款符合高等职业院校特点的实验室信息管理系统,对于提高实验室的利用率、管理效率以及推动实验教学和科研的发展具有重要意义。
一方面,通过设计并实现基于Spring Boot框架的实验室信息管理系统,可以实现对实验室资源的全面整合和优化配置,提高实验室设备的利用率和使用效益。同时,该系统还可以提供院校班级管理、实验教室管理、设备分类管理、实验设备管理、设备采购管理、设备报废管理、实验课程管理、课程预约管理等功能,方便师生进行实验教学活动,从根本上改善实验教学的效率和体验。
另一方面,该系统的设计与实现还可以推动高校实验室管理的信息化和现代化进程。通过引入信息技术手段,可以实现对实验室各项数据的记录和分析,帮助管理者更好地了解实验室的使用情况和存在的问题,为决策提供支持。同时,该系统还可以提供数据共享和交互平台,促进实验教学和科研的交流和合作。
综上所述,高等职业院校实验室信息管理系统的设计与实现具有重要的研究背景和意义。通过引入信息技术手段,可以实现对实验室资源的全面整合和优化配置,提高实验室的利用率和管理效率,推动实验教学和科研的发展。同时,该系统的实现还可以推动高校实验室管理的信息化和现代化进程,为高校的教育和科研事业提供有力支持。
-
- 国内外研究现状
国内研究现状
在国内,随着教育信息化的发展,高等职业院校的实验室信息管理也逐渐受到了重视。然而,相较于发达国家,国内的研究起步较晚,且发展相对较慢。目前,国内大多数高等职业院校仍采用传统的实验室管理模式,存在诸多问题,如实验室设备利用率低、管理效率低下、信息化水平不高等。
近年来,随着信息技术的快速发展,国内的一些高校和研究机构开始尝试引入信息技术手段,对实验室信息管理进行改进和优化。一些软件开发公司也针对高校实验室的需求,开发了一些相应的实验室管理软件,并逐渐形成了一定的市场。这些软件在一定程度上解决了实验室资源管理、仪器设备管理、人员管理等方面的问题,提高了实验室的管理效率。
然而,总体而言,国内在高等职业院校实验室信息管理方面的研究和实践仍处于初级阶段,需要进一步加强研究和推广。
国外研究现状
在国外,尤其是发达国家,实验室信息管理系统(LIMS)的研究和应用起步较早,已经形成了比较成熟的市场和技术体系。这些国家的大学教育比较普及,对实验室管理的需求也较为迫切,因此实验室信息管理系统得到了广泛的应用和推广。
国外实验室信息管理系统的发展水平较高,已经实现了实验室资源的全面整合和优化配置,提高了实验室的利用率和管理效率。同时,这些系统还提供了丰富的功能和工具,如实验室预约、设备借用、材料领用、数据分析等,方便师生进行实验教学活动,并促进了实验教学和科研的交流与合作。
此外,国外的一些专业公司也针对实验室信息管理系统的需求,开发了一系列功能强大的应用程序,为高校和科研机构提供了全面的解决方案。这些系统的应用不仅提高了实验室的管理水平,也推动了高校和科研机构的教育和科研事业的发展。
综上所述,国内外在高等职业院校实验室信息管理方面的研究和实践存在一定的差距。国内需要进一步加强研究和推广,借鉴国外的先进经验和技术手段,提高实验室的管理水平和效率,推动实验教学和科研的发展。
根据市场调研得到的信息数据,结合国内外前沿研究,利用相关系统开发和设计方法,最终设计出高等职业院校实验室信息管理设计与实现。
本文共有七章,如下所示。
第一章概述了高等职业院校实验室信息管理研究背景和意义;精炼地总结了国内外研究情况和未来的研究趋势,最后给出了论文的组成结构。
第二章简要对系统各业务流程进行需求分析、可行性分析。
第三章对高等职业院校实验室信息管理进行设计。
第四章对高等职业院校实验室信息管理进行实现,并贴出相关页面截图,语言描述出具体功能实现的操作方法。
第五章对高等职业院校实验室信息管理采用测试用例的方式来对一些主要功能模块测试,最后得出测试结果。
第六章总结全文并对未来的研究做出展望。
在软件开发的过程中系统的可行性分析是必不可少的,可行性的研究就是评估问题是否能得到解决并且是要以最少的时间和最少的代价来解决。为实现上面的目标还要必须考虑到解决这些问题的方法的优点和缺点,还要考虑到实现了这些系统规模的开发带来的经济效益。这里可以用技术的可行性,操作的可行性,经济的可行性对我们的系统进行可行性的研究。高等职业院校实验室信息管理设计与实现的可行性分析如下所示:
技术可行性方面,基于Spring Boot的高等职业院校实验室信息管理系统设计与实现具有显著的技术优势。Spring Boot框架作为当前主流的Java开发框架,以其简洁、快速、灵活的特点,为系统的快速搭建和稳定运行提供了有力保障。同时,Spring Boot与MySQL数据库的完美结合,确保了系统数据处理的高效性和安全性。前端采用JQuery等成熟技术,保证了用户界面的友好性和交互性。此外,整个系统采用B/S架构,无需安装客户端,降低了系统的维护成本。综上所述,从技术角度来看,基于Spring Boot的高等职业院校实验室信息管理系统设计与实现是完全可行的,能够满足系统的稳定性和可扩展性需求。
经济可行性方面,基于Spring Boot的高等职业院校实验室信息管理系统设计与实现同样具有显著优势。该系统采用开源的Spring Boot框架和MySQL数据库,大大降低了软件开发的成本。B/S架构的设计使得系统的部署和维护变得简单高效,减少了人力和物力的投入。此外,系统的使用能够显著提高实验室的管理效率和资源利用率,从而间接节省了大量的人力、物力和财力。因此,从经济角度来看,基于Spring Boot的高等职业院校实验室信息管理系统设计与实现是完全可行的,具有较高的性价比和长远的投资回报。
本系统是基于浏览器和服务器的高等职业院校实验室信息管理设计与实现,系统开发完成之后用户只需要在浏览器中输入正确的URL地址即可进行访问。本系统的前台页面简单明了,在没有操作指导的情况下也可以进行操作,无论是系统管理员还是用户在页面中所有的操作都是在浏览器中完成的,因此只要电脑在有网络的情况下,打开浏览器都能操作。而且在使用之前也不用进行相关的环境配置,因此本系统方便、简单、易于使用,所以该系统是容易并且可操作的。
在设计和实现高等职业院校实验室信息管理系统之前,我们进行了详尽的需求分析,以确保系统能够精准地满足学校实验室管理的实际需求。我们深知,一个高效的实验室信息管理系统对于提升实验教学质量、优化资源配置以及加强实验室管理至关重要。
明确学校需求:通过与学校实验室管理人员的深入交流,我们了解了实验室日常管理的痛点和需求。学校期望系统能够实现对实验室资源、设备、课程等的全面管理,并提供院校班级管理、实验教室管理、设备分类管理、实验设备管理、设备采购管理、设备报废管理、实验课程管理、课程预约管理等功能,以提高实验室的利用率和管理效率。
系统性能与易用性:系统必须具备良好的性能和稳定性,能够应对大量用户的并发访问。同时,我们注重系统的易用性,通过简洁明了的界面设计和友好的交互方式,让实验室管理人员能够轻松上手,快速掌握系统的各项功能。
数据安全与可靠性:在实验室信息管理中,数据的安全性和可靠性至关重要。我们采取了多种措施,如数据加密、备份恢复等,确保实验室数据的安全性和完整性。同时,系统还提供了数据导出和导入功能,方便用户与其他系统进行数据交换和整合。
灵活性与可扩展性:由于高等职业院校实验室管理需求可能随着学校发展和教学改革而发生变化,我们注重系统的灵活性和可扩展性。通过模块化设计和可扩展的架构,我们可以根据学校的需求变化快速调整系统功能,满足不断变化的管理需求。
-
- 性能分析
在高等职业院校实验室信息管理设计与实现的过程中,性能需求是至关重要的考虑因素。以下是一些关键的性能需求:
数据处理能力:系统需要能够高效地处理大量的实验室数据,包括设备信息、使用记录、库存情况等。同时,系统还应支持并发访问,确保多个用户同时操作时不会出现卡顿或延迟。
系统稳定性:系统应具备良好的稳定性,能够长时间运行而不出现故障或崩溃。此外,系统还应具备自动恢复功能,能够在异常情况发生时自动恢复到正常状态。
安全性:系统必须保障数据的安全性,防止未经授权的访问和修改。这包括数据加密、权限管理、日志记录等安全机制。
易用性:系统应设计简洁明了的用户界面和操作流程,方便用户快速上手并熟练使用。同时,系统还应提供详细的帮助文档和客服支持,以便用户在遇到问题时能够及时得到解决。
可扩展性:随着学校的发展和实验室管理的需求变化,系统应能够灵活地扩展功能模块和容量,以满足新的管理需求。
为了满足这些性能需求,在设计和实现高等职业院校实验室信息管理系统时,需要采用先进的技术架构和开发工具,确保系统的性能、稳定性和安全性。同时,还需要进行充分的测试和优化,确保系统在实际使用中能够满足用户的期望和要求。
学生用户有首页、系统公告、实验资讯、实验课程、我的账户、个人中心(个人首页、课程预约、收藏)等功能,角色用例如图2-1所示。
图2-1学生用户用例图
教师用户有首页、系统公告、实验资讯、实验课程、我的账户、个人中心(个人首页、实验设备、设备采购、设备报废、实验课程、课程预约、收藏)等功能,角色用例如图2-2所示。
图2-2教师用户用例图
管理员有后台首页、系统用户、院校班级管理、实验教室管理、设备分类管理、实验设备管理、设备采购管理、设备报废管理、实验课程管理、课程预约管理、系统管理、系统公告管理、资源管理等功能,角色用例如图2-3所示。
图2-3管理员用例图
(1)增加数据流程
系统中的所有用户(管理员、学生用户和教师用户)都可以实现增加数据功能,图2-4显示的就是在增加数据时的流程。
图2-4增加数据流程图
(2)修改数据流程
在录入系统信息的时候如果信息有错,可以对系统中的数据进行编辑。图2-5显示的就是修改数据的流程。
图2-5修改数据流程图
(3)删除数据流程
在系统中经常会出现一些过期的数据,那就可以直接删除这些数据,图2-6就是删除数据时的流程图。
图2-6删除数据流程图
由于本系统在逻辑事务处理方面对数据库的操作比较频繁所以系统在底层连接数据库时并没有使用原生的JDBC,而是把JDBC进行了封装,封装之后相当于一个连接数据库的工具DB UTIL,这样使用起来会更加方便而且这样进行封装还可以降低系统中代码的冗余,当我们需要连接和使用数据库时只需要调用这个工具里面的一个方法就可以了。而且通过封装可以把对数据库的操作独立起来,当需要连接不同种类的数据库时只需要加以修改就可以达到目的。
DAO层本来并无这个类,它只是java中MVC构造里的一个model概念,主要就是里面的一些方法,而这些方法就是用来访问数据库的方法。我们在软件开发时DAO层我们一般都放接口和接口的实现类,用于来规范实现类的我们叫它接口,实现类重点用于对数据库的操纵。
MVC是一种系统研发的关键模型,M是Model模型,它是系统内部关键程序运行的核心,主要进行对数据库的各种操作。视图View是V也叫做视图,主要的作用是对一些数据进行显示。控制器Controller 是C执行从View的视图层来读取数据,然后控制用户的输入。
系统架构如下图所示。
图3-1系统架构图
进入系统后首先要进行登录,验证你的身份,赋予你不同的权限。当你成功登录后,页面会有多个板块,分别是后台首页、系统用户、院校班级管理、实验教室管理、设备分类管理、实验设备管理、设备采购管理、设备报废管理、实验课程管理、课程预约管理、系统管理、系统公告管理、资源管理。里面界面简单易懂,根据标示可以直接进行方便快捷的操作。
系统功能结构图如下所示。
图3-2系统功能结构图
一个好的系统它的后台数据库一定要考虑的全面,这和我们建造房子一个概念,房子不是随心所欲建起来的,一切都是在合理设计的基础是实现的,地基打牢固了房子才能建的更高。数据库如果设计的很合理,而且每个方面都能考虑到了那么这个系统才能不会出现大的问题。
一个好的数据库可以关系到程序开发的优劣,数据库设计离不开表结构的设计,还有表与表之间的联系,以及系统开发需要设计的数据表内容等信息。在进行数据库设计期间,要结合实际情况来对数据库进行针对性的开发设计。
-
-
- 数据库E-R图设计
-
本高等职业院校实验室信息管理设计与实现采用的是mysql数据库,数据存储快,因为高等职业院校实验室信息管理设计与实现,主要的就是对信息的管理,信息内容比较多,这就需要好好的设计一个好的数据库,分类要清楚,不能添加信息的时候,造成信息太过混乱,设计好的数据库首先就需要先把各个实体之间的关系表达明确,
系统的主要实体间关系E-R图如下图所示。
图3-3系统E-R图
此环节把概念转变成数据。由于整个数据库所处理的信息过多,就只展示以下几个表。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | 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 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | college_class_id | int | 10 | 0 | N | Y | 院校班级ID | |
2 | class_name | 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 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | course_reservation_id | int | 10 | 0 | N | Y | 课程预约ID | |
2 | appointment_of_students | int | 10 | 0 | Y | N | 0 | 预约学生 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | course_name | varchar | 64 | 0 | Y | N | 课程名称 | |
5 | course_teacher | int | 10 | 0 | Y | N | 0 | 课程教师 |
6 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
7 | class_date | varchar | 64 | 0 | Y | N | 上课日期 | |
8 | class_time | varchar | 64 | 0 | Y | N | 上课时间 | |
9 | classroom | varchar | 64 | 0 | Y | N | 上课教室 | |
10 | classroom_address | varchar | 64 | 0 | Y | N | 教室地址 | |
11 | course_content | text | 65535 | 0 | Y | N | 课程内容 | |
12 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
13 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表equipment_classification (设备分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | equipment_classification_id | int | 10 | 0 | N | Y | 设备分类ID | |
2 | classification_name | 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 | equipment_procurement_id | int | 10 | 0 | N | Y | 设备采购ID | |
2 | teacher_users | int | 10 | 0 | Y | N | 0 | 教师用户 |
3 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
4 | teacher_id | varchar | 64 | 0 | Y | N | 教师工号 | |
5 | device_name | varchar | 64 | 0 | Y | N | 设备名称 | |
6 | equipment_number | varchar | 64 | 0 | Y | N | 设备编号 | |
7 | purchase_quantity | int | 10 | 0 | Y | N | 0 | 采购数量 |
8 | storage_date | date | 10 | 0 | Y | N | 入库日期 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | equipment_scrapping_id | int | 10 | 0 | N | Y | 设备报废ID | |
2 | teacher_users | int | 10 | 0 | Y | N | 0 | 教师用户 |
3 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
4 | teacher_id | varchar | 64 | 0 | Y | N | 教师工号 | |
5 | device_name | varchar | 64 | 0 | Y | N | 设备名称 | |
6 | equipment_number | varchar | 64 | 0 | Y | N | 设备编号 | |
7 | scrap_quantity | int | 10 | 0 | Y | N | 0 | 报废数量 |
8 | outbound_date | date | 10 | 0 | Y | N | 出库日期 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表experimental_classroom (实验教室)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | experimental_classroom_id | int | 10 | 0 | N | Y | 实验教室ID | |
2 | classroom_name | varchar | 64 | 0 | Y | N | 教室名称 | |
3 | classroom_address | varchar | 64 | 0 | Y | N | 教室地址 | |
4 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | experimental_courses_id | int | 10 | 0 | N | Y | 实验课程ID | |
2 | course_teacher | int | 10 | 0 | Y | N | 0 | 课程教师 |
3 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
4 | course_name | varchar | 64 | 0 | Y | N | 课程名称 | |
5 | course_poster | varchar | 255 | 0 | Y | N | 课程海报 | |
6 | class_date | date | 10 | 0 | Y | N | 上课日期 | |
7 | class_time | varchar | 64 | 0 | Y | N | 上课时间 | |
8 | classroom | varchar | 64 | 0 | Y | N | 上课教室 | |
9 | classroom_address | varchar | 64 | 0 | Y | N | 教室地址 | |
10 | course_class | varchar | 64 | 0 | Y | N | 课程班级 | |
11 | experimental_equipment | varchar | 64 | 0 | Y | N | 实验设备 | |
12 | course_content | text | 65535 | 0 | Y | N | 课程内容 | |
13 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
14 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
15 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | experimental_data_id | int | 10 | 0 | N | Y | 实验数据ID | |
2 | record_students | int | 10 | 0 | Y | N | 0 | 记录学生 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | experiment_name | varchar | 64 | 0 | Y | N | 实验名称 | |
5 | record_time | datetime | 19 | 0 | Y | N | 记录时间 | |
6 | record_content | varchar | 64 | 0 | Y | N | 记录内容 | |
7 | record_data | varchar | 64 | 0 | Y | N | 记录数据 | |
8 | record_remarks | text | 65535 | 0 | Y | N | 记录备注 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表experimental_equipment (实验设备)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | experimental_equipment_id | int | 10 | 0 | N | Y | 实验设备ID | |
2 | equipment_number | int | 10 | 0 | N | N | 0 | 设备编号 |
3 | device_name | varchar | 64 | 0 | Y | N | 设备名称 | |
4 | equipment_classification | varchar | 64 | 0 | Y | N | 设备分类 | |
5 | device_images | varchar | 255 | 0 | Y | N | 设备图片 | |
6 | equipment_inventory | int | 10 | 0 | Y | N | 0 | 设备库存 |
7 | equipment_usage | text | 65535 | 0 | Y | N | 设备用途 | |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | experimental_records_id | int | 10 | 0 | N | Y | 实验记录ID | |
2 | record_students | int | 10 | 0 | Y | N | 0 | 记录学生 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | experimental_date | datetime | 19 | 0 | Y | N | 实验日期 | |
5 | experiment_name | varchar | 64 | 0 | Y | N | 实验名称 | |
6 | experimental_purpose | varchar | 64 | 0 | Y | N | 实验目的 | |
7 | experimental_materials | longtext | 2147483647 | 0 | Y | N | 实验材料 | |
8 | experimental_process | longtext | 2147483647 | 0 | Y | N | 实验过程 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | experimental_result_id | int | 10 | 0 | N | Y | 实验结果ID | |
2 | record_students | int | 10 | 0 | Y | N | 0 | 记录学生 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | experiment_name | varchar | 64 | 0 | Y | N | 实验名称 | |
5 | record_time | datetime | 19 | 0 | Y | N | 记录时间 | |
6 | experimental_result | longtext | 2147483647 | 0 | Y | N | 实验结果 | |
7 | result_analysis | longtext | 2147483647 | 0 | Y | N | 结果分析 | |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | 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 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_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: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | 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_mobile_phones | varchar | 16 | 0 | Y | N | 学生手机 | |
4 | student_class | varchar | 64 | 0 | Y | N | 学生班级 | |
5 | student_id | varchar | 64 | 0 | N | N | 学生学号 | |
6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | 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 | teachers_mobile_phone | varchar | 16 | 0 | Y | N | 教师手机 | |
4 | teacher_id | varchar | 64 | 0 | N | N | 教师工号 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | 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 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
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: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
- 系统实现
- 学生用户模块的实现
4.1.1 前台首页界面
进入系统首页,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是实验资讯,其主界面展示如下图所示。
图4-1 前台首页界面图
4.1.2 用户注册界面
用户注册:当用户想要进入系统中对信息进行查看的时候,就必须要登录到系统当中,要是新的用户没有系统的账号的话,点击“注册”按钮,就会进入到新用户注册这个界面上,用户输入对应的账号(必须填写)+密码(必须填写)+确认密码(必须填写,而且要与密码一直)+昵称+邮箱+性别+年龄+联系电话+选择用户身份等等,然后点击“注册”,系统在用户这一数据库中会查询账号是不是存在,两次密码是不是一样,都填写正确就会注册成功,然后再进行登录,如果是之前已经注册过的用户很长时间没有使用,忘记密码,也可以点击“忘记密码”进行找回。用户注册界面如下图所示。
图4-2 用户注册界面图
注册代码如下:
public String encryption(String plainText) {
String re_md5 = new String();
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plainText.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
re_md5 = buf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return re_md5;
}
4.1.3 用户登录界面
系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到系统的首页中;否则将会提示相应错误信息。用户登录界面如下图所示。
图4-3注册用户登录界面图
登录代码如下:
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
4.1.4 实验资讯界面
当用户点击“实验资讯”这一菜单按钮,会显示管理员在后台发布的所有的实验信息,支持通过关键词对资讯进行搜索,选择需要的资讯信息点击可以进入到资讯信息详细的介绍界面,同时可以进行点赞、收藏和评论等操作,实验资讯界面如下图所示。
图4-4实验资讯界面图
当用户点击“实验课程”这一菜单按钮,会显示管理员在后台发布的所有的课程信息,支持通过关键词对课程进行搜索,选择需要的课程点击可以进入到课程详细的介绍界面,同时可以进行课程预约、点赞、收藏和评论,实验课程界面如下图所示。
图4-5实验课程界面图
-
- 管理员功能模块的实现
4.2.1 管理员登录界面
管理员进入到系统登录界面,需要填写正确的登录名、密码和验证码等信息输入准确无误后登录进入到系统操作界面。管理员的账号是在数据表表中直接设置生成的,不需要进行注册;修改密码:管理员可以随时修改自己进入系统的登录密码,以保证系统的安全性。管理员登录界面如下图所示。
图4-6管理员登录界面图
4.2.2 管理员功能界面
管理员可以查看后台首页、系统用户、院校班级管理、实验教室管理、设备分类管理、实验设备管理、设备采购管理、设备报废管理、实验课程管理、课程预约管理、系统管理、系统公告管理、资源管理等,并且可以根据需要进行相应的操作。在功能界面还可以查看设备采购统计和设备报废统计。管理员功能界面如下图所示。
图4-7管理员功能界面图
4.2.3 系统用户管理界面
管理员可以对系统中所有的用户角色进行管控,包含了管理员、学生用户、教师用户这三种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。系统用户管理界面如下图所示。
图4-8系统用户管理界面图
4.2.4院校班级管理界面
管理员可以管理院校的班级信息,包括添加新班级、编辑班级信息、删除班级等,确保班级信息的准确性和完整性。院校班级管理界面如下图所示。
图4-9院校班级列表管理界面图
图4-10院校班级添加管理界面图
4.2.5 系统管理界面
管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。系统管理界面如下图所示。
图4-11系统管理界面图
轮播图添加代码:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
管理员可以对系统前台展示的通知公告进行增删改查,方便用户进行查看。系统公告管理界面如下图所示。
图4-12系统公告管理界面图
教师用户点击“实验设备”这个菜单,教师用户可以查看实验室中的设备信息,包括设备名称、图片、状态等。可以对实验设备进行采购和报废。实验设备界面如下图所示。
图4-13实验设备界面
4.3.2实验课程界面
教师用户可以查看实验课程安排、实验设备、教室地址、课程班级等相关信息,方便教学准备和实验教学工作。界面如下图所示。
图4-14实验课程界面图
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
5.2 系统测试用例
系统测试包括:用户登录功能测试、实验资讯查看功能测试、实验课程添加、实验课程搜索、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:
表5-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
实验资讯查看功能测试:
表5-2实验资讯查看功能测试表
用例名称 | 实验资讯查看 |
目的 | 测试实验资讯查看功能 |
前提 | 用户登录 |
测试流程 | 点击实验资讯列表 |
预期结果 | 可以查看到所有实验资讯信息 |
实际结果 | 实际结果与预期结果一致 |
管理员添加实验课程界面测试:
表5-3 管理员添加实验课程界面测试表
用例名称 | 实验课程添加测试用例 |
目的 | 测试实验课程添加功能 |
前提 | 管理员正常登录情况下 |
测试流程 | 1)管理员点击实验课程添加,填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,实验课程列表会显示新的实验课程信息 |
实际结果 | 实际结果与预期结果一致 |
实验课程搜索功能测试:
表5-4实验课程搜索功能测试表
用例名称 | 实验课程搜索测试 |
目的 | 测试实验课程搜索功能 |
前提 | 无 |
测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 | 页面显示包含有搜索关键字的实验课程 |
实际结果 | 实际结果与预期结果一致 |
密码修改功能测试:
表5-5 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
5.3 系统测试结果
通过编写高等职业院校实验室信息管理设计与实现的测试用例,已经检测完毕用户登录模块、实验资讯查看模块、实验课程添加模块、实验课程搜索模块、密码修改功能测试,通过这5大模块为高等职业院校实验室信息管理设计与实现的后期推广运营提供了强力的技术支撑。
在高等职业院校在高职实验室信息管理设计与实现的过程中,我得以全面运用大学几年所学的知识和技能,对系统进行了智能化的开发。该系统不仅满足了当下实验室信息管理的需求,更通过增加、修改、删除数据信息等操作,有效解决了传统管理方式所遇到的问题。
经过一个学期的努力,毕业设计已接近尾声。回顾这段日子,我深感收获颇丰。我主要采用了Spring Boot + Vue框架,结合MySQL数据库的开发工具,对系统的每个功能模块进行了精细化的实现。从后端的数据处理到前端的用户交互,我都进行了细致的规划和实现。最终,系统调试的结果显示,各项功能基本满足了设计要求。
这次实验室信息管理系统的开发,不仅锻炼了我的计算机技能,更让我学会了如何与人有效沟通、如何面对和解决问题。我深刻体会到,无论做什么,都需要坚持不懈、勤奋努力。只有真正尝试并付诸实践,我们才有可能获得成功。同时,这次实践也让我更加确信,未来的道路是充满希望和美好的。
对我而言,这次设计是一个全新的挑战。这是我第一次独立完成一个系统的设计与实现。在项目过程中,我遇到了各种困难和挑战,但我始终保持着积极的态度,努力寻找解决问题的方法。这次经历不仅让我更加熟练地掌握了理论知识,还提高了我的动手实践能力。最终,我完成了一个功能全面、安全稳定的管理系统,这让我感到非常自豪和有成就感。
展望未来,我对自己的学习和生活充满了信心。我相信,通过不断的学习和实践,我能够掌握更多的知识和技能,为未来的工作和生活打下坚实的基础。
参考文献
[1]朱万成,徐晓冬,侯晨,等.岩石力学实验室信息管理系统的研发与应用[J].实验室研究与探索,2024,43(01):214-218+245.DOI:10.19927/j.cnki.syyt.2024.01.044.
[2]潘静雯,刘海,郑先昌,等.面向创新人才培养的实验室信息管理系统开发及应用[J].创新创业理论研究与实践,2024,7(06):144-149.
[3]Andesgur I ,Hartono,Setyono P , et al.Water quality assessment and evaluation of human health risks in the Pusur River, Klaten Regency, Central Java, Indonesia.[J].IOP Conference Series: Earth and Environmental Science,2024,1317(1):
[4]Dewi N C ,Febriani F ,Anggono T , et al.ASSESSMENT OF ULTRA-LOW FREQUENCY (ULF) GEOMAGNETIC PHENOMENA ASSOCIATED WITH EARTHQUAKES IN THE WESTERN PART OF JAVA ISLAND, INDONESIA DURING 2020[J].Rudarsko - Geolosko - Naftni Zbornik,2024,39(1):55-64.
[5]Salsabila D ,Awalia N ,Maharani S , et al.The Correlation Between Economic Activities to Water Pollution in Banyumas District, Central Java Province, Indonesia[J].IOP Conference Series: Earth and Environmental Science,2024,1313(1):
[6]Insani N ,Ridhoi R ,Hidajat G H , et al.Pro-Environmental Tourism: Lessons Learned from Adventure, Wellness and Eco-tourism in Padusan Village, Mojokerto, East Java[J].IOP Conference Series: Earth and Environmental Science,2024,1313(1):
[7]白龙.基于物联网技术的实验室信息化管理系统设计研究[J].造纸装备及材料,2024,53(02):179-181.
[8]邓爱民,聂良鹏,许鹏,等.基于改进YOLOv4算法的工程实验室信息化管理系统构建与应用[J].粘接,2024,51(02):159-162.
[9]关天一.基于C/S架构的实验室信息管理系统设计与实现[J].现代计算机,2024,30(02):103-107.
[10]刘羽.制药企业中实验室信息管理系统应用研究[J].山东化工,2024,53(01):202-203+213.DOI:10.19319/j.cnki.issn.1008-021x.2024.01.056.
[11]霍晓峰,张莉铭.信息化背景下实验室信息管理系统的探索与应用[J].信息记录材料,2024,25(01):219-221.DOI:10.16009/j.cnki.cn13-1295/tq.2024.01.053.
[12]张红兵.计算机实验室综合信息管理系统的设计与实现[J].信息与电脑(理论版),2023,35(22):121-123.
[13]任厚名,王承国,张传烨,等.基于SSH框架的实验室信息管理系统研究与设计[J].农业工程,2023,13(11):41-45.DOI:10.19998/j.cnki.2095-1795.2023.11.007.
[14]郑晓权.实验室信息化建设中的数据管理与分析平台设计[J].信息与电脑(理论版),2023,35(14):84-86.
[15]王言.基于产业计量理念的S公司实验室信息管理系统建设研究[D].山东大学,2023.DOI:10.27272/d.cnki.gshdu.2023.001485.
[16]徐海鸥,王辉,王婧文.基于Python语言的实验室信息管理系统设计[J].数字技术与应用,2023,41(05):196-198.DOI:10.19695/j.cnki.cn12-1369.2023.05.61.
[17]周叶华,桑世庆,孙霞,等.高职院校实验室信息管理平台的研究与实现[J].科学技术创新,2020,(06):77-79.
[18]才玉婷,刘艺.医学院校药学实验室信息管理与信息系统的设计与构建[J].软件,2019,40(10):159-161.
[19]陈榕.福建船政交通职业学院实验室信息管理可行性及设计分析[J].福建建材,2019,(07):6-8.
[20]刘冬青,魏莉.高职院校实验室信息管理系统研究[J].中国新通信,2019,21(09):207.
致谢
经过几个月时间的努力终于完成了这篇文章,在文章的写作与研究的过程中遇到了很多困难,都在同学和老师的帮助下解决了。尤其非常感谢我最敬爱的老师,他对我进行了无私的指导和帮助,不厌其烦的帮助进行文章的修改。老师严谨的治学态度、渊博的学术知识、诲人不倦的敬业精神以及宽容的待人风范使我获益颇丰。此外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此,向帮助和指导过我的老师表示最衷心的感谢!感谢这篇文章所涉及到的各位学者。本文引用了数位学者的文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇文章的写作。感谢我的同学和朋友,在我写文章的过程中给与了我很多素材和帮助,还在文章的撰写和排版过程中提供热情的帮助。同时,感谢我的室友对我的热心指导和帮助,经常有不懂之处都是大家在帮助我,才使得我比较顺利的完成了这篇文章。由于我水平有限,所写文章难免有不足之处,恳请各位老师和学友批评和指正!
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~