30.超市管理系统(基于springboot和Vue的Java项目)

目录

1.系统的受众说明     

2.相关技术和开发环境

2.1 相关技术

2.1.1 Java语言

2.1.2 HTML、CSS、JavaScript

2.1.3 MySQL 

2.1.4 Vue.js

2.1.5 SpringBoot

2.2 开发环境

3. 系统分析

3.1 可行性分析

3.1.1 经济可行性

3.1.2 技术可行性

3.1.3 运行可行性

3.2 业务流程分析

3.2.1 业务流程分析

3.2.2 数据流程图和逻辑流程图

3.3 用例图分析

3.4 数据需求分析

3.4.1 实体集分析

3.4.2 实体集数据项分析

4. 概要设计

4.1 系统设计

4.1.1 系统架构设计

4.1.2 系统功能板块

4.2 ER图-数据库概要设计

4.3 系统后端接口设计

5. 详细设计

5.1 详细功能模块

5.1.1 用户登录模块

5.2 数据库详细设计

5.2.1 关系模型设计

5.2.2 逻辑结构设计

6. 系统实现

6.1 登录模块

6.2  销售模块


1.系统的受众说明
     

     1 在校学习的学生,可用于日常学习使用或是毕业设计使用

     2 毕业一到两年的开发人员,用于锻炼自己的独立功能模块设计能力,增强代码编写能力。

     3 亦可以部署为商化项目使用。

     4 需要完整资料及源码,请在文末获取联系方式领取。

2.相关技术和开发环境

2.1 相关技术

本课题在Windows系统下使用了JavaEE开发技术、Spring Boot技术、Vue.js技术、MySQL关系型数据库以及ElementUI前端框架技术进行开发。以下是关键技术及开发工具介绍。

2.1.1 Java语言

Java是一种面向对象的编程语言,由Sun Microsystems(现在是Oracle公司)于1995年首次发布。它具有可移植性、安全性和跨平台等特性,因此被广泛应用于各个领域的软件开发中。

Java的平台无关性是其最重要的特性之一。通过Java虚拟机(JVM),Java程序可以在不同的操作系统和硬件上运行,而不需要针对特定平台进行修改。这意味着一次编写的Java代码可以在Windows、Linux、Mac等多个平台上运行。

Java是一种面向对象的语言,它支持封装、继承和多态等面向对象的编程概念。这使得Java程序更易于理解、扩展和维护。它还提供了强大的异常处理机制,使开发者能够更好地应对错误和异常情况。

Java还具有丰富的标准库和第三方库,以及一个庞大的开发者社区。这些库提供了许多常用的功能和工具,使得Java的开发变得更加高效和便捷。

总之,Java是一种功能强大、可靠性高、安全性好的编程语言,非常适合开发各种类型的应用程序,包括桌面应用程序、Web应用程序、移动应用程序等。它的广泛应用和稳定性使得Java成为了当今世界上最流行的编程语言之一。 

2.1.2 HTML、CSS、JavaScript

HTML(超文本标记语言)是一种用于创建和组织网页内容的标记语言。它由一系列标签组成,标签用于标记和描述文档中的不同部分,如标题、段落、链接和图像等。HTML提供了结构化的标记方式,使得浏览器能够正确地解析并显示网页内容。

CSS(层叠样式表)是一种用于描述网页外观和布局的样式语言。通过CSS,可以对HTML文档中的元素进行样式设置,包括字体、颜色、大小、间距、边框和背景等。CSS的设计目标是将样式与内容分离,使得网页的样式可以独立于内容进行修改和调整,从而提高网页的可维护性和灵活性。

JavaScript是一种动态的、基于对象和事件驱动的脚本语言。它广泛用于前端开发,用于为网页增加交互性和动态性。通过JavaScript,可以操作网页的元素、处理用户的输入、响应事件、进行表单验证和数据处理等。它还可以通过AJAX技术与服务器进行数据交互,实现动态加载内容和实时更新。

HTML、CSS和JavaScript三者通常一起使用,被称为前端开发技术。HTML负责网页的内容和结构,CSS负责网页的样式和布局,JavaScript负责网页的交互和动态效果。它们共同作用于网页的不同方面,使网页成为一个功能丰富、外观吸引人且易于使用的用户界面。

总结起来,HTML提供了网页内容的结构和标记,CSS负责网页的样式和布局,JavaScript为网页增加了交互性和动态功能。三者的协同工作使得构建现代化、交互式的网页成为可能。

2.1.3 MySQL 

    MySQL是一种关系型数据库管理系统,是一个多用户,多线程的SQL数据库。MySQL的优点是体积小、速度快、总体拥有成本低,开放源代码等,使得它成为了目前中小企业的最爱[2]。

2.1.4 Vue.js

    Vue.js是一套用于构建用户界面的渐进式框架[4]。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。

2.1.5 SpringBoot

SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。使用SpringBoot的最大好处就是简化配置,它实现了自动化配置。

2.2 开发环境

表2-1展示了系统所需的开发环境。

表2-1系统所需开发环境表

操作系统

Windows 11

开发工具

IntelliJ IDEA 2021.03

Java环境

JDK1.8,Maven 3.8.1

数据库

MySQL 5.7

3. 系统分析

3.1 可行性分析

3.1.1 经济可行性

    本系统为本科毕业设计,未真正投入到实际生活中,所需要的硬件设备目前只需用到一部电脑,软件方面大部分为官方提高免费使用的,所需资料也可在网上或者查询相关书籍即可找到。因此,本系统开发在经济方面是可行的。

3.1.2 技术可行性

    本系统的主要开发语言为Java,基于目前较为流行的SpringBoot以及Vue.js框架进行编写。本系统采用了MySQL数据库作为数据存储基础阵地,保证了一个安全、稳定的数据使用环境。本系统使用的技术,基本上都是目前较为流行的并且是开源的技术,文档和资料在互联网上都非常健全,且有许多开发成功的项目。因此,本系统开发在技术方面是可行的。

3.1.3 运行可行性

    本系统基于SpringBoot框架,需要搭建Java,Maven,Redis,MySQL等软件环境。在搭建的过程中,有遇到过种种的问题,但通过查询资料和请教导师,都能一一解决,并能熟练掌握。因此,本系统开发在运行方面是可行的。

3.2 业务流程分析

3.2.1 业务流程分析

本系统的使用者一共有销售、仓库管理员、系统管理员这三种角色:

1、销售:商品管理、商品售卖

2、仓库管理员:仓库管理、出库、入库、供货商信息管理。

3、系统管理员:除了销售和仓库管理员的权限外,还具备角色管理、菜单管理、人员管理等

主要业务需求表3-1:

表3-1 业务需求表

编号

业务名称

操作者

1

销售主页

销售

2

销售记录

销售

3

积分兑换记录

销售

4

仓库管理

仓库管理员

5

出库明细

仓库管理员

6

入库明细

仓库管理员

7

供货商信息

仓库管理员

8

库存统计

仓库管理员

9

人事管理

系统管理员

10

系统管理

系统管理员

3.2.2 数据流程图和逻辑流程图

总体业务流程图如下:

图3-1 业务主体流程图

3.3 用例图分析

根据本系统的使用者将用户划分为三种角色,分别是销售、仓库管理员、系统管理员。进入系统前需要通过账号以及密码进行登录,患者若无账号可由管理员统一分配账号,登录成功后则根据他们的各自的角色进入相应的页面。

图3-2 用户关系用例图

销售进入网站的页面后,可以进行的功能用例如图3-3所示:

             

图3-3 销售用例图

  1. 会员信息:可以通过关键字搜索,分页展示会员信息,同时可以增加、删除、修改会员信息和积分兑换。
  2. 销售管理:可以进行购物结账、积分兑换、销售记录查询、积分兑换记录查询。

仓库管理员进入网站的页面后,可以进行的功能用例如图3-4所示:

                

图3-4 租客用例图

  1. 商品管理:该功能,销售可以对查看销售统计、商品信息、积分商品管理、商品分类管理。
  2. 库存管理:该功能,仓库管理员可以对仓库进行管理、出库明细、入库明细、库存统计、供货商信息查询。

3.4 数据需求分析

3.4.1 实体集分析

    实体集是具有相同类型及相同属性的实体的集合[5]。本系统主要的实体集主要有:员工信息、角色信息、菜单信息、部门信息、商品信息、会员信息、库存信息等。

3.4.2 实体集数据项分析

    员工信息:员工ID,用户名,邮箱,住址,性别,密码,昵称、头像、状态、是否是超管、年龄、身份证号、离职时间。

角色信息:主键、角色名、描述、状态。

菜单信息:主键、名称、地址、类型、父id、父名称、描述、状态、权限的唯一标识、图标、组件路径。

部门信息:主键、部门名称、描述、状态。

商品信息:主键、商品名、商品分类id、销售价格、进货价格、分类名、商品封面、状态、剩余数量、销量。

库存信息:商品编号、仓库编号、入库数数量、剩余数量、仓库名。

4. 概要设计

4.1 系统设计

4.1.1 系统架构设计

    本系统使用SpringBoot、Vue.js等主流开发框架进行开发,遵守MVC模式,同时使用到了Element-UI进行页面的设计。为方便前后端进行整合和日后系统的维护,本系统分为视图层、控制层、业务层和持久层。各层之间相互独立,通过之间的接口进行通信,高内聚,低耦合[6]。

图4-1 系统架构图

4.1.2 系统功能板块

图4-2 系统功能模块图

4.2 ER图-数据库概要设计

员工实体:用来存储员工基本信息。

数据来源:员工数据的录入,修改。

图4-3 员工实体信息属性图

房屋实体:存储角色的基本信息,角色ID为主键。

数据来源:角色的录入,修改。

   

图4-4 角色实体信息属性图

菜单实体:存储菜单的基本信息,租金ID为主键。

数据来源:菜单录入,修改。

图4-5 菜单实体信息属性图

商品实体:存储商品的基本信息,商品ID为主键。

数据来源:商品的录入,修改。

图4-6 商品信息属性图

本超市管理系统的数据库共有17张表,表与表之间的通过外键建立联系。为了避免数据字段冗余,建立起合理的数据库结构,严格遵循了数据库的设计原则[7]。本系统严格遵循了数据库设计的三大范式,分别为确保每列保持原子性,确保表中的每列都和主键相关以及确保每列都和主键列直接相关。因此本系统的数据库关系是一个结构较为合理的关系型数据库模型。

4.3 系统后端接口设计

本系统的主要接口如表4-1所示。

表4-1 超市管理系统主要接口表

模块

接口

请求方式

作用

部门模块

save

Post

保存部门

update

Post

更新部门

deactivate

Post

停用部门

list

Get

查询部门列表

员工模块

list

Get

获取员工列表列表

detail

Get

获取员工详情

uploadImg

Post

上传图片

save

Post

保存员工

upadte

Post

更新员工

角色信息模块

save

Post

保存角色

update

Post

更新角色

forbiddenRole

Post

停用角色

checkPermissons

Get

检查权限

saveRolePermissons

Post

保存角色权限

菜单信息模块

queryPageByQo

Get

分页查询菜单

商品模块

queryPageByQo

Get

分页查询商品

uploadImg

Post

上传图片

save

Post

保存商品

upOrDown

Post

上/下架

queryGoodsById

Post

通过 id查询商品

upload

Post

更新商品

5. 详细设计

5.1 详细功能模块

系统功能模块如表5-1所示:

表5-1 系统功能模块

功能

输入

处理

输出

登录

销售/仓管/系统账号、密码

查询数据库中对应的用户信息,匹配则返回Token,存储到本地localStorage中

失败:提示错误

成功:进入系统页面

销售记录

  1. 查看销售信息。
  2. 点击“修改”销售按钮。
  3. 点击“增加”销售按钮。
  4. 点击“删除”销售按钮
  1. 从数据库中查询相应的销售信息。
  2. 更新数据库中该销售的信息。
  3. 新增数据库中该销售的信息。
  4. 删除数据库中该销售的信息。

跳转到用户销售界面

人事信息管理

1.查看人事信息。

2.点击“修改”人事按钮。

3.点击“增加”人事按钮。

4.点击“删除”人事按钮

1.从数据库中查询相应的人事信息。

2.更新数据库中该人事的信息。

3.新增数据库中该人事的信息。

4.删除数据库中该人事的信息。

跳转到人事信息界面 

库存管理

1.查看库存信息。

2.点击“修改”库存按钮。

3.点击“增加”库存按钮。

4.点击“删除”库存按钮

1.从数据库中查询相应的库存信息。

2.更新数据库中该用库存的信息。

3.新增数据库中该库存的信息。

4.删除数据库中该库存的信息。

跳转到库存信息界面 

退出登录

点击“退出登录”

清除本地localStorage中的Token

退出到登录页面

5.1.1 用户登录模块

    用户输入帐号和密码后,传至系统后台进行校验。如果帐号密码不匹配,跳回登录页面。账号密码都匹配的话,后端生成Token,返回给前端,前端存储到本地localStorage中,如图5-1所示。

图5-1 登录时序图

5.2 数据库详细设计

在上一章中,已对本系统的实体集进行了概要设计,并设计了实体集之间的E-R模型图。在本章节中,从数据库关系的角度出发,设计关系模型以及数据表的逻辑结构。

5.2.1 关系模型设计

     员工信息:员工ID,用户名,邮箱,住址,性别,密码,昵称、头像、状态、是否是超管、年龄、身份证号、离职时间。

角色信息:主键、角色名、描述、状态。

菜单信息:主键、名称、地址、类型、父id、父名称、描述、状态、权限的唯一标识、图标、组件路径。

部门信息:主键、部门名称、描述、状态。

商品信息:主键、商品名、商品分类id、销售价格、进货价格、分类名、商品封面、状态、剩余数量、销量。

库存信息:商品编号、仓库编号、入库数数量、剩余数量、仓库名。

5.2.2 逻辑结构设计

表5-2:department(部门表)

属性

类型

备注

id

int

主键

主键

name

varchar

部门名称

info

varchar

描述

state

char

状态

表5-3:employee(员工表)

属性

类型

备注

id

int

主键

主键

phone

varchar

用户名

email

varchar

邮箱

address

varchar

住址

sex

varchar

性别

password

varchar

密码

nick_name

varchar

昵称

head_img

varchar

头像

state

varchar

状态 0:在职 1:离职

info

varchar

描述

age

varchar

年龄

id_card

varchar

身份证号

leave_time

datetime

离职时间

表5-4:goods(商品表)

属性

类型

备注

id

int

主键

租金ID

name

varchar

商品名

category_id

int

商品分类id

sell_price

double

销售价格

purchash_price

double

进货价格

category_name

varchar

分类名

cover_url

varchar

商品封面

state

int

状态

6. 系统实现

本章节展示了销售模块,人事模块,库存模块、商品管理模块部分功能截图。

6.1 登录模块

    登录页面,用户在浏览器中输入网址后进入到系统的登录页面,如图6-1所示。

图6-1 登录页面

    

6.2  销售模块

    销售信息列表,可以看到销售记录,如图6-3所示。

图6-3 销售记录

积分兑换记录,销售可以对积分进行兑换管理,如图6-4所示。

图6-4 积分信息管理

    

员工信息管理,管理员可以添加员工,并且对员工信息进行编辑和删除的功能,如图6-5所示。

图6-5 员工信息管理

    

仓库信息管理,仓库管理员可以添加仓库,并且对仓库信息进行编辑和删除的功能,如图6-6所示。

图6-6 仓库信息管理

    商品信息管理,管理员可以商品信息编辑和删除的功能,如图6-7所示。

图6-7 商品信息管理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/915673.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

去地面算法——depth_clustering算法调试(1)

1 源码下载 论文: 《2016-Fast Range Image-Based Segmentation of Sparse 3D Laser Scans for Online Operation》 《2017-Efficient Online Segmentation for Sparse 3D Laser Scans》 代码:git链接 2 问题记录 2.1 无法找到qt问题 问题截图&…

pyspark入门基础详细讲解

1.前言介绍 学习目标:了解什么是Speak、PySpark,了解为什么学习PySpark,了解课程是如何和大数据开发方向进行衔接 使用pyspark库所写出来的代码,既可以在电脑上简单运行,进行数据分析处理,又可以把代码无缝…

Qt 编写插件plugin,支持接口定义信号

https://blog.csdn.net/u014213012/article/details/122434193?spm1001.2014.3001.5506 本教程基于该链接的内容进行升级,在编写插件的基础上,支持接口类定义信号。 环境:Qt5.12.12 MSVC2017 一、创建项目 新建一个子项目便于程序管理【…

【python】python使用虚拟环境

使用虚拟环境的好处是创建一个独立干净的环境 首先cd到新项目的目录下 创建虚拟环境 使用日期命名方便自己找到版本 python -m venv venv20241114激活虚拟环境 .\venv20241114\Scripts\activate会创建一个文件夹 点进去可以看到是python的脚本所存文件结构 纯净环境 p…

CSS 技巧:如何让 div 完美填充 td 高度

引言 一天哈比比突然冒出一个毫无理头的一个问题: 本文就该问题进行展开… 原文链接: 昆仑虚F2E 一、需求说明 大致需求如下, 当然这里做了些简化 有如下初始代码: 一个自适应的表格每个单元格的宽度固定 200px每个单元格高度则是自适应每个单元格内是一个 div 标签, div 标签…

跟上AI的浪潮

现在AI技术已广泛应用至语音助手、写作、绘图、视频,甚至是各种语言的代码编写。平常我们都是应用别人开发好的模型,或者说智能体,那么我们自己能否做那个开发AI智能体的人,近期加了一个AI学习的大社区,几万在AI道路上…

专题十八_动态规划_斐波那契数列模型_路径问题_算法专题详细总结

目录 动态规划 动态规范五步走: 1. 第 N 个泰波那契数(easy) 解析: 1.状态表达式: 2.状态转移方程: 3.初始化: 4.填表顺序: 5.返回值 编写代码: 总结&#xff…

MySQL技巧之跨服务器数据查询:基础篇-更新语句如何写

MySQL技巧之跨服务器数据查询:基础篇-更新语句如何写 上一篇已经描述:借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MySQL数据库的连接名: MY_ODBC_MYSQL 以及用同样的…

C/C++语言 多项式加法和乘法

多项式加法和乘法 多项式的加法题目描述输入输出样例步骤代码段全局变量设定新建结点合并链表 完整代码 多项式乘法题目描述输入输出样例代码段计算两多项式结果输入 完整代码 多项式的加法 题目描述 输入输出 样例 步骤 总体思想是用链表来做 ① 我们发现输入样例中&#xf…

ArkTs面向对象编程

ArkTs面向对象编程 1.1 面向对象编程概述 1.1.1 什么是面向对象编程 面向对象编程是一种编程范式,它使用“对象”来设计软件和创建可重用的程序设计 对象是包含数据和方法的实体,可以与其他对象进行交互 面相对象编程鼓励使用已有的对象来组合或修改以…

乳腺癌诊断分析——基于聚类分析实现

一、研究背景 乳腺癌属于恶性肿瘤,在早期发现后需要及早将病变组织切除,而且术后还要化疗和放射等辅助治疗,能够抑制癌细胞的扩散和增长。 二、研究目的 研究乳腺癌病人的患病特征通过聚类分析方法对特征进行分类通过上述聚类结果对乳腺诊…

丹摩征文活动|FLUX.1 和 ComfyUI:从部署到上手,轻松驾驭!

FLUX.1 和 ComfyUI:从部署到上手,轻松驾驭! FLUX.1历史曲线 黑森林实验室推出了一款名为FLUX.1的先进图像生成模型,根据不同用户需求,提供了三种独特的版本。 FLUX.1-pro:作为专为企业打造的强大闭源版本…

数据分析:16s差异分析DESeq2 | Corncob | MaAsLin2 | ALDEx2

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍DESeq2原理计算步骤结果Corncob原理计算步骤结果MaAsLin2原理计算步骤结果ALDEx2原理计算步骤结果加载R包数据链接数据预处理微生物数据样本信息提取物种名称过滤零值保留结果读取…

OCR识别铁路电子客票

随着中国铁路客运领域进入全面数字化时代,国家税务总局、财政部和国铁集团于2024年10月18日联合发布公告,自2024年11月1日起,推广使用“电子发票(铁路电子客票)”。这一举措不仅为旅客出行提供了极大的便利&#xff0c…

【MySQL基础刷题】总结题型(三)

十题左右,便于复习 1.查询结果的质量和占比2.每月交易I3.销售分析III4.只出现一次的最大数字5.买下所有产品的客户6.员工的直属部门7.指定日期的产品价格 1.查询结果的质量和占比 avg大神啊… SELECT query_name, ROUND(avg(rating / position), 2) as quality, …

python 同时控制多部手机

在这个智能时代,我们的手机早已成为生活和工作中不可或缺的工具。无论是管理多个社交媒体账号,还是处理多台设备上的事务,如何更高效地控制多个手机成为了每个人的痛点。 今天带来的这个的软件为你提供了一键控制多部手机的强大功能。无论是办公、娱乐,还是社交,你都能通过…

外星人入侵

学习于Python编程从入门到实践(Eric Matthes 著) 整体目录:外星人入侵文件夹是打包后的不必在意 图片和音效都是网上下载的 音效下载网站:Free 游戏爆击中 Sound Effects Download - Pixabay 运行效果:可以上下左右移…

前端监控与埋点 全总结

一、概念 前端埋点是指在网页或者应用程序中插入特定的代码,用于收集用户的行为数据并发送给服务器进行分析。这些数据可以包括用户的点击、浏览、输入等操作,帮助开发者了解用户的在其网站中的行为,从而进行针对性的优化和改进。 前端埋点…

Python简单文件操作day9

1、文件操作的重要性和场景 重要性: 数据持久化、跨平台兼容性、数据备份与恢复、数据共享、配置管理、日志记录 应用场景: 数据分析、web开发、文本处理 2、文件的概念 文件是一个存储在某种持久性存储介质【硬盘、光盘、磁盘等】上的数据的结合。 …

指令存储和指令流水线

要求存储器的编址单位,首先观察到计算机采用的是32位定长指令字,因此一条指令就是32位,即4B,根据表中可知一条指令所占地址空间为08048104H-08048100H4H,因此所用的编制单位为字节(B) 将所有指令…