摘 要
随着互联网的快速发展,在线购物、在线支付已经成为当今主流,随之而来的是货物和数据的增加。与此同时也加速了物流行业的发展,越来越多的货物源源不断的送往各个城市的仓库,伴随着的是数据难以存储,货物难以管理,同时还会出现各种各样层出不穷的错误。因此,传统的仓储管理方式已经无法满足当今社会的需求,开发一个比较完善的大数据物料仓储管理系统势在必行。
本文采用目前市面较为流行的SSM框架,采用了Spring、Hadoop等技术,设计并开发了一个基于大数据的物料仓储管理系统,实现了出入库管理模块、基础数据管理模块和系统维护模块。本文将从绪论、系统开发的相关技术、系统分析、系统实现、系统测试和总结六个部分进行论述。
在未来,使用计算机软件管理仓储是大势所趋,大数据物料仓储管理系统可以提高工作人员的工作效率,节省管理开支,优化仓储的流程,可以更好的保障物流体系的完整性。
关键字:大数据;SSM;Mysql;Spring
1绪论
1.1 系统的开发背景及意义
当前,随着信息技术的不断发展和进步,互联网也越来越成为人们生活和生产工作中不可缺少的一部分。通过网络技术,人们之间高效的进行沟通、团队协同工作和内容共享都非常简捷。网络信息应用服务已日益广泛地被应用于经济各个领域。在此市场背景推动下,电子商务概念应运而生,并因此迅速地被发展成熟起来。近年来,随着人们生活水平的提高,以及互联网公司的飞速发展。在线支付和在线购物逐渐成为主流,随之而来的就是数量庞大的货物,并且由于新冠病毒的影响,也加剧了这一趋势。但是随着货物的增加,传统的仓储管理方式无法满足这种每天数以千计的货物,所以需要计算机的辅助进行相关管理。
传统的仓储管理一般要经过入库登记、人工拣货、出库登记等操作。随着货物的不断增加以及出入库的次数不断增加,采用人工的方式登记非常繁琐且非常容易出错。并且采用纸质的登记也存在着一个非常大的隐患,纸质登记表不但占空间且随着时间的推移纸质可能会存在一定的损伤,如果未来客户想要查询某天的货单,可能存在丢失或者破损的情况。因此,使用计算机的仓储管理系统的优势就凸显了出来,不仅不需要考虑纸质存档的丢失,而且便于工作人员操作,提升出入库的效率,每次操作记录都会存储在数据库中,便于未来客户查询,降低了货单丢失的风险,还可以避免货物丢失的风险。每次出入库的操作都会被记录下来,防止篡改记录偷取货物。仓储管理系统的出现极大的简化了传统纸质的成本,并且提升了工作效率,即使货物再多,工作人员也能快速的处理[1-5]。物联网的出现,使得我们需要处理的数据是海量的,海量的数据成为上G甚至于T级别的数据,单独的计算机的资源总是有限的,对于如此庞大的数据量,单独的计算机很难进行处理,传统的计算方法已经不能满足在速度和性能上的需求。在这种情况下,分布式系统和并行计算应运而生,分布式的系统可以通过加入多台计算机,从而提高系统的总资源,以满足在资源上的需求,同时,在分布式系统上进行计算,在不同的机器上同时运行同一个任务,从而提高系统的运算性能。
本文设计开发了一个基于SSM框架的Hadoop仓储管理系统,以解决当前以在线购物为主流的情况下,产生的大量货物,大量数据难以管理问题。本文主要实现了库存管理,出入库管理,人员管理,基础数据管理,系统维护等功能。
1.2 国内外研究现状
1.国内研究现状
近年来,我国的制造业、零售业以及物流行业都得到了长足的发展,并且随着人们生活质量的提高,对货物的要求也不断增加。网上购物逐渐成为主流,货物越来越多,导致存放物料的仓储设备也就随之增加,但是这也暴露出很多问题。各个部门都在建立自己的仓储,这导致仓储数量多且分布广泛,布局十分不合理,这使得工作人员管理起来十分困难,仓储的自动化程度很低,无法高效的完成工作。大数据物料仓储管理系统的出现不仅可以让对仓储的管理更加精细化,同时也能解决调控的问题。这些年仓储管理系统的研究主要关注的是如何节省人力资源,更便捷的进行仓储的管理,从最开始的桌面应用到现在的基于SSM框架的联网仓储管理,仓储管理系统已经逐步的成为企业不可缺少的一部分[6-7]。
2.国外研究现状
在外国,仓储物料管理和在线服务形式已是开展得的时间都已经比较之早,随着现代电子商务及物流网络的快速发展普及,现代电子商务中网上订单式交易也越发普及,这种仓储管理模式随着社会的进步也越发成熟。相比于国内的管理,国外针对仓储的管理已经相对来说非常成熟了,如日本,X等。在日本,日本的企业广泛的应用仓储管理系统对零售库存进行管理,而在X,X的企业在1980年就已经开始了解并研究仓储管理的相关理论知识,同时开发出了配套的管理软件。进过几十年的发展,国外的国家已经有了非常成熟的仓储管理系统的设计团队,供应团队以及维护团队,并且这一领域已经逐步成为一个行业。
1.3 主要内容及结构
绪论介绍研究了仓储物料管理系统开发的整体研究及背景,分析评价了开展该服务系统研发的整体研究工作意义何在和巨大发展空间潜力,并分别通过实证分析相关结果最终确定开展了哪些主要系统的开发研究及内容选择和应用开发工作,最后进行了总结。
系统需求分析本章主要针对功能需求、系统总体设计、系统功能模块设计、数据库设计以及相关技术这几个方面进行介绍,最后对本章进行总结。
系统总体设计本章主要介绍了本系统总体设计,以及每个模块的主要功能。
系统详细设计与实现本章主要介绍系统的实现,主要包括运行环境、主界面的实现、登录模块的实现、仓储管理模块的实现、出入库管理模块的实现、基础信息维护模块的实现和系统维护模块的实现,最后进行了总结。
系统测试本章进行了黑盒测试,主要针对不同功能模块输入不同数据进行测试。
总结本章对论文总体进行了总结,以及对未来进行了展望。
1.4 本章总结
本章主要针对仓储管理系统的选题背景和选题意义进行分析,并且分析了仓储管理系统与传统人工方式相比所带来的好处,最后总述文章主要内容和结构。
2系统需求分析
2.1 可行性分析
可行性分析是计算机应用开发必备的步骤。在正式开发之前,我们需要预测在未来开发中可能碰到的问题,同时要评估仓储管理系统对仓库所带来的收益和风险,并且需要计算项目成本。如果不进行这一步,预算不够的话,项目开发到一半时发现资金无法支撑整个项目的开发,这会对仓库造成巨大的损失。因此,本节主要对系统的技术层面、操作层面、已经经济层面进行可行性分析。
从技术层面来说,本文开发的仓储管理系使用的框架都是目前较为流行的框架,并且本文开发的系统所使用的都是较为轻量工具如Mysql。并且使用ssm框架来实现MVC模式中的业务层、视图层和持久层。本次开发面向的是仓储,因此使用Tomcat服务器完全可以满足日常需求,由于正常用户量最多500,所以Mysql数据库完全够用,其完全免费,体积好可以降低成本。本系统开发周期短,可以快速上线使用,因此在技术层面上是完全可行的。
从操作层面来说,本系统为了工作人员快速上手,所以设计的界面简单易懂,清楚明了,没有复杂的操作,通过简单的培训就可以快速入手。日常的操作只需要几步就可以完成,这样可以有效的提高员工工作效率。对于不同角色本系统提高不同的权限,以此来防止某些误操作,同时系统中所有的操作都会被记录,如果出现问题可以快速定位解决问题。本系统操作简单,界面友好,所以在操作层面上是可行的。
从经济层面来说,本软件的实现只需要开发费用和运营费用,但是对比传统的仓储管理方式来说,软件可以帮助提升工作人员的效率,并且可以减少发生错误的可能性,从而提升仓库的存储能力。所以从经济层面上来说,本软件的开发也是可行的。
2.2 功能需求分析
根据对实际仓库的需求的考察,仓储管理系统主要由管理员控制,具体需求如下表所示。
表2-1 功能需求列表
编号 | 功能名称 | 功能描述 | 输入内容 | 输出内容 |
1 | 管理员信息录入 | 管理员录入后可以进行本系统所有操作 | 姓名,、性别、电话、地址等 | 录入的结果(提醒“仓库管理员的系统初始密码为该ID”) |
2 | 管理员登录 | 管理员登录仓储管理系统 | 用户名、密码 | 用户登录是否成功 |
3 | 入库 | 管理员对货物进行入库 | 供应商、货物名称、数量等 | 货物入库是否成功 |
4 | 出库 | 管理员对货物进行出库 | 供应商、货物名称、数量等 | 货物出库是否成功 |
5 | 供应商信息添加 | 添加供应商信息 | 供应商名称、负责人、电话、地址等 | 提示添加的结果 |
6 | 客户信息添加 | 添加客户信息 | 客户名称、负责人、电话、地址等 | 提示添加的结果 |
7 | 货物信息添加 | 添加货物信息 | 货物相名称、货物类型、货物尺寸、货物价值 | 提示添加的结果 |
8 | 仓库信息添加 | 添加仓库信息 | 仓库地址、仓库面积、仓库状态、仓库面试 | 提示添加的结果 |
9 | 货物查询 | 查询货物相关信息 | 货物ID、仓库 | 显示所有货物 |
10 | 更改密码 | 管理员密码更改 | 原密码新密码 | 是否修改成功 |
11 | 系统日志 | 显示所有管理员的操作 | 无 | 显示所有操作日志 |
12 | 登录日志 | 显示所有管理员的登录IP | 无 | 显示所有登录IP |
13 | 管理员查询 | 显示所有管理员 | 无 | 显示所有管理员 |
2.3 数据流图
管理员和超级管理员都可以通过登录系统的界面来进入系统,如下图所示:
图2-1数据流图
用户在仓储管理调试系统时,系统通过账号和密码判断登录的是超级管理员还是管理员,再根据登录的角色跳转到不同的页面上,用户在系统内操作时,根据操作的不同数据会从页面流向Mysql数据库,再从数据库中拿到数据反馈给用户。
2.4 相关技术介绍
2.4.1 MyBatis框架介绍
文使用MyBatis 作为持久层框架,该框架有很多优势,主要可以根据sql语句动态配置来对数据库进行相应操作,该框架同时包含数据库的高级特性如触发器,函数,存储过程等。MyBatis 使用配置文件的方式记录数据库连接参数实现连接,不需要采用传统的Jdbc模式就能拿到存储在数据库中的数据,采用这种连接方式能有效的减少创建数据表和销毁数据表时的开销。此外,该框架以配置文件的形式实现SQL语句进而操纵数据库,Java的类映射成数据库中的数据。
Mybatis 框架主要分为接口层、数据处理层、基础支撑层这三层架构,如下图所示。
图2-2Mybatis结构图
Mybatis的结构概述:
(1)第一层接口:api接口层提供相关功能的接口,服务层调用这些接口后。实际处理业务层只需要使用这些接口就可以获得相应的功能,从而完成对数据库的操作。当系统调用某一接口后,Mybatis框架就可以获取配置文件中对应的sql语句对数据库进行相应增删改查。
(2)第二层数据:当服务层调用接口层的接口后,数据层会找到相应的配置文件中的sql语句对数据库进行增删改查,操作数据库后数据库会返回相应数据。数据层主要是将原始操作封装为接口以便调用,当其他层调用这些接口后可以非常简单的对数据库进行相应增删改查。
(3)第三层支撑:基础支撑层主要上存储连接数据库操作数据库的基本的参数,例如操作数据库的驱动,数据库的用户名及密码等。
2.4.2 Spring框架概要
本文使用Spring框架作为主要设计层框架,该框架是目前较为流行的开源层框架,该框架主要负责业务层和其它层的耦合问题,该框架主要是采用接口解决耦合问题,虽然有一定弊端,但是可以解决一部分耦合问题。
在任何TomCat和JBoss这类服务器中,Spring框架可以承受不同环境的影响,使用基础功能。同时Spring 框架不会受到特定的服务器限制,不会将自身和指定项目和对象相绑定,这一特性展现了Spring框架的优势:在Spring框架中已经配置好的对象可以在不同的项目和不同环境中执行。所以Spring框架可以被不同服务器重用,降低耦合性,增加可扩展性。 Spring框架的体系结构如下图所示。
图2-3Spring体系结构
在Spring框架中每个模块或组件都是独立的,他们可以单一的被调用,或者多个联合被调用。主要包括核心容器、Sprisng上下文和SpringAOP。
(1) Spring中最基本的功能模块(特性)由核心容器实现。该容器采用对象工厂来创建、加载实例。该容器的功能主要利用控制反转对资源进行操作,将原本资源控制权限从双方控制转变为由Spring的核心容器来控制,进而减弱了JAVA对象的耦合度,从而让实现功能时主要关注使用对象而不是创建对象。
(2) Spring 上下文主要是通过Spring-content.xml这一配置文件保存框架功能的相关参数信息,当工程启动时Spring框架可以自动读取Spring-content.xml该配置文件并对所有模块进行初始化。在Spring-content.xml配置文件中的Spring-content标签中配置相关功能,例如检验输入字段的有效性,管理程序异常等。
(3)Spring框架中除了IOC功能外之外,该框架还有另外一个叫做AOP的功能也十分强大。该功能本质上是一个阻断器,主要的功能是操作某些将要执行或者已经执行完成的方法。使用该功能,我们可以将仓储管理系统中设计的核心功能和一些通用的方法分开,易于实现日志管理,数据库基本信息的管理从而减少代码冗余,将核心代码和通用代码更加具体、清晰的表现出来。
2.4.3 Spring MVC 框架介绍
Spring MVC框架主要核心思想的采用一个分发器来处理用户的各个请求,当有一个请求进来后,该分发器会将这个请求分配给相应的程序进行处理,此外,该框架还可以进行地址映射、数据库视图分析、程序参数检验、对文件进行便捷的上传下载等功能。该框架主要采用注解的方式来表示不同功能,通过Controller注解来获取所有请求,拿到请求后用RequestMapping注解来处理请求。该框架的主要的体系结构如下图所示。
图2-4Spring体系结构
Spring-mvc主要由七个核心部件组成,共同完成从请求到响应再获取数据库数据,再到返回数据这一流程。在这里我们主要介绍前端控制器(DispatcherServlet)、处理器映射器(HandlerMapping)、处理器(Handler)、处理器适配器(HandlAdapter)、:视图解析器(ViewResolver)和视图(View)。
(1)前端控制器(DispatcherServlet)主要处理用户的请求,当用户的请求到达后,该控制器作为MVC设计模式中的controller来控制整体的数据流动,该组件可以协同其它组件完成用户请求,采用分发器的形式来减少组件之间的耦合度。
(2)处理器映射器(HandlerMapping)主要是根据用户不同的相应,将任务分配给不同处理器,主要采用配置文件实现接口和注解的不同映射。
(3)处理器(Handler)主要功能是控制后端程序,根据DispatcherServlet分发的不同请求处理器进而处理用户的不同请求,改模块通常是由程序员根据业务进行自定义,因此该模块可塑性很强。
(4)处理器适配器(HandlAdapter)主要上用来针对Handler无法处理的某些请求,DispatcherServlet分发任务后发现没有handler可以解决,这时会发送到该模块上进行处理。
(5)视图解析器(ViewResolver)主要是将handler处理后的结果转化为View视图,主要流程上首先将逻辑视图转化为页面,然后生成对象,最后对该视图进行渲染,然后根据静态资源CSS配置后显示给用户。
(6)视图(View)主要包括jsp页面、html页面和xml页面等。该功能模块主要上根据具体的不同业务进行具体的开发。
2.4.4 Hadoop技术
本系统使用Hadoop技术作为仓库的集群。Hadoop是一个使用Java语言编写的大数据管理平台,该技术采用MapReduce作为分布式架构。本架构是最基础的架构,允许用户依靠该技术进行简单的模型编程,对数据进行分布式处理,其设计模式可以从单一的服务器到数千台机器,每个服务器都能提供本地的存储功能。本文开发的仓储物料管理系统中,每个仓库可以当做一个独立的服务器进行部署,最后将所有数据汇总,这样可以并行的处理海量的数据。
Hadoop是Apache开源组织的一个分布式计算开源框架,是一个包含有很多子项目的大家族,图1显示了Hadoop整个家族的各个子项目。
图2-5Hadoop整体结构
MapReduce是一种编程模式,主要分两部分:map函数、reduce函数。MapReduce编程中,主要就是实现这两个函数,其执行过程见图2-6。
图2-6Mapreduce模型
MapReduce是一种主从结构,它有一个Job Tracker和多个Task Tracker,通过Job Tracker把任务分成多份,分别让多个Task Tracker并行执行,这样可以加快任务执行速度,提高系统的性能。
HDFS是分布式文件系统,是AHC项目的一部分。
图2-7HDFS 结构图
图2-7是HDFS的体系结构图,下面介绍主从结构的组成。
(1)NameNote:主节点。
(2)DataNode:负责存储文件,在这里,把一个文件被分割成很多的block存放在Linux系统中,为了保证文件的安全性,文件有很多的冗余副本。
HBase的索引是Row Key、Column Family、以及时Timestamp,每个值是一个未经解析的支付串。其结构见图2-8。
图2-8HBase 结构图
2.4.5 Mysql数据库
随着计算机技术的发展,传统的采取文件存储数据的方式不再适用与现代计算机的需求,所以工程师设计了数据库来解决计算机数据存储的问题。数据库的出现,使计算机的发展迈进了一大步,有了良好的数据管理软件,计算机的程序免去了针对复杂数据的设计。MySQL是一款目前较为流行的轻量级开源的数据库软件,由于其免费的特性得到很多人的青睐,是目前使用人数最多的数据库。
在命令提示符下操作MySQL数据库的方式不太方便,所以本文使用的MySQL图形化管理工具是Navicat for MySQL,该工具界面清晰明了,操作相对简单,便于用户对数据库中的数据进行管理,它使用的图形化用户界面可以让用户使用和管理更为简洁和明了。Mysql数据库可以以独立的进程运行,这使得程序员可以轻易的根据其所提供的接口进行数据操作。通常数据库接口采用驱动进行连接,这些驱动通常由数据库厂商提供。
2.4.6 JSP技术
本系统使用JSP页面进行编写,JSP是一种网页开发技术,是动态的技术,该技术可以让Java代码嵌入在HTML网页中,动态的修改网页上的数据,达到动态可视化的目的。JSP本质上是Java中的servlet,主要是用于Javaweb程序中用户界面与服务器界面的交互,该技术除了可以在HTML页面中嵌入Java代码,还可以在XHTML和XML中进行相同的操作。
JSP页面主要是通过网页中提交表单的形式,获取用户的数据,对数据库进行相应的操作,当数据库响应后再动态的创建HTML页面。JSP有很多标签,每个标签的功能都不相同,如有访问数据库的,有记录用户选择的等等。
2.5 本章总结
本章主要针对仓储管理系统的功能需求、可行性分析、数据库设计和相关技术几个方面展开,利用图表的形式展示了系统中各个部分的设计情况,并配有文字详细描述了各个功能模块的设计使用情况。
3系统总体设计
3.1 系统总体设计
仓储管理系统由管理员进行管理,具体功能模块如下图所示。
图3-1系统功能图
仓储管理系统系统其中主要包括库存管理,出入库管理,人员信息管理,基础数据和系统维护功能。其中基础数据主要是管理仓管、供应商等信息。
3.2 系统功能模块设计
(1)登录功能模块
该模块的主要功能是判断管理员是否登录,只有登录后才可以使用本系统的相关功能在账号与密码验证成功的情况下,跳转到主界面,该模块是整个系统的入口。
(2)出入库功能模块
该模块主要包含出库功能和入库功能,本功能只有登录后才能使用,当货物被运送到仓库后,管理员使用入库功能,将货物的基本信息录入。当货物被提走后,管理员需要使用出库功能,录入相关信息。
(3)人员管理功能模块
该功能模块主要是使用超级管理员账号,为仓库管理员添加信息,建立账号,管理仓库。
(4)基础数据功能模块
该模块的主要功能是完善仓库信息,货物信息,供应商信息以及客户信息。简化管理员的工作步骤,不用每次入库时都对货物信息进行录入,直接查看现有的是否已经存在,如果不存在再进行录入。
(5)系统维护功能模块
改模块主要是记录管理员的各种操作,以及登录IP地址,防止货物丢失,防止货物被盗。
3.3 数据库设计
数据库模型的分析设计的实现能力主要指基于对数据库实体类数据表的模型设计的分析研究能力与具体分析模型设计的实现的结果,本节在文章结构中还将会尽量主要详细地提出从数据库分析设计中的最主要的概念模型设计出发并将给出ER图,并也将具体给出最主要的类型的数据表型设计的一些详细分析设计内容。
仓储管理系统采用Mysql数据库,本系统主要包括系统管理员表、客户表、供应商表、仓库表、货物表、操作动作表、入库表、出库表、登录日志表等11个表,每个表的具体设计情况如下所示。数据库E-R图如下所示。
图3-1全局E-R图
管理员内容表(admin)用来存储平台管理员的基本内容,表字段内容 如表3-1所示。
表3-1系统管理员表
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | USER_ID | Int | 4 | 自增 | 10 | |
2 | USER_USERNAME | VarChar | 50 | 是 | 255 | |
3 | USER_PASSWORD | VarChar | 50 | 是 | 255 |
系统管理员角色表(admin_role)用来存储平台管理员的角色信息,表字段内容 如表3-2所示。
表3-2系统管理员角色表
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ROLE_ID | Int | 4 | 是 | 10 | |
2 | USER_ID | VarChar | 4 | 是 | 10 |
系统供应商表(supplier)用来存储仓储系统供应商信息表字段内容 如表3-3所示。
表3-3供应商表
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | SUPPLIER_ID | Int | 4 | 自增 | 10 | |
2 | SUPPLIER_NAME | VarChar | 50 | 是 | 255 | |
3 | SUPPLIER_PERSON | VarChar | 50 | 是 | 255 | |
4 | SUPPLIER_TEL | VarChar | 50 | 是 | 255 | |
5 | SUPPLIER_EMAIL | VarChar | 50 | 是 | 255 | |
6 | SUPPLIER_ADDRESS | VarChar | 500 | 是 | 255 |
系统操作记录表(action)用来存储平台管理员操作表字段内容 如表3-4所示。
表3-4操作记录表
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ACTION_ID | Int | 4 | 是 | 10 | |
2 | ROLE_ID | Int | 4 | 是 | 10 |
仓库表(repo)用来存储仓储系统中仓库表字段内容如表3-5所示。
表3-5仓库表
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 | |
1 | REPO_ID | Int | 4 | 自增 | 10 | ||
2 | REPO_ADDRESS | VarChar | 50 | 是 | 255 | ||
3 | REPO_STATUS | VarChar | 50 | 是 | 255 | ||
4 | REPO_AREA | VarChar | 50 | 是 | 255 | ||
5 | REPO_DESC | VarChar | 50 | 是 | 255 |
存储表(record)用来存储仓储系统中库存信息的内容,存储表字段内容如表3-6所示。
表3-6存储表
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | RECORD_ID | Int | 4 | 是 | 10 | |
2 | RECORD_REPOSITORY | Int | 4 | 是 | 10 | |
3 | RECORD_NUMBER | Int | 4 | 是 | 10 |
入库表(record_in)用来存储仓储系统中入库信息的内容,入库表字段内容如表3-7所示。
表3-7入库表
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | RECORD_ID | Int | 4 | 自增 | 10 | |
2 | RECORD_SUPPLIERID | Int | 4 | 是 | 10 | |
3 | RECORD_GOODID | Int | 4 | 是 | 10 | |
4 | RECORD_NUMBER | Int | 4 | 是 | 10 | |
5 | RECORD_TIME | DateTime | 0 | 是 | 0 | |
6 | RECORD_PERSON | VarChar | 50 | 是 | 255 | |
7 | RECORD_REPOSITORYID | Int | 4 | 是 | 10 |
出库表(record_out)用来存储仓储系统中出库信息的内容,出库表字段内容如表3-8所示。
表3-8出库表
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | RECORD_ID | Int | 4 | 自增 | 10 | |
2 | RECORD_CUSTOMERID | Int | 4 | 是 | 10 | |
3 | RECORD_GOODID | Int | 4 | 是 | 10 | |
4 | RECORD_NUMBER | Int | 4 | 是 | 10 | |
5 | RECORD_TIME | datetime | 0 | 是 | 0 | |
6 | RECORD_PERSON | VarChar | 50 | 是 | 255 | |
7 | RECORD_REPOSITORYID | Int | 4 | 是 | 10 |
货物表(good)用来存储仓储系统中存储货物的信息,货物表字段内容如表3-9所示。
表3-9货物表
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | GOOD_ID | Int | 4 | 自增 | 10 | |
2 | GOOD_NAME | VarChar | 50 | 是 | 255 | |
3 | GOOD_RYPE | VarChar | 50 | 是 | 255 | |
4 | GOOD_SIZE | VarChar | 50 | 是 | 255 | |
5 | GOOD_VALUE | VarChar | 50 | 是 | 255 |
客户表(record_out)用来存储仓储系统中客户信息的内容,出客户表字段内容如表3-10所示。
表3-10客户表
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | CUSTOMER_ID | Int | 4 | 自增编号 | 10 | |
2 | CUSTOMER_NAME | VarChar | 50 | 是 | 255 | |
3 | CUSTOMER_PERSON | VarChar | 50 | 是 | 255 | |
4 | CUSTOMER_TEL | VarChar | 50 | 是 | 255 | |
5 | CUSTOMER_EMAIL | VarChar | 50 | 是 | 255 | |
6 | CUSTOMER_ADDRESS | VarChar | 50 | 是 | 255 |
3.4 本章总结
本章主要介绍了本系统总体设计,以及每个模块的主要功能。
4系统实现
4.1 安装Hadoop
先在master机器上安装:
(1)关闭防火墙。
(2)解压并重命名hadoop-1.1.2.targ z为hadoop
(3)配置hadoop环境变量。
在/etc/prof le中加入环境变量:export HAD OOP_HOME=/usr/local/had oop
(4)编辑SHADO OP_HOME/conf/had oop-env.sh文件。
#配置Java环境
Export JAVA_HOME=/usr/lacal/jdk/
(5)编辑$HADOOP_HOME/conf/core-sit.xml,详见图6。
(8)编辑master,将master添加进去。
(9)编辑slaves,将slave1和slave2添加进去。
(10)安装好后拷贝至如上两位置。同时对slave1和slave2上的/etc/profile文件进行相应的修改。
(11)验证Hadoop是否安装成功
在master上执行start-all.sh命令,然后执行jps查看java进程,如果界面如图4-4所示,则表示安装成功。
4.2 主界面的实现
本文实现的是一个仓储管理系统,该系统包含库存管理模块、出入库管理模块、人员管理模块、基础信息管理模块、系统管理模块和系统管理模块,主界面如图所示。
图4-5系统主界面
4.3 登录模块的实现
用户登录分为超级管理员、普通管理员。首先用户输入账号和密码,点击登录后系统调取数据库的数据进行比对,首先对比账号密码是否正确,如果正确则返回用户的权限,然后系统进入相应的主界面。登录模块流程图如下图所示。
图4-6登录流程图
登录界面如下图所示。
图4-7登录界面
4.4 出入库管理模块的实现
当管理员登录后,可以进行出库入库操作,如果想要入库操作,首先选择仓库,输入对应供应商和入库货物以及入库数量,出库的操作类似,如果供应商和货物不存在则需要先添加相关信息。
出入库管理流程图如下图所示。
图4-8出入库管理流程图
入库页面如下图所示。
图4-9入库界面
出库页面如下图所示。
图4-10出库页面
4.5 基础数据管理模块的实现
在管理员已经登录的情况下,管理员点击基础数据,可以对供应商,客户,仓库,货物等信息进行录入、更新修改、查询及删除。基础数据管理流程图如下所示。
图4-11基础数据管理流程图
由于篇幅显示,在这里只展示基础数据管理中供应商部分,界面如下图所示。
图4-12基础数据供应商管理页面
4.6 系统维护模块的实现
当管理员成功登录后,可以点击系统维护进行相关操作。该界面可以查询仓库管理员的操作以及登录IP等信息。
图4-13系统维护模块管理流程图
系统维护模块如下图所示。
图4-14系统维护模块界面
4.7 修改密码
在用户成功登陆系统后,可以点击左侧修改密码选项。点击后跳转到修改密码界面,在改页面中需要填写原始密码,以及两次新密码。如果两次新密码不一致,则系统会弹出“对不起,两次密码不一至,请重新输入”的信息。如果原密码不正确,则系统会弹出“原密码输入错误”的信息,如果修改成功则会退出系统,重新登录。修改密码模块流程图如下所示。
图4-15修改密码流程图
修改密码界面如下图所示。
图4-16修改密码界面图
4.8 本章总结
本章针对仓储管理系统主要介绍了系统的几个核心部分的功能实现以及所需要的运行环境,核心功能主要主界面的实现、登录模块的实现、出入库管理模块的实现、基础数据管理模块的实现、系统维护模块的实现与修改密码模块的实现。为了便于理解,本章在每个核心功能介绍部分附上了流程图、系统页面以及核心代码。
5系统测试
5.1 测试目的
为了仓储管理系统的稳定性与可用性,需要进行一定程度的测试来检验系统,本章主要针对系统的界面以及功能性进行测试,目的是保证仓储管理系统在部署到生产环境下可以正常,有效的运转。
分析仓储物料管理系统,确定要测试的内容并制定测试计划,本系统在Windows10 64位专业版上运行只进行功能测试。本文只进行功能测试,未进行压力测试。测试主要分仓储物料管理系统的功能模块测试。执行测试,准备搭建测试环境,并记录测试内容。提交并解决测试中的bug。
本次测试主要针对Web端的使用以及后台调用数据库是否正常进行测试,Web端主要对出入库管理、基础信息管理和系统功能维护功能进行测试,测试其是否正常运行,以及可能会出现的问题[8-10]。
5.2 测试方案
5.2.1 界面测试
本文采用黑盒测试Web端的界面,主要测试字体,窗口,以及其他元素是否正常。Web端界面测试项目如下表所示。
表5-1用户界面测试表
检查项 | 测试人 | 测试结果 |
窗口切换、移动、改变大小时正常吗? | 本人 | 正常 |
各种界面元素的文字正确吗?(如标题、提示等) | 本人 | 正常 |
各种界面元素的状态正确吗?(如有效、无效、选中等状态) | 本人 | 正常 |
各种界面元素支持键盘操作吗? | 本人 | 正常 |
数据项能正确回显吗? | 本人 | 正常 |
执行有风险的操作时,有“确认”、“放弃”等提示吗? | 本人 | 正常 |
有联机帮助吗? | 本人 | 正常 |
各种界面元素的布局合理吗?美观吗? | 本人 | 正常 |
5.2.2 功能测试
(1)用户登录测试
当用户以超级管理员身份登录,输入账号或密码为空时,提示框会提示右侧会出现“用户名不能为空”。当输入错误的账号或密码时,会弹出提示框显示“用户名或密码错误”。
图5-1用户登录测试界面
当用户使用正确的账号和密码登录时,系统会弹出提示框显示“登陆成功!”。这时页面会自动跳转到相应的角色主界面。
图5-2用户登录测试界面
(2)系统用户信息管理测试
对系统用户信息管理进行测试时,采用黑盒测试法中的等效性法和边界值法相结合的测试方法对功能进行测试,例如输入错误的数据,输入非法的字段或者输入超越输入框规定范围的数字(如年龄、手机号、QQ号和银行账号等)。系统用户信息管理测试表如下表所示。
表5-2系统用户信息管理测试
功能A描述 | 以管理员身份登录,添加、修改、查询用户信息 | ||
用例目的 | 是否能够正确修改信息 | ||
前提条件 | 用户安全登录系统界面 | ||
输入/动作 | 输入 | 实际情况 | |
示例:典型值… | 年龄 53 | 53 | |
示例:边界值… | 年龄 —10 | 输入数据有误 | |
示例:异常值… | 年龄 a | 输入数据有误 |
如果输入的测试数据完全正确,则弹出对话框显示“仓库管理员添加成功”,这时表示系统添加用户成功,具体对话框如下图所示。
图5-3录入用户信息成功界面
(3)部分功能测试
为了验证系统功能的有效性及完整性,本文做了大量黑盒测试。下表展示了部分测试实例。
表5-3部分测试用例表
模块 | 用例描述 | 预期结果 | 备注 |
管理员登录 | 用户名文本框中不输入任何数据 | 提示“请填写完整的信息” | 测试用户名是否为空 |
在密码文本框中输入“123”三个字符 | 提示“密码长度最少为6位” | 测试密码位数是否正确 | |
密码修改 | 在密码文本框和确认密码文本框中分别输“123456”和“258769” | 提示“两次输入的密码不匹配” | 测试用户两次输入的密码是否匹配 |
在用户管理中修改密码,原始密码若输入不正确 | 提示“原始密码错误” | 测试原始密码是否正确 | |
添加客户 | 客户信息内容为空 | 系统提示客户信息内容为空,客户信息添加失败 | 测试客户信息是否为空 |
输入客户信息 | 系统提示客户信息添加成功 | 测试客户信息是否成功 | |
添加供应商 | 直接点击添加 | 系统提示请输入相关信息 | 测试添加供应商功能是否可用 |
输入供应商信息 | 系统提示添加成功 | 测试添加供应商功能是否可用 |
5.3 测试结果
进过一系列的测试后,仓储管理系统基本可以按照开发需求正常运行,能够满足仓库的基本需求。本次测试项目主要针对系统日常使用进行测试,由于条件有限只进行了界面测试和系统测试,在未来可以尝试对系统进行一定程度的压力测试,检验系统的承载能力。
5.4 本章总结
本章主要针对仓储管理系统设计开发完成后进行一些列的黑盒测试,目的是在系统交付给仓库时,可以真正的直接部署在生产环境中。虽然本系统经过了界面测试和系统测试,但是没有条件尝试压力测试,并且本系统所涉及的并发场景并不多,所以也未能进行并发测试。
6总结与展望
从一开始,系统的设计和开发对我来说不简单,由于时间长,部分基础的理论知识已经忘记。后来,通过我的不断学习、试验、实验和修改,系统终于能够正常运行。这是真的很难,但充满了成就。感觉的过程。该系统与实际设计相符。在系统设计开发之前,对仓库管理特点进行了大量的调查研究。本系统是根据调查结果进行设计开发的,充分考虑了这些经济压力带来的具体需求。系统操作简单简捷,后台维护也非常简捷,让系统的每一个操作人员和用户都可以一目了然的操作,查看自己想要知道的内容,详细的了解出行带来的内容。具体情况,公开透明,促进旅游业的发展,提高经济的可持续发展。
本文根据当前大环境下仓库所处的情况,以及仓储管理数据的需求设计并开发了一个仓储管理系统。本文首先介绍仓储管理系统开发的背景及意义,发展现况以及论文的基本结构,然后介绍了开发所采用的相关技术SSM框架。随后进行了系统分析,主要针对功能需求、系统总体设计、系统功能模块设计和数据库设计几个方面进行介绍,并且针对这些设计完成了系统的开发,主要实现了仓储管理系统的主界面、登录模块、仓储管理模块、出入库管理模块、基础信息维护模块和系统维护模块。最后进行了系统测试,分别对系统界面和功能进行了测试,分析了仓储管理系统测试情况,以及存在的缺陷。
在未来,本系统可以继续完善,将系统的规模扩展到多个仓储管理版本,并且加入人工智能的方法对货物进行自动判断,减少人力的消耗。在多个仓储管理版本,需要考虑并发问题,并且在系统测试时需要加入压力测试,来保证系统运行的稳定性。
致谢
在此最后阶段,首先,我要向我的老师表示由衷的感谢,谢谢老师在此次设计过程中对我选题的建议,谢谢老师对我问题的解疑,以及谢谢老师对我论文格式的指导。其次,对我身边的同学表示感谢,在于他们的交流中,也解决了一些令我所困惑的问题,在他们的帮助下,大大缩短了论文完成的时间周期,也大大提高了此次毕业设计的质量。如果没有他们的帮助与支持,我完成此次毕业设计的周期将会大大延长,甚至可能无法按时完成此次毕业设计,因此,再此表示对我的老师、同学们表示由衷的感谢。
参考文献
[1] Joshua Bloch.Effective Java Programming Language Guide.Addison-Wesley.
[2] 徐飞龙.JSP的网络数据库连接技术探讨[J].时代汽车,2021(23):36-37.
[3] 庾佳.关于JSP动态Web开发技术课程建设思路的研究[J].电脑知识与技术,2020,16(14):216-217.DOI:10.14004/j.cnki.ckt.2020.1564.
[4] 涂华燕.基于MySQL宿舍管理系统数据库设计[J].电脑编程技巧与维护,2021(12):104-106.DOI:10.16184/j.cnki.comprg.2021.12.038.
[5] 闫继正,张雷,张海涛.基于MySQL的空管设备集中监控系统数据库设计[J].微处理机,2021,42(06):47-51.
[6] 李兆琪.基于MySQL数据库服务器创建企业工资管理系统[J].赤峰学院报(自然科学版),2021,37(11):10-11.DOI:10.13398/j.cnki.issn1673-260x.2021.11.004.
[7] 徐艺澜,沈艳,范恩,余冬华.基于PHP和MySQL的绿色垃圾回收系统设计[J].电脑知识与技术,2021,17(31):32-35.DOI:10.14004/j.cnki.ckt.2021.3094.
[8] 什么是黑盒测试?[J].电子质量,2019(02):23.
[9] 张勇斌,蔡吉飞,李烨.基于黑盒测试的高校课堂教学目标达成度研究[J].北京印刷学院学报,2021,29(10):86-89.DOI:10.19461/j.cnki.1004-8626.2021.10.027.
[10] 林勤花.黑盒测试用例设计方法及综合应用[J].电子测试,2018(17):88-89.DOI:10.16520/j.cnki.1000-8519.2018.17.045.
1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。
2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。
原创文章,作者:1158,如若转载,请注明出处:https://www.447766.cn/chachong/161348.html,