本文基于SpringBoot框架设计了一个眼镜中心库存信息管理网站,旨在提升眼镜中心的库存管理效率和降低成本。通过深入了解眼镜中心的库存管理需求和问题,并结合现代信息技术的应用,该网站提供全面的库存管理功能,包括系统用户、仓库信息管理、入库信息管理、出库信息管理、客户信息管理、客户订单管理、售后信息管理、退货信息管理等。通过这些功能,眼镜中心能够实现库存的监控、货物的库存和订单的管理,从而提高库存管理的效率和准确性,降低企业的库存成本和风险。该网站基于SpringBoot框架进行后端开发,使用Vue.js构建前端界面,并通过RESTful API进行前后端数据交互。总之,眼镜中心库存信息管理网站的设计与实现对于提升眼镜中心的运营效率和竞争力具有重要意义。
关键词:眼镜中心库存信息管理网站;springboot框架;Vue.js
Abstract
This article designs a glasses center inventory information management website based on the SpringBoot framework, aiming to improve the efficiency of glasses center inventory management and reduce costs. By delving into the inventory management needs and issues of the eyewear center, combined with the application of modern information technology, this website provides comprehensive inventory management functions, including system users, warehouse information management, inbound information management, outbound information management, customer information management, customer order management, after-sales information management, return information management, etc. Through these functions, the glasses center can achieve inventory monitoring, inventory management of goods, and order management, thereby improving the efficiency and accuracy of inventory management and reducing inventory costs and risks for enterprises. This website is based on the SpringBoot framework for backend development, using Vue.js to build the frontend interface, and using RESTful API for front-end and back-end data interaction. In summary, the design and implementation of the inventory information management website for the glasses center is of great significance for improving the operational efficiency and competitiveness of the glasses center.
Keywords:Glasses Center Inventory Information Management Website; Springboot framework; Vue.js
目录
表after_sales_information (售后信息)
表warehouse_management_users (仓管用户)
1 绪论
1.1研究背景与意义
随着人们对眼镜的需求增加,眼镜中心作为销售和配镜眼镜的重要场所,需要有效管理库存信息,以满足客户需求并保持良好的运营状态。然而,传统的手工记录和管理方式存在许多问题,如信息不准确、数据冗余、操作繁琐等。因此,设计一个基于SpringBoot的眼镜中心库存信息管理网站具有重要的背景意义。
综上所述,基于SpringBoot的眼镜中心库存信息管理网站设计的课题背景源于对传统库存管理方式的改进需求,旨在提高库存信息管理的准确性、实时性和便捷性,促进眼镜中心的运营效率和客户满意度。
1.2研究现状
随着国内经济形势的不断发展,中国互联网进入了一个难得的高峰发展时期,这使得中外资本家纷纷转向互联网市场。然而,许多管理领域的不合理结构,人员不足以及市场管理需求的增加使得更多的人具备了互联网管理的意识。
在当今高度发达的信息中,信息管理改革已成为一种更加广泛和全面的趋势。 “眼镜中心库存信息管理网站”是基于Mysql数据库,采用springboot框架上进行开发实现的。为确保中国经济的持续发展,信息时代日益更新,服务业仍在蓬勃发展。同时,随着信息社会的快速发展,各种管理系统面临着越来越多的数据需要处理,如何用方便快捷的方式使管理者在广阔的数据海洋里面查询、存储、管理和共享有效的数据信息,对我们的学习,工作和生活具有重要的现实意义。因此,国内外学术界对此进行了深入而广泛的研究,一个新的研究领域——眼镜中心库存信息管理网站诞生了。
1.3研究内容
眼镜中心库存信息管理网站的设计与实现是一个相对新颖的研究领域,库存信息管理是企业运营中至关重要的一个方面,目前已经有一些相关的研究成果和现状。
在库存管理方面,许多研究关注如何提高库存管理的效率和准确性。传统的库存管理方法包括基于经验和规则的库存控制策略,如固定周期法和固定点法。然而,随着信息技术的发展,越来越多的研究开始探索基于数据分析和优化模型的库存管理方法。例如,通过利用大数据分析和机器学习算法,可以实现精确的需求预测和库存优化,帮助企业减少库存成本和避免缺货风险。
在信息系统方面,许多研究关注如何利用现代信息技术提升库存信息管理的效率和可靠性。基于云计算和物联网技术的库存信息管理系统能够实现实时监控和数据分析,提高库存的可见性和管理水平。此外,一些研究还关注如何利用区块链技术增强库存信息的安全性和透明度,保护数据的完整性和可信度。
除了技术方面的研究,还有一些研究关注库存信息管理对企业绩效和竞争力的影响。例如,一些研究发现,优化的库存信息管理能够提高企业的客户满意度、交付时间和供应链协同性,从而提升企业的市场竞争力。
综上所述,库存信息管理是一个涉及技术、方法和运营的综合性问题。当前的研究主要集中在优化库存管理方法、利用现代信息技术提升库存信息管理效率和可靠性以及库存信息管理对企业绩效的影响等方面。未来的研究方向包括更精确的需求预测方法、更智能的库存优化模型以及更安全的库存信息管理系统的开发与应用。
这次编写的论文包含了6个部分的内容,具体内容如下:
第一部分绪论:文章主要从课题背景以及研究现状综合阐述了开发此系统的必要性。
第二部分相关技术:系统开发用到的各种技术都大致做出了简介。
第三部分系统分析:对系统的可行性分析以及对所有功能需求进行详细的分析,来查看该系统是否具有开发的可能。
第四部分系统设计:功能模块设计和数据库设计这两部分内容都有专门的表格和图片表示。
第五部分系统实现:进行系统主要功能模块的界面展示。
2相关技术介绍
2.1 MVVM模式
MVVM模式是常用的开发模式,主要是在代码实现上将其分为M层、V层和C层。
视图(View)代表用户交互界面,一个 Web 应用就可能有很多的界面,在 MVVM 模式中,视图仅仅处理的只有数据采集、处理,还有用户的请求, 并不包括业务流程的处理,业务流程由模型(Model)来处理。
模型(Model)就是业务流程/状态的处理及业务规则的制定。模型处理业务流程的过程其它层是无法看见了的,它就像黑箱子,在接受视图请求的数据之后,然后返回最终的处理结果。MVVM 最主要的核心就是业务模型的设计,一个典型的应用例子就是目前流行的 EJB 模型,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但是它不能作为应用设计模型的框架。
控制器(Controller)可以理解为接收用户的请求,然后视图和模型匹配在一起,一起再完成用户请求。它有非常明显的作用在划分控制层上,可以很清晰地告诉你,它就是一个分发器,选择什么样的模型、视图,可以完成用户的什么样的请求。控制层不做所有的数据处理,比如说:用户点击一个连接,控制层接受到请求之后,并不处理业务信息,它只是向模型传递用户的信息,同时告诉模型做什么,然后选择符合需求的视图返回给用户。
2.2 B/S结构
B/S(Browser/Server)比前身架构更为省事的架构。它借助Web server完成数据的传递交流。只需要下载浏览器作为客户端,那么工作就达到“瘦身”效果, 不需要考虑不停装软件的问题。
2.3 Spring boot框架
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。
2.4 Mysql数据库
Mysql 经过多次的更新,功能层面已经非常的丰富和完善了,从Mysql4版本到5版本进行了比较大的更新,在商业的实际使用中取得了很好的实际应用效果。最新版本的Mysql支持对信息的压缩,同时还能进行加密能更好的满足对信息安全性的需求。同时经过系统的多次更新,数据库自身的镜像功能也得到了很大的增强,运行的流畅度和易用性方面有了不小的进步,驱动的使用和创建也更加的高效快捷。最大的变动还是进行了空间信息的显示优化,能更加方便的在应用地图上进行坐标的标注和运算。强大的备份功能也保证了用户使用的过程会更加安心,同时支持的Office特性还支持用户的自行安装和使用。在信息的显示形式上也进行了不小的更新,增加了两个非常使用的显示区,一个是信息区,对表格和文字进行了分类处理,界面的显示更加清爽和具体。第二是仪表的信息控件,能在仪表信息区进行信息的显示,同时还能进行多个信息的比对,为用户的实际使用带来了很大的便捷。
针对本文中设计的眼镜中心库存信息管理网站在实际的实现过程中,最终选择Mysql数据库的主要原因在于在企业的应用系统应用及开发的过程中会存在大量的数据库比较频繁的操作,而且数据的安全性要求也是非常的高。综合这些因素,最终选择安全性系数比较高的Mysql来对眼镜中心库存信息管理网站后台数据进行存储操作。
3 系统分析
3.1 可行性分析
在系统开发之初要进行系统可行分析,这样做的目的就是使用最小成本解决最大问题,一旦程序开发满足用户需要,带来的好处也是很多的。下面我们将从技术上、操作上、经济上等方面来考虑这个系统到底值不值得开发。
3.1.1 技术可行性
眼镜中心库存信息管理网站采用springboot框架技术、java语言和MYSQL数据库进行开发设计,作为计算机专业学生,在学校期间就接触到许多关于编程方面的知识,当然也包括各种编程软件,对他们的了解度也比较系统,所以技术开发上面还是有一定把握。
3.1.2经济可行性
我在设计该系统的时候主要是从节约成本出发,然后进行具体的系统的设计,在系统的设计过程中由于采用的所有工具以及技术支持全部都是免费的,因此不需要有任何的成本就可以进行该系统的设计。所用到的所有资源都是免费的,只要有网络就可以进行下载使用,不需要支付相应的费用,因此该项目在经济方面是完全可以实行的。
3.1.3操作可行性
本人自己就是学生,程序开发经验不足,在界面设计上面不会设计太复杂,要讲究简单好看,操作上要方便,不能让用户觉得不流畅。用户一旦进入操作界面,界面上就会有相应提示,跟着操作提示就可以找到对应的功能操作模块,对于用户来说免培训就能使用。
从上面几个部分的可行性分析得出,这次开发的眼镜中心库存信息管理网站在开发上面没有什么大问题,值得开发。
3.2 系统性能分析
(1)系统响应效率:页面响应时问应该在3秒以内,最长不能超过4秒,并支持至少10000人同时在线所有系统。
(2)界面简洁清晰:系统界面要求简单明了,容易操作,符合用户操作习惯。
(3)储存性高:因为眼镜中心库存信息管理网站中有很多的信息需要存储,因此对于系统的存储量有很大的要求,需要有一个强大的数据库的支持才能确保所有的信息都能安全稳定的进行存储。
(4)易学性:该系统在操作上必须简单好上手,没有很多复杂的操作,只需要简单的进行学习就能操作该系统。
(5)稳定性需求:开发的眼镜中心库存信息管理网站要求运行稳定,运行过程中无界面不清楚、字体模糊等现象。
(6)稳定性:开发的眼镜中心库存信息管理网站要求运行稳定,运行过程中无界面不清楚、字体模糊等现象。
3.3 系统功能分析
眼镜中心库存信息管理网站主要包括两大功能模块,即普通管理员功能模块和后台管理员模块。
(1)管理员模块:系统中的核心用户是系统管理员,管理员登录后,通过管理员菜单来管理后台系统。主要功能有:首页、系统用户、仓库信息管理、入库信息管理、出库信息管理、客户信息管理、客户订单管理、售后信息管理、退货信息管理等功能。管理员用例图如图3-1所示。
图3-1 管理员用例图
(2)仓库管理:后台首页、仓库信息管理、入库信息管理、出库信息管理、售后信息管理、退货信息管理等功能。用户用例图如图3-2所示。
图3-2 仓库管理用例图
(2)销售员:后台首页、仓库信息管理、客户信息管理、客户订单管理、售后服务、售后信息管理、退货信息管理等功能。用户用例图如图3-3所示。
图3-3 销售员用例图
3.4系统流程分析
3.4.1登录流程
登录模块主要满足管理员、普通管理云的权限登录,登录流程图如图3-4所示。
图3-4 登录流程图
3.4.2添加信息流程
用户在添加信息时,信息编号自动生成,系统会对添加的信息进行验证,验证通过则添加至数据库,添加信息成功,反之添加失败。添加信息流程如图3-5所示。
图3-5 添加信息流程图
3.4.3删除信息流程
用户可选择要删除的信息进行信息删除操作,在删除信息时系统提示是否确定删除信息,是则删除信息成功,系统数据库将信息进行删除。删除信息流程图如图3-6所示。
4 系统设计
4.1系统概要设计
眼镜中心库存信息管理网站选择B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式。适合在互联网上进行操作,只要用户能连网,任何时间、任何地点都可以进行系统的操作使用。系统工作原理图如图4-1所示:
图4-1 系统工作原理图
4.2系统结构设计
整个系统是由多个功能模块组合而成的,要将所有的功能模块都一一列举出来,然后进行逐个的功能设计,使得每一个模块都有相对应的功能设计,然后进行系统整体的设计,系统功能结构如图4-2所示:
图4-2中小型企业库存管理系统功能模块图
4.3系统顺序图设计
4.3.1登录模块顺序图
登录模块主要满足了管理员、仓库用户的权限登录,登录模块顺序图如图4-3所示。
图4-3 登录顺序图
4.3.2添加信息模块顺序图
管理员、仓库用户登录后均可进行添加信息操作,添加信息模块顺序图如图4-4所示。
图4-4 添加信息顺序图
4.4数据库设计
一个好的数据库可以关系到程序开发的优劣,数据库设计离不开表结构的设计,还有表与表之间的联系,以及系统开发需要设计的数据表内容等信息。在进行数据库设计期间,要结合实际情况来对数据库进行针对性的开发设计。
4.4.1数据库E-R图设计
眼镜中心库存信息管理网站采用的是MYSQL数据库,数据存储快,因为眼镜中心库存信息管理网站,主要的就是对信息的管理,信息内容比较多,这就需要好好的设计一个好的数据库,分类要清楚,不能添加信息的时候,造成信息太过混乱,设计好的数据库首先就需要先把各个实体之间的关系表达明确。
系统的E-R图如下图所示:
图4-5 系统E-R图
4.4.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 | 用户编号: |
表after_sales_information (售后信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | after_sales_information_id | int | 10 | 0 | N | Y | 售后信息ID | |
2 | sales_user | int | 10 | 0 | Y | N | 0 | 销售用户 |
3 | sales_name | varchar | 64 | 0 | Y | N | 销售姓名 | |
4 | customer_number | varchar | 64 | 0 | Y | N | 客户编号 | |
5 | customer_name | varchar | 64 | 0 | Y | N | 客户名称 | |
6 | customer_phone | varchar | 64 | 0 | Y | N | 客户电话 | |
7 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
8 | product_number | varchar | 64 | 0 | Y | N | 产品编号 | |
9 | product_name | varchar | 64 | 0 | Y | N | 产品名称 | |
10 | product_model | varchar | 64 | 0 | Y | N | 产品型号 | |
11 | product_brand | varchar | 64 | 0 | Y | N | 产品品牌 | |
12 | product_price | varchar | 64 | 0 | Y | N | 产品价格 | |
13 | purchase_quantity | varchar | 64 | 0 | Y | N | 购买数量 | |
14 | after_sales_type | varchar | 64 | 0 | Y | N | 售后类型 | |
15 | refund_amount | varchar | 64 | 0 | Y | N | 退款金额 | |
16 | return_quantity | varchar | 64 | 0 | Y | N | 退货数量 | |
17 | after_sales_reasons | text | 65535 | 0 | Y | N | 售后原因 | |
18 | service_situation | text | 65535 | 0 | Y | N | 服务情况 | |
19 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
20 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
21 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
22 | 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 | 更新时间: |
表customer_information (客户信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | customer_information_id | int | 10 | 0 | N | Y | 客户信息ID | |
2 | sales_user | int | 10 | 0 | Y | N | 0 | 销售用户 |
3 | sales_name | varchar | 64 | 0 | Y | N | 销售姓名 | |
4 | customer_number | varchar | 64 | 0 | Y | N | 客户编号 | |
5 | customer_name | varchar | 64 | 0 | Y | N | 客户名称 | |
6 | customer_phone | varchar | 16 | 0 | Y | N | 客户电话 | |
7 | customer_level | varchar | 64 | 0 | Y | N | 客户级别 | |
8 | number_of_collaborations | varchar | 64 | 0 | Y | N | 合作次数 | |
9 | customer_situation | text | 65535 | 0 | Y | N | 客户情况 | |
10 | purchase_situation | text | 65535 | 0 | Y | N | 购买情况 | |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表customer_orders (客户订单)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | customer_orders_id | int | 10 | 0 | N | Y | 客户订单ID | |
2 | sales_user | int | 10 | 0 | Y | N | 0 | 销售用户 |
3 | sales_name | varchar | 64 | 0 | Y | N | 销售姓名 | |
4 | customer_number | varchar | 64 | 0 | Y | N | 客户编号 | |
5 | customer_name | varchar | 64 | 0 | Y | N | 客户名称 | |
6 | customer_phone | varchar | 64 | 0 | Y | N | 客户电话 | |
7 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
8 | product_number | varchar | 64 | 0 | Y | N | 产品编号 | |
9 | product_name | varchar | 64 | 0 | Y | N | 产品名称 | |
10 | product_model | varchar | 64 | 0 | Y | N | 产品型号 | |
11 | product_brand | varchar | 64 | 0 | Y | N | 产品品牌 | |
12 | product_price | varchar | 64 | 0 | Y | N | 产品价格 | |
13 | purchase_quantity | varchar | 64 | 0 | Y | N | 购买数量 | |
14 | purchase_date | date | 10 | 0 | Y | N | 购买日期 | |
15 | total_order_price | varchar | 64 | 0 | Y | N | 订单总价 | |
16 | order_description | text | 65535 | 0 | Y | N | 订单说明 | |
17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
18 | 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_number | varchar | 64 | 0 | Y | N | 仓库编号 | |
3 | warehouse_name | varchar | 64 | 0 | Y | N | 仓库名称 | |
4 | product_number | varchar | 64 | 0 | Y | N | 产品编号 | |
5 | product_name | varchar | 64 | 0 | Y | N | 产品名称 | |
6 | product_model | varchar | 64 | 0 | Y | N | 产品型号 | |
7 | product_brand | varchar | 64 | 0 | Y | N | 产品品牌 | |
8 | warehouse_management_users | int | 10 | 0 | Y | N | 0 | 仓管用户 |
9 | warehouse_manager_name | varchar | 64 | 0 | Y | N | 仓管姓名 | |
10 | delivery_note_number | varchar | 64 | 0 | Y | N | 出库单号 | |
11 | outbound_quantity | int | 10 | 0 | Y | N | 0 | 出库数量 |
12 | outbound_date | date | 10 | 0 | Y | N | 出库日期 | |
13 | destination | varchar | 64 | 0 | Y | N | 目的地 | |
14 | outbound_instructions | text | 65535 | 0 | Y | N | 出库说明 | |
15 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
16 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表return_information (退货信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | return_information_id | int | 10 | 0 | N | Y | 退货信息ID | |
2 | sales_user | int | 10 | 0 | Y | N | 0 | 销售用户 |
3 | sales_name | varchar | 64 | 0 | Y | N | 销售姓名 | |
4 | customer_number | varchar | 64 | 0 | Y | N | 客户编号 | |
5 | customer_name | varchar | 64 | 0 | Y | N | 客户名称 | |
6 | customer_phone | varchar | 64 | 0 | Y | N | 客户电话 | |
7 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
8 | product_number | varchar | 64 | 0 | Y | N | 产品编号 | |
9 | product_name | varchar | 64 | 0 | Y | N | 产品名称 | |
10 | product_model | varchar | 64 | 0 | Y | N | 产品型号 | |
11 | product_brand | varchar | 64 | 0 | Y | N | 产品品牌 | |
12 | product_price | varchar | 64 | 0 | Y | N | 产品价格 | |
13 | purchase_quantity | varchar | 64 | 0 | Y | N | 购买数量 | |
14 | after_sales_type | varchar | 64 | 0 | Y | N | 售后类型 | |
15 | refund_amount | varchar | 64 | 0 | Y | N | 退款金额 | |
16 | return_quantity | varchar | 64 | 0 | Y | N | 退货数量 | |
17 | warehouse_management_users | int | 10 | 0 | Y | N | 0 | 仓管用户 |
18 | warehouse_manager_name | varchar | 64 | 0 | Y | N | 仓管姓名 | |
19 | actual_return | varchar | 64 | 0 | Y | N | 实际退货 | |
20 | actual_refund | varchar | 64 | 0 | Y | N | 实际退款 | |
21 | acceptance_status | text | 65535 | 0 | Y | N | 验收情况 | |
22 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
23 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表sales_personnel (销售人员)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | sales_personnel_id | int | 10 | 0 | N | Y | 销售人员ID | |
2 | sales_no | varchar | 64 | 0 | N | N | 销售工号 | |
3 | sales_name | 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 | 更新时间 |
表sensitive_vocabulary (敏感词汇)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | sensitive_vocabulary_id | int | 10 | 0 | N | Y | 敏感词汇ID | |
2 | sensitive_vocabulary | 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 | 更新时间 |
表storage_information (入库信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | storage_information_id | int | 10 | 0 | N | Y | 入库信息ID | |
2 | warehouse_number | varchar | 64 | 0 | Y | N | 仓库编号 | |
3 | warehouse_name | varchar | 64 | 0 | Y | N | 仓库名称 | |
4 | product_number | varchar | 64 | 0 | Y | N | 产品编号 | |
5 | product_name | varchar | 64 | 0 | Y | N | 产品名称 | |
6 | product_model | varchar | 64 | 0 | Y | N | 产品型号 | |
7 | product_brand | varchar | 64 | 0 | Y | N | 产品品牌 | |
8 | warehouse_management_users | int | 10 | 0 | Y | N | 0 | 仓管用户 |
9 | warehouse_manager_name | varchar | 64 | 0 | Y | N | 仓管姓名 | |
10 | receipt_batch | varchar | 64 | 0 | Y | N | 入库批次 | |
11 | inventory_quantity | int | 10 | 0 | Y | N | 0 | 入库数量 |
12 | storage_date | date | 10 | 0 | Y | N | 入库日期 | |
13 | supplier | varchar | 64 | 0 | Y | N | 供应商 | |
14 | production_date | date | 10 | 0 | Y | N | 生产日期 | |
15 | storage_instructions | text | 65535 | 0 | Y | N | 入库说明 | |
16 | acceptance_status | text | 65535 | 0 | Y | N | 验收情况 | |
17 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
18 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
19 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
20 | 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_information (仓库信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | warehouse_information_id | int | 10 | 0 | N | Y | 仓库信息ID | |
2 | warehouse_number | varchar | 64 | 0 | N | N | 仓库编号 | |
3 | warehouse_name | varchar | 64 | 0 | Y | N | 仓库名称 | |
4 | warehouse_type | varchar | 64 | 0 | Y | N | 仓库类型 | |
5 | warehouse_address | varchar | 64 | 0 | Y | N | 仓库地址 | |
6 | warehouse_area | varchar | 64 | 0 | Y | N | 仓库面积 | |
7 | product_number | varchar | 64 | 0 | Y | N | 产品编号 | |
8 | product_name | varchar | 64 | 0 | Y | N | 产品名称 | |
9 | product_model | varchar | 64 | 0 | Y | N | 产品型号 | |
10 | product_brand | varchar | 64 | 0 | Y | N | 产品品牌 | |
11 | product_price | varchar | 64 | 0 | Y | N | 产品价格 | |
12 | product_inventory | int | 10 | 0 | Y | N | 0 | 产品库存 |
13 | warehouse_situation | text | 65535 | 0 | Y | N | 仓库情况 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表warehouse_management_users (仓管用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | warehouse_management_users_id | int | 10 | 0 | N | Y | 仓管用户ID | |
2 | warehouse_keeper_id | varchar | 64 | 0 | N | N | 仓管工号 | |
3 | warehouse_manager_name | 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 | 更新时间 |
5 系统详细设计
5.1系统功能模块
眼镜中心库存信息管理网站,在系统登录页面管理员填写账号、密码等信息滑动滑块进行验证登录,如图5-1所示。
![](https://i-blog.csdnimg.cn/direct/7366adbeea614754a12c496e05e657ba.png)
图5-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.select(map, new HashMap<>()).getResultList();
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.select(map, new HashMap<>()).getResultList();
}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.select(groupMap, new HashMap<>()).getResultList();
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
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());
tokenService.save(accessToken);
// 返回用户信息
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, "账号或密码不正确");
}
}
管理员登录进入眼镜中心库存信息管理网站之后,就可以对所有的信息进行查看,可以查看到首页、系统用户、仓库信息管理、入库信息管理、出库信息管理、客户信息管理、客户订单管理、售后信息管理、退货信息管理等,并且还可以对其进行相应的操作管理,如图5-2所示。
![](https://i-blog.csdnimg.cn/direct/fc3cf1fb737a4a429aadfac117d9d247.png)
图5-2 管理员页面图
管理员界面的关键代码如下。
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
public Map<String,Object> readBody(BufferedReader reader){
BufferedReader br = null;
StringBuilder sb = new StringBuilder("");
try{
br = reader;
String str;
while ((str = br.readLine()) != null){
sb.append(str);
}
br.close();
String json = sb.toString();
return JSONObject.parseObject(json, Map.class);
}catch (IOException e){
e.printStackTrace();
}finally{
if (null != br){
try{
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null;
}
public void insert(Map<String,Object> body){
StringBuffer sql = new StringBuffer("INSERT INTO ");
sql.append("`").append(table).append("`").append(" (");
for (Map.Entry<String,Object> entry:body.entrySet()){
sql.append("`"+humpToLine(entry.getKey())+"`").append(",");
}
sql.deleteCharAt(sql.length()-1);
sql.append(") VALUES (");
for (Map.Entry<String,Object> entry:body.entrySet()){
Object value = entry.getValue();
if (value instanceof String){
sql.append("'").append(entry.getValue()).append("'").append(",");
}else {
sql.append(entry.getValue()).append(",");
}
}
sql.deleteCharAt(sql.length() - 1);
sql.append(")");
log.info("[{}] - 插入操作:{}",table,sql);
Query query = runCountSql(sql.toString());
query.executeUpdate();
}
添加用户页面,在系统管理界面,管理员可对用户信息进行添加、修改或删除,添加用户输入账号、密码、昵称、手机号码、邮箱、邮箱认证、仓管公号、仓管姓名、系统用户、头像等信息提交,如图5-3所示。
![](https://i-blog.csdnimg.cn/direct/fa5dc5a6af0a42128f7983ac83097a47.png)
图5-3 添加用户面图
仓库信息管理页面,在仓库信息管理页面,可查看仓库信息列表详情、管理员在此页面还可以对货物入库、出库进行权限的管控,并根据需求进行删除、添加或查询仓库信息,如图5-4所示。
![](https://i-blog.csdnimg.cn/direct/dd8e59f06e66410b9f285ade6b690a16.png)
图5-4 仓库信息管理页面
仓库信息管理界面逻辑代码如下:
@RequestMapping(value = {"/avg_group", "/avg"})
public Map<String, Object> avg(HttpServletRequest request) {
Query count = service.avg(service.readQuery(request), service.readConfig(request));
return success(count.getResultList());
添加仓库信息页面,在页面仓库信息添加输入、仓库编号、仓库名称、仓库类型、仓库面积、仓库地址、产品编号、名称、类型、品牌、价格、库存数量、仓库情况等信息的录入,完成新增仓库信息,如图5-5所示
![](https://i-blog.csdnimg.cn/direct/4fca0a88c89f4ed5b333dcec99f4ac8d.png)
图5-5添加仓库信息界面图
入库信息管理,管理员查看入库信息列表中的详情内容审核状态等、管理员列表中的某一条详情进行信息填写审核并提交,并可根据需求进行查询、重置、删除等操作。如图5-6所示。
![](https://i-blog.csdnimg.cn/direct/b5b3eb152ecb4bcca6d68a34936c2f71.png)
图5-6入库信息管理界面图
入库信息管理关键代码如下。
@RestController
@RequestMapping("auth")
public class AuthController extends BaseController<Auth, AuthService> {
/**
* 服务对象
*/
@Autowired
public AuthController(AuthService service) {
setService(service);
}
}
售后信息管理页面,仓库管理登录系统,可以通过输入客户名称、售后类型、审核状态进行搜索查询,仓库员在售后信息列表中进行售后信息的查看并对货物退货处理进行权限管控等,如图5-7所示
![](https://i-blog.csdnimg.cn/direct/a3415bc2118a4562b8f292fd96ac5eb4.png)
图5-7售后信息管理界面图
售后信息管理的关键代码如下。
@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);
仓库员输入产品价格、购买数量、售后类型、退款金额、退货数量、仓管用户、仓管姓名、实际退货、实际退款、验收情况等进行退货处理,界面如图5-8所示:
![](https://i-blog.csdnimg.cn/direct/b050f85c8bdb47a49b4bd41059b1bcc4.png)
6 系统测试
一个系统设计好后,就会进入测试阶段,测试的目标是检验设计好的网站是否可以正常无误的运行,尽可能的发现网站的问题,已使后期网站投入使用后网站尽少出错。
6.1 测试定义
系统测试主要是判断系统是否可以正常运行,功能模块是否可以实现操作。程序
代码中是否有错误出现。测试程序是开发过程中的一个主要问题。就算系统完成的再好,再进行程序测试时也会也会发现一个重来没有被发现的错误信息。
测试不仅是系统开发的开始,而且应该贯穿整个系统的整个生命周期。评估系统质量的方法不局限于系统编码和过程,应该与软件设计工作和历史需求分析密切相关。系统错误,不一定是代码错误,可能是阶段的设计摘要和设计细节存在问题,问题也可能出现在需求分析阶段。从实际情况来看,最初的问题很可能是一个小错误,根据按钮的原理,按钮后的按钮位错将是所有位错。该系统的原因也同样适用,随着后续的开发工作,误差将越来越严重。因此就应该对系统进行测试,在一开始就发现系统中存在的问题,就能保证以后系统能够正常稳定的运行。在测试系统中,开发人员应该站在客户的角度来处理测试工作,而现在主要的测试方法是黑盒测试。测试的目的可以概括为以下几点:首先,用户界面和客户需求是一致的,设置界面和设计风格统一;第二,创新设计接口规范设计标准,具有独特的审美特征;最后,人类传统的接口以满足审美需求,不能盲目地追求一种独特的,合理的规划布局,符合审美标准。
6.2 测试目的
测试的目的在于要对系统的稳定和可操作性能进行对照检查。对于软件的开发利用最终的目的在最后的测试和试用,这是一个不可缺少的重要环节。对于软件开发者而言,在对每一个单独的功能进行编排时候,都要有单独的测试,并通过测试阶段才可以研发多个功能性软件,这样既缩短了研发时间,也可以在的单个的早期测试中发现问题,以免融合后的软件,在查找问题时就很难快速解决或者急速定位问题。
眼镜中心库存信息管理网站开发设计完成后,需要对其进行系统测试,测试的主要目的就是发现并找出系统中存在的问题,并及时的进行解决,确保系统可以正常稳定的运行下去,在进行系统测试的时候,在一定要非常的认真、仔细,切记不能粗心,不能放过一个漏洞,测试时候一定不要着急,要按照之前指定好的测试步骤一步一步进行,并且将测试的结果进行详细的记录,我们在进行测试的时候做好选择自动化的测试,这样既可以节省时间而且也能确保测试的准确性,如果采用人工测试的方法就不会这么的方便,由于人工测试有很多不确定的因素,在测试过程中很可能会出现一些问题,用机器测试就不会出现任何的问题,而且机器不会疲惫会一直二等工作下去。在测试的时候一定要非常专注,时刻关注着测试的结果,一但发现异常及时进行修改,最后,测试完之后的文档应该保存下来,方便以后测试时用到。系统测试的方法有很多,对于眼镜中心库存信息管理网站的测试,我们使用了测试用得最多的黑盒测试方法来对该系统进行测试。
6.3测试方案
对测试计划的把握是测试方案的重中之重。所有的技术难点应该都被包含在这个测试计划之中。而且我们要保证能与目标形成一致性,以至于能够测试出一些主要存在的错误和一些错误的漏洞。可以完美解决这些问题就只有白盒测试或者黑盒测试。
构造测试是白盒测试的另一个名字,了解与分析程序的结构以及性能功用的,从而我们可以得到最终想要的结果并且观察出是不是每一条程序都能得到。
性能测试是黑盒测试别称,程序本身的运作通过程序的进程来观察,主要是看一下程序是不是能够像我们预期的目标那样发展,看一看我们的程序最终能不能完整的得到我们最后想要的功能和储存想得到的数据,到最后看一下我们的这个程序完整性能不能达到要求。
(1)模块测试
单元测试就是模块测试,顾名思义就是测试每个模块所承担的功能是否能够实现,这个测试就是为了找出代码在实际的设计运转中某一些小的程序所出现的偏差,很好地改正这些错误,就说明我们模块测试进行很成功过。
(2)集成测试:
集成测试就是对系统的测试以及对他子系统的一些性能测试,他检查的事系统的包装程序信息。找出其中的问题。他的优势主要有以下这几点:
软件耗费较少。
可以提前发现端口的错误。
更好的地位系统中错误的位置。
从底部往上面进行的方案针对于偏下层的结构,而中间的结构就采用折中的方法。
(3)验收测试:
终于到了结尾性的工作了。就是为了给用户看一下我们的系统功能是否达到了预期的效果。我采用了性能测试也就是黑盒测试对系统进行测试。
其结果是分别是:
有一定的差异在用户的需求。
再者就是结果与之差不了多少。
到了最后了,我们发现的问题都是与用户的需求存在一定的关联。
1、登录测试
测试点:登录
测试的目标:输入账号密码以及验证码后系统会自动进行验证是否正确。
所用的环境:Windows10和IE浏览器。
输入信息:用户名、密码。
步骤:
(1)首先我们打来浏览器,进入该系统的登录界面。
(2)在进入页面登录部分以后可以进行对用户名、密码进行测试,具体测试输入情况如下表6.1所示。
表6.1 登录测试
情况 | 用户名输入 | 密码输入 | 期望结果 |
(1) | 15546219225 | 1244566 | 提示“用户名或者密码错误,或账号未经审核” |
(2) | aaaaa | 123456 | 提示“用户名或密码错误,或者账号未经审核” |
(3) | 15546219225 | hangguowei | 登陆成功 |
6.4系统分析
眼镜中心库存信息管理网站设计要求基本都可以达到,此系统具有完整的软件功能,良好的用户界面,能够正确的处理错误信息,而且能够准确的提出错误的种类。但是系统测试时也出现了一些系统的不足和缺陷,所以在今后的日子里我会对其视觉上的不足作出修改,其次系统的代码和数据库出现了非常多的冗余现象,都是因为对编程技术的应用不够熟练,在日后我会加强自己的自身学习和能力,减少这样的冗余现象。
经过对上述的测试结果分析,眼镜中心库存信息管理网站无论是在技术方面,还是操作方面,还是经济方面都是完全可以实行的,并且经过测试,该系统操作简单,所有的功能都可以实现,因此该系统可以满足人们的使用需求,值得被推广。
7 结论
本文研究了眼镜中心库存信息管理网站的设计与实现,在文章开端首先对个研究背景、研究现状和研究内容作了简单的介绍,然后通过系统分析,引申出本系统研究的主要内容。
通过对springboot框架技术和mysql数据库的简介,从硬件和软件两反面说明了眼镜中心库存信息管理网站的设计与实现的可行性,本文结论及研究成果如下:实现了springboot框架与mysql数据库相结合构建的眼镜中心库存信息管理网站,通过本次眼镜中心库存信息管理网站的设计与实现的研究与实现,我感触到学习一门新技术,最重要的是实践,只有多动手才能尽快掌握它,一个系统的开发,经验是最重要的,经验不足,就难免会有许多考虑不周之处。要想吸引更多的用户,系统的界面必须要美观、有特色、友好,功能要健全。
由于在此之前对于springboot知识并不了解,所以从一开始就碰到许多困难,例如一开始的页面显示不规范、数据库连接有问题已经无法实现参数的传递等等,不过通过我不断的查阅相关的资料,以及向老师同学请教,最后出现的所有的问题都得到了解决,通过这次的系统开发,我学到了很多的知识,也明白了自己在哪些方面有不足的地方,尤其是学会如何从大量的信息中筛选出所需有用的信息,同时我更加深刻的体会到了,虽然书本上的大部分知识都是有价值,正确的,但实际上每个人编程的思路和对数据处理的方法、思想都是不同的,这就要求我们一定要通过实践才能找到解决问题的方案。在此次毕业设计活动中,我不断的提高了自己,也得到了宝贵的经验,我相信这些对我以后的发展都会有很大帮助。
通过这次眼镜中心库存信息管理网站的开发,让我学到了更多的知识,同时通过这次系统的设计也让我明白了自己在哪方面有不足,以后加以学习争取可以开发住更多有用的适用的系统软件,本次系统的设计提高了我的编程水平,为了我今后系统的开发打下了结实的基础。
参考文献
[1]Handini E ,Hasenaka T ,Barber D N , et al. Systematics of slab-derived components in Central Java, Sunda Arc: Evidence for differential material transfer across the Southeast Asian convergent margin [J]. Tectonophysics, 2024, 873 230229-.
[2]申雪萍,原仓周,邵兵. 面向软件实践能力的Java程序设计课程教学改革探索 [J]. 计算机教育, 2024, (02): 20-25.
[3]吴伶琳. 基于SpringBoot的客户关系管理系统设计与实现 [J]. 无线互联科技, 2023, 20 (24): 60-62.
[4]Ghoshal A . Oracle’s MySQL HeatWave gets Vector Store, generative AI features [J]. InfoWorld.com, 2023,
[5]于明,陶成,綦心. 浅析测量瞳距和眼镜光学中心距离 [J]. 玻璃搪瓷与眼镜, 2023, 51 (07): 20-23+27.
[6]陈袁媛. 基于ERP系统的SH集团库存管理研究[D]. 中原工学院, 2023.
[7]国家眼镜玻璃搪瓷制品质量检验检测中心与蔡司光学联合实验室环带微结构团体标准启动签约仪式成功举办 [J]. 玻璃搪瓷与眼镜, 2023, 51 (05): 41.
[8]屈晶. 基于Excel软件的电子商务销售与库存数据管理分析 [J]. 科技资讯, 2022, 20 (16): 8-10. D
[9]马永伟, 兽医综合信息管理系统V1.0. 甘肃省, 临泽县动物疫病预防控制中心, 2022-08-01.
[10]梁滢. Z公司库存管理优化研究[D]. 宁夏大学, 2022.
[11]于婧. DFYF汽车饰件有限公司仓库存贮管理研究[D]. 江苏大学, 2022.
[12]杨刘平, 红酒销售库存信息管理软件. 陕西省, 西安欧品尚优信息技术有限公司, 2022-03-25.
[13]杨帆. ERP在企业库存管理中创新应用 [J]. 中国外资, 2022, (06): 127-129.
[14]韦庆满. 连锁便利店管理系统的设计与实现[D]. 北京邮电大学, 2022.
[15]赵辉. 钢铁企业设备备件库存管理与控制 [J]. 冶金与材料, 2022, 14 (01): 177-178.
[16]Hejing W . Commerce Middle Office Management System Based on Springboot [J]. International Journal of Advanced Network, Monitoring and Controls, 2022, 7 (2): 32-45.
[17]浙江大学宁波科创中心与国外团队合作开发出智能隐形眼镜可检测血糖 [J]. 传感器世界, 2021, 27 (09): 37.
[18]叶灵东,赵珂,何伟龙等. 配装眼镜光学中心水平距离和垂直互差测量结果的不确定度评定 [J]. 玻璃搪瓷与眼镜, 2022, 49 (09): 34-36.
[19]程城. 定配眼镜光学中心单侧水平偏差测试方法的研究 [J]. 玻璃搪瓷与眼镜, 2022, 49 (05): 6-9+43.
[20]张欣. 国家眼镜玻璃搪瓷制品质量监督检验中心成为2020年企业标准“领跑者”评估机构 [J]. 玻璃搪瓷与眼镜, 2022, 49 (01): 51.
致谢
本次毕业设计圆满的结束了,通过这次毕业设计我学到了很多的知识,也提高了我软件开发的能力,在系统开发设计的过程中,出现了很多的问题,但是通过老师和同学们的帮助,最后所有的问题都得到了解决,因此我要感谢在此过程中对我帮助的老师和同学们,感谢指导老师帮助我选课题,给我做详细的讲解,给我提供设计所需要的各种设备,也经常询问我进度与成果,再有难点的时候给我解决思路,帮助我顺利完成。没有他的指导,也不会有我今天所展现出的成果。
首先我要感谢我的指导老师,指导老师在教学任务繁忙的情况下,抽出时间帮助我纠正我在设计当中出现的问题,并耐性地为我的论文作校正,是他的定期检查和指导使得我们的毕业设计高质量完成。他在我整个课题开发和设计的过程中,为程序的设计、框架的设计、代码的撰写方面以及论文框架的设计提供了很多宝贵的意见,并且为我推荐了许多有用的资料和文献,他的指导和建议使我受益匪浅,有了指导老师的辅导和指点,我论文才能够顺利完成。老师的认真负责的工作态度和治学严谨之道使我们这些即将踏入社会的毕业生受益匪浅。
然后要感谢我的同学们,感谢大家对我这次毕业设计的帮助, 也感谢大家在大学生活中对我的陪伴,使得我的大学生活过的很快乐。
另外,我还要感谢父母,感谢一直以来对我的支持,让我能够顺利的完成我的学业,没有你们也就没有我的今天,感谢你们无私的付出,未来我一定会报答你们的。
最后,感谢在座的所有参加我论文答辩的老师们,感谢大家的聆听,你们辛苦了。
免费领取项目源码,请关注❤点赞收藏并私信博主,谢谢-