目录

0313springboot基于java无人超市管理系统

项目清单 包安装运行 官网地址 http://chenqi1990.site

0313springboot基于java无人超市管理系统

https://raw.githubusercontent.com/GraduationProject-springboot/.github/main/img/wx.png

github 项目仓库 开源仅有后端代码

点击播放视频 ▼

https://i.sstatic.net/Vp2cE.png

绪论

1.1 研究背景

当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大环境让那些止步不前,不接受信息改革带来的信息技术的企业随时面临被淘汰,被取代的风险。所以当今,各个行业领域,不管是传统的教育行业,餐饮行业,还是旅游行业,医疗行业等领域都将使用新的信息技术进行信息革命,改变传统的纸质化,需要人手工处理工作事务的办公环境。软件信息技术能够覆盖社会各行业领域是时代的发展要求,各种数据以及文件真正实现电子化是信息社会发展的不可逆转的必然趋势。本无人超市管理系统也是紧跟科学技术的发展,运用当今一流的软件技术实现软件系统的开发,让家具销售库存管理信息完全通过管理系统实现科学化,规范化,程序化管理。从而帮助信息使用者节省事务处理的时间,降低数据处理的错误率,对于基础数据的管理水平可以起到促进作用,也从一定程度上对随意的业务管理工作进行了避免,同时,无人超市管理系统的数据库里面存储的各种动态信息,也为上层管理人员作出重大决策提供了大量的事实依据。总之,无人超市管理系统是一款可以真正提升使用者的使用效率的软件系统。

1.2 目的和意义

信息数据的处理完全依赖人工进行操作,会耗费大量的人工成本,特别是面对大量的数据信息时,传统人工操作不仅不能对数据的出错率进行保证,还容易出现各种信息资源的低利用率与低安全性问题。更有甚者,耽误大量的宝贵时间,尤其是对信息的更新,归纳与统计更是耗财耗力的过程。所以电子化信息管理的出现就能缓解以及改变传统人工方式面临的处境,一方面可以确保信息数据在短时间被高效处理,还能节省人力成本,另一方面可以确保信息数据的安全性,可靠性,并可以实现信息数据的快速检索与修改操作,这些优点是之前的旧操作模式无法比拟的。因此无人超市管理系统为数据信息的管理模式的升级与改革提供了重要的窗口。

1.3 论文结构安排

为了帮助用户更好的了解和理解程序的开发流程与相关内容,本文将通过六个章节进行内容阐述。

第一章:描述了程序的开发背景,程序运用于现实生活的目的与意义,以及程序文档的结构安排信息;

第二章:描述了程序的开发环境,包括程序开发涉及到的技术,程序开发使用的数据存储工具等信息;

第三章:描述了程序着手进行开发时,会面临的可行性问题,并对程序功能以及性能要求进行描述;

第四章:描述了程序大功能模块下的功能细分信息,以及存储程序数据的数据库表文件结构的设计信息等;

第五章:描述了程序的功能实现界面的内容,也对程序操作人员操作的部分功能进行了描述;

第六章:描述了程序功能的测试内容,并介绍了系统测试的概念与方法。

2 相关技术

2.1 B/S结构介绍

在早期,一些使用HTML语言编写的文件,再集合一些其它资源文件就可以组成一个最简单的Web程序,了解了Web程序也需要了解Web站点,它们之间的关系就是一个或者多个Web程序可以放在Internet上的一个Web站点(Web服务器)中进行使用。可以说Web应用程序的开发也带动了B/S这种网络结构模式的兴起。B是Brower(浏览器)的首字母,S是Server(服务器)的首字母,两个首字母进行组合就成了网络结构模式的简称B/S。由于这种结构模式通过安装在客户端的浏览器进行服务器的访问,可以把程序的核心功能安排在服务器中进行处理,给程序的开发,后期使用和维护省去了许多工作。图2.2展示的就是使用这种架构开发的程序的工作原理。

/images/0300wxapp//blog.001.png

图2.2 B/S架构的工作原理图

2.2 MySQL数据库介绍

开发的程序面向用户的只是程序的功能界面,让用户操作程序界面的各个功能,那么很多人就会问,用户使用程序功能生成的数据信息放在哪里的?这个就需要涉及到数据库的知识了,一般来说,程序开发通常就会对常用数据存储工具的特点进行分析比对,比如MySQL数据库的特点与优势,Access数据库的特点与优势,Sqlserver数据库的特点与优势等,最终看哪个数据库与需要开发的程序比较匹配,也符合程序功能运行需要的数据存储要求,比如,需要开发商业级别的程序,存储的数据对数据库要求较高,可以选用Oracle,如果只是比较简单的程序,对数据存储没有过多要求,可以选用微软旗下的Access,当开发程序要求数据库占用空间小,并能满足程序数据存储要求时,就可以考虑Oracle公司从瑞典MySQL AB公司在很早之前就收购过一个关系型数据库,它是现在的MySQL数据库。在数据库工具里面它是最受认可的其中一个应用软件。需要说明的信息就是,本程序的开发就运用到了此数据库。它将程序数据通过使用不同的数据表格进行保存,在增加了程序数据的存储速度的时候,也提高了数据库的灵活性。 图2.3展示的就是MySQL的架构图。

/images/0300wxapp//blog.002.png

图2.3 MySQL数据库架构图

2.3 Spring Boot框架介绍

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为维修人员者。

SpringBoot可以与经典的Java开发工具一起使用或者作为命令行工具安装。无论如何,需要JavaSDK1.6或者更高版本,本项目用到的是JDK1.8版本。

3 系统分析

当用户确定开发一款程序时,是需要遵循下面的顺序进行工作,概括为:系统分析–>系统设计–>系统开发–>系统测试,无论这个过程是否有变更或者迭代,都是按照这样的顺序开展工作的。系统分析就是分析系统需要做什么的问题,主要目的就是确定系统的功能,这也为接下来的工作做了一个好的开端。

3.1 系统可行性分析

开发一款程序软件不仅需要时间,也需要人力,物力资源。而进行可行性分析这个环节就是解决用户这方面的疑问,看看程序在当前的条件下是否可以进行开发。

3.1.1 技术可行性分析

此程序选用的开发语言是Java,这种编程语言有着丰富的数据类型,在指令控制语句上也比较完善,更重要的就是对类与对象的大力支持,这些优点为程序开发者提供了技术保障,尤其是现在代码都逐渐模块化,有关系统功能开发的源码在网络上都公开展示了,所以让具备一定计算机开发基础的开发人员独立开发系统在技术上也逐渐容易。

3.1.2 经济可行性分析

开发此程序最关键的设备就是一台电脑,无论是学校计算机室配备的电脑,还是自己入学以来购置的笔记本,都是可以符合开发要求的设备,另外在网络上,学校本已完全覆盖了校园网,所以在设备以及网络上无须考虑经济问题。

3.1.3 运行可行性分析

随着电脑软件以及配套硬件的完善升级,当下的计算机环境是一片大好,尤其是计算机已经广泛普及到家家户户,所以计算机设备现在是随处可见,由于本次开发的程序占有的资源耗费较小,在一般的电脑或笔记本上都能轻松运转起来。

通过上面的可行性描述,可以从经济,技术,运行方面解决程序开发是否可行的问题。因此可以认为该程序软件是可以进行开发的。

3.2 系统性能分析

系统性能分析也是比较重要的内容,进行系统性能分析就是为了确保系统的功能要能够在生活中运行使用时,达到规定的指标,因此一个完整的系统软件,是需要进行系统的性能分析这个步骤的。本次进行性能分析主要从易用性指标,可扩展性指标,系统健壮性指标,系统安全性指标这几个方面进行分析。

3.2.1 易用性指标

本次程序软件的开发的目的就是让使用者可以通过使用该软件提高信息数据的管理效率,同时该程序软件也需要针对不同的操作用户设置对应的功能,因此,此程序的操作流程应该尽量与用户日常操作软件的行为习惯相贴合,另外,程序软件的设计与开发也应考虑非计算机专业用户的计算机操作水平,要让大部分使用者都可以轻松操作程序提供的各个功能。

3.2.2 可扩展性指标

当前需要开发的程序软件是根据当下的用户需求进行设计开发的,但是随着时间的推移,社会大环境的改变,开发出的程序也是需要与时俱进的,需要根据用户不断变换的需求进行相应的功能内容的扩展,需要注意的就是,当对成型的程序进行功能模块新增时,仍然需要保证程序原有架构以及功能不能受到影响,新增的功能模块在系统中也能够运行正常,该指标达标也就可以保证此程序是可以在满足信息管理要求下,从容应对市场环境的变化。

3.2.3 健壮性指标

程序软件的开发就是为了投入使用时,可以一直稳定的处理各种数据信息,程序软件一旦不稳定,也会给使用者带来干扰。因此从性能分析的角度,就要要求程序软件在应对使用者的误操作,或者是使用者因为各种原因,填写有误的数据等情况时,程序要一直保持稳定,并能够正常让使用者进行使用。当程序的某个功能模块出现异常时,程序的其它功能模块也要能够确保正常使用。程序的健壮性指标达标可以让使用者产生良好的用户体验。

3.2.4 安全性指标

程序软件的安全问题是首要问题,毕竟程序对应数据库里面存放的数据信息是庞大的,里面也包括了许多重要的个人信息,这就对程序要具备一个完善的安全机制提出了要求。因此程序必须要设置登录功能用以进行用户身份的检查,以及身份和权限的匹配,通过对不同用户身份进行功能约束,绝不容忍用户越权操作程序。另外,也需要时刻防范计算机病毒,还有黑客,通过采取针对性的办法进行安全应对,确保程序时刻处于安全的环境,让使用者放心使用。

3.3 系统流程分析

3.3.1 操作流程分析

程序上交给用户进行使用时,需要提供程序的操作流程图(如图3.1所示),这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。

/images/0300wxapp//blog.003.png

图3.1 程序操作流程图

3.3.2 登录流程分析

在这个部分,需要对程序的登录功能模块的运行流程(如图3.2所示),进行单独说明。程序设置登录模块也是为了安全起见,让用户使用放心,登录模块主要就是让用户提交登录信息,程序进行数据验证,验证通过的用户才能够成功登录程序。

/images/0300wxapp//blog.004.png

图3.2 程序登录流程图

3.3.3 信息添加流程分析

程序的添加功能就是提供给操作者录入信息的功能,不管是涉及到用户信息添加,还是其它功能模块涉及到的信息添加,程序的信息添加流程(如图3.3所示)都是一致的。程序都是先对操作者录入的数据进行判定,这个判定规则是一段提前编写完成的程序代码,当程序判定数据符合要求时,才会把操作者录入的数据登记在数据表里面,比如添加的用户信息,就会把新添加的用户信息写入用户信息的数据表文件里面。

/images/0300wxapp//blog.005.png

图3.3 信息添加流程图

3.3.4 信息删除流程分析

当从程序里面删除某种无效数据时,遵循程序的信息删除流程(如图3.4所示),先要选中操作者需要删除的数据,程序为了预防操作者误删信息,也会进行提示,当操作者真正确定要删选中的信息时,该信息就会从数据库中被永久删除。

/images/0300wxapp//blog.006.png

图3.4 信息删除流程图

4 系统设计

无人超市管理系统的设计方案比如功能框架的设计,比如数据库的设计的好坏也就决定了该系统在开发层面是否高效,以及在系统维护层面是否容易维护和升级,因为在系统实现阶段是需要考虑用户的所有需求,要是在设计阶段没有经过全方位考虑,那么系统实现的部分也就无从下手,所以系统设计部分也是至关重要的一个环节,只有根据用户需求进行细致全面的考虑,才有希望开发出功能健全稳定的程序软件。

4.1 系统概要设计

本次拟开发的系统为了节约开发成本,也为了后期在维护和升级上的便利性,打算通过浏览器来实现系统功能界面的展示,让程序软件的主要事务集中在后台的服务器端处理,前端部分只用处理少量的事务逻辑。下面使用一张图(如图4.1所示)来说明程序的工作原理。

/images/0300wxapp//blog.007.png

图4.1 程序工作的原理图

4.2 系统功能结构设计

在分析并得出使用者对程序的功能要求时,就可以进行程序设计了。如图4.2展示的就是管理员功能结构图。

/images/0300wxapp//blog.008.png

图4.2 管理员功能结构图

4.3 数据库设计

程序功能操作不管是添加,修改,还是删除等功能产生的数据都是经由数据库进行数据保存和更新的,所以一个数据库设计的好坏也是程序是否好坏的判定标准,因为程序的成功,有一半的功劳都是靠数据库的优秀设计。数据库一旦设计得良好是可以减轻开发人员的开发负担的。

4.3.1 数据库E-R图设计

这个部分的设计需要使用到E-R图绘制工具,常用的工具就是Visio工具来绘制E-R模型图,这款工具不仅可以快速创建需要的E-R模型图,而且该工具提供的操作界面很简单,可以短时间内修改绘图界面的图形或者是文字的属性。在绘制E-R模型图时,要分清楚各个图形代表的含义,以免绘制出错,E-R模型图由长方形(实体),椭圆形(属性),菱形(关系)这三部分图形符号组成,绘制期间要区分开来,用准确的图形符号代表相应的数据元素。

(1)管理员实体属性图见图4.4。

/images/0300wxapp//blog.009.png

图4.4 管理员实体属性图

(2)用户实体属性图见图4.5。

/images/0300wxapp//blog.010.png

图4.5 用户实体属性图

(3)商品类型实体属性图见图4.6。

/images/0300wxapp//blog.011.png

图4.6 商品类型实体属性图

4.3.2 数据库表结构设计

数据库系统一旦选定之后,需要根据程序要求在数据库中建立数据库文件,并在已经完成创建的数据库文件里面,为程序运行中产生的数据建立对应的数据表格,数据表结构设计就是对创建的数据表格进行字段设计,字段长度设计,字段类型设计等,当数据表格合理设计完成之后,才能正常存储相关程序运行产生的数据信息。

1公告信息表

序号 列名 数据类型 说明 允许空
1 Id Int id
2 news_name String 公告标题
3 news_types Integer 公告类型
4 news_photo String 公告图片
5 insert_time Date 添加时间
6 news_content String 公告详情
7 create_time Date 创建时间
2购买详情表
序号 列名 数据类型 说明 允许空
1 Id Int id
2 goods_shouyin_id Integer 购买
3 goods_id Integer 商品
4 goods_shouyin_list_number Integer 购买数量
5 insert_time Date 购买时间
6 create_time Date 创建时间
3字典表
序号 列名 数据类型 说明 允许空
1 Id Int id
2 dic_code String 字段
3 dic_name String 字段名
4 code_index Integer 编码
5 index_name String 编码名字
6 super_id Integer 父字段id
7 beizhu String 备注
8 create_time Date 创建时间
4出入库详情表
序号 列名 数据类型 说明 允许空
1 Id Int id
2 goods_churu_inout_id Integer 出入库
3 goods_id Integer 商品
4 goods_churu_inout_list_number Integer 操作数量
5 insert_time Date 操作时间
6 create_time Date 创建时间
5用户表
序号 列名 数据类型 说明 允许空
1 Id Int id
2 username String 账户
3 password String 密码
4 yonghu_name String 用户姓名
5 yonghu_photo String 头像
6 yonghu_phone String 手机号
7 yonghu_email String 电子邮箱
8 sex_types Integer 性别
9 yonghu_delete Integer 假删
10 create_time Date 创建时间
6购买表
序号 列名 数据类型 说明 允许空
1 Id Int id
2 goods_shouyin_uuid_number String 购买流水号
3 yonghu_id Integer 用户
4 goods_shouyin_true_price BigDecimal 实付金额
5 goods_shouyin_types Integer 支付类型
6 goods_shouyin_content String 备注
7 insert_time Date 购买时间
8 create_time Date 创建时间
7商品表
序号 列名 数据类型 说明 允许空
1 Id Int id
2 goods_uuid_number String 商品编号
3 goods_name String 商品名称
4 goods_photo String 商品照片
5 goods_types Integer 商品类型
6 goods_kucun_number Integer 商品库存
7 goods_new_money BigDecimal 原价
8 goods_xiaoshou_money BigDecimal 现价
9 shangxia_types Integer 是否上架
10 goods_delete Integer 逻辑删除
11 goods_content String 商品简介
12 create_time Date 创建时间
8配置文件表
序号 列名 数据类型 说明 允许空
1 Id Int id
2 name String 配置参数名称
3 value String 配置参数值
9出入库表
序号 列名 数据类型 说明 允许空
1 Id Int id
2 goods_churu_inout_uuid_number String 出入库流水号
3 goods_churu_inout_name String 出入库名称
4 goods_churu_inout_types Integer 出入库类型
5 goods_churu_inout_content String 备注
6 insert_time Date 添加时间
7 create_time Date 创建时间
10用户表
序号 列名 数据类型 说明 允许空
1 Id Int id
2 username String 用户名
3 password String 密码
4 role String 角色
5 addtime Date 新增时间
11token表
序号 列名 数据类型 说明 允许空
1 Id Int id
2 userid Integer 用户id
3 username String 用户名
4 tablename String 表名
5 role String 角色
6 token String 密码
7 addtime Date 新增时间
8 expiratedtime Date 过期时间

5 系统实现

系统实现部分就是将系统分析,系统设计部分的内容通过编码进行功能实现,以一个实际应用系统的形式展示系统分析与系统设计的结果。前面提到的系统分析,系统设计最主要还是进行功能,系统操作逻辑的设计,也包括了存储数据的数据库方面的设计等内容,系统实现就是一个最终的实施阶段,将前面的设计成果进行物理转化,最终出具可以运用于实际的软件系统。

5.1 管理员模块

5.1.1 管理员登录

管理员需要输入管理员账号和密码并且选择管理员角色都正确才能登录成功。

/images/0300wxapp//blog.012.png

图5.1 管理员登录页面

5.1.2 管理员修改密码

管理员点击个人中心,修改密码,需要输入正确的原密码,并且新密码和确认密码要一致,都输入正确了才可以点击确定。

/images/0300wxapp//blog.013.png

图5.2 管理员修改密码页面

5.1.3 管理员修改个人信息

管理员修改个人信息只能修改用户名,修改成功后退出再登录就需要输入新的用户名了。

/images/0300wxapp//blog.014.png

图5.3 管理员修改个人信息页面

5.1.4 管理员管理

管理员管理可以对管理员账号进行添加,修改,删除,查询操作,还可以查看详情。

/images/0300wxapp//blog.015.png

图5.4 管理员管理页面

5.1.5 商品类型名称管理

管理员可以对商品类型名称进行添加,修改,删除,查询操作,还可以查看详情。

/images/0300wxapp//blog.016.png

图5.5 商品类型名称页面

5.1.6 支付类型管理

管理员可以对支付类型进行添加,修改,删除,查询操作,还可以查看详情。

/images/0300wxapp//blog.017.png

图5.6 支付类型页面

5.1.7 公告类型管理

管理员可以对公告类型进行添加,修改,删除,查询操作,还可以查看详情。

/images/0300wxapp//blog.018.png

图5.7 公告类型页面

5.1.8 商品信息管理

管理员可以对商品信息进行添加,修改,删除,查询操作,还可以查看详情。

/images/0300wxapp//blog.019.png

图5.8 商品信息页面

5.1.9 入库操作

管理员可以在出入库管理里面操作入库操作,入库需要填写出入库订单名称,还可以选项商品,更改商品数量,进行提交。

/images/0300wxapp//blog.020.png

图5.9 入库页面

5.1.10 出库操作

管理员可以在出入库管理里面操作出库操作,出库需要填写出出库订单名称,还可以选项商品,更改商品数量,进行提交。

/images/0300wxapp//blog.021.png

图5.10 出库页面

5.1.11 出入库管理

管理员可以在出入库管理里面查看到自己操作过的出入库信息,还可以查看列表详情和删除操作,还可以查询,可以根据出入库名称查询出入库信息。

/images/0300wxapp//blog.022.png

图5.11 出入库管理页面

5.1.12 出入库详情管理

管理员可以在出入库详情管理里面搜索出入库详情信息也可以对出入库详情进行删除操作。

/images/0300wxapp//blog.023.png

图5.11 出入库详情管理页面

5.1.13 出入库详情删除

管理员可以删除出入库详情信息,点击删除会先提示确定要删除吗?

/images/0300wxapp//blog.024.png

图5.13 出入库详情删除页面

5.1.14 出入库详情删除

管理员可以删除出入库详情信息,点击删除会先提示确定要删除吗?

/images/0300wxapp//blog.025.png

图5.14 出入库详情删除页面

5.1.15 购买管理

管理员可以通过购买流水号进行查询,也可以对任何一条购买信息进行查看列表详情,列表详情会显示商品的单价,名称和数量以及总价。

/images/0300wxapp//blog.026.png

图5.15 购买管理页面

5.1.16 购买详情管理

管理员可以通过商品名称,商品类型,购买流水号和支付类型查询购买详情。

/images/0300wxapp//blog.027.png

图5.16 购买详情管理页面

5.1.17 公告信息管理

管理员可以对公告信息进行添加,修改,删除,查询操作。

/images/0300wxapp//blog.028.png

图5.17 公告信息管理页面

5.1.18 用户信息管理

管理员可以对用户信息进行添加,修改,删除,查询操作。

/images/0300wxapp//blog.029.png

图5.18 用户信息管理页面

5.2 用户模块

5.2.1 用户注册

用户需要注册才可以登录,用户注册需要输账号,密码,手机号,姓名,邮箱等信息。

/images/0300wxapp//blog.030.png

图5.19 用户注册页面

5.2.2 用户登录

用户登录需要输入正确的账号密码,也要选择用户身份,都匹配了才可以登录。

/images/0300wxapp//blog.031.png

图5.20 用户登录页面

5.2.3 商品管理

用户可以搜索和查看商品信息,这些商品信息都是管理员发布的。

/images/0300wxapp//blog.032.png

图5.21 商品管理页面

5.2.4 购买管理

用户可以通过购买流水号查自己的购买信息,也可以通过支付类型查询。

/images/0300wxapp//blog.033.png

图5.22 购买管理页面

5.2.5 收银

用户可以自助收银,选择收银类型,选择商品和数量,就可以提交。

/images/0300wxapp//blog.034.png

图5.23 收银页面

5.2.6 购买详情

用户可以通过搜索商品名称,类型,流水号,支付类型查询到自己的购买详情。

/images/0300wxapp//blog.035.png

图5.24 购买详情页面

5.2.7 公告信息

用户可以通过搜索公告标题和公告类型查询公告信息。

/images/0300wxapp//blog.036.png

图5.25 公告信息页面

系统