第三章系统分析与设计
3.1 可行性分析
一个完整的系统,可行性分析是必须要有的,因为他关系到系统生存问题,对开发的意义进行分析,能否通过本网站来补充线下超市进销存管理模式中的缺限,去解决其中的不足等,通过对本网站,不仅能使工作量不断地减少,还能使工作和管理的效率更加高。所以开发该网站能实现更大的意义和价值,网站完成后,能否达到预期效果就要通过可行性分析,分析之后,决定此系统是否开发。该超市进销存系统的开发设计中,对技术、经济、操作方面进行了可行性分析;
3.1.1 技术可行性
本系统开发选择java语言,它被研究的目的就是在于能够为网页创建等可以看到的信息。随着移动互联网技术的不断发展和创新,java俨然已成为下一代互联网的Web标准。所以后台设计选择使用mysql数据库主要用来的建立和维护信息。对于前台开发要求应具备功能完善、易于操作等优点,后台数据库的要求则是能够建立和维护数据信息的统一性和完整性。
3.1.2 操作可行性
现在随着科技的飞速发展,计算机早已经进入了人们的日常生活中,人们的工作环境也不像以前有那么多的要求,需要员工一定要到公司办公,有的工作在家也可以完成。这使得人们的工作效益有了很大的提高。操作的多样性也变高了。因此,管理的计算机化,智能化是社会发展而带来的必然趋势,各种智能的软件层出不穷,不同的软件能完成用户不同的需求,这不仅提高了工作效率还能完成一些客户特定的一些需求。本系统不仅界面简洁明了还采用可视化界面,用户只要用鼠标和键盘就可以完成对相关信息的修改,删除,添加等操作。因为这个系统的操作十分简单,方便上手,对于第一次使用系统的人,只需要很少的时间就可以上手操作。由此可见,本系统在操作上是可行的。
3.1.3经济可行性
基于springboot的超市进销存系统,该网站软件开发仅需要一台普通的计算机便可完成实现开发,其成本很低。另外,作为毕业设计作品来讲,开发成本基本上可以忽略不计,且该系统软件的投入使用,可以实现更加快速高效的超市进销存管理,同时还能实现对人力资源和管理资源的有效节约,该超市进销存系统在经济上完全可行。
3.2 需求分析
利用springboot、Java、MyEclipse和mysql数据库等知识点,结合相关设计模式、以及软件工程的相关知识,设计一个超市进销存系统,来进行记录员工的信息,以及系统信息的增删改查的功能,根据实现需求,系统需完成这些基本功能:
(1)系统显示,管理员界面和员工界面等界面。
(2)管理员和员工所有的信息都保存与数据库中。
(3)对超市进销存信息能够进行查询、修改、删除、添加等操作。
3.3 总体设计
根据超市进销存系统的功能需求,进行系统设计。
由管理员和员工,主要功能包括首页、个人中心、员工管理、客户管理、供应商管理、承运商管理、仓库信息管理、商品类别管理、 商品信息管理、采购信息管理、入库信息管理、出库信息管理、销售订单管理、部门管理、岗位管理等功能;
系统对这些功能进行整合,产生的功能结构图如下:

图3-1 系统总体结构图
3.4 数据库设计与实现
在每一个系统中数据库有着非常重要的作用,数据库的设计得好将会增加系统的效率以及系统各逻辑功能的实现。所以数据库的设计我们要从系统的实际需要出发,才能使其更为完美的符合系统功能的实现。
3.4.1 数据库概念结构设计
数据库的E-R图反映了实体、实体的属性和实体之间的联系。下面是各个实体以及实体的属性。
员工注册实体属性图如下所示:

图3-2员工注册实体属性图
供应商管理实体属性图如下所示:

图3-3供应商管理实体属性图
销售订单管理实体属性图如下所示:

图3-4销售订单管理实体属性图
3.4.2数据库具体设计
根据E-R图,设计每张表的变量名,变量的类型及主键等如下。
表3-1:部门
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   addtime  |   timestamp  |   创建时间  |   CURRENT_TIMESTAMP  | ||
|   bumen  |   varchar  |   200  |   部门  | ||
|   bumenjianjie  |   longtext  |   4294967295  |   部门简介  | 
表3-2:商品类别
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   addtime  |   timestamp  |   创建时间  |   CURRENT_TIMESTAMP  | ||
|   shangpinleibie  |   varchar  |   200  |   商品类别  | 
表3-3:员工
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   addtime  |   timestamp  |   创建时间  |   CURRENT_TIMESTAMP  | ||
|   yuangongzhanghao  |   varchar  |   200  |   员工账号  | ||
|   mima  |   varchar  |   200  |   密码  | ||
|   yuangongxingming  |   varchar  |   200  |   员工姓名  | ||
|   xingbie  |   varchar  |   200  |   性别  | ||
|   yuangongdianhua  |   varchar  |   200  |   员工电话  | ||
|   touxiang  |   varchar  |   200  |   头像  | ||
|   bumen  |   varchar  |   200  |   部门  | ||
|   gangwei  |   varchar  |   200  |   岗位  | 
表3-4:入库信息
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   addtime  |   timestamp  |   创建时间  |   CURRENT_TIMESTAMP  | ||
|   rukubianhao  |   varchar  |   200  |   入库编号  | ||
|   shangpinmingcheng  |   varchar  |   200  |   商品名称  | ||
|   shangpinleibie  |   varchar  |   200  |   商品类别  | ||
|   rukushijian  |   datetime  |   入库时间  | |||
|   shuliang  |   int  |   数量  | |||
|   rukubeizhu  |   longtext  |   4294967295  |   入库备注  | ||
|   yuangongzhanghao  |   varchar  |   200  |   员工账号  | ||
|   yuangongxingming  |   varchar  |   200  |   员工姓名  | ||
|   sfsh  |   varchar  |   200  |   是否审核  |   否  | |
|   shhf  |   longtext  |   4294967295  |   审核回复  | 
表3-5:销售订单
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   addtime  |   timestamp  |   创建时间  |   CURRENT_TIMESTAMP  | ||
|   dingdanbianhao  |   varchar  |   200  |   订单编号  | ||
|   kehuxingming  |   varchar  |   200  |   客户姓名  | ||
|   shangpinmingcheng  |   varchar  |   200  |   商品名称  | ||
|   jiage  |   float  |   价格  | |||
|   dingdanshuliang  |   int  |   订单数量  | |||
|   dingdanzongjia  |   float  |   订单总价  | |||
|   dingdanshijian  |   date  |   订单时间  | |||
|   dingdanxiangqing  |   longtext  |   4294967295  |   订单详情  | ||
|   yuangongzhanghao  |   varchar  |   200  |   员工账号  | ||
|   yuangongxingming  |   varchar  |   200  |   员工姓名  | ||
|   sfsh  |   varchar  |   200  |   是否审核  |   否  | |
|   shhf  |   longtext  |   4294967295  |   审核回复  | 
表3-6:客户
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   addtime  |   timestamp  |   创建时间  |   CURRENT_TIMESTAMP  | ||
|   kehubianhao  |   varchar  |   200  |   客户编号  | ||
|   kehuxingming  |   varchar  |   200  |   客户姓名  | ||
|   kehutouxiang  |   varchar  |   200  |   客户头像  | ||
|   kehudianhua  |   varchar  |   200  |   客户电话  | ||
|   kehudizhi  |   varchar  |   200  |   客户地址  | 
表3-7:供应商
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   addtime  |   timestamp  |   创建时间  |   CURRENT_TIMESTAMP  | ||
|   gongyingshangbianhao  |   varchar  |   200  |   供应商编号  | ||
|   gongyingshangmingcheng  |   varchar  |   200  |   供应商名称  | ||
|   gongyingshangdianhua  |   varchar  |   200  |   供应商电话  | ||
|   gongyingshangdizhi  |   varchar  |   200  |   供应商地址  | ||
|   fuzeren  |   varchar  |   200  |   负责人  | 
表3-8:岗位
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   addtime  |   timestamp  |   创建时间  |   CURRENT_TIMESTAMP  | ||
|   gangwei  |   varchar  |   200  |   岗位  | ||
|   gangweirenshu  |   varchar  |   200  |   岗位人数  | ||
|   gangweijianjie  |   longtext  |   4294967295  |   岗位简介  | 
表3-9:配置文件
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   name  |   varchar  |   100  |   配置参数名称  | ||
|   value  |   varchar  |   100  |   配置参数值  | 
表3-10:出库信息
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   addtime  |   timestamp  |   创建时间  |   CURRENT_TIMESTAMP  | ||
|   chukubianhao  |   varchar  |   200  |   出库编号  | ||
|   shangpinmingcheng  |   varchar  |   200  |   商品名称  | ||
|   chengyunshangmingcheng  |   varchar  |   200  |   承运商名称  | ||
|   shangpinleibie  |   varchar  |   200  |   商品类别  | ||
|   shuliang  |   int  |   数量  | |||
|   chukushijian  |   datetime  |   出库时间  | |||
|   chukubeizhu  |   longtext  |   4294967295  |   出库备注  | ||
|   yuangongzhanghao  |   varchar  |   200  |   员工账号  | ||
|   yuangongxingming  |   varchar  |   200  |   员工姓名  | ||
|   sfsh  |   varchar  |   200  |   是否审核  |   否  | |
|   shhf  |   longtext  |   4294967295  |   审核回复  | 
表3-11:承运商
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   addtime  |   timestamp  |   创建时间  |   CURRENT_TIMESTAMP  | ||
|   chengyunshangbianhao  |   varchar  |   200  |   承运商编号  | ||
|   chengyunshangmingcheng  |   varchar  |   200  |   承运商名称  | ||
|   chengyunshangdianhua  |   varchar  |   200  |   承运商电话  | ||
|   fuzeren  |   varchar  |   200  |   负责人  | ||
|   chengyingshangdizhi  |   varchar  |   200  |   承应商地址  | 
表3-12:用户表
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   username  |   varchar  |   100  |   用户名  | ||
|   password  |   varchar  |   100  |   密码  | ||
|   role  |   varchar  |   100  |   角色  |   管理员  | |
|   addtime  |   timestamp  |   新增时间  |   CURRENT_TIMESTAMP  | 
表3-13:仓库信息
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   addtime  |   timestamp  |   创建时间  |   CURRENT_TIMESTAMP  | ||
|   cangkuhao  |   varchar  |   200  |   仓库号  | ||
|   cangkumingcheng  |   varchar  |   200  |   仓库名称  | ||
|   cangkuweizhi  |   varchar  |   200  |   仓库位置  | ||
|   cangkuleixing  |   varchar  |   200  |   仓库类型  | ||
|   cangkuxiangqing  |   longtext  |   4294967295  |   仓库详情  | 
表3-14:token表
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   userid  |   bigint  |   用户id  | |||
|   username  |   varchar  |   100  |   用户名  | ||
|   tablename  |   varchar  |   100  |   表名  | ||
|   role  |   varchar  |   100  |   角色  | ||
|   token  |   varchar  |   200  |   密码  | ||
|   addtime  |   timestamp  |   新增时间  |   CURRENT_TIMESTAMP  | ||
|   expiratedtime  |   timestamp  |   过期时间  |   CURRENT_TIMESTAMP  | 
表3-15:采购信息
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   addtime  |   timestamp  |   创建时间  |   CURRENT_TIMESTAMP  | ||
|   caigoubianhao  |   varchar  |   200  |   采购编号  | ||
|   gongyingshangmingcheng  |   varchar  |   200  |   供应商名称  | ||
|   shangpinmingcheng  |   varchar  |   200  |   商品名称  | ||
|   shangpinleibie  |   varchar  |   200  |   商品类别  | ||
|   caigoushuliang  |   varchar  |   200  |   采购数量  | ||
|   dengjishijian  |   datetime  |   登记时间  | |||
|   caigoubeizhu  |   longtext  |   4294967295  |   采购备注  | ||
|   yuangongzhanghao  |   varchar  |   200  |   员工账号  | ||
|   yuangongxingming  |   varchar  |   200  |   员工姓名  | ||
|   sfsh  |   varchar  |   200  |   是否审核  |   否  | |
|   shhf  |   longtext  |   4294967295  |   审核回复  | 
表3-16:商品信息
|   字段名称  |   类型  |   长度  |   字段说明  |   主键  |   默认值  | 
|---|---|---|---|---|---|
|   id  |   bigint  |   主键  |   主键  | ||
|   addtime  |   timestamp  |   创建时间  |   CURRENT_TIMESTAMP  | ||
|   shangpinbianhao  |   varchar  |   200  |   商品编号  | ||
|   shangpinmingcheng  |   varchar  |   200  |   商品名称  | ||
|   shangpinleibie  |   varchar  |   200  |   商品类别  | ||
|   shangpintupian  |   varchar  |   200  |   商品图片  | ||
|   guige  |   varchar  |   200  |   规格  | ||
|   pinpai  |   varchar  |   200  |   品牌  | ||
|   jiage  |   varchar  |   200  |   价格  | ||
|   shuliang  |   int  |   数量  | |||
|   chandi  |   varchar  |   200  |   产地  | ||
|   cangkuhao  |   varchar  |   200  |   仓库号  | ||
|   cangkumingcheng  |   varchar  |   200  |   仓库名称  | ||
|   xiangqing  |   longtext  |   4294967295  |   详情  | 
第四章 系统功能的具体实现
4.1 登录注册
登录,管理员和员工通过填写用户名、密码等信息,选择角色进行登录等操作,如图4-1所示。

图4-1登录界面图
员工注册;在员工注册页面中输入员工账号、密码、确认密码、员工姓名、员工电话等内容进行员工注册操作;如图4-2所示。

图4-2员工注册界面图
4.2 管理员功能模块
管理员登录进入超市进销存系统可以查看首页、个人中心、员工管理、客户管理、供应商管理、承运商管理、仓库信息管理、商品类别管理、 商品信息管理、采购信息管理、入库信息管理、出库信息管理、销售订单管理、部门管理、岗位管理等功能进行详细操作;如图4-3所示。

图4-3管理员功能界面图
员工管理;在员工管理页面中可以查看索引、员工账号、员工姓名、性别、员工电话、头像、部门、岗位等内容进行详情、修改或删除等操作;如图4-4所示。

图4-4员工管理界面图
客户管理,在客户管理页面中可以查看索引、客户编号、客户姓名、客户头像、客户电话、客户地址等内容进行详情、修改或删除等操作,如图4-5所示。

图4-5客户管理界面图
供应商管理,在供应商管理页面可以查看索引、供应商编号、供应商名称、供应商电话、供应商地址、负责人等内容进行详情、修改或删除等操作,如图4-6所示。

图4-6供应商管理界面图
承运商管理,在承运商管理页面中可以查看索引、承运商编号、承运商名称、 承运电话、负责人、承运商地址等内容进行详情、修改或删除等操作,如图4-7所示。

图4-7承运商管理界面图
仓库信息管理;在仓库信息管理页面中可以查看索引、仓库号、仓库名称、仓库位置、仓库类型等内容进行详情、修改或删除等操作;如图4-8所示。

图4-8仓库信息管理界面图
商品信息管理;在商品信息管理页面中可以查看索引、商品编号、商品名称、商品类别、商品图片、规格、品牌、价格、数量、产地、仓库号、仓库名称等内容进行详情、修改或删除等操作;如图4-9所示。

图4-9商品信息管理界面图
采购信息管理;在采购信息管理页面中可以查看索引、采购编号、供应商名称、商品名称、 商品类型、采购数量、登记时间、员工账号、员工姓名、审核回复、审核状态、审核等内容进行详情、修改或删除等操作;如图4-10所示。

图4-10采购信息管理界面图
销售订单管理;在销售订单管理页面中可以查看索引、订单编号、客户姓名、商品名称、 价格、订单数量、订单总价、订单时间、员工账号、员工姓名、审核回复、审核状态、审核等内容进行详情、修改或删除等操作;如图4-11所示。

图4-11销售订单管理界面图
部门管理;在部门管理页面中可以查看索引、部门等内容进行详情、修改或删除等操作;如图4-12所示。

图4-12部门管理界面图
岗位管理,在岗位管理页面可以查看索引、岗位、岗位人数等内容进行修改或删除等操作;如图4-13所示。

图4-13岗位管理界面图
4.3员工功能模块
员工登录进入超市进销存系统可以查看首页、个人中心、仓库信息管理、 商品信息管理、采购信息管理、入库信息管理、出库信息管理、销售订单管理等功能进行详细操作;如图4-14所示。

图4-14员工功能界面图
仓库信息管理,在仓库信息管理页面中可以查看索引、仓库号、仓库名称、仓库位置、仓库类型等内容进行详情等操作,如图4-15所示。

图4-15仓库信息管理界面图
商品信息管理,在商品信息管理页面中可以查看索引、商品编号、商品名称、商品类别、商品图片、规格、品牌、价格、数量、产地、仓库号、仓库名称等内容进行详情、采购、入库或出库等操作;如图4-16所示。

图4-16商品信息管理界面图
采购信息管理,在采购信息管理页面中可以查看索引、采购编号、供应商名称、商品名称、 商品类型、采购数量、登记时间、员工账号、员工姓名、审核回复、审核状态等内容进行详情、修改或删除等操作;如图4-17所示。

图4-17采购信息管理界面图
入库信息管理,在入库信息管理页面中可以查看索引、入库编号、商品名称、商品类别、入库时间、数量、员工账号、员工姓名、审核回复、审核状态等内容进行详情、修改或删除等操作;如图4-18所示。

图4-18入库信息管理界面图
出库信息管理、在出库信息管理页面中可以查看索引、入库编号、商品名称、商品类别、出库时间、数量、员工账号、员工姓名、审核回复、审核状态等内容进行详情、修改或删除等操作,如图4-19所示。

图4-19出库信息管理界面图
第五章 系统测试
系统测试是软件开发过程中最后一步,但也是不可或缺的重要的一步,没有人可以保证一次性编写完成的系统不会出错,而系统测试就是将自己开发的系统成为成品前的最后一步。在测试过程中需要进行严谨细致的测试,要尽可能全面地在不同情况下运行该系统,排除一切出现错误的可能。
系统测试不仅仅是发现系统潜在的BUG或错误,而更为重要的是为用户提供一个良好的体验和安全可使用的产品服务。而通过发现错误或潜在的问题,将有助于提升产品的竞争力,这也是软件测试的其中的重要目的之一。
软件测试的方法有好几种,但目前主要采用的是包括以功能为主要测试方向的黑盒测试以及以逻辑为主要测试方向的白盒测试,这是两种不同的测试方法,针对的测试侧重点不同,本课题根据实际需求情况,选择以功能为主要的黑盒测试方法,同时测试是要遵循一定的规则来执行的,一个测试要执行其执行的依据一般是由测试用例来规定的,而测试用例一般是依据需求或说明书来综合制定的,测试在硬件出厂前是十分重要的一个过程,本课题由于时间和精力的关系,选择以实现的功能作为测试要点来进行测试。具体测试过程如下:
测试用例1及测试过程:
登录:录入登录信息,账号,密码,权限,然后单击登录进行操作,会出现两种情况:一种情况是登录成功,进入用户相应的功能界面进行下一步操作;另一种情况是提示登录失败,系统会弹出一个对话框要求重新登录操作;
测试用例2及测试过程:
管理员登录:录入登录信息,管理员账号,密码,权限,然后单击登录进行操作,会出现两种情况:登录成功进入管理员具有权限的功能界面和提示登录失败。一种情况是登录成功,进入管理员界面进行下一步操作;另一种情况是提示登录失败,系统会弹出一个对话框要求重新登录操作;
总结
在这次毕业设计中,我使用了springboot框架,选择MySQL作为后台数据库进行访问及修改。在设计开始之初,我也在苦恼于系统的逻辑功能的具体实现,因为我对于超市进销存管理的概念还较为模糊,其间我也查询了大量的网上资料,清楚了解实际生活中超市进销存管理主要面对的对象和管理需要完成的基本功能。
虽然在这过程中也遇到了许多的困难,主要有系统逻辑功能不合适和系统设计中出错,当在自己查阅资料无法解决之时,我也会与同学和老师进行请教和讨论,所以在这个过程之中,也让我清楚的认识到自己的不足以及团队的力量才是最大,以后不论是在学习还是工作中,都要融入到集体之中,那样自己才会成长的更快。
当然,在此次设计中,仍然存在着很多的不足,本来之前我想让其系统可以更为完美的实现角色与权限之间的控制,让系统中每一次的权限操作都进行控制,但是也因为时间的不足以及本人的能力有限,并未完成,我希望自己在以后的学习中继续完善,使这个系统更贴近实际的操作。



















