本科生毕业设计(论文)
题 目 小型超市管理系统
学 院 XXXXX
专业班级 XXXXX
寻人情况 XXXX
指导教师 XXXX
撰写日期:2025年 月 日
目 录
摘要
随着零售行业竞争的加剧,小型超市迫切需要一个高效、集成化的管理系统来提升运营效率。本研究旨在通过开发一套基于Spring Boot、Java和MySQL的小型超市管理系统,满足不同角色用户的需求,特别是员工和管理员在商品管理、供应商管理和销售出库统计等方面的功能需求。
系统实现主要涵盖了三个核心功能模块:一是面向员工用户的后台首页展示销售出库统计信息、供应商查询、商品信息查询以及进货入库与销售出库记录查询;二是为管理员设计了更为全面的管理界面,包括财务报告统计、系统用户管理、商品分类管理等高级功能。技术上采用了Spring Boot框架以简化开发流程,确保系统的稳定性和扩展性,同时利用MySQL数据库存储数据,保证数据处理的高效性。
本系统的开发不仅有助于提高小型超市的日常管理效率,减少人为错误,还能够通过精准的数据分析支持决策制定,增强市场竞争力。此外,由于其灵活性和可定制性,该系统同样适用于其他类似规模的企业,具有广泛的推广价值和应用前景。
关键词:Java;Spring Boot框架;小型超市管理系统;MySQL
Abstract
With the intensification of competition in the retail industry, small supermarkets urgently need an efficient and integrated management system to improve operational efficiency. The purpose of this study is to develop a small supermarket management system based on Spring Boot, Java and MySQL to meet the needs of users in different roles, especially the functional needs of employees and administrators in commodity management, supplier management and sales outbound statistics.
The system implementation mainly covers three core functional modules: first, the background home page for employee users displays sales outbound statistics, supplier inquiry, commodity information inquiry, and purchase warehousing and sales outbound record inquiry; The second is to design a more comprehensive management interface for administrators, including advanced functions such as financial report statistics, system user management, and commodity classification management. The Spring Boot framework is used to simplify the development process, ensure the stability and scalability of the system, and use the MySQL database to store data to ensure the efficiency of data processing.
The development of this system not only helps to improve the daily management efficiency of small supermarkets and reduce human error, but also supports decision-making through accurate data analysis and enhances market competitiveness. In addition, due to its flexibility and customizability, the system is equally suitable for other enterprises of similar size, with a wide range of promotion value and application prospects.
Keywords: Java; Spring Boot framework; small supermarket management system; MySQL
1 绪论
1.1 研究背景
在当今竞争激烈的零售市场中,小型超市面临着来自大型连锁超市和电子商务平台的双重压力。为了保持竞争力并实现可持续发展,小型超市需要优化其内部运营流程,提高管理效率和服务质量。然而,许多小型超市仍然依赖传统的手工记录或分散的信息管理系统来处理库存、销售、供应商关系等关键业务环节,这不仅导致了工作效率低下,而且增加了出错的风险。此外,现有的一些商业解决方案往往针对的是较大规模的企业,对于预算有限且需求特定的小型超市来说,这些方案既昂贵又复杂,难以实施。
基于上述背景,本研究聚焦于开发一套专为小型超市设计的集成化管理系统。系统旨在通过利用现代信息技术,如Spring Boot、Java以及MySQL数据库,提供一个成本效益高、易于操作的解决方案,以满足小型超市在商品管理、供应商管理和销售统计等方面的具体需求。
在国内,随着信息技术的快速发展和零售行业的不断壮大,超市管理系统的研发逐渐受到重视。早期的研究多集中在大型连锁超市的需求上,开发了多种功能全面但成本较高的管理系统。近年来,针对小型超市的实际需求,国内开始出现一些专注于简化操作流程、降低成本的系统解决方案。然而,这些系统在定制化服务及用户体验方面仍有待提高,特别是在将现代技术如Spring Boot集成到小型超市管理系统中的应用案例相对较少,显示出一定的发展空间。
在国外,超市管理系统的研发起步较早,尤其是欧美国家,在利用先进的信息技术提升零售业效率方面积累了丰富的经验。早期系统侧重于大规模零售网络的管理,提供了从供应链到销售终端的一体化解决方案。近年来,随着中小企业对信息化管理需求的增长,国外也开始关注小型零售企业的特定需求,推出了若干轻量级管理系统。尽管如此,专门为小型超市设计、同时具备高性价比和技术先进性的解决方案仍然稀缺,尤其是在结合本地市场需求进行定制开发方面,仍存在探索的空间。
本研究的主要目的在于开发并实现一套高效、易用且经济适用的小型超市管理系统,利用Spring Boot、Java和MySQL等现代技术,满足小型超市员工和管理员在商品信息管理、供应商管理、进货入库管理以及销售出库管理等方面的特定需求。通过该系统的设计与实施,力求简化日常运营流程,提高工作效率,并减少人为错误的发生。
本研究的意义在于为小型超市提供了一个定制化的管理解决方案,填补了市场上针对这一特定规模企业高效管理工具的空白。通过优化内部业务流程,不仅有助于提升小型超市的管理水平和市场竞争力,同时也展示了如何利用信息技术手段解决传统零售业面临的挑战。此外,该系统的灵活性和可扩展性也为其他类似规模的企业提供了有价值的参考,促进了信息技术在零售行业的更广泛应用。
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对系统需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第一章:引言。第一章主要介绍了课题研究的背景和意义,系统开发的国内外研究现状和本文的主要工作。
第二章:相关技术介绍。主要对本系统使用的相关技术和开发环境进行介绍。
第三章:系统需求分析。主要从系统的用户、功能等方面进行需求分析。
第四章:系统设计。主要对系统框架、系统功能模块、数据库进行功能设计。
第五章:系统实现。主要介绍了系统框架搭建、系统界面的实现。
第六章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试
2 相关技术介绍
2.1 Java编程语言
Java作为一种广泛使用的面向对象编程语言[1],为本系统提供了强大的开发基础。它具备跨平台特性、丰富的类库和稳定的安全性能,能够确保系统的高效运行和良好的扩展性。在小型超市管理系统中,Java[2]用于编写后端业务逻辑,处理包括用户管理、信息管理在内的各种复杂操作,同时支持高并发访问,保证了系统的响应速度和稳定性。
2.2 Spring Boot开发框架
Spring Boot是基于Spring框架的快速开发平台[3],极大地简化了基于Java的应用程序构建过程。它通过自动配置和约定优于配置的原则,减少了繁琐的设置工作,使开发者可以更专注于业务逻辑的实现。在本系统中,Spring Boot[4]不仅用于搭建RESTful API服务,提供前后端数据交互的接口,还集成了安全认证、事务管理和缓存等功能,以提升系统的整体性能和安全性,确保小型超市管理系统的稳定性和可维护性。
2.3 MySQL数据库
作为一款流行的开源关系型数据库管理系统,MySQL[5]以其高性能、可靠性和易于使用的特点成为本系统的数据存储解决方案。它支持复杂的查询和事务处理,适用于存储和管理大量的功能模块信息、用户数据以及交互记录。通过优化表结构设计和索引策略,MySQL能够快速响应系统的读写请求,保障数据的一致性和完整性,同时为数据分析和报表生成提供了坚实的基础[6]。
2.4 B/S体系结构
B/S体系,即Browser/Server体系[7],是一种常见的网络应用程序架构。其工作原理基于客户端与服务器之间的请求-响应模型。用户通过浏览器向服务器发送请求,服务器接收到请求后进行处理,并生成相应的响应结果,最终将响应返回给客户端。浏览器接收到服务器返回的响应后,解析其中的标记语言(如HTML[8]),并根据CSS样式表和JavaScript脚本来渲染页面,呈现给用户。用户可以与页面进行交互,例如点击链接、填写表单等操作,这些操作会触发新的请求,循环执行上述过程。
3 系统分析
3.1 可行性分析
可行性分析是系统分析的第一步,进行系统的可行性分析是至关重要的。它不仅帮助我们评估项目的潜在风险和挑战,还能确保资源的有效利用,避免不必要的浪费。通过技术、经济和操作三个维度的全面分析,我们可以明确项目的实施路径,确定是否具备成功的基础条件,并为后续的开发和运营提供科学依据。这种系统化的评估有助于识别可能的瓶颈,提前制定应对策略,从而提高项目的成功率和可持续性。
3.1.1 技术可行性分析
从技术角度来看,本系统基于Spring Boot框架构建,结合数据库管理,能够有效支持小型超市管理系统的各项功能需求。Spring Boot提供了强大的架构支持,确保系统的可扩展性和稳定性。通过充分的技术调研和原型测试,我们确认现有的技术栈完全能够满足系统的开发和运行要求,具备较高的技术可行性。
从经济角度考量,本系统的开发和维护成本在可控范围内,且预期的投资回报率较高。初期投入主要包括软件开发、硬件采购和人员培训等方面,但通过合理的预算规划和资源分配,可以有效控制成本。更重要的是,系统上线后将显著提升小型超市管理系统的运营效率,减少人工干预,降低管理成本。
在操作可行性方面,本系统设计注重用户体验,采用了直观易用的界面设计,并提供详细的帮助文档支持,确保用户可以轻松上手使用各项功能。无论是用户还是管理员,都能通过简洁明了的操作流程完成信息查询和管理等任务。因此,从用户操作的角度来看,本系统具备良好的操作可行性。
3.2.1 功能性需求分析
本小型超市管理系统旨在满足员工用户和管理员两大角色的不同需求,通过实现多个功能模块来优化超市的日常运营。系统核心功能包括商品信息管理、供应商管理、进货入库管理、销售出库管理以及财务报告管理等,确保每个用户角色都能高效地执行其职责范围内的任务。具体功能描述如下:
(1)员工用户模块:
后台首页:展示每日、每周或每月的销售出库统计数据,帮助员工快速了解销售趋势。提供直观的数据视图,便于监控销售表现。
供应商管理:允许员工查询现有供应商的信息,如联系方式和供货记录。支持通过关键字搜索快速定位特定供应商。
商品信息管理:为员工提供查看所有商品详情的功能,包括库存状态和价格。方便员工根据需要查找特定商品的信息。
进货入库管理:员工可以查阅最近的进货记录,了解最新入库的商品情况。提供筛选工具以按日期或商品类别检索进货记录。
销售出库管理:让员工能够查看详细的销售记录,跟踪每笔销售的状态。支持导出销售报告以便进一步分析。
(2)管理员管理模块:
后台首页:不仅显示销售出库统计,还汇总了关键财务指标,如利润和成本。提供深度分析工具,辅助决策制定。
系统用户:管理员可以添加、删除或修改系统用户的访问权限。有助于维护系统的安全性,确保只有授权人员可以访问敏感信息。
供应商管理:除了查询外,管理员还可以编辑或删除供应商信息。确保供应商数据库始终保持最新和准确。
商品分类管理:管理员负责创建和调整商品分类,使商品组织更加有序。支持批量修改商品分类,提高工作效率。
商品信息管理:管理员不仅可以查询商品信息,还能更新库存状态并记录进货入库和销售出库的情况。保障库存数据的实时更新与准确性。
进货入库管理:提供全面的进货记录管理功能,包括新增进货记录和编辑已有记录。确保进货流程透明且易于追踪。
销售出库管理:管理员有权审核和确认每笔销售出库,确保交易的合法性。同时可以生成各种销售报表,用于业绩评估。
财务报告管理:生成详细的财务报告,涵盖收入、支出和盈利状况。为管理层提供有力的数据支持,以便于进行财务规划和控制。
3.2.2 非功能性分析
小型超市管理系统设计与实现需要具备性能、可靠性、安全性、可用性、扩展性等非功能性特征。系统应在长时间运行中保持稳定,用户界面简洁直观;具备高效的数据处理和响应速度;采取安全措施保护用户信息;根据用户反馈调整推荐算法;方便用户进行信息搜索和排序;易于维护和管理,支持与其他系统互操作。设计和开发过程中需注重这些要求,以提供高质量、用户友好和可信赖的系统体验。具体如下3-1表格:
表3-1小型超市管理系统非功能需求表
非功能性要求 | 说明 |
性能 | 评估响应时间、并发用户数、吞吐量等指标,以确保系统稳定高效地运行。 |
可靠性 | 评估系统的稳定性、容错能力和数据完整性,保障系统在故障情况下正常运行。 |
安全性 | 评估用户身份认证、数据加密和访问控制等,保护用户信息和交易的安全。 |
可用性 | 评估系统的稳定性、故障处理能力和用户界面友好性,提供良好的用户体验。 |
扩展性 | 评估系统的可扩展性和灵活性,以便根据需求进行功能扩展和升级。 |
系统用例分析是对小型超市管理系统中各个功能模块的用户需求和行为进行分析,以识别和描述不同的用户用例。通过系统用例分析,可以深入了解用户在系统上的操作流程和交互方式,为系统设计和开发提供指导,并确保系统能够满足用户的需求和期望。
员工用户用例图如图3-1所示。
图3-1 员工用户角色用例图
管理员角色用例图如图3-2所示。
小型超市管理系统须支撑整个机构不同层面的多种职能,而各功能模块间存在着多种关联信息,组成一个有机整体,并针对就业数据自身特点和面临的现实条件,对系统进行流程图设计。活动图是一种用于对系统的动态行为建模的另一种常用图表,通常用于可视化展示系统中各个活动的执行顺序、流程控制和数据交互,展现从一个活动到另一个活动的控制流,活动图在本质上是一种流程图;但活动图着重表现从一个活动到另一个活动的控制流。因此,这里列举了2个业务活动图。
(1)用户登录查询的业务流程如下。
用户注册登录,系统从数据库获取用户数据信息,登录成功用户进入查询页面,用户输入查询关键字,数据库查询用户所输入的关键字,查询成功显示查询的模块信息,查询失败不显示。用户登录查询功能的活动图如图3-3所示。
图3-3 用户登录查询活动图
(2)管理员添加信息的业务流程如下。
此活动图描述了管理员添加信息。管理员可以通过信息管理模块页面选择要添加的基本信息。添加成功传入数据库中,失败则不添加。管理员可以保存信息并更新系统中的信息。管理员添加信息功能的活动图如图3-4所示。
4 系统总体设计
从技术角度来看,小型超市管理系统的架构设计至关重要。我们将采用MVC架构,包括表现层、业务逻辑层和数据访问层。表现层负责用户界面展示,业务逻辑层处理核心功能逻辑,数据访问层负责数据库交互。通过三层架构模式,确保系统的可靠性和可扩展性。
系统架构图如图4-1所示。
图4-1 系统架构图
通过整体功能模块设计,我们将根据需求分析的结果,将系统的功能划分为不同的模块。每个模块负责实现特定的功能,并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系。系统总体功能模块图如下图所示。
图4-2 小型超市管理系统功能模块图
4.3 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
4.3.1 数据库概念结构设计
本文在系统分析阶段就抽取了一些实体,根据实体之间的关系,经过分析进行系统E-R图的设计。下面是整个小型超市管理系统中主要的数据库表总E-R实体关系图。
图4-3 小型超市管理系统总E-R关系图
4.3.2 数据库逻辑结构设计
数据库是小型超市管理系统的数据处理的基础,也是为界面数据的展示与存储的关键。小型超市管理系统的主要数据库表如下。
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | token_id | int | 是 | 是 | 临时访问牌ID | |
2 | token | varchar | 64 | 否 | 否 | 临时访问牌 |
3 | info | text | 65535 | 否 | 否 | 信息 |
4 | maxage | int | 是 | 否 | 最大寿命:默认2小时 | |
5 | create_time | timestamp | 是 | 否 | 创建时间 | |
6 | update_time | timestamp | 是 | 否 | 更新时间 | |
7 | user_id | int | 是 | 否 | 用户编号 |
表 4-2-auth(用户权限管理)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | auth_id | int | 是 | 是 | 授权ID | |
2 | user_group | varchar | 64 | 否 | 否 | 用户组 |
3 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
4 | table_name | varchar | 64 | 否 | 否 | 表名 |
5 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
6 | path | varchar | 255 | 否 | 否 | 路由路径 |
7 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
8 | parent_sort | int | 是 | 否 | 父级菜单排序 | |
9 | position | varchar | 32 | 否 | 否 | 位置 |
10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
11 | add | tinyint | 是 | 否 | 是否可增加 | |
12 | del | tinyint | 是 | 否 | 是否可删除 | |
13 | set | tinyint | 是 | 否 | 是否可修改 | |
14 | get | tinyint | 是 | 否 | 是否可查看 | |
15 | field_add | text | 65535 | 否 | 否 | 添加字段 |
16 | field_set | text | 65535 | 否 | 否 | 修改字段 |
17 | field_get | text | 65535 | 否 | 否 | 查询字段 |
18 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
20 | option | text | 65535 | 否 | 否 | 配置 |
21 | create_time | timestamp | 是 | 否 | 创建时间 | |
22 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-3-code_token(验证码)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | code_token_id | int | 是 | 是 | 验证码ID | |
2 | token | varchar | 255 | 否 | 否 | 令牌 |
3 | code | varchar | 255 | 否 | 否 | 验证码 |
4 | expire_time | timestamp | 是 | 否 | 失效时间 | |
5 | create_time | timestamp | 是 | 否 | 创建时间 | |
6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-4-employee_users(员工用户)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | employee_users_id | int | 是 | 是 | 员工用户ID | |
2 | employee_id | varchar | 64 | 是 | 是 | 员工工号 |
3 | employee_name | varchar | 64 | 否 | 否 | 员工姓名 |
4 | employee_department | varchar | 64 | 否 | 否 | 员工部门 |
5 | employee_phone_number | varchar | 16 | 否 | 否 | 员工电话 |
6 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
7 | user_id | int | 是 | 否 | 用户ID | |
8 | create_time | datetime | 是 | 否 | 创建时间 | |
9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-5-expired_outbound(过期出库)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | expired_outbound_id | int | 是 | 是 | 过期出库ID | |
2 | product_code | varchar | 64 | 否 | 否 | 商品编号 |
3 | product_name | varchar | 64 | 否 | 否 | 商品名称 |
4 | product_type | varchar | 64 | 否 | 否 | 商品类型 |
5 | product_brand | varchar | 64 | 否 | 否 | 商品品牌 |
6 | supplier | varchar | 64 | 否 | 否 | 供应商 |
7 | product_specifications | varchar | 64 | 否 | 否 | 商品规格 |
8 | shelf_number | varchar | 64 | 否 | 否 | 货架编号 |
9 | outbound_quantity | double | 否 | 否 | 出库数量 | |
10 | employee_users | int | 否 | 否 | 员工用户 | |
11 | employee_name | varchar | 64 | 否 | 否 | 员工姓名 |
12 | outbound_remarks | text | 65535 | 否 | 否 | 出库备注 |
13 | create_time | datetime | 是 | 否 | 创建时间 | |
14 | update_time | timestamp | 是 | 否 | 更新时间 | |
15 | source_table | varchar | 255 | 否 | 否 | 来源表 |
16 | source_id | int | 否 | 否 | 来源ID | |
17 | source_user_id | int | 否 | 否 | 来源用户 |
表 4-6-financial_reports(财务报告)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | financial_reports_id | int | 是 | 是 | 财务报告ID | |
2 | accounting_month | varchar | 64 | 否 | 否 | 记账月份 |
3 | sales_amount | double | 否 | 否 | 销售金额 | |
4 | purchasing_cost | double | 否 | 否 | 进货成本 | |
5 | personnel_salary | double | 否 | 否 | 人员工资 | |
6 | other_expenses | double | 否 | 否 | 其他支出 | |
7 | profit_for_this_month | double | 否 | 否 | 本月利润 | |
8 | create_time | datetime | 是 | 否 | 创建时间 | |
9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-7-hits(用户点击)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | hits_id | int | 是 | 是 | 点赞ID | |
2 | user_id | int | 是 | 否 | 点赞人 | |
3 | create_time | timestamp | 是 | 否 | 创建时间 | |
4 | update_time | timestamp | 是 | 否 | 更新时间 | |
5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
7 | source_id | int | 是 | 否 | 来源ID |
表 4-8-product_classification(商品分类)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | product_classification_id | int | 是 | 是 | 商品分类ID | |
2 | product_type | varchar | 64 | 否 | 否 | 商品类型 |
3 | create_time | datetime | 是 | 否 | 创建时间 | |
4 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-9-product_information(商品信息)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | product_information_id | int | 是 | 是 | 商品信息ID | |
2 | product_images | varchar | 255 | 否 | 否 | 商品图片 |
3 | product_code | varchar | 64 | 是 | 是 | 商品编号 |
4 | product_name | varchar | 64 | 否 | 否 | 商品名称 |
5 | product_type | varchar | 64 | 否 | 否 | 商品类型 |
6 | product_brand | varchar | 64 | 否 | 否 | 商品品牌 |
7 | supplier | varchar | 64 | 否 | 否 | 供应商 |
8 | purchase_price | double | 否 | 否 | 进货价格 | |
9 | product_specifications | varchar | 64 | 否 | 否 | 商品规格 |
10 | product_inventory | double | 否 | 否 | 商品库存 | |
11 | shelf_number | varchar | 64 | 否 | 否 | 货架编号 |
12 | past_due | varchar | 64 | 否 | 否 | 过期状态 |
13 | expired_batch | varchar | 64 | 否 | 否 | 过期批次 |
14 | inventory_remarks | text | 65535 | 否 | 否 | 库存备注 |
15 | purchasing_and_warehousing_limit_times | int | 是 | 否 | 进货入库限制次数 | |
16 | sales_outbound_limit_times | int | 是 | 否 | 销售出库限制次数 | |
17 | expired_outbound_limit_times | int | 是 | 否 | 过期出库限制次数 | |
18 | create_time | datetime | 是 | 否 | 创建时间 | |
19 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-10-purchasing_and_warehousing(进货入库)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | purchasing_and_warehousing_id | int | 是 | 是 | 进货入库ID | |
2 | product_images | varchar | 255 | 否 | 否 | 商品图片 |
3 | product_code | varchar | 64 | 否 | 否 | 商品编号 |
4 | product_name | varchar | 64 | 否 | 否 | 商品名称 |
5 | product_type | varchar | 64 | 否 | 否 | 商品类型 |
6 | product_brand | varchar | 64 | 否 | 否 | 商品品牌 |
7 | supplier | varchar | 64 | 否 | 否 | 供应商 |
8 | product_specifications | varchar | 64 | 否 | 否 | 商品规格 |
9 | purchase_date | date | 否 | 否 | 进货日期 | |
10 | purchase_quantity | double | 否 | 否 | 进货数量 | |
11 | expiration_date | date | 否 | 否 | 过期时间 | |
12 | product_batch | varchar | 64 | 否 | 否 | 商品批次 |
13 | purchase_remarks | longtext | 4294967295 | 否 | 否 | 进货备注 |
14 | create_time | datetime | 是 | 否 | 创建时间 | |
15 | update_time | timestamp | 是 | 否 | 更新时间 | |
16 | source_table | varchar | 255 | 否 | 否 | 来源表 |
17 | source_id | int | 否 | 否 | 来源ID | |
18 | source_user_id | int | 否 | 否 | 来源用户 |
表 4-11-sales_outbound(销售出库)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | sales_outbound_id | int | 是 | 是 | 销售出库ID | |
2 | product_images | varchar | 255 | 否 | 否 | 商品图片 |
3 | product_code | varchar | 64 | 否 | 否 | 商品编号 |
4 | product_name | varchar | 64 | 否 | 否 | 商品名称 |
5 | product_type | varchar | 64 | 否 | 否 | 商品类型 |
6 | product_brand | varchar | 64 | 否 | 否 | 商品品牌 |
7 | supplier | varchar | 64 | 否 | 否 | 供应商 |
8 | product_specifications | varchar | 64 | 否 | 否 | 商品规格 |
9 | sales_date | date | 否 | 否 | 销售日期 | |
10 | selling_price | double | 否 | 否 | 销售价格 | |
11 | sales_volumes | double | 否 | 否 | 销售数量 | |
12 | sales_amount | double | 否 | 否 | 销售金额 | |
13 | expiration_date | date | 否 | 否 | 过期时间 | |
14 | product_batch | varchar | 64 | 否 | 否 | 商品批次 |
15 | employee_users | int | 否 | 否 | 员工用户 | |
16 | employee_name | varchar | 64 | 否 | 否 | 员工姓名 |
17 | sales_remarks | longtext | 4294967295 | 否 | 否 | 销售备注 |
18 | create_time | datetime | 是 | 否 | 创建时间 | |
19 | update_time | timestamp | 是 | 否 | 更新时间 | |
20 | source_table | varchar | 255 | 否 | 否 | 来源表 |
21 | source_id | int | 否 | 否 | 来源ID | |
22 | source_user_id | int | 否 | 否 | 来源用户 |
表 4-12-schedule(日程管理)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | schedule_id | smallint | 是 | 是 | 日程ID | |
2 | content | varchar | 255 | 否 | 否 | 日程内容 |
3 | scheduled_time | datetime | 否 | 否 | 计划时间 | |
4 | user_id | int | 是 | 否 | 用户ID | |
5 | create_time | datetime | 否 | 否 | 创建时间 | |
6 | update_time | datetime | 否 | 否 | 更新时间 |
表 4-13-score(评分)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | score_id | int | 是 | 是 | 评分ID | |
2 | user_id | int | 是 | 否 | 评分人 | |
3 | nickname | varchar | 64 | 否 | 否 | 昵称 |
4 | score_num | double | 是 | 否 | 评分 | |
5 | create_time | timestamp | 是 | 否 | 创建时间 | |
6 | update_time | timestamp | 是 | 否 | 更新时间 | |
7 | source_table | varchar | 255 | 否 | 否 | 来源表 |
8 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
9 | source_id | int | 是 | 否 | 来源ID |
表 4-14-supplier(供应商)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | supplier_id | int | 是 | 是 | 供应商ID | |
2 | supplier_name | varchar | 64 | 否 | 否 | 供应商名称 |
3 | supplier_address | varchar | 64 | 否 | 否 | 供应商地址 |
4 | supply_of_goods | varchar | 64 | 否 | 否 | 供应商品 |
5 | contact_information | varchar | 64 | 否 | 否 | 联系方式 |
6 | supplier_remarks | text | 65535 | 否 | 否 | 供应商备注 |
7 | create_time | datetime | 是 | 否 | 创建时间 | |
8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-15-upload(文件上传)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | upload_id | int | 是 | 是 | 上传ID | |
2 | name | varchar | 64 | 否 | 否 | 文件名 |
3 | path | varchar | 255 | 否 | 否 | 访问路径 |
4 | file | varchar | 255 | 否 | 否 | 文件路径 |
5 | display | varchar | 255 | 否 | 否 | 显示顺序 |
6 | father_id | int | 否 | 否 | 父级ID | |
7 | dir | varchar | 255 | 否 | 否 | 文件夹 |
8 | type | varchar | 32 | 否 | 否 | 文件类型 |
表 4-16-user(用户账户)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | user_id | int | 是 | 是 | 用户ID | |
2 | state | smallint | 是 | 否 | 账户状态:(1可用|2异常|3已冻结|4已注销) | |
3 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
4 | login_time | timestamp | 是 | 否 | 上次登录时间 | |
5 | phone | varchar | 11 | 否 | 否 | 手机号码 |
6 | phone_state | smallint | 是 | 否 | 手机认证:(0未认证|1审核中|2已认证) | |
7 | username | varchar | 16 | 是 | 否 | 用户名 |
8 | nickname | varchar | 16 | 否 | 否 | 昵称 |
9 | password | varchar | 64 | 是 | 否 | 密码 |
10 | | varchar | 64 | 否 | 否 | 邮箱 |
11 | email_state | smallint | 是 | 否 | 邮箱认证:(0未认证|1审核中|2已认证) | |
12 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
13 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
14 | create_time | timestamp | 是 | 否 | 创建时间 |
表 4-17-user_group(用户组)
编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
1 | group_id | mediumint | 是 | 是 | 用户组ID | |
2 | display | smallint | 是 | 否 | 显示顺序 | |
3 | name | varchar | 16 | 是 | 否 | 名称 |
4 | description | varchar | 255 | 否 | 否 | 描述 |
5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
7 | source_id | int | 是 | 否 | 来源ID | |
8 | register | smallint | 否 | 否 | 注册位置 | |
9 | create_time | timestamp | 是 | 否 | 创建时间 | |
10 | update_time | timestamp | 是 | 否 | 更新时间 |
5 系统详细设计与实现
小型超市管理系统的详细设计与实现主要是根据前面的小型超市管理系统的需求分析和小型超市管理系统的总体设计来设计页面并实现业务逻辑。主要从小型超市管理系统界面实现、业务逻辑实现这两部分进行介绍。
5.1员工用户功能模块
小型超市管理系统中的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名、密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到小型超市管理系统的首页中;否则将会提示相应错误信息。用户登录界面如下图5-1所示。

图5-1用户登录界面图
在供应商管理模块中,员工能够快速检索并浏览所有现有供应商的信息,包括名称、联系方式及供货记录等关键信息。此模块支持模糊搜索功能,使得查找特定供应商变得简单快捷,同时界面设计简洁明了,确保用户体验流畅,方便员工随时获取所需信息。供应商管理界面如下图5-2所示。

图5-2 供应商管理面图
商品信息管理模块允许员工查看库存中的所有商品详情,如名称、库存数量、价格以及最近一次进货日期等信息。为了提高查询效率,系统提供了多条件筛选和排序功能,帮助员工迅速定位到需要的商品信息,并支持查看详情以了解更全面的商品描述和历史记录。商品信息管理界面如下图5-3所示。

图5-3商品信息管理界面图
进货入库管理模块旨在帮助员工追踪和查阅最新的进货入库记录,显示每次进货的时间、商品明细及其数量。此外,系统还集成了按日期范围和商品类别进行筛选的功能,使员工可以根据具体需求快速找到相关的进货记录,确保库存管理的准确性和及时性。进货入库管理界面如下图5-4所示。

图5-4 进货入库管理界面图
销售出库管理模块为员工提供了一个便捷的平台,用以查看详细的销售记录,包括销售日期、客户信息、商品清单及销售额等。该模块不仅支持基于不同条件的高级搜索,还能生成定制化的销售报告,便于员工评估销售业绩并对市场趋势做出响应。销售出库管理界面如下图5-5所示。

图5-5 销售出库管理界面图
5.2 管理员功能模块
5.2.1后台首页界面
管理员的后台首页集成了销售出库统计与财务报告统计两大核心功能,通过直观的图表和详尽的数据表展示关键业务指标。管理员可以一目了然地查看销售额、利润等重要财务数据的趋势分析,并且能够根据不同的时间周期或业务维度进行深度挖掘,为决策提供强有力的支持。后台首页界面如下图5-6所示。

图5-6后台首页界面图
系统用户管理模块允许管理员对系统内的所有用户账户进行集中管理,包括添加新用户、删除或禁用现有用户以及调整用户权限等操作。管理员可以通过此模块高效地维护用户列表,并根据员工的具体职责分配相应的访问权限,确保系统的安全性和灵活性。系统用户界面如下图5-7所示。

图5-7系统用户界面图
5.2.3 供应商管理界面
管理员可以通过该模块执行供应商信息的维护工作,不仅限于查询,还包括编辑、更新或删除供应商资料。此外,还支持上传相关文档或合同副本,使得所有供应商信息都能得到最准确和最新的维护,保证供应链管理的顺畅运行。供应商添加界面如下图5-8所示。

图5-8 供应商添加界面图
在商品分类管理模块中,管理员负责创建新的商品类别及调整现有分类结构,以适应市场变化和内部管理需求。该模块提供了拖放式界面,使重新排列商品分类变得简单直观,同时支持批量修改功能,便于快速响应业务变动。商品分类管理界面如下图5-9所示。

图5-9 商品分类管理界面图
管理员在此模块中不仅可以查看商品详情,还能直接录入进货入库和记录销售出库的信息。系统设计了简便的操作流程,确保每次库存变动都能及时准确地反映在系统中,同时提供历史记录查询功能,便于追踪每件商品的流向。商品信息添加界面如下图5-10所示。

图5-10 商品信息添加界面图
5.2.6进货入库管理界面
进货入库模块专为管理员设计,用于管理和审核进货入库记录,确保所有进货信息都被正确无误地记录在案。除了基本的新增和编辑功能外,还支持生成详细的进货报表,方便进行库存盘点和财务核对。进货入库信息添加界面如下图5-11所示。

图5-11 进货入库信息添加界面图
管理员利用销售出库管理模块来审核和确认每一笔销售交易,保证数据的真实性和准确性。模块内嵌高级搜索和筛选工具,帮助快速定位特定销售记录,同时也支持自动生成各种销售分析报告,助力提升销售策略的有效性。销售出库信息添加界面如下图5-12所示。

图5-12 销售出库信息添加界面图
财务报告管理模块旨在帮助管理员生成全面而详细的财务报告,涵盖收入、支出、利润等多个方面。系统内置多种预设模板,可根据需要定制化输出不同类型的财务报告,同时提供数据分析工具,协助管理层进行财务规划和预算控制。财务报告添加界面如下图5-13所示。

图5-13 财务报告添加界面图
6系统测试
6.1 测试目的
在对该系统进行完详细设计和编码之后,就要对小型超市管理系统的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。系统测试的目的在于确保软件正常运作,并实现其应有的功能,促进行中出现的错误和逻辑问题。系统测试不但可以找见程序运行中的系统错误,还可以找见程序运行的需要改进的地方,并去协助改良程序运行使其获得最高幅度的完备。世界一流的安装测试员可以增加软件品质,将软件系统错误概率降至最少。
6.2 功能测试
系统测试包括:用户登录功能测试、供应商展示功能测试、商品信息添加功能测试、销售出库搜索功能测试、用户密码修改功能测试、进货入库添加功能测试,如表6-1、6-2、6-3、6-4、6-5、6-6所示:
用户登录功能测试:
表6-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
供应商查看功能测试:
表6-2 供应商查看功能测试表
用例名称 | 供应商查看 |
目的 | 测试供应商查看功能 |
前提 | 用户登录 |
测试流程 | 点击供应商管理列表 |
预期结果 | 可以查看到所有供应商 |
实际结果 | 实际结果与预期结果一致 |
添加商品信息界面测试:
表6-3 添加商品信息界面测试表
用例名称 | 添加商品信息测试用例 |
目的 | 测试商品信息添加功能 |
前提 | 管理员正常登录情况下 |
测试流程 | 1)点击商品信息管理,然后点击添加按钮并填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,页面会显示新的商品信息 |
实际结果 | 实际结果与预期结果一致 |
销售出库搜索功能测试:
表6-4销售出库搜索功能测试表
用例名称 | 销售出库搜索测试 |
目的 | 测试销售出库搜索功能 |
前提 | 无 |
测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 | 页面显示包含有搜索关键字的销售出库信息 |
实际结果 | 实际结果与预期结果一致 |
密码修改搜索功能测试:
表6-5 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
进货入库添加功能测试:
表6-6进货入库添加功能测试表
用例名称 | 进货入库添加测试用例 |
目的 | 测试管理员进货入库添加功能 |
前提 | 管理员正常登录情况下 |
测试流程 | 1)搜索查看商品信息,点击添加进货入库。 2)填写添加内容,提交入库信息。 |
预期结果 | 显示入库信息添加结果 |
实际结果 | 实际结果与预期结果一致 |
6.3 测试结果
通过编写小型超市管理系统的测试用例,已经检测完毕用户登录功能测试、供应商展示功能测试、商品信息添加功能测试、销售出库搜索功能测试、用户密码修改功能测试、进货入库添加功能测试,通过这6大模块为小型超市管理系统的后期推广运营提供了强力的技术支撑。
结论
本次小型超市管理系统将Spring Boot技术同现实小型超市管理工作进行相结合,在系统功能开始编码之前,作者花费了大量时间在图书馆内进行资料文献的收集和总结,通过大量文献的分析,能够发现,小型超市管理的方式在当前超市市场及管理中扮演的位置是越来越重要,而使用的方式也是越来越多元化,也正是因为这个原因,作者深深的希望能够开发出一种专门针对性的小型超市管理系统,以满足不同用户的多样化需求。
小型超市管理系统得到设计与实现,利用了目前市场上普遍使用的Java编程语言,以及MySQL数据库管理功能,和目前比较流行的Spring Boot框架进行系统界面的布置,以现实生活的教育管理过程为标准,设计实现了包括整合供应商管理、商品分类管理、商品信息管理、进货入库管理、销售出库管理、财务报告管理等功能,为用户提供多元前面的功能操作,基本实现整个小型超市管理流程。
但是由于本人受到了技术水平的限制,在有限的时间,只能够将系统功能模拟时的功能实现,在许多功能方面仍然存在很大的弊端,而这些弊端需要不断的测试,不断的总结,不断的改进。例如本次系统设计中,在数据储存的方面并不够全面,很容易出现信息泄露的风险;例如针对用户权限的设置同样不够全面完整,没有考虑权限在实际情况的运用是否能够完美执行。而在这之后的日子里,我将会继续学习Spring Boot技术和相关的信息技术,对系统功能进行更加完整的,详细的分析,将系统功能一一进行完善,帮助使用者完成相应的操作。
参考文献
- 陈敬宗.计算机软件Java编程特点与技术应用分析[J].中国信息界,2025,(01):162-164.
- 柯灵.Java编程语言在计算机软件开发中的应用与问题处理探析[J].电脑知识与技术,2024,20(27):45-47.
- 王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.
- 李兴华,马云涛.Spring开发实战[M].人民邮电出版社:202303.381.
- 李艳杰.MySQL数据库下存储过程的综合运用研究[J].现代信息科技,2023,7(11):80-82+88.
- 肖睿,李鲲程,范效亮,等.MySQL数据库应用技术及实践[M].人民邮电出版社:202206.228.
- 黄维.基于B/S模式的虚拟网络实验室安全管理体系分析[J].信息系统工程,2024,(05):4-7.
- 张宇薇.HTML5在Web前端开发中的应用[J].集成电路应用,2024,41(04):274-276.
- [1]Paul P ,Kenneth S ,Remle C , et al.211: DEPLOYMENT OF AUTOMATED EXTERNAL DEFIBRILLATORS BY A MAJOR SUPERMARKET CHAIN: RESULTS IMPLICATIONS[J].Critical Care Medicine,2024,52(1):S80-S80.
- A M H ,Yifei L ,G P K , et al.Marketing Two Immunization Services at a Regional Supermarket Chain Pharmacy.[J].Pharmacy (Basel, Switzerland),2023,11(3):
- Zhang C ,Tang L ,Zhang J , et al.Optimizing Distribution Routes for Chain Supermarket Considering Carbon Emission Cost[J].Mathematics,2023,11(12):
- Elizabeth A L ,Welker E D ,Wen S N .Differences in a Chain Supermarket's Sales to SNAP Shoppers Before and Since the COVID-19 Pandemic.[J].Journal of nutrition education and behavior,2023,55(5):343-353.
- 崔祥.基于Java超市可视化管理系统设计[J].网络安全技术与应用,2023,(02):45-46.
- 张静,胡宁玉,冯丽萍.基于Java的超市进销存管理系统的设计与实现[J].信息与电脑(理论版),2022,34(18):124-127+131.
- 袁明坤,曾丽.基于JavaWeb的超市商品采购管理系统设计与实现[J].电脑知识与技术,2022,18(05):61-63.
- 庄帅.基于B/S架构设计实现超市管理系统[J].信息系统工程,2022,(01):105-108.
- 数据超市管理系统.山西省,山西阳煤联创信息技术有限公司,2021-12-31.
- 梅瑞泽,王静.超市信息管理系统的设计与实现[J].电子测试,2021,(18):78-80.
- 肖苏.地区性小型连锁超市物流管理系统问题及对策研究——以德玛特超市为例[J].内蒙古科技与经济,2021,(08):41-42+105.
- 龙棉棉,姚敦红.基于UML的超市信息系统设计[J].信息与电脑(理论版),2020,32(14):101-103.
致 谢
时光荏苒,大学的学业生涯即将画上美好的句号。在这段时光里,我深感老师的热情与友谊,校长对学生的关爱深深印在我的心中。老师们时常关心我们的生活状况,关切我们的旅游、寝室和学习环境,使我们感受到了温馨与关怀。在此,我想表达对那些曾经给予我帮助的人们的深深感激之情。
首先,我要衷心感谢我的导师。无论是在学业上还是生活中,您都给予我巨大的支持与启发。这些年来,在您的教导下,我不仅学到了丰富的知识,还领悟了做人的真谛。您的认真和待人之道让我受益匪浅,我感激能够成为您的学生。
同时,感谢我的专业课老师们。没有你们的精心教导,我的论文也不可能如此顺利。我所学到的知识将成为我未来发展的重要动力。
感谢同学们,写作过程中遇到的问题,得到了同学们的耐心指导和丰富参考材料。你们给予了我很多帮助,感谢你们对我的支持。
最后,感谢我的父母,是你们的支持和鼓励让我能够顺利完成学业。你们为我付出了辛勤的努力和无私的关爱,是我坚强前行的后盾。在即将离开校园,我深感家庭的温馨和爱意,这些将是我未来奋斗的力量源泉。
感谢你们一直以来的支持和陪伴,让我在大学的日子里无论遇到什么困难都感到温馨而坚定。未来,我将以更加饱满的热情投入社会工作,为家人和自己创造更美好的未来。再次感谢大家的陪伴与关爱!
系统核心代码设计
用户注册
注册页UserController.java,传入user对象,并将"user_id"、 "state"、 "user_group"、"login_time"、"phone"、"phone_state"、 "username"、"nickname"、"password"、"email"、"email_state"、"avatar"、"create_time"输入,重点是 "username"、"nickname"、"password"必须输入,通过获取username,数据库查询是否有该用户,如果存在,则提示“用户已存在”,否则执行将UserId置为空(数据库表中该字段已设置自动递增),代码如图所示。
注册核心代码图
用户登录
登录页,首先传入"username"、"email"、"phone"、"password",用户可通过用户名、邮箱、手机号进行登陆,通过判断resultList来确定查询结果,然后执行查询用户组UserGroup,用户组里面不存在,依然报“用户不存在”,执行完以上代码,最后涉及到用户带有“审核”的,会查询examine_state(用户的审核状态),数据库表user_group中含有source_table和source_field进行查询,以上步骤完成,对输入的密码进行存储Token到数据库,匹对账号和密码,数据库中的AccessToken为令牌,用于身份认证,代码如图所示。
用户登录核心代码图
修改密码
修改密码,通过请求data,获取旧密码,并将新密码重新赋值,期间都是需要通过加密,代码如图所示。
修改密码核心代码图
修改数据
修改一个数据,原理与add基本一致,不同点在于通过readConfig()读取关键字,以及通过readQuery()获取URL后面?指定位置的标识,转成Map对象后,执行update操作,同样通过拼接的sql语句执行,执行过程读取query,toWhereSql()语句完成数据库操作,body为修改对象的值,代码如图所示。
修改数据核心代码图
删除数据
删除一条数据,通过readQuery(),获取URL后面的对象地址,删除FROM具体的table,query删除查询FindConfig语句,代码如图示。
删除数据核心代码图
获取列表
通过请求的参数获取列表数据,代码如图所示。
获取列表核心代码图
图片上传
通过请求的参数获取列表数据,代码如图4-13所示。
图片上传核心代码图