摘 要
随着工业化进程的加快,危险化学品在生产和生活中的使用愈加频繁,导致安全隐患随之增多。为了有效防范和管理这些安全风险,构建一个高效、可靠的危险化学品安全监管系统显得尤为重要。本研究旨在基于SpringBoot的开发一套面向危险化学品的安全监管系统,提供一个功能完备且操作简便监管和管理工具,以强化企业对危化品的管理和监控机制。采用现代化的技术架构,后端使用Spring Boot框架构建基本业务逻辑,结合MySQL数据库储存和处理数据,保证系统的稳定性与安全性。通过实现用户管理、通知公告、仓库信息管理、类别管理、危化品信息录入、出入库管理、状态监测预警、状态和预警处理以及数据分析等功能,构建一个全面的危化品仓储安全监管平台。该系统的构建与实施,能够提高危险化学品的仓库安全管理效率,降低危险化学品相关事故的发生概率,为企业在危化品管理上提供了有效支持,具有重要的现实应用意义和推广价值。
关键词:危险化学品安全监管;Spring Boot框架;Java语言;仓库管理;危化品监测预警
Abstract
With the acceleration of industrialization, the use of hazardous chemicals in production and daily life has become increasingly frequent, leading to an increase in safety hazards. In order to effectively prevent and manage these safety risks, it is particularly important to build an efficient and reliable hazardous chemical safety supervision system. This study aims to develop a safety supervision system for hazardous chemicals based on SpringBoot, providing a fully functional and easy-to-use supervision and management tool to strengthen the management and monitoring mechanism of enterprises for hazardous chemicals. Adopting modern technological architecture, the backend uses the Spring Boot framework to build basic business logic, combined with MySQL database to store and process data, ensuring system stability and security. By implementing functions such as user management, notification and announcement, warehouse information management, category management, hazardous chemical information input, inbound and outbound management, status monitoring and warning, status and warning processing, and data analysis, a comprehensive hazardous chemical storage safety supervision platform is constructed. The construction and implementation of this system can improve the efficiency of warehouse safety management for hazardous chemicals, reduce the probability of accidents related to hazardous chemicals, and provide effective support for enterprises in hazardous chemical management. It has important practical application significance and promotion value.
Keywords: Safety supervision of hazardous chemicals; Spring Boot framework; Java language; Warehouse management; Monitoring and early warning of hazardous chemicals
目 录
1 前 言
1.1 研究背景
1.2 研究意义
1.3 国内外研究现状
1.3.1 国内研究现状
1.3.2 国外研究现状
1.4 论文结构与章节安排
2 关键技术
2.1 Java语言
2.2 MySQL数据库
2.3 Spring Boot框架
2.4 B/S模式
3 系统分析
3.1 可行性分析
3.1.1 技术可行性
3.1.2 经济可行性
3.1.3 操作可行性
3.1.4 运行可行性
3.2 功能需求分析
3.3 系统性能分析
3.4 系统流程分析
3.4.1 程序操作流程
3.4.2 登录流程
4 系统设计
4.1 总体设计
4.1.1 系统架构设计
4.1.2 功能模块设计
4.2 数据库设计
4.2.1 数据库E-R图设计
4.2.2 数据库表结构设计
5 系统实现
5.1 系统环境分析
5.2 员工用户功能实现
5.2.1 用户登录模块
5.2.2 通知公告管理模块
5.2.3 危化品信息管理模块
5.2.4 状态处理管理模块
5.3 管理员功能实现
5.3.1 后台首页模块
5.3.2 系统用户模块
5.3.3 通知公告管理模块
5.3.4 仓库信息管理模块
5.3.5 危化品信息管理模块
5.3.6 预警信息管理模块
5.3.7 权限管理模块
6 系统测试
6.1 测试意义
6.2 测试用例
6.3 测试分析
7 结束语
参考文献
致 谢
1 前 言
随着全球工业化水平的不断提升,危险化学品的生产、储存和运输在经济发展中扮演着重要角色。然而,这些危险化学品的使用伴随着巨大的安全隐患,频繁发生的危化品事故,如泄漏、爆炸和火灾等,给人民生命安全和环境造成了严重损害[1]。近年来,国内针对危险化学品的安全管理提出了加强监管的要求,制定了多项政策法规以增强对危化品的监管力度。但现有的管理手段相对滞后,信息流转速度慢,缺乏实时监控和预警机制,这使得危化品事故的发生概率仍然较高[2]。因此,开发一套高效、智能的危险化学品安全监管系统,以实现对危化品的全生命周期管理和仓储管理,成为当前亟待解决的重要课题。
本研究主要围绕如何使用Java作为编程语言,利用SpringBoot框架结合MySQL数据库,设计与开发一套的面向危险化学品的安全监管系统,通过信息化手段提升企业对危化品管理的水平和效率[3]。面向危险化学品的安全监管系统的实施具有重要的理论与实践意义。通过实现危化品信息的实时录入、状态监控和数据分析;构建企业内部的角色管理和信息发布机制,以保障相关人员便捷获取和监测仓库危化品信息,构建切实有效的出入库管理和危化品监测机制;同时,提供高效的预警功能,助力企业及时响应安全隐患以及时进行处理[4]。本系统的开发不仅能够能够有效提高危险化学品的安全管理效率,降低事故发生率;而且增强企业员工的安全意识,规范危化品的使用、监测和处置流程,同时可以为管理员提供科学的数据支持,有助于制定更为合理的安全管理政策。通过推进危化品的安全管理,本研究将有助于保护人民生命安全和维护社会稳定,实现可持续发展,并为相关领域的研究和类似系统开发提供参考借鉴。
近年来,国内对危险化学品安全管理的研究逐渐增强。随着人们对安全生产的重视,近几年逐渐形成了一定的研究基础,包括对危化品的风险评估、安全管理信息系统的构建等方面的研究逐渐增多。国内许多学者重点关注危险化学品的法律法规体系。研究表明,完善的法律法规是规范危化品管理的重要基础[5]。比如,《危险化学品安全管理条例》和《安全生产法》都对危化品的生产、储存、运输等环节做出了详细规定。风险评估是国内研究的另一个重点,主要探讨如何通过风险评估确定危化品的安全管理措施,比如,通过建立事故数据库,利用故障树分析法(FTA)和事件树分析法(ETA)来分析具体案例,有效计算风险概率和后果。
同时,随着信息技术的发展,一些企业开始探索基于信息化的管理系统,提出了多种信息系统的模型,如企业资源规划(ERP)系统与危化品管理系统的结合,通过信息化手段提升企业的危化品管理效率。还有像开发基于云计算的危化品管理平台,实现数据的实时共享与分析,从而提高决策的科学性[6]。此外,物联网(IoT)和大数据技术在危化品的监控和管理中也逐渐得到应用。例如,通过利用传感器实时监控危险化学品的存储状态,并采用大数据分析技术进行事故预测与预警,从而降低事故风险,大幅提升安全管理水平[7]。
国外方面在国际上,危险化学品安全管理的研究相对更加成熟,主要集中在事故预防、应急响应和法规标准等方面。国外对事故预防的研究尤其重视。例如,欧洲在化学安全管理方面实施了REACH(化学品注册、评估、授权和限制)法规,强调企业在生产和使用危化品前必须进行全面的风险评估。美国的OSHA(职业安全健康管理局)与EPA(环境保护署)也对危化品的监管提出了严格要求,旨在减少事故发生。许多国家建立了完善的事故应急响应体系,比如美国的Hazardous Materials Emergency Response(危害物质应急响应)系统,涵盖了应急响应计划的制定、应急处置人员的培训和应急演练等内容,确保在危机发生时能迅速有效地应对,降低事故损失[8]。此外,国外研究逐步转向新技术的应用,如大数据、人工智能等。众多企业采用基于云计算的危险化学品管理系统,进行实时监控和数据分析。例如,通过开发基于区块链技术的供应链管理平台,实现了对危化品供应链全过程的透明化管理,大幅提升了安全管理的可靠性[9]。
综上所述,国内外在危险化学品的安全管理方面均有显著研究成果,但仍需进一步加强技术应用与信息化的结合,以应对日益复杂的安全管理挑战。
1.4论文结构与章节安排
本文共分为七章,章节内容安排如下:
第一章:引言,主要介绍面向危险化学品的安全监管系统领域研究的背景和意义,概述研究的现状和系统特点。
第二章:关键技术,主要探讨和说明实现面向危险化学品的安全监管系统的关键技术。
第三章:系统分析,主要从面向危险化学品的安全监管系统的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。
第四章:系统设计,主要对面向危险化学品的安全监管系统功能模块、数据库进行功能设计。
第五章:系统实现,主要介绍了面向危险化学品的安全监管系统各个用户的功能、系统界面的实现。
第六章:系统测试,主要对面向危险化学品的安全监管系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。
第七章:结束语。总结全文研究内容,提出对面向危险化学品的安全监管系统领域未来发展的展望和建议,指出研究的不足和可优化之处,为相关领域的进一步探索提供参考。
2 关键技术
Java是一种跨平台的编程语言,广泛用于开发各种类型的应用程序,包括Web应用、移动应用和大型软件系统。在面向危险化学品的安全监管系统中,Java通常用于后端开发,提供强大的处理能力和稳定性。同时Java是一种面向对象的编程语言,支持封装、继承和多态等特性,使代码更易于维护和重用。还拥有丰富的标准库和第三方框架,如Spring、Hibernate等,可以大大提高开发效率。
MySQL是一种流行的开源关系型数据库管理系统,用于存储和管理数据。在面向危险化学品的安全监管系统中,MySQL可以用于数据存储、数据查询和数据管理等方面,用户可以免费使用和修改源代码,为平台提供可靠和高性能的数据库支持。MySQL支持多种存储引擎,如InnoDB和MyISAM,可以根据不同的应用场景选择合适的存储引擎,以提高性能;提供了多种数据安全机制,如用户权限管理、数据加密和备份恢复等,确保数据的安全性。
Spring Boot是一个用于构建微服务的Java框架,简化了Spring应用程序的开发和部署过程。Spring Boot通过自动配置和约定优于配置的理念,简化了Spring应用程序的开发过程,使开发者可以更快地构建和部署应用程序;拥有丰富的生态系统,如Spring Cloud、Spring Security等,可以满足各种企业级应用的需求。在面向危险化学品的安全监管系统中,Spring Boot可以帮助开发团队快速搭建后端服务,并实现各种功能模块的集成和管理。
B/S模式(Browser/Server模式)是一种网络应用架构,其中浏览器(Browser)作为客户端与服务器(Server)进行通信。这种模式使用户可以通过普通的Web浏览器访问应用程序,而无需安装额外的客户端软件。用户通过浏览器发送请求,服务器接收并处理这些请求,然后将结果返回给浏览器显示给用户。在面向危险化学品的安全监管系统中,Spring Boot结合B/S模式的优势包括跨平台的兼容性,用户可以在不同操作系统和设备上访问应用程序。此外,维护和部署也更为简便,并且能够实现较高的安全性,因为服务器端控制了应用程序和数据的访问权限。
3 系统分析
3.1可行性分析
3.1.1技术可行性
从技术角度来看,Spring Boot作为一种轻量级、快速构建的Java框架,能够提高开发效率,降低系统的复杂程度,易于维护和升级。同时,MySQL作为关系型数据库,能够支持平台数据的存储与管理,保障系统的稳定性和高效性。因此,本系统具有技术可行性。
从经济角度来看,基于Spring Boot搭建面向危险化学品的安全监管系统的投入成本相对较低,因为Spring Boot本身是一个免费、开源的框架,可以节省开发成本。同时,使用MySQL作为数据库也具有成本效益高的优势。因此,本系统具有经济可行性。
从操作角度来看,Spring Boot的简洁性和高度集成的特点使得系统的部署和运行相对简单,容易维护和管理的同时,能够提供一个界面直观友好和操作简单高效的系统,能满足用户的各项要求,方便用户快速上手使用。因此,本系统具有操作可行性。
从运行角度来看,正因为本系统是在服务器的基础上开发的,系统开发成功以后,用户无需导航指导便可自己上手进行操作。系统一经开发测试后,在计算机移动客户端能上网的情况下,只需在浏览器里完成所有可用操作,也无需配置复杂的使用和运行环境,只需一个网址便可进入系统。因此,本系统具有运行可行性。
本面向危险化学品的安全监管系统设计分为两个主要用户角色:员工用户和管理员。以下是对每个角色的功能需求的详细描述。
员工用户角色用例如下图所示。

图3.1员工用户用例图
员工用户具体功能说明如下所示。
- 登录:员工用户账户信息由管理员添加,可使用账号密码登录系统,实现权限内管理操作,支持管控和修改个人资料。
- 后台首页:员工用户登录后台的起始界面,该界面主要提供系统重要信息概览。
- 通知公告管理:员工用户可搜索和浏览管理员发布的通知公告信息。
- 仓库信息管理:员工用户可搜索和浏览所有仓库信息。
- 危化品信息管理:员工用户可搜索和浏览所有危化品信息,实现出库、入库、监测、预警等功能,负责记录和更新出库、入库、监测和预警等信息。
- 出库记录管理:员工用户可搜索和浏览自己的出库记录信息。
- 入库记录管理:员工用户可搜索和浏览自己的入库记录信息。
- 危化品状态管理:员工用户可搜索和浏览自己的危化品状态信息。
- 预警信息管理:员工用户可搜索和浏览自己的预警信息,实现危化品排放预警提醒。
- 状态处理管理:员工用户可搜索和浏览反馈给自己的状态处理信息。
- 预警处理管理:员工用户可搜索和浏览反馈给自己的预警处理信息。
管理员角色用例如下图所示。

图3.2管理员用例图
管理员具体功能说明如下所示。
- 登录:管理员可直接使用账号密码登录系统,实现权限内管理操作,支持管控和修改个人资料。
- 后台首页:管理员登录后台的起始界面,该界面主要提供系统重要信息概览和展示数据统计分析图表,包括危化品信息、出库记录、入库记录、危化品状态、预警信息等统计图。
- 系统用户:管理员可管理包括员工用户和管理员等所有系统用户信息,实现增改删查等基础操作。
- 通知公告管理:管理员可管理所有通知公告信息的发布、删除和更新等操作,提供搜索功能。
- 仓库类型管理:管理员可管理预警信息仓库类型信息,包括新增、编辑、删除和查询仓库类型。
- 仓库信息管理:管理员可管理所有仓库信息的添加、删除、更新等操作,提供搜索功能。
- 危化品类别管理:管理员可管理危化品类别信息,包括新增、编辑、删除和查询危化品类别。
- 危化品信息管理:管理员可管理所有危化品信息的添加、删除、更新等操作,提供搜索功能,实现出库、入库、监测、预警等功能。
- 出库记录管理:管理员可管理所有出库记录信息,包括查询、删除出库记录。
- 入库记录管理:管理员可管理所有入库记录信息,包括查询、删除入库记录。
- 危化品状态管理:管理员可管理所有危化品状态信息,包括查询、删除危化品状态,提供处理操作。
- 预警信息管理:管理员可管理所有预警信息,包括查询、删除预警信息,实现危化品排放预警提醒(当危化品排放小于1或大于1.6时弹出预警提醒),提供处理操作。
- 状态处理管理:管理员可管理所有状态处理信息,包括查询、删除状态处理。
- 预警处理管理:管理员可管理所有预警处理信息,包括查询、删除预警处理。
- 权限管理:管理员可管理系统用户组的权限信息,包括可设置和修改用户组的增改删查等权限内容。
性能需求分析是系统设计的重要组成部分,其目标是确保系统在各种负载条件下的高效、稳定和可靠。对于面向危险化学品的安全监管系统的设计与实现,下面是系统性能分析表:
表3.1性能需求表
|
项目 |
内容 |
|
响应时间 |
系统对用户请求的响应时间需在500ms以内 |
|
并发用户数 |
系统需要支持多个并发用户同时访问 |
|
吞吐量 |
系统每秒需要处理大量请求 |
|
可用性 |
系统需要保证一定的可用性 |
|
数据安全 |
用户敏感数据需要加密存储,并支持数据库备份和恢复 |
|
数据一致性 |
系统中的数据操作需保证ACID特性,确保数据一致性 |
|
扩展性 |
系统需要支持水平扩展,能够方便地添加服务器节点以应对高请求量 |
|
可维护性 |
系统代码需要清晰易懂、结构良好,方便团队成员维护和修改 |
|
日志记录 |
系统需要记录用户操作日志、异常日志以及系统运行日志 |
|
监控报警 |
系统需要实时监控运行状态,当系统异常时能够及时发送警报通知相关人员 |
|
缓存设置 |
针对频繁使用的数据,系统需要进行合适的缓存 |
用户访问平台网站,可以选择进行注册或登录操作。注册成功后,用户可以使用注册的账号登录平台。登录后的用户可以进入系统功能界面,使用自己权限内的功能操作。程序操作流程图如下图所示。

图3.3程序操作流程图
用户访问平台的网站,进入登录页面页面,入其用户名和密码,后端服务接收登录请求,验证用户提供的用户名和密码是否匹配数据库中存储的信息,验证通过即可登录成功。登录流程图如下图所示。

图3.4登录流程图
4 系统设计
B/S架构,即浏览器/服务器架构,是一种基于Web的分布式计算范式。在此架构中,应用程序的逻辑被巧妙地区分为客户端和服务器两部分。具体而言,客户端借助广泛使用的浏览器界面,进行应用访问与操作;而服务器端则肩负起业务逻辑处理、数据存储及管理的核心职责。值得一提的是,客户端无需安装特定的软件,用户仅需通过浏览器输入相应的URL地址,即可轻松访问应用程序,这一特性极大地提升了用户的使用便捷性和系统的维护效率。服务器端通常采用高性能的计算机和数据库系统,能够处理大量并发请求和复杂的业务逻辑。B/S架构的优势在于其跨平台性和易于维护性,开发者可以通过更新服务器端的代码来实现整个系统的升级和维护,而无需逐一更新客户端。

图4.1系统架构图
功能模块设计是系统开发过程中的重要阶段,它旨在将系统划分为不同的模块,每个模块负责完成特定的功能或任务。面向危险化学品的安全监管系统由多个功能模块组成,每个模块下又包含具体的功能操作。根据前文功能需求分析,可以得出功能模块图如下图所示。

图4.2系统功能模块图
E-R图有助于理清系统中的数据结构和关系,为后续的数据库表结构设计提供指导。在进行数据库设计之前,首先需要先绘制实体-关系(E-R)图。E-R图将帮助理清业务中的实体(Entity)及它们之间的关系(Relationship),从而为后续的数据库表设计提供基础。根据前文可以得出本面向危险化学品的安全监管系统拥有多个实体,在此列举主要实体,各个实体之间联系总E-R图如下图所示。

图4.3系统总E-R图
在E-R图确定后,接下来可以根据实体和关系的属性设计数据库表结构。在E-R图明确了实体和它们之间的关系后,接下来可以开始设计数据库表结构。每个实体对应一个数据库表,每个属性对应表中的字段。如下列表格所示,在此列举主要数据表。
表access_token (登陆访问时长)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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 |
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 |
parent |
varchar |
64 |
0 |
Y |
N |
父级菜单 | |
|
8 |
parent_sort |
int |
10 |
0 |
N |
N |
0 |
父级菜单排序 |
|
9 |
position |
varchar |
32 |
0 |
Y |
N |
位置: | |
|
10 |
mode |
varchar |
32 |
0 |
N |
N |
_blank |
跳转方式: |
|
11 |
add |
tinyint |
3 |
0 |
N |
N |
1 |
是否可增加: |
|
12 |
del |
tinyint |
3 |
0 |
N |
N |
1 |
是否可删除: |
|
13 |
set |
tinyint |
3 |
0 |
N |
N |
1 |
是否可修改: |
|
14 |
get |
tinyint |
3 |
0 |
N |
N |
1 |
是否可查看: |
|
15 |
field_add |
text |
65535 |
0 |
Y |
N |
添加字段: | |
|
16 |
field_set |
text |
65535 |
0 |
Y |
N |
修改字段: | |
|
17 |
field_get |
text |
65535 |
0 |
Y |
N |
查询字段: | |
|
18 |
table_nav_name |
varchar |
500 |
0 |
Y |
N |
跨表导航名称: | |
|
19 |
table_nav |
varchar |
500 |
0 |
Y |
N |
跨表导航: | |
|
20 |
option |
text |
65535 |
0 |
Y |
N |
配置: | |
|
21 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
22 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
表category_of_hazardous_chemicals (危化品类别)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
category_of_hazardous_chemicals_id |
int |
10 |
0 |
N |
Y |
危化品类别ID | |
|
2 |
category_of_hazardous_chemicals |
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 |
code_token_id |
int |
10 |
0 |
N |
Y | ||
|
2 |
token |
varchar |
255 |
0 |
Y |
N | ||
|
3 |
code |
varchar |
255 |
0 |
Y |
N |
验证码 | |
|
4 |
expire_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
失效时间 |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
employee_users_id |
int |
10 |
0 |
N |
Y |
员工用户ID | |
|
2 |
employee_id |
varchar |
64 |
0 |
N |
N |
员工工号 | |
|
3 |
employee_name |
varchar |
64 |
0 |
Y |
N |
员工姓名 | |
|
4 |
employee_phone_number |
varchar |
64 |
0 |
Y |
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 |
更新时间 |
表hazardous_chemical_information (危化品信息)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
hazardous_chemical_information_id |
int |
10 |
0 |
N |
Y |
危化品信息ID | |
|
2 |
warehouse_name |
varchar |
64 |
0 |
Y |
N |
仓库名称 | |
|
3 |
hazardous_chemical_code |
varchar |
64 |
0 |
N |
N |
危化品编号 | |
|
4 |
name_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品名称 | |
|
5 |
category_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品类别 | |
|
6 |
inventory_of_hazardous_chemicals |
double |
9 |
2 |
Y |
N |
0.00 |
危化品库存 |
|
7 |
cover_of_hazardous_chemicals |
varchar |
255 |
0 |
Y |
N |
危化品封面 | |
|
8 |
storage_location |
text |
65535 |
0 |
Y |
N |
存放位置 | |
|
9 |
description_of_hazardous_chemicals |
text |
65535 |
0 |
Y |
N |
危化品描述 | |
|
10 |
outbound_record_limit_times |
int |
10 |
0 |
N |
N |
0 |
出库限制次数 |
|
11 |
storage_record_limit_times |
int |
10 |
0 |
N |
N |
0 |
入库限制次数 |
|
12 |
status_of_hazardous_chemicals_limit_times |
int |
10 |
0 |
N |
N |
0 |
监测限制次数 |
|
13 |
warning_information_limit_times |
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 |
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_announcement_id |
int |
10 |
0 |
N |
Y |
通知公告ID | |
|
2 |
announcement_title |
varchar |
64 |
0 |
Y |
N |
公告标题 | |
|
3 |
announcement_label |
varchar |
64 |
0 |
Y |
N |
公告标签 | |
|
4 |
release_date |
date |
10 |
0 |
Y |
N |
发布日期 | |
|
5 |
announcement_cover |
varchar |
255 |
0 |
Y |
N |
公告封面 | |
|
6 |
announcement_details |
text |
65535 |
0 |
Y |
N |
公告详情 | |
|
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
outbound_record_id |
int |
10 |
0 |
N |
Y |
出库记录ID | |
|
2 |
warehouse_name |
varchar |
64 |
0 |
Y |
N |
仓库名称 | |
|
3 |
hazardous_chemical_code |
varchar |
64 |
0 |
Y |
N |
危化品编号 | |
|
4 |
name_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品名称 | |
|
5 |
category_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品类别 | |
|
6 |
employee_users |
int |
10 |
0 |
Y |
N |
0 |
员工用户 |
|
7 |
employee_id |
varchar |
64 |
0 |
Y |
N |
员工工号 | |
|
8 |
employee_name |
varchar |
64 |
0 |
Y |
N |
员工姓名 | |
|
9 |
outbound_quantity |
double |
9 |
2 |
Y |
N |
0.00 |
出库数量 |
|
10 |
outbound_date |
date |
10 |
0 |
Y |
N |
出库日期 | |
|
11 |
outbound_remarks |
text |
65535 |
0 |
Y |
N |
出库备注 | |
|
12 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
13 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
14 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 | |
|
15 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID | |
|
16 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
schedule_id |
smallint |
5 |
0 |
N |
Y |
日程ID:[0,32767] | |
|
2 |
content |
varchar |
255 |
0 |
Y |
N |
日程内容 | |
|
3 |
scheduled_time |
datetime |
19 |
0 |
Y |
N |
计划时间 | |
|
4 |
user_id |
int |
10 |
0 |
N |
N |
用户id | |
|
5 |
create_time |
datetime |
19 |
0 |
Y |
N |
创建时间 | |
|
6 |
update_time |
datetime |
19 |
0 |
Y |
N |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
score_id |
int |
10 |
0 |
N |
Y |
评分ID: | |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评分人: |
|
3 |
nickname |
varchar |
64 |
0 |
Y |
N |
昵称: | |
|
4 |
score_num |
double |
5 |
2 |
N |
N |
0.00 |
评分: |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: | |
|
8 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: | |
|
9 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
表status_of_hazardous_chemicals (危化品状态)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
status_of_hazardous_chemicals_id |
int |
10 |
0 |
N |
Y |
危化品状态ID | |
|
2 |
warehouse_name |
varchar |
64 |
0 |
Y |
N |
仓库名称 | |
|
3 |
hazardous_chemical_code |
varchar |
64 |
0 |
Y |
N |
危化品编号 | |
|
4 |
name_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品名称 | |
|
5 |
category_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品类别 | |
|
6 |
employee_users |
int |
10 |
0 |
Y |
N |
0 |
员工用户 |
|
7 |
employee_id |
varchar |
64 |
0 |
Y |
N |
员工工号 | |
|
8 |
employee_name |
varchar |
64 |
0 |
Y |
N |
员工姓名 | |
|
9 |
status_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品状态 | |
|
10 |
potential_danger |
varchar |
64 |
0 |
Y |
N |
潜在危险 | |
|
11 |
record_date |
date |
10 |
0 |
Y |
N |
记录日期 | |
|
12 |
details_remarks |
text |
65535 |
0 |
Y |
N |
详情备注 | |
|
13 |
status_processing_limit_times |
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 |
更新时间 |
|
16 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 | |
|
17 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID | |
|
18 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
status_processing_id |
int |
10 |
0 |
N |
Y |
状态处理ID | |
|
2 |
warehouse_name |
varchar |
64 |
0 |
Y |
N |
仓库名称 | |
|
3 |
hazardous_chemical_code |
varchar |
64 |
0 |
Y |
N |
危化品编号 | |
|
4 |
name_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品名称 | |
|
5 |
category_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品类别 | |
|
6 |
employee_users |
int |
10 |
0 |
Y |
N |
0 |
员工用户 |
|
7 |
employee_id |
varchar |
64 |
0 |
Y |
N |
员工工号 | |
|
8 |
employee_name |
varchar |
64 |
0 |
Y |
N |
员工姓名 | |
|
9 |
status_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品状态 | |
|
10 |
potential_danger |
varchar |
64 |
0 |
Y |
N |
潜在危险 | |
|
11 |
processing_date |
date |
10 |
0 |
Y |
N |
处理日期 | |
|
12 |
processing_results |
text |
65535 |
0 |
Y |
N |
处理结果 | |
|
13 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
14 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
15 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 | |
|
16 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID | |
|
17 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
storage_record_id |
int |
10 |
0 |
N |
Y |
入库记录ID | |
|
2 |
warehouse_name |
varchar |
64 |
0 |
Y |
N |
仓库名称 | |
|
3 |
hazardous_chemical_code |
varchar |
64 |
0 |
Y |
N |
危化品编号 | |
|
4 |
name_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品名称 | |
|
5 |
category_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品类别 | |
|
6 |
employee_users |
int |
10 |
0 |
Y |
N |
0 |
员工用户 |
|
7 |
employee_id |
varchar |
64 |
0 |
Y |
N |
员工工号 | |
|
8 |
employee_name |
varchar |
64 |
0 |
Y |
N |
员工姓名 | |
|
9 |
inventory_quantity |
double |
9 |
2 |
Y |
N |
0.00 |
入库数量 |
|
10 |
storage_date |
date |
10 |
0 |
Y |
N |
入库日期 | |
|
11 |
storage_remarks |
text |
65535 |
0 |
Y |
N |
入库备注 | |
|
12 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
13 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
14 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 | |
|
15 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID | |
|
16 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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 |
int |
10 |
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 |
创建时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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 |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
warehouse_information_id |
int |
10 |
0 |
N |
Y |
仓库信息ID | |
|
2 |
warehouse_name |
varchar |
64 |
0 |
Y |
N |
仓库名称 | |
|
3 |
warehouse_type |
varchar |
64 |
0 |
Y |
N |
仓库类型 | |
|
4 |
warehouse_location |
varchar |
64 |
0 |
Y |
N |
仓库位置 | |
|
5 |
warehouse_capacity |
varchar |
64 |
0 |
Y |
N |
仓库容量 | |
|
6 |
warehouse_image |
varchar |
255 |
0 |
Y |
N |
仓库图片 | |
|
7 |
warehouse_details |
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 |
warehouse_type_id |
int |
10 |
0 |
N |
Y |
仓库类型ID | |
|
2 |
warehouse_type |
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 |
warning_information_id |
int |
10 |
0 |
N |
Y |
预警信息ID | |
|
2 |
warehouse_name |
varchar |
64 |
0 |
Y |
N |
仓库名称 | |
|
3 |
hazardous_chemical_code |
varchar |
64 |
0 |
Y |
N |
危化品编号 | |
|
4 |
name_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品名称 | |
|
5 |
category_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品类别 | |
|
6 |
employee_users |
int |
10 |
0 |
Y |
N |
0 |
员工用户 |
|
7 |
employee_id |
varchar |
64 |
0 |
Y |
N |
员工工号 | |
|
8 |
employee_name |
varchar |
64 |
0 |
Y |
N |
员工姓名 | |
|
9 |
hazardous_chemical_emissions |
double |
9 |
2 |
Y |
N |
0.00 |
危化品排放 |
|
10 |
is_it_leaked |
varchar |
64 |
0 |
Y |
N |
是否泄露 | |
|
11 |
record_date |
date |
10 |
0 |
Y |
N |
记录日期 | |
|
12 |
record_remarks |
text |
65535 |
0 |
Y |
N |
记录备注 | |
|
13 |
warning_processing_limit_times |
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 |
更新时间 |
|
16 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 | |
|
17 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID | |
|
18 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
warning_processing_id |
int |
10 |
0 |
N |
Y |
预警处理ID | |
|
2 |
warehouse_name |
varchar |
64 |
0 |
Y |
N |
仓库名称 | |
|
3 |
hazardous_chemical_code |
varchar |
64 |
0 |
Y |
N |
危化品编号 | |
|
4 |
name_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品名称 | |
|
5 |
category_of_hazardous_chemicals |
varchar |
64 |
0 |
Y |
N |
危化品类别 | |
|
6 |
employee_users |
int |
10 |
0 |
Y |
N |
0 |
员工用户 |
|
7 |
employee_id |
varchar |
64 |
0 |
Y |
N |
员工工号 | |
|
8 |
employee_name |
varchar |
64 |
0 |
Y |
N |
员工姓名 | |
|
9 |
hazardous_chemical_emissions |
double |
9 |
2 |
Y |
N |
0.00 |
危化品排放 |
|
10 |
is_it_leaked |
varchar |
64 |
0 |
Y |
N |
是否泄露 | |
|
11 |
processing_date |
date |
10 |
0 |
Y |
N |
处理日期 | |
|
12 |
processing_results |
text |
65535 |
0 |
Y |
N |
处理结果 | |
|
13 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
14 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
15 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 | |
|
16 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID | |
|
17 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
5 系统实现
考虑到面向危险化学品的安全监管系统主要面对部分人群,网站的访问量不大。系统处理、统计分析工作简单,Tomcat服务器能够满足中小型网络用户的数据处理,通过互联网Internet 接入及MySQL 5.6以上的数据库应用的需求点。系统具体开发环境如下表所示:
表5.1系统环境表
|
项目 |
开发环境 |
|
操作系统 |
Windows 11、Windows 10、Windows 8、Windows 7 |
|
开发语言 |
Java |
|
使用框架 |
Spring Boot |
|
体系结构 |
三层B/S体系结构 |
|
开发工具 |
IDEA(2020版)/MyEclipse(2017)/Eclipse、Vs Code |
|
数据库 |
MySQL 5.6以上 |
|
数据库管理工具 |
Navicat |
|
JDK版本 |
Java 1.8 |
|
Maven |
apache-maven 3.6.1-bin |
|
Tomcat |
apache-tomcat-7.0.88 |
用户输入用户名和密码后,系统首先对这些输入进行基本的格式验证,确保用户名和密码符合系统设定的格式要求(如长度、特殊字符要求等)。系统接收到用户输入后,会根据用户名查找系统中存储的用户信息数据库或者其他持久化存储方式。系统需要验证密码的正确性,验证成功即可成功登录。界面设计如下图所示。

图5.1用户登录界面设计
登录关键代码如下:
/**
* 登录
* @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, "账号或密码不正确");
}
}
员工用户可搜索和浏览管理员发布的通知公告信息,以及时了解最新消息和动态。界面设计如下图所示。

图5.2通知公告详情页界面设计
员工用户可搜索和浏览所有危化品信息,实现出库、入库、监测、预警等功能,负责记录和更新出库、入库、监测和预警等信息。界面设计如下图所示。

图5.3危化品信息管理界面设计
当员工用户点击“出库”或“入库”按钮,可对仓库的危化品进行出入库登记,以及时更新仓库危化品库存信息。例如,出库信息添加界面设计如下图所示。

图5.4出库信息添加界面设计
当员工用户点击“监测”或“预警”按钮,可监测仓库的危化品状态是否异常并上报危化品状态信息;同时根据危化品排放情况向上发送危化品预警提醒请求处理。例如,危化品状态监测界面设计如下图所示。

图5.5危化品状态监测界面设计
员工用户可搜索和浏览反馈给自己的状态处理信息,以及时知悉危化品状态处理情况。界面设计如下图所示。

图5.6状态处理管理界面设计
管理员和员工用户登录后台的起始界面,该界面主要提供系统重要信息概览;管理员的后台首页还展示数据统计分析图表(危化品信息、出库记录、入库记录、危化品状态、预警信息)等内容。界面设计如下图所示。

图5.7后台首页界面设计
管理员可管理系统的所有系统用户信息,包括员工用户、管理员账号等,支持用户权限管理和角色设置,可增改删查系统用户信息。界面设计如下图所示。

图5.8系统用户界面设计
系统用户管理关键代码:
@RequestMapping("/get_list")
public Map<String, Object> getList(HttpServletRequest request) {
Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
return success(map);
}
@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);
}
管理员可管理所有课程学习的发布、下架、更新等操作,提供搜索功能,支持查看和管控评论内容,提供资料分析操作。界面设计如下图所示。

图5.9通知公告管理界面设计
发布通知公告信息关键代码如下:
@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);
}
管理员可管理所有仓库信息的添加、删除、更新等操作,提供搜索功能。界面设计如下图所示。

图5.10仓库信息管理界面设计
仓库信息管理代码如下:
@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);
}
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
管理员可管理所有危化品信息的添加、删除、更新等操作,提供搜索功能,实现出库、入库、监测、预警等功能。界面设计如下图所示。

图5.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);
}
@RequestMapping(value = "/del")
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
public void delete(Map<String,String> query,Map<String,String> config){
QueryWrapper wrapper = new QueryWrapper<E>();
toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);
baseMapper.delete(wrapper);
log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());
}
管理员可管理所有预警信息,包括查询、删除预警信息,实现危化品排放预警提醒(当危化品排放小于1或大于1.6时弹出预警提醒),提供处理操作,负责处理员工用户上报的预警信息。界面设计如下图所示。

图5.12预警信息管理界面设计
处理预警信息关键代码如下:
@RequestMapping("/get_list")
public Map<String, Object> getList(HttpServletRequest request) {
Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
return success(map);
}
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
管理员可管理系统用户组的权限信息,包括可设置和修改用户组的增改删查等权限内容。界面设计如下图所示。

图5.13权限管理界面设计
修改权限信息关键代码如下:
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
6 系统测试
在软件开发生命周期中,系统测试占据着举足轻重的地位。通过进行全面而系统的测试,能够确保软件在实际使用环境中具备稳定运行的能力,从而满足用户的多样化需求,并显著提升软件的整体质量与可靠性。这一过程不仅有助于识别并修复潜在问题,还能为软件的持续优化提供有力支撑。
随着现代信息的快速发展,在社会各大领域中已经都开始应用网络信息技术,在应用网络技术的同时人们也开始把软件的质量问题作为了一个重要焦点来关注,因为一个软件的好与坏它决定着这个系统在市场上的生存,所以必须要把软件质量来做好,这样才有一定的生存能力。对于用户来说它们首先选用的都是保证这个系统软件的质量问题,因为一个系统的软件质量决定着用户在后期上成本经济的问题。图6.1就是纠错测试流程。

图6.1测试与纠错信息流程
在系统的功能验证阶段,将对全部的功能界面进行全面测试。具体而言,将模拟用户行为,输入各类数据并进行提交操作,随后仔细观察和分析每个页面的响应反馈。这一过程旨在验证系统的功能完整性,确保页面所呈现的功能与预期相符,并能够完全实现预设的交互逻辑。通过这种全面细致的测试方法,将确保系统在实际应用中能够稳定、准确地响应用户需求。
下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表6.1系统登录功能测试用例
|
功能描述 |
用于系统登录 | |
|
测试目的 |
检测登录时的合法性检查 | |
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
输入的用户名和密码带有非法字符 |
提示用户名或者密码错误 |
与预期结果一致 |
|
输入的用户名或者密码为空 |
提示用户名或者密码错误 |
与预期结果一致 |
|
输入的用户名和密码不存在 |
提示用户名或者密码错误 |
与预期结果一致 |
|
输入正确的用户名和密码 |
登录成功 |
与预期结果一致 |
下表是仓库信息管理功能的测试用例,检测了仓库信息中对仓库信息的添加,删除,修改,查询等操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;管理员登录系统。
表6.2仓库信息管理的测试用例
|
功能描述 |
用于仓库信息管理 | |
|
测试目的 |
检测仓库信息时的各种操作的运行情况 | |
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
点击添加仓库信息,必填项合法输入,点击提交 |
提示添加成功 |
与预期结果一致 |
|
点击添加仓库信息,必填项输入为空或不合法,点击提交 |
提示必填项不能为空 |
与预期结果一致 |
|
进入仓库信息详情页修改,必填项合法输入,点击提交 |
提示提交成功 |
与预期结果一致 |
|
进入仓库信息详情页修改,必填项修改为空或不合法,点击提交 |
提示必填项不能为空 |
与预期结果一致 |
|
点击删除仓库信息,选择仓库信息删除 |
提示删除成功 |
与预期结果一致 |
|
点击搜索仓库信息,输入存在的仓库信息名 |
查找出相应仓库信息 |
与预期结果一致 |
|
点击搜索仓库信息,输入不存在的仓库信息名 |
不显示仓库信息 |
与预期结果一致 |
下表危化品信息管理功能的测试用例,检测了危化品信息中对危化品信息的添加,删除,修改,查询操作等是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;管理员登录系统。
表6.3危化品信息管理的测试用例
|
功能描述 |
用于危化品信息管理 | |
|
测试目的 |
检测危化品信息时的各种操作的运行情况 | |
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
点击添加危化品信息,必填项合法输入,点击提交 |
提示添加成功 |
与预期结果一致 |
|
点击添加危化品信息,必填项输入不合法,点击提交 |
提示必填项不能为空 |
与预期结果一致 |
|
进入危化品信息详情页修改,必填项合法输入,点击提交 |
提示提交成功 |
与预期结果一致 |
|
进入危化品信息详情页修改,必填项输入不合法,点击提交 |
提示必填项不能为空 |
与预期结果一致 |
|
点击删除危化品信息,选择危化品信息删除 |
提示删除成功 |
与预期结果一致 |
|
点击搜索危化品信息,输入存在的危化品信息名 |
查找出相应危化品信息 |
与预期结果一致 |
|
点击搜索危化品信息,输入不存在的危化品信息名 |
不显示危化品信息 |
与预期结果一致 |
下表是出库记录管理功能的测试用例,检测了出库记录中对出库记录的添加,删除,修改,查询操作等是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;管理员登录系统。
表6.4出库记录管理的测试用例
|
功能描述 |
用于出库记录 | |
|
测试目的 |
检测出库记录时的各种操作的运行情况 | |
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
点击添加出库记录,必填项合法输入,点击提交 |
提示添加成功 |
与预期结果一致 |
|
点击添加出库记录,必填项输入不合法,点击提交 |
提示必填项不能为空 |
与预期结果一致 |
|
进入出库记录详情页修改,必填项合法输入,点击提交 |
提示提交成功 |
与预期结果一致 |
|
进入出库记录详情页修改,必填项输入不合法,点击提交 |
提示必填项不能为空 |
与预期结果一致 |
|
点击删除出库记录,选择出库记录删除 |
提示删除成功 |
与预期结果一致 |
|
点击搜索出库记录,输入存在的出库记录名 |
查找出相应出库记录信息 |
与预期结果一致 |
|
点击搜索出库记录,输入不存在的出库记录名 |
不显示出库记录信息 |
与预期结果一致 |
下表危化品状态管理功能的测试用例,检测了危化品状态中对危化品状态的添加,删除,修改,查询操作等是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;管理员登录系统。
表6.5危化品状态管理的测试用例
|
功能描述 |
用于危化品状态管理 | |
|
测试目的 |
检测危化品状态时的各种操作的运行情况 | |
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
点击添加危化品状态,必填项合法输入,点击提交 |
提示添加成功 |
与预期结果一致 |
|
点击添加危化品状态,必填项输入不合法,点击提交 |
提示必填项不能为空 |
与预期结果一致 |
|
进入危化品状态详情页修改,必填项合法输入,点击提交 |
提示提交成功 |
与预期结果一致 |
|
进入危化品状态详情页修改,必填项输入不合法,点击提交 |
提示必填项不能为空 |
与预期结果一致 |
|
点击删除危化品状态,选择危化品状态删除 |
提示删除成功 |
与预期结果一致 |
|
点击搜索危化品状态,输入存在的危化品状态名 |
查找出相应危化品状态信息 |
与预期结果一致 |
|
点击搜索危化品状态,输入不存在的危化品状态名 |
不显示危化品状态信息 |
与预期结果一致 |
下表是预警信息管理功能的测试用例,检测了预警信息中对预警信息的添加,删除,修改,查询操作等是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;管理员登录系统。
表6.6预警信息管理的测试用例
|
功能描述 |
用于预警信息 | |
|
测试目的 |
检测预警信息时的各种操作的运行情况 | |
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
点击添加预警信息,必填项合法输入,点击提交 |
提示添加成功 |
与预期结果一致 |
|
点击添加预警信息,必填项输入不合法,点击提交 |
提示必填项不能为空 |
与预期结果一致 |
|
进入预警信息详情页修改,必填项合法输入,点击提交 |
提示提交成功 |
与预期结果一致 |
|
进入预警信息详情页修改,必填项输入不合法,点击提交 |
提示必填项不能为空 |
与预期结果一致 |
|
点击删除预警信息,选择预警信息删除 |
提示删除成功 |
与预期结果一致 |
|
点击搜索预警信息,输入存在的预警信息名 |
查找出相应预警信息 |
与预期结果一致 |
|
点击搜索预警信息,输入不存在的预警信息名 |
不显示预警信息 |
与预期结果一致 |
本面向危险化学品的安全监管系统开发与设计满足相关信息的管理需求,在设计时借鉴了国内外优秀网站的优点,从界面到系统设计都保证了管理员以及用户能够方便操作。系统的主要特点和优点归纳如下:
(1)本系统用的移置性和针对性都比较高,因为针对性高可以提供更好的服务而移置性可以在多个系统上运行,更给用户带来了极大的方便。
(2)该面向危险化学品的安全监管系统开发与设计内容全面,管理方便可以及时的全面的处理各种错误,异常,这样避免了很多因用户的马虎操作而出现的失误,其操作方便,用户界面友好,能够上网的人都可以很好的进行操作。
经过对上述的测试结果分析,所有基本功能齐全,操作简单,系统运行性能良好,系统安全可靠,能促进面向危险化学品的安全监管系统的发展,发展前景广阔。
7 结束语
通过开发面向危险化学品的安全监管系统,我深刻体会到软件开发的完整流程。首先,在确定开发目标后,我进行了详细的需求分析,明确了系统所需的各项功能。接下来,设计了系统的功能框架和数据库结构,包括实体和数据表的设计。随后,实现了各个功能模块的详细界面,并进行了全面的功能测试。尽管在这个过程中遇到了各种挑战,但通过反复分析和深入思考,借助相关文献和解决方案,成功地解决了这些问题,最终使面向危险化学品的安全监管系统顺利运行。
虽然该系统在功能上基本满足了用户的需求,但仍有许多需要改进的地方。在接下来的开发阶段,计划进行以下改进:
用户界面设计:目前的操作页面虽然满足了简易操作的要求,但在多样化设计方面还有提升空间。将考虑引入更多丰富的设计元素,使界面更加美观和用户友好。
安全性能优化:针对系统安全性能的增强,需要进一步优化系统的整体防护能力。具体而言,将要对程序退出的安全性进行加强,确保在退出过程中不存在数据泄露或系统不稳定的风险。同时,对系统的并发处理能力进行升级,以确保在高并发场景下系统能够保持稳定的运行状态。
性能优化:在性能优化方面,将着重于对程序的数据结构和代码逻辑进行精细化调整。通过优化,旨在确保系统能在高负载下保持稳定且高效的运行状态。优化后的系统应具备快速处理大量事务的能力,显著缩短事务处理时间,从而提高整体工作效率。同时,致力于降低服务器资源的占用率,以实现资源的高效利用和成本的有效控制。
参考文献
- 杨建锋.危险化学品安全监管存在问题及监管思路[J].化工管理,2020,(29):110-111.
- 曹南,杨博,吴满意,等.危险化学品企业安全生产监管信息系统设计[J].测绘标准化,2022,38(01):98-102.DOI:10.20007/j.cnki.61-1275/P.2022.01.22.
- 王玉魁,李峰,乔彦超,等.基于Springboot与Vue框架的仓储管理系统设计与实现[J].河南科技,2024,51(18):29-33.DOI:10.19968/j.cnki.hnkj.1003-5168.2024.18.006.
- 张岩.危化品仓储安全状态监测与预警系统[D].北京石油化工学院,2020.DOI:10.27849/d.cnki.gshyj.2020.000067.
- 胡益新.危险化学品安全生产监管的主要问题及对策[J].化工管理,2022,(05):80-82.DOI:10.19900/j.cnki.ISSN1008-4800.2022.05.026.
- 陈喆宇.区域危化品云监测平台设计[D].上海应用技术大学,2021.DOI:10.27801/d.cnki.gshyy.2021.000577.
- 徐忆如.基于无线传感网络的危化品仓库监管系统的研究及实现[D].淮阴工学院,2024.
- Chiyuan L ,Changyuan H ,Weichao L .Design of Fire Fighting Simulation Training System Framework for Dangerous Chemical Storehouse[J].Journal of Physics: Conference Series,2020,1549(2):022121.
- Maleshkov V ,Valchanov H ,Aleksieva V .Blockchain-Based Model for Warehouse Management Systems for Artworks and Collectibles †[J].Engineering Proceedings,2024,70(1):39-39.
- 相福康.基于ARM的危化品仓库智能监控系统的研究与设计[D].淮阴工学院,2024.
- 高翔,睢星飞,李晓亮,等.AI机器视觉智能监管系统在危险化学品安全管控中的应用[J].化工设计通讯,2024,50(03):152-154.
- 陈蓓蕾,洪年松.基于SpringBoot的数据库接口设计[J].信息与电脑(理论版),2023,35(16):181-183.
- 陈怡宇.Z企业危化品仓库仓储管理优化研究[D].重庆工商大学,2023.DOI:10.27713/d.cnki.gcqgs.2023.000576.
- 黄圣粤,张捷.生产原料仓库管理系统的设计与实现[J].工业控制计算机,2023,36(03):115-116.
- 司小龙.基于Java和SQL Server的仓库管理系统的设计与开发[J].科技创新与生产力,2023,(01):71-74+77.
- 刘斌,陈刚,袁浩,等.基于UWB的危化品智能仓储管理系统研究[J].工业安全与环保,2022,48(10):32-36+41.
- 张志宇.基于SpringMVC的应急物资管理系统的设计与实现[D].首都经济贸易大学,2022.DOI:10.27338/d.cnki.gsjmu.2022.001229.
- 刘峰.基于互联网的仓库管理系统[J].机电产品开发与创新,2021,34(01):74-77.
- Fauzan R ,R F ,F M S , et al.The Designing of Warehouse Management Information System[J].IOP Conference Series: Materials Science and Engineering,2020,879(1):012054-.
- 谷民阳.仓储危化品定位管理系统研究与开发[D].山东大学,2020.DOI:10.27272/d.cnki.gshdu.2020.005001.
致 谢
这次毕业设计能够完成,最重要的就是来自指导老师的帮助,是导师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设施能够完成离不开导师的帮助。在此,我对导师由衷的表示感谢,
其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。
最后,我要感谢我的家人和同学们。感谢父母在物质与精神上给予我无限的支持和鼓励。感谢我的同学们,在论文写作期间,你们给予了我许多宝贵的建议和帮助,让我在学术研究的道路上不再孤单。
再次感谢所有在我大学生活中给予我帮助和支持的人们。您们的关怀和鼓励将永远铭刻在我的心中,成为我未来前行的动力。
由于自己的水平有限,毕设仍然存在着很大的缺陷,各位老师若提出意见,我会努力改正。

被折叠的 条评论
为什么被折叠?



