随着超市业务的不断发展和扩大,仓库管理运营效率和客户满意度至关重要。传统的人工管理方式已经无法满足庞大的货架数量和复杂的进出库流程需求。因此,借助信息技术来构建一个高效、准确的仓库管理系统显得尤为重要。本论文旨在设计和开发一套功能完善的仓库管理系统。通过该系统,管理人员可以实现对产品进出库流程的全面监控和管理,提高仓库操作的准确性和效率。同时,仓管用户可以方便地查询商品库存情况、记录进仓管费用信息,提升工作效率。
本论文主要针对仓库管理系统进行设计与研究,并采用了Spring Boot框架进行实现。论文首先介绍了仓库管理系统的背景与意义,以及当前仓库管理存在的问题。随后,阐述了Spring Boot框架的基本原理与特点,并分析了为什么选择Spring Boot作为开发工具。然后,论文详细描述了仓库管理系统的需求分析与系统设计,包括功能需求、性能需求、安全需求等。接着,论文阐述了仓库管理系统的开发与实现过程,包括数据库设计、页面设计和业务逻辑实现。最后,论文给出了该系统的测试结果与性能评估,并对系统的优化方案进行探讨。通过本论文的研究与设计,将为仓库管理系统的开发提供一种可行且高效的解决方案。
关键词:仓库管理系统;Spring Boot;Java编程语言;MySQL数据库
Abstract
With the continuous development and expansion of supermarket business, the efficiency of warehouse management and customer satisfaction are crucial. The traditional manual management method has been unable to meet the huge number of shelves and complex warehousing process needs. Therefore, it is particularly important to build an efficient and accurate warehouse management system with the help of information technology. This paper aims to design and develop a fully functional warehouse management system. Through this system, managers can realize the comprehensive monitoring and management of product in and leaving the warehouse process, and improve the accuracy and efficiency of warehouse operation. At the same time, warehouse users can easily query the inventory of goods, record the warehouse cost information, and improve work efficiency.
This paper mainly designs and studies the warehouse management system, and adopts the Spring Boot framework for implementation. The paper first introduces the background and significance of the warehouse management system, as well as the problems existing in the current warehouse management. Subsequently, the basic principles and characteristics of the Spring Boot framework are elaborated, and why Spring Boot was chosen as a development tool is analyzed. Then, the paper describes the requirements analysis and system design of warehouse management system, including functional requirements, performance requirements, security requirements. Then, the paper expounds the development and implementation process of warehouse management system, including database design, page design and business logic implementation. Finally, the paper presents the test results and performance evaluation of the system and discusses the optimization scheme. Through the research and design, this paper will provide a feasible and efficient solution for the development of warehouse management system.
Key words: warehouse management system; Spring Boot; Java programming language; MySQL database
目 录
1 绪论
1.1 课题的背景
随着物流行业的不断发展和信息化的进步,仓库管理系统在现代物流管理中扮演着至关重要的角色。有效的仓库管理系统可以提高仓库的运作效率、降低成本、减少人力资源消耗,提高客户满意度等。相比传统的仓库管理方法,基于互联网技术的仓库管理系统可以实现实时监控、数据分析、自动化处理等功能,极大地提高了仓库管理的效率和准确性。SpringBoot作为一种轻量级、快速搭建的Java开发框架,具有简单易用、高效快速的特点,非常适合用来开发仓库管理系统。东鼎汉盛作为国内知名的物流企业,其仓储业务涵盖了仓储设备、库位管理、货物入库出库、库存管理、RFID应用等多个方面。设计和实现一套基于SpringBoot的仓库管理系统,可以帮助东鼎汉盛更好地管理仓库运作、提高运作效率,提供更好的服务。
本论文旨在深入研究基于SpringBoot的东鼎汉盛仓库管理系统的设计与实现,探讨其核心功能模块的设计和开发过程,以及系统在提高仓库管理效率、降低成本、增强客户体验等方面的作用。通过该研究可以为物流企业提供更好的仓库管理解决方案,并推动物流行业的信息化发展。
1.2 课题的目的和意义
随着电子商务和物流行业的迅速发展,仓库管理系统成为企业成功运营的关键因素之一。东鼎汉盛作为一家专业的仓库管理系统提供商,研究基于springboot的东鼎汉盛仓库管理系统的设计与实现,可以满足市场对于高效、可靠、安全的仓库管理系统的需求。Spring Boot是一种基于Java的开发框架,具有自动化配置、快速开发等特点。研究基于springboot的东鼎汉盛仓库管理系统的设计与实现,可以推动仓库管理系统的技术发展,提高开发速度和效率。东鼎汉盛作为仓库管理系统提供商,通过研究基于springboot的东鼎汉盛仓库管理系统的设计与实现,可以提升其产品的竞争力,满足不同企业的需求,进一步提高企业的效益和竞争力。综上所述,研究基于springboot的东鼎汉盛仓库管理系统的设计与实现具有一定的市场需求、技术发展、企业效益和学术研究的意义。通过此研究,可以帮助企业提高仓库管理效率,促进企业的发展,推动相关技术的进步,并为学术界提供实践案例。
1.3 国内外研究概况
1.3.1 国外研究现状
在国外在仓库管理系统领域的研究现状表明,越来越多的企业开始应用基于云计算和物联网技术的先进仓库管理系统。这些系统利用大数据分析、人工智能和机器学习等技术,实现了智能化的仓库管理和实时的库存控制。同时,国外还在探索利用无人机、自动化机器人和自动化仓库等技术,提高仓库操作效率和准确性,降低人力成本,进一步优化仓库管理流程。总体来说,国外研究着眼于利用先进技术和智能化手段,不断推动仓库管理系统的创新和发展。
1.3.2 国内研究现状
在国内,仓库管理系统领域的研究正逐步向着应用先进技术提升仓库管理效率和精度的方向发展。当前国内关注的研究重点主要包括物联网技术在仓库管理中的应用、仓库系统的智能化和自动化以及云计算和大数据分析在提升仓库管理效率方面的应用。企业逐渐引入物联网、人工智能、机器学习等技术,以实现货物追踪监测、库存精确管理和智能化运营,促进仓库管理系统智能化发展,助力企业提高竞争力。
1.4 本领域存在的问题
目前仓库管理系统领域存在的问题包括仓库系统的实时性和准确性有待提升:传统的仓库管理系统往往需要人工参与进行数据输入和更新,容易出现延迟和错误。实时性和准确性的提升是提高仓库管理效率的关键。由于仓库管理系统需要处理大量的数据和复杂的业务逻辑,系统的性能可能成为一个问题。如果系统的响应时间过长或在高负载情况下出现崩溃,会影响用户的正常使用和业务流程。仓库管理系统通常涉及到敏感的数据,例如库存、收货、发货、退货等。系统必须确保数据的安全性,防止数据泄露和未授权的访问。对用户身份验证、权限管理和数据加密等方面的安全措施需要得到充分考虑。可扩展性:企业的仓库管理需求可能随着业务的发展而变化。系统需要具备良好的扩展性,能够方便地添加新的功能模块和适应业务流程的调整。同时,系统还应具备良好的兼容性,能够与其他业务系统进行集成。用户体验:仓库管理人员经常需要使用该系统进行频繁的操作和查询。系统的用户界面应设计简洁、易用,使用户能够快速、方便地完成各种操作。同时,系统还应提供实时的数据更新和统计分析功能,帮助用户更好地管理仓库。总之,库管理系统领域需要解决的问题包括提高实时性和准确性、提高仓库资源利用率、简化操作流程、完善数据管理和分析功能等。通过引入自动化技术、优化系统流程和加强数据分析能力,可以进一步提升仓库管理效率。
1.5 本课题主要研究内容
仓库管理系统研究内容主要包括商品类型管理,商品信息管理,过户信息管理,仓管费用信息管理,过户信息管理,仓库费用管理等方面。通过对库存量监控、订单处理、货物追踪、设备调度、质量管理等操作,提高仓库运作效率和准确性,降低成本,提升客户服务水平,实现仓库管理系统的现代化。
1.6 本章小结
本章对Springboot的仓库管理系统研究进行了介绍,首先介绍研究的课题背景、目的和意义。对比分析了国内外研究现状,揭示了其中存在的问题和发展方向。最后,详细描述了本系统在本领域存在的问题以及本次课题的主要研究内容,即针对仓库管理系统所存在的问题,研究如何利用技术手段提高系统的仓库运作效率和准确性,降低成本,以便更好地服大客户,促进仓库管务广理系统的可持续发展。
2.1系统可行性分析
2.1.1技术可行性分析
东鼎汉盛仓库管理系统在数据的存储上使用的MySQL数据库,在东鼎汉盛仓库管理系统开发中使用了Java、HTML、Tomcat、springboot这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用B/S模式进行开发,使系统的可扩展性和维护性更佳,减少系统配置代码,简化编程代码,目前B/S模式是目前最受欢迎的一种模式。
2.1.2经济可行性分析
springboot框架是开源的,拥有大量的社区支持和丰富的学习资源。使用springboot框架进行开发可以降低开发成本,缩短开发周期。此外,springboot框架本身具有较高的可维护性和可扩展性,开发人员可以很方便地完成前后端的数据交互。此外,springboot框架中的Spring MVC框架可以简化Web开发的流程,进一步降低了开发成本。因此从经济层面上分析是可行的。
2.1.3操作可行性分析
此次项目设计的时候我参考了很多类似系统的成功案例,对它们的操作界面以及功能都进行了系统的分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。因此操作可行性也没有问题。
2.2 需求分析
2.2.1 总体需求概述
本系统实现系统用户,商品类型管理,商品信息管理,过户信息管理,仓管费用信息管理,过户信息管理,仓库费用管理等功能。用户需能进行注册、登录和权限管理,区分不同权限用户的操作权限。系统应具备对仓库、货架和仓位的管理功能,包括创建、修改、删除以及物料的存放和调整。同时,入库和出库任务的管理、审核,库存数量和状态的实时跟踪和报表生成等功能也是关键要点。报表管理方面应包括各类报表的生成和查看,如过户信息管理,仓管费用信息管理,过户信息管理等,以支持管理层的决策和分析需求。
2.3系统需求分析
2.3.1功能需求分析
东鼎汉盛仓库管理系统的功能分析包括管理员和仓管用户两个角色。管理员可以通过主页了解仓库运营状况,管理用户权限,记录商品进仓管费用信息,对商品进行分类管理,发布通知公告,并管理个人信息。仓管用户功能包括主页展示基本信息商品类型管理,商品信息管理,过户信息管理,仓管费用信息管理,过户信息管理,仓库费用管理等。仓管可以通过主页了解当前库存和商品情况,查询商品信息,记录进仓管费用信息,查看通知公告,并管理个人信息。以上功能有助于为设计和开发仓库管理系统提供全面的指导和建议,以提高系统的效率和可用。具体功能分析如下:
仓管用户管理:实现仓管用户账号的创建、登录、权限设置等功能,区分不同用户的操作权限。
(1)后台首页:提供仓库管理系统的总体概况信息、数据统计分析等功能,可以让用户快速了解系统运行情况。
(2)商品类型管理:允许用户对商品进行分类和管理,包括添加、删除、修改商品类型的操作,以便更好地组织和管理商品信息。
(3)商品信息管理:允许用户录入商品的详细信息,包括商品名称、规格、价格等数据,方便用户对商品进行全面管理。
(4)过户信息管理:提供录入商品入库的功能,包括入库数量、日期、来源等信息的记录,方便用户进行过户信息的查询和统计。
(5)仓管费用信息管理:提供录入商品出库的功能,包括出库数量、日期、目的地等信息的记录,方便用户进行仓管费用信息的查询和统计。
(6)过户信息管理:允许用户对商品进行过户操作,包括商品的调拨、转移等操作的记录和管理,确保商品流通的正常进行。
(7)仓库费用管理:提供对仓库租金、杂费、维护费用等进行记录和管理的功能,方便用户了解仓库运营成本,进行财务管理和统计分析。
管理员:实现管理员账号的创建、登录、权限设置等功能,确保系统安全和管理规范。
(1)后台系统:提供管理员用户登录后台系统的功能,包括系统的整体管理、权限设置、日志记录等功能。
(2)系统用户管理:允许管理员管理系统的用户账号和权限,包括添加、删除、修改用户账号、分配角色权限等操作。
(3)商品类型管理:管理员可以对商品的类型进行管理,包括添加新的商品类型、编辑现有商品类型信息、删除不需要的商品类型等操作。
(4)商品信息管理:提供管理员录入、编辑、删除商品信息的功能,包括商品名称、规格、价格等信息的管理。
(5)过户信息管理:管理员可以记录商品的过户信息,包括入库数量、日期、来源等信息的录入和查询。
(6)仓管费用信息管理:管理员可以记录商品的仓管费用信息,包括出库数量、日期、目的地等信息的录入和查询。
(7)过户信息管理:管理员可以对商品进行过户操作的记录,包括调拨、转移等操作的管理和审批。
(8)仓库费用管理:提供对仓库费用的管理功能,包括租金、杂费、维护费用等的记录。
2.4 需求分析
2.4.1 总体需求概述
本系统实现用户管理、仓库管理、商品管理、入库管理、出库管理、库存管理和费用管理等功能。用户需能进行注册、登录和权限管理,区分不同权限用户的操作权限。系统应具备对仓库、货架和仓位的管理功能,包括创建、修改、删除以及物料的存放和调整。同时,入库和出库任务的管理、审核,库存数量和状态的实时跟踪和报表生成等功能也是关键要点。报表管理方面应包括各类报表的生成和查看,如库存报表、入库报表、出库报表等,以支持管理层的决策和分析需求。
2.4.2 功能性需求
东鼎汉盛仓库管理系统是一个功能全面的管理系统,具备用户管理、仓库管理、货物管理、库存管理、订单管理、报表生成、批次管理、提醒通知、搜索和筛选等功能。用户可以进行账号管理和权限分配,管理仓库的信息,记录货物的入库、出库和移库操作,并实时更新库存信息。系统支持订单的创建、跟踪和管理,生成各种报表和统计数据,管理货物的批次信息,并提供提醒和通知功能。用户可以快速搜索和筛选特定货物、订单或库存信息,同时系统也会记录操作。
2.4.3 非功能性需求
(1)安全要求:系统应具备严格的安全性措施,包括身份验证、权限管理、数据加密、防止未授权访问等,以保护敏感信息的安全。
(2)可靠性要求:系统应具备高可靠性,确保数据的完整性和准确性,避免任何数据丢失或损坏。
(3)性能要求:系统应具备高性能,能够处理大量并发访问和操作,并能在短时间内响应用户请求。同时,系统应具备良好的稳定性,避免因负载过高或异常情况而导致崩溃或延迟。
(4)可扩展性要求:系统应具备良好的可扩展性,能够根据需要进行水平或垂直扩展,以支持系统的增长和未来的扩展需求。
(5)用户友好性要求:系统应具备良好的用户界面和用户交互方式,使用户能够轻松使用系统的各项功能,减少学习成本和操作复杂性。
(6)可定制性要求:系统应具备一定程度的可定制性,以满足不同用户和企业的特定需求,并允许根据需求进行自定义配置和扩展。
(7)故障恢复:系统应具备良好的故障恢复机制,能够自动进行故障检测和恢复,保证系统在出现故障或异常情况时能够迅速恢复正常运行。
(8)兼容性要求:系统应能够与现有的硬件设备、操作系统、数据库和其他软件系统进行良好的兼容,以便与现有的技术基础进行集成和交互。
(9)可追溯性要求:系统应具备良好的操作追溯性,能够记录和跟踪每个用户的操作日志,保证系统操作的可追溯。
2.5系统设计用例分析
仓库管理系统用例图分别是图2.1和图2.2。

图2.1仓库管理系统仓管用户角色用例图

图2.2仓库管理系统管理员角色用例图
3.1系统功能模块
模块包括管理员模块和仓管用户模块,登录进去对应相应的功能,具体的功能模块图:

图3.1 仓库管理系统功能模块图
3.2数据库设计
数据库的设计承载者系统的各种数据,在建立数据库的时候,主要是数据库模型的设计以及各个数据库表的设计两部分。
3.3.1数据库概念结构设计
下面是整个仓库管理系统中主要的数据库表以及总E-R实体关系图。

图3.2 仓库管理系统总E-R关系图
3.3.2数据库逻辑结构设计
通过上一小节中东鼎汉盛仓库管理系统中总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 | 用户编号: |
表application_form_information (过户信息)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | application_form_information_id | int | 10 | 0 | N | Y | 过户信息ID | |
| 2 | warehouse_management_users | varchar | 64 | 0 | Y | N | 仓管用户 | |
| 3 | product_number | varchar | 64 | 0 | Y | N | 商品编号 | |
| 4 | supplier_name | varchar | 64 | 0 | Y | N | 供应商名称 | |
| 5 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
| 6 | product_type | varchar | 64 | 0 | Y | N | 商品类型 | |
| 7 | product_model | varchar | 64 | 0 | Y | N | 商品型号 | |
| 8 | commodity_price | varchar | 64 | 0 | Y | N | 商品价格 | |
| 9 | inventory_quantity | varchar | 64 | 0 | Y | N | 库存数量 | |
| 10 | arrival_quantity | int | 10 | 0 | Y | N | 0 | 到货数量 |
| 11 | delivery_time | datetime | 19 | 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 | 更新时间 |
表auth (用户权限管理)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
表hits (用户点击)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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: |
表outbound_information (仓管费用信息)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | outbound_information_id | int | 10 | 0 | N | Y | 仓管费用信息ID | |
| 2 | warehouse_management_users | int | 10 | 0 | Y | N | 0 | 仓管用户 |
| 3 | product_number | varchar | 64 | 0 | Y | N | 商品编号 | |
| 4 | supplier_name | varchar | 64 | 0 | Y | N | 供应商名称 | |
| 5 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
| 6 | product_type | varchar | 64 | 0 | Y | N | 商品类型 | |
| 7 | product_model | varchar | 64 | 0 | Y | N | 商品型号 | |
| 8 | commodity_price | varchar | 64 | 0 | Y | N | 商品价格 | |
| 9 | inventory_quantity | varchar | 64 | 0 | Y | N | 库存数量 | |
| 10 | shipment_quantity | int | 10 | 0 | Y | N | 0 | 出货数量 |
| 11 | shipping_time | datetime | 19 | 0 | Y | N | 出货时间 | |
| 12 | reason_for_shipment | text | 65535 | 0 | Y | N | 出货缘由 | |
| 13 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 14 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
| 15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表product_information (商品信息)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | product_information_id | int | 10 | 0 | N | Y | 商品信息ID | |
| 2 | warehouse_management_users | int | 10 | 0 | Y | N | 0 | 仓管用户 |
| 3 | product_number | varchar | 64 | 0 | Y | N | 商品编号 | |
| 4 | supplier_name | varchar | 64 | 0 | Y | N | 供应商名称 | |
| 5 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
| 6 | product_type | varchar | 64 | 0 | Y | N | 商品类型 | |
| 7 | product_model | varchar | 64 | 0 | Y | N | 商品型号 | |
| 8 | inventory_quantity | int | 10 | 0 | Y | N | 0 | 库存数量 |
| 9 | commodity_price | int | 10 | 0 | Y | N | 0 | 商品价格 |
| 10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表product_transfer (过户信息)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | product_transfer_id | int | 10 | 0 | N | Y | 过户信息ID | |
| 2 | warehouse_management_users | varchar | 64 | 0 | Y | N | 仓管用户 | |
| 3 | product_number | varchar | 64 | 0 | Y | N | 商品编号 | |
| 4 | supplier_name | varchar | 64 | 0 | Y | N | 供应商名称 | |
| 5 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
| 6 | product_type | varchar | 64 | 0 | Y | N | 商品类型 | |
| 7 | product_model | varchar | 64 | 0 | Y | N | 商品型号 | |
| 8 | commodity_price | varchar | 64 | 0 | Y | N | 商品价格 | |
| 9 | inventory_quantity | varchar | 64 | 0 | Y | N | 库存数量 | |
| 10 | number_of_transfers | int | 10 | 0 | Y | N | 0 | 过户数量 |
| 11 | docking_details | text | 65535 | 0 | Y | N | 对接详情 | |
| 12 | transfer_time | datetime | 19 | 0 | Y | N | 过户时间 | |
| 13 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 14 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
| 15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表product_type (商品类型)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | product_type_id | int | 10 | 0 | N | Y | 商品类型ID | |
| 2 | product_classification | 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 | 更新时间 |
表upload (文件上传)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 文件类型 |
表user (用户账户:用于保存用户登录信息)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 会员折扣 |
表user_group (用户组:用于用户前端身份和鉴权)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
表warehouse_expenses (仓库费用)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | warehouse_expenses_id | int | 10 | 0 | N | Y | 仓库费用ID | |
| 2 | warehouse_management_users | varchar | 64 | 0 | Y | N | 仓管用户 | |
| 3 | overall_month | int | 10 | 0 | Y | N | 0 | 统筹月份 |
| 4 | warehouse_rent | int | 10 | 0 | Y | N | 0 | 仓库租金 |
| 5 | insurance_costs | int | 10 | 0 | Y | N | 0 | 保险费用 |
| 6 | maintenance_costs | int | 10 | 0 | Y | N | 0 | 维修费用 |
| 7 | garbage_disposal | int | 10 | 0 | Y | N | 0 | 垃圾处理 |
| 8 | fee_details | varchar | 255 | 0 | Y | N | 费用详情 | |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表warehouse_management_users (仓管用户)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | warehouse_management_users_id | int | 10 | 0 | N | Y | 仓管用户ID | |
| 2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
| 4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
4关键模块的设计与实现
4.1登录模块
管理员、用户在登录界面输入账号+密码,完成验证,点击“登录”按钮,系统在用户数据库表中会对管理员、用户的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,其主界面展示如下图4.1所示
图4.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, "账号或密码不正确");
}
}
4.2 注册模块
东鼎汉盛仓库管理系统的管理员和仓管用户时可以进行注册登录,当用户右上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。
用户注册流程图如下所示。

图4.2 用户注册流程
用户注册界面展示如下图4.3所示。
图4.3 注册界面图
注册关键代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
4.3用户管理模块
系统用户管理:管理员负责管理系统的用户,包括管理员和仓管用户的登录、权限分配等操作。他们可以添加、编辑或删除用户账户,并设定相应的权限。界面如下图所示。
图4.4 用户管理界面图
获取用户管理列表关键代码如下:
@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);
}
4.4商品类型管理模块
管理员可以对商品的类型进行管理,包括添加新的商品类型、编辑现有商品类型信息、删除不需要的商品类型等操作。界面如下图所示。
图4.4 商品类型管理界面图
4.5商品信息管理模块
管理员可以对商品的类型进行管理,包括添加新的商品类型、编辑现有商品类型信息、删除不需要的商品类型等操作。界面如下图所示。
图4.5 商品信息管理界面图
4.6过户信息管理模块
管理员可以记录商品的过户信息,包括入库数量、日期、来源等信息的录入和查询。界面如下图所示。
图4.6 过户信息管理界面图
4.7仓管费用信息管理模块:
管理员可以记录商品的仓管费用信息,包括出库数量、日期、目的地等信息的录入和查询。界面如下图所示。
图4.7 仓管费用信息管理界面图
4.8过户信息管理模块
管理员可以对商品进行过户操作的记录,包括调拨、转移等操作的管理和审批。界面如下图所示。
图4.8 仓管费用信息管理界面图
4.9仓管费用管理模块
提供对仓库费用的管理功能,包括租金、杂费、维护费用等的记录、查看添加。界面如下图所示。
图4.9仓管费用管理界面图
5系统测试
5.1测试目的
通过前面章节的介绍,我们可以看到东鼎汉盛仓库管理系统已经完成了,但是能不能投入使用还是未知,因为在每个项目正式使用之前必须对开发的项目进行测试,如果不进行测试一旦投入使用可能会出现很多未可知的问题,比如使用人数太多导致系统瘫痪,比如某一功能存在bug信息填写错误等,这些错误将给使用者带来很多的困扰,甚至造成更大的损失,因此测试是项目投入使用的最后一步,为用户提供一个运行顺畅、完美的项目也就是我们进行最后测试的目的。
5.2系统部分测试
用户登录功能测试:
表5.1用户登录功能测试表
| 测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
| 用户登录模块测试 | 用户登录成功的情况 | 点击前登录界面输入账号和密码分别输入admin和admin后点击“登录”按钮。 | 登录成功并调整到用户界面 | 正确 |
5.2商品信息添加功能测试:
表5.2 商品信息添加功能测试表
| 测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
| 商品信息添加模块测试 | 商品信息添加成功的情况 | 在商品信息的页面中将点击添加,输入商品信息相关信息,输入正确的信息后然后点击“提交”按钮。 | 提示添加成功 | 正确 |
| 商品信息添加模块测试 | 商品信息添加失败的情况 | 在商品信息页面中不填写的货架数量,其他信息正常输入“提交”按钮。 | 提示“添加失败,信息不能为空” | 正确 |
5.3过户信息添加功能测试:
表5.3过户信息添加功能测试表
| 测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
| 过户信息添加模块测试 | 过户信息添加成功的情况 | 在过户信息的页面中将点击添加,输入过户信息相关信息,输入正确的信息后然后点击“提交”按钮。 | 提示添加成功 | 正确 |
| 过户信息添加模块测试 | 过户信息添加失败的情况 | 在过户信息页面中不填写的仓位数量,其他信息正常输入“提交”按钮。 | 提示“添加失败,信息不能为空” | 正确 |
5.4仓管费用信息功能模块测试:
表5.4仓管费用信息功能测试表
| 测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
| 仓管费用信息功能测试 | 查询成功的情况 | 在界面输入仓管费用信息名称进行查询 | 查询成功 | 正确 |
5.5过户信息添加功能测试:
表5.5过户信息添加功能测试表
| 测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
| 过户信息添加模块测试 | 过户信息添加成功的情况 | 在过户信息添加管理的页面中,输入过户信息,输入正确的信息后然后点击“提交”按钮。 | 提示添加成功 | 正确 |
| 过户信息添加模块测试 | 过户信息添加失败的情况 | 在过户信息页面中不填写入库数量,其他信息正常输入“提交”按钮。 | 提示“添加失败,信息不能为空” | 正确 |
表5.6 仓管费用信息添加功能测试表
| 测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
| 仓管费用信息添加模块测试 | 仓管费用信息添加成功的情况 | 在仓管费用信息添加管理的页面中,输入仓管费用信息,输入正确的信息后然后点击“提交”按钮。 | 提示添加成功 | 正确 |
| 仓管费用信息添加模块测试 | 仓管费用信息添加失败的情况 | 仓管费用信息页面中不填写出库数量,其他信息正常输入“提交”按钮。 | 提示“添加失败,信息不能为空” | 正确 |
5.3系统测试结果:
基于springboot仓库管理系统主要功能模块测试结果:通过编写东鼎汉盛仓库管理系统的测试用例,已经检测完毕用户的登录模块、商品信息添加模块、仓管费用信息模块、出过户信息添加模块的功能测试,在对以上功能得测试过程中,发现了系统中的很多漏送并进行了完善,经过多人在线进行测试,系统完全可以正常运行,当然在后期的维护中系统将不断完善。
在这篇论文中,我们详细讨论了基于Springboot的东鼎汉盛仓库管理系统的设计、实现和功能特点。该系统采用了现代化的技术架构和设计理念,为用户提供了高效、可靠的仓库管理解决方案。通过对系统进行功能测试和性能评估,我们验证了系统的稳定性和可靠性。
在未来的工作中,我们将进一步完善系统的功能,提升系统的可扩展性和性能,以满足用户不断增长的需求。我们也将继续关注新技术的发展,不断优化系统,为用户提供更好的仓库管理体验。
[1]陈丽娜.化学品仓库信息化管理系统设计[J].上海轻工业,2024,(01):102-104.
[2]陈俊丽.基于PLC的智能仓库管理系统设计[J].电子制作,2023,31(22):78-82.DOI:10.16589/j.cnki.cn11-3571/tn.2023.22.015.
[3]王玉国,刘子康,费家翔等.锻造模具仓库管理系统设计与开发[J].锻造与冲压,2023,(21):61-64.
[4]郭静菡.面向用户偏好的个性化音乐智能推荐系统[J].自动化技术与应用,2023,42(10):108-112.DOI:10.20033/j.1003-7241.(2023)10-0108-05.
[5]张桦,邱雄飞,赵润泽.基于物联网技术的后方仓库管理系统建设研究[J].物联网技术,2023,13(08):95-98.DOI:10.16667/j.issn.2095-1302.2023.08.025.
[6]闫小扬.支持货位优化策略的仓库管理系统设计与实现[D].北京邮电大学,2023.DOI:10.26969/d.cnki.gbydu.2023.001103.
[7]Hock C .林德仓库管理系统实现物流中心全面数字化改造[J].现代制造,2023,(04):48-49.
[8]姚勇林.基于深度学习的个性化音乐推荐系统[D].电子科技大学,2023.DOI:10.27005/d.cnki.gdzku.2023.000587.
[9]周晓静,赵俊杰.基于仓储管理系统的造纸业多仓库自动分单与调度系统研究[J].自动化技术与应用,2023,42(02):126-128+161.DOI:10.20033/j.1003-7241.(2023)02-0126-04.
[10]张咏轩.基于城市轨道交通中智慧仓库管理系统的研究[J].铁路通信信号工程技术,2022,19(11):98-101+114.
[11]周欢,李宏滨.融合时间信息的音乐推荐算法研究[J].信息记录材料,2022,23(09):220-222.DOI:10.16009/j.cnki.cn13-1295/tq.2022.09.031.
[12]刘琦卿.融合情景感知的音乐推荐方法研究[J].信息技术与信息化,2022,(08):90-94.
[13]贾铁刚.自动化立体仓库管理系统的设计与实现[J].物流工程与管理,2022,44(07):54-57.
[14]刘义理,朱茂然,胡莼.基于用户行为轨迹的在线音乐偏好模型[J].复旦学报(自然科学版),2022,61(03):342-352.DOI:10.15943/j.cnki.fdxb-jns.2022.03.003.
[15]董洛含,刘丽华,逄瑞佳等.基于ZigBee与RFID的仓库货物智能管理系统设计[J].辽宁科技学院学报,2022,24(03):36-38.
时光匆匆如流水,转眼便是大学毕业时节,春梦秋云,聚散真容易。离校日期已日趋临近,毕业论文的的完成也随之进入了尾声。从开始进入课题到论文的顺利完成,一直都离不开老师、同学、朋友给我热情的帮助,在这里请接受我诚挚的谢意!
首先,我要感谢我的指导老师,在整个研究过程中给予我无私的指导和建议。在我的研究中,老师提供了许多宝贵的意见和建议,使我在研究中能够更加深入和全面地探讨问题。老师对我的学术思维和研究方法的培养将影响我未来的学术生涯。
其次,我要感谢我的家人,他们在我整个学习过程中一直支持和鼓励我。没有他们的支持,我不可能完成这个论文的撰写。他们一直是我生命中最重要的人,我会一直感恩他们的爱和支持。
同时,我也要感谢我的同学们,他们在整个研究过程中给予我很大的帮助和支持。他们和我一起分享他们的研究经验和学术见解,这对我在研究中很有帮助。我特别要感谢我的朋友,他们在研究期间一直陪伴着我,为我提供了许多精神上的支持和帮助。
最后,我要感谢所有曾经支持过我的人,包括我的教授、同学、家人和朋友。没有你们的支持和鼓励,我无法完成这个研究,也无法顺利完成我的学业。这个论文是我们共同的成果,我感激每一个人在这个过程中的贡献。
这篇毕业论文是我人生中一次重要的学术经历,我将始终珍视。在研究和撰写过程中,我得到了很多人的帮助和支持,他们为我的毕业论文提供了无尽的支持。我会铭记他们的付出,以此为动力,继续追求学术上的成功和进步。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~
699

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



