基于J2EE的仓库管理系统的设计与实现.docx
- 文档编号:26933707
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:35
- 大小:1.42MB
基于J2EE的仓库管理系统的设计与实现.docx
《基于J2EE的仓库管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于J2EE的仓库管理系统的设计与实现.docx(35页珍藏版)》请在冰豆网上搜索。
基于J2EE的仓库管理系统的设计与实现
1引言
1.1仓库管理系统的开发背景及意义
随着互联网时代的逐步进入社会进入人民的生活,面对计算机应用日益普及的今天,大大小小的企业都已离不开计算机。
加之电子商务越来越成熟,企业也更需要对仓库进行电子化管理。
一个好的仓库管理系统可以减轻仓库管理人员大量的负担,在电子屏幕上就能清楚的了解到自己管理的仓库具体情况,也能方便快捷地统计出货物出入库的数据。
对于企业来说一个良好的仓库管理系统对于提高管理效率能起到非常大的作用,企业能很快找到仓库管理方面的漏洞,及时修改管理方法,提高工作效率以此来获得更高的经济效益。
仓库管理系统是一个以企业管理为背景,它可为企业提供全方位的管理视角,可方便地了解仓库的物品进出和库存情况。
根据仓库管理软件结构分类,就目前仓库管理软件所使用的应用范围来看,仓库管理包括如下几个子系统:
WMS(WarehouseManagementSystem,仓库管理系统)、TMS(TransportationManagementSystem,运输管理系统。
OMS(OrderManagementSystem,定单管理系统)、SMS(ServiceManagementSystem,服务管理系统)。
如今的仓库管理系统功能已多样化,单靠人工实现会耗费大量的人力,同时还会消耗一定的时间,而且效率也不一定高。
为了能够让仓库的管理更加信息化、便捷化、正规化,方便入库管理部门和销售部门提供对产品的跟踪和管理,要想尽可能地降低仓库的损耗,就必须增加对仓库管理系统的投入以此提高服务质量,同时也免去售后人员去客户那查看产品等一系列繁琐的问题,节约了费用,提高了办事效率,还避免了潜在的不必要的纠纷,既而实现全面的、完善的企业仓库信息管理。
1.2课题研究的主要内容
使用仓库管理系统能极大程度上充分利用仓库,同时能提高货物收发的效率,从而获得了巨大的经济受益,避免出现断档和退货的现象。
仓库管理系统是一个以企业管理为背景,它可为企业提供全方位的管理视角,可方便地了解仓库的物品进出和库存情况。
所以本课题采用B/S结构,针对小型的企业仓库,提供给仓库管理员一系列管理的JSP页面,实现对各种信息的管理。
主要包括信息管理:
人员管理,仓库管理,货物管理;出入库管理和库存管理,并且提供给用户多种查询的方式,包括按货物查询,按仓库查询,按用户指定时间段查询等;数据库的备份和恢复。
整体页面使用iframe,将页面分为3部分,通过iframe之间的数据传递来控制页面的跳转。
该系统还采用了Serlvet以及Mysql数据库来实现各个模块功能。
1.3论文的章节安排
论文总共分为五章:
第一章主要介绍仓库管理系统软件开发的目的以及意义。
并提出了本课题所要研究的主要内容。
第二章主要介绍仓库管理系统的概述。
对该系统开发的可行性进行探讨。
介绍仓库管理系统开发时使用的软件环境,以及开发中使用的技术。
第三章主要介绍仓库管理系统的总体分析、需求描述以及模块设计。
通过附带上程序运行时图片将模块展示出来。
第四章主要根据需求分析对数据库设计进行详细介绍。
介绍所使用的数据库以及表结构设计和表之间的联系。
第五章介绍系统每个功能模块实现思路。
使用流程图将数据处理过程和程序界面展示出来,并设计一个测试用例测试单元模块。
总结部分是对整个系统的总结以及提出对该系统以后的展望。
2仓库管理系统研究概述
2.1仓库管理系统的可行性研究
2.1.1技术可行性
通过对系统需求的仔细分析决定采用javaweb的形式开发系统。
Java是跨平台的,面向对象的语言,兼容性好,与平台无关,可移植。
Java语言的并发性也能解决实际生活中很多问题。
同时Java语言又擅长进行web开发,所以通过多方分析,决定采用Java语言进行系统开发。
本系统基于B/S模式进行开发,很好地解决了用户客户端的问题,只要使用这电脑拥有浏览器就能方便快捷的使用该系统。
采用成熟的三层结构模型开发,每层之间通过实体对象或者实体对象的集合进行交互,禁止方法的跨层调用,所以每层各自改变不会对其它层造成影响。
客户端页面采用JSP技术、JS技术以及JSTL标签来实现,控制器使用servlet、Filter以及自定义的业务逻辑层控制器。
可以对一下非法数据进行验证,以及防止用户未登录就直接使用系统功能,这样就保证了系统的安全性。
服务器使用Tomcat6.0。
后台采用Mysql作为数据库来进行数据存储。
2.1.2运行可行性
该系统的研制主要以两个目的出发进行开发。
一、简化软件的使用,让使用者能后在短时间内熟悉该软件。
二、方便管理者进行数据查询,添加信息等操作。
2.2仓库管理系统的开发工具及使用环境简介
2.2.1开发工具简介
开发环境:
Myeclipse8.5,Tomcat6.0
数据库:
Mysql5.5
开发系统环境:
Windows764位旗舰版
2.2.1使用环境简介
用户使用的系统:
windows操作系统
需要的工具:
浏览器
服务器:
Tomcat
数据库:
Mysql
2.3仓库管理系统的开发所用技术简介
2.3.1JSP简介
JSP中文名为java服务器页面(JavaServerPage),页面文件以扩展名.jsp命名。
是由Sun公司倡导提出的一种网页标准,JSP技术的推出时为了对抗ASP,但它又和ASP技术类似,它可以在传统的网页html中使用<%%>来插入Java程序段和脚本文件,让Java程序员能够轻松的使用,或者使用JSP标记来控制html,例如 forward>标签可以使当前页面跳转到制定的页面。 JSP运行方式是: JSP其实本质与Servlet相同,当服务器接收到客户端发送来的请求时,该服务器就会被编译成Servlet并执行,之后将结果作为一个html文件返回给浏览器。 当用户在此后再访问该资源文件,JSP就不会被编译,系统会直接使用编译好的Servlet,从而。 如果该JSP文件没有被修改过,当客户端再次向服务器发送请求时,JSP文件将不会被编译,而是直接执行已经编译好的Servlet,从而加快了访问速度。 JSP内置了6种对象: Request,Response,Session,Application,Out,Cookie。 前四者不同主要体现在作用域上。 Request里包含了用户的请求信息,Response则是动态相应用户的请求,作用域为Page。 Session对象的存在机制类似于JSP,在页面装载的时候就创建,之后页面如果再次被访问也不会重新去创建Servlet。 Session会一直存在除非用户关闭浏览器。 Application是在启动服务器的时候创建,所有的用户都共享一个Application对象,所以我们也能利用该对象实现访问量的统计。 Out对象是向客户端输出数据。 Cookie是以键值对的形式保存内容,并且允许用户读取和创建。 2.3.2Servlet简介 Servlet被设计成一种独立于服务器端的应用程序,web页面可以由它动态生成。 Servlet由包含支持Serlvet的JVM的web服务器进行加载。 Servlet中没有main方法,通常都使用doPost()方法或者doGet()对客户端传来的数据进行处理。 Servlet同样有生命周期,都包含init和destroy方法,,每个Servlet都继承了HttpServlet,主要将集中在service方法中。 当一个请求发送到对应的Servlet时,如果那个Servlet实例没存在,web容器将加载这个Servlet类,创建实例调用init方法初始化。 如果该容器要移除这个Serlvet,可调用Servlet的destroy方法来结束该Serlvet。 Servlet的生命周期包括加载、初始化、处理客户端请求及服务结束。 2.3.3JSTL简介 JSTL(JSPStandardTagLibrary,JSP标准标签库)是有开源组织来维护并且不断完善的JSP标签库。 它有四个定制标记库(core、format、fn和sql)。 其中core标记库包含了迭代,选择,判断,赋值等的标签,format主要用于数据的格式化操作,比如时间对象或者数字。 Fn函数标签库为EL表达式提供了很多功能。 而sql库用于从JSP页面访问数据库。 JSTL的提出大大简化了JSP页面的代码,配合EL表达式一起使用能得到非常好的效果。 可以有效的避免在JSP页面上使用<%%>的JAVA脚本或代码,让开发更加简单,在最大程度上提高了开发的应用在各个服务器之间的移植。 3仓库管理系统总体分析与设计 3.1仓库管理系统的总体分析 在设计和开发系统之前,必须对用户的需求进行分析。 需要开发者很清楚的了解用户想让程序达到什么样的效果,了解到用户对系统的执行效率和性能有什么要求,明白用户使用时所承载的数据量有多大。 需求分析的结果是程序开发的基础,需求分析说明书是程序设计的指南针。 只有文档写得好,程序才能有效合理的开发,才能更好的达到用户的需求。 本系统基于B/S模型开发,采用MVC模式开发。 将系统分为视图层、模型层和控制层三层。 视图层采用JSP配合JS脚本实现。 模型层采用JavaBean,控制层使用Servlet和Filter技术实现逻辑控制。 此外,整个系统采用界面层、业务逻辑层、数据连接对象层三层模式开发。 界面层将从数据库中查到的数据显示给用户,并提供一些可操作的按钮或文本框视图,并且利用JavaScript脚本对用户输入的信息进行验证。 业务逻辑层连接界面层和数据连接对象层,是这两层交流的纽带。 业务逻辑层获取到用户在界面操作的信息,在这一层进行控制,检测数据是否合法,通过之后再调用数据面向对象层的方法将数据存储到数据库中。 这样既能在客户端做好控制,又能在服务器端验证,确保了数据的安全性,并且更加人性化的提供给用户一些错误消息,能让用户及时发现错误。 数据面向对象层则通过JDBC技术将收集到的消息通过不同的方法存储到数据库中,如果出货,则将错误信息通过业务逻辑层传回给界面层显示给用户看。 仓库管理系统的核心功能在于出库、入库以及库存统计,包括外键的设计。 每修改一张表就能引起另外一张表的改变。 查询功能也是核心之一。 使用者可以方便地查询到库存信息、出入库信息,并且考虑到了不同的货物来自同一仓库,而同一货物来自不同仓库。 同时能统计每月或指定时间段的货物进出情况,统计每个仓库的货物进出及库存情况,统计仓库中同一货物进出及库存情况等。 此外该系统还添加了人员注册、删除,密码修改,人员信息修改以及数据的备份与恢复功能。 数据备份与恢复可以防止人员错误操作后让数据重新恢复,减少企业仓库一定情况下的不必要损失。 3.2仓库管理系统的功能模块描述 3.2.1货物出库和入库的模块需求描述 1.入库模块 仓库顾名思义是用来存放货物的,在存放货物的时候就免不了出库入库等操作。 入库出库时管理人员都要进行登记。 入库人员向仓库管理人员提交入库清单,提交的入库清单包括入库号,货物名称,操作员名字,入库数量,入库价格,入库时间,要入库的仓库名称,供应商名称,备用信息。 仓库管理人员根据所提供的入库清单清点所要入库的货物。 如果信息正确无误,仓库管理人员则将入库信息通过入库管理模块输入系统,入库信息同入库清单一致,系统会自动根据提供的信息存入数据库,将货物名字,操作员名字,要入库的仓库名称,供应商名称通过数据库查询转换成相应的数字id再存储到数据库中。 如果信息有误,则拒绝入库。 2.出库模块 货物出库同样是要根据所提供的出库清单,仓库管理人员根据清单进行核对出库。 出库清单包括出库号,出库货物名称,操作人员名称,出库数量,出库价格,出库时间,所出库的仓库的名称,出库备份信息。 在出库过程中,如果出库数量超过仓库所存储的数量,则不允许出库。 如果出库数量少于仓库所存储的数量,则仓库管理员进行出库操作,并将信息录入电脑。 同样电脑会将出库货物名称,操作人员名称,所出库的仓库的名称通过查询数据库转换成相应的数字id存入数据库。 3.出入库查询模块 仓库管理人员可以通过货物出库、入库信息查询模块对出库、入库信息单进行查询。 该模块可通过以下几种方式查询。 一、查询所有信息。 仓库管理人员可通过点击出入库信息按钮进入相应的页面,进入后界面就能直接显示所有信息。 二、通过仓库号进行查询。 仓库管理人员可通过仓库选择下拉菜单选取相应的仓库,然后点击查询按钮,界面就能显示相应仓库的出入库信息。 三、通过货物号进行查询。 仓库管理人员同样可通过货物选择下拉菜单选择相应的货物,然后点击查询按钮,界面就能显示相应货物的出入库信息。 四、通过时间段进行查询。 仓库管理人员可以通过点击两个文本框进行日期时间的选择。 然后点击查询按钮可以显示在这段时间内的所有出入库信息。 系统提供四种查询方式,方便使用,能让仓库管理人员快速的了解自己管理的仓库的出入库信息,了解动态。 对分析经济效益起到很好的效果。 3.2.2货物、仓库和库存模块的需求描述 1.货物模块 根据不同的仓库,不同的货物有着不一样的属性,例如食品需要注明保质期,其它一些物品可能还要注明防潮,易碎等。 可根据不同的属性将物品分到不同的仓库中。 对货物本身的登记十分重要。 管理人员也能了解到目前仓库有哪些货物。 如果来了新的货物,仓库管理人员需要进行添加货物操作,将新的物品的信息添加到系统中,以方便其它操作。 如果在操作中对输入的信息有误,管理人员可以通过信息修改功能将货物的信息进行修改。 当然对于以后不打算入库的货物,仓库管理人员也可将此类货物信息删除。 2.仓库管理模块 对于企业来说,一个企业一般不止一个仓库,仓库越多就越能体现一个仓库管理系统的好坏。 好的仓库管理系统经全面分析设计能够大大减少一些不必要的错误出现。 故仓库管理部分在系统中也是举足轻重。 在该系统中管理员可根据企业实际情况设置仓库。 该模块中有增加,修改,删除三个功能。 具体操作看实际而定。 3.货物库存模块 库存管理模块对于一个仓库管理系统来说也算是至关重要的一部分。 库存管理结合入库出库操作,以及货物管理就构成了整个仓库管理系统的框架。 货物在入库操作后后台自动将数量新增到相应的库存中,同理当仓库管理员做出库操作后后台库存也会做相应的修改。 仓库管理员能通过库存查询界面来了解相应货物的数量情况,如果货物不足以便及时进货,能大大提高仓库管理的执行效率,为企业创造更多的经济价值。 3.2.3人员管理和登录注册模块的需求描述 1.人员管理模块 仓库管理虽然没有太大的机密性,但是在管理还是要有一定的严谨性。 所以人员管理也是相当重要的。 本系统中每个仓库的管理员均可通过注册后进行登录。 在注册时需填入管理员的准确个人信息,包括姓名,密码,电话,住址,身份证号,管理仓库号,邮箱,登录权限等。 在用户登录时填写正确的用户名,密码以及身份。 一般仓库管理员均为普通员工,另设立管理员,对普通员工进行管理。 当用户登录成功后,进入系统主页,如果是普通员工则没有人员管理这一选项,只能查看自己的信息,通过个人信息修改界面,可以修改个人相应的信息或者修改密码。 如果是管理员登录了系统,则多出人员管理模块,对所有人员进行管理。 可对仓库管理员进行删除或者修改,修改管理员对应的仓库。 这样企业在仓库管理方面如果出现问题能及时找到相应的仓库负责人了解情况。 7.登录注册模块 登录和注册模块是每个系统基本都具有的模块。 在该系统中这连个模块结合在一张页面上,使用html,js和css配合将界面进行美化。 通过客户端和服务器两次验证来保证数据的准确性。 3.2.4数据备份和数据恢复模块的需求描述 对于一个系统来说数据是相当重要的组成部分。 如果一旦系统数据丢失将会对企业造成不可估计的损失。 同时还要耗费很大的人力物力将仓库重新清点完再输入系统。 所以数据备份和恢复功能保障了系统数据一定的安全性。 管理员可根据一定事件对数据进行备份,以防数据丢失后无法找回。 3.3仓库管理系统的功能模块图 图3.1系统功能组织结构图 3.3.1系统各功能简介 系统大体模块分为人员管理、出入库管理、数据备份和恢复、仓库管理、登录和注册。 下面一一做介绍。 1.人员管理 人员管理模块可划分为个人信息修改和管理员管理功能。 个人信息修改可修改当前登录用户的基本信息和密码。 进入界面后,系统会自动读取出当前登录用户的基本信息,显示在相应的输入框中,因为个人信息可修改的较多,包括姓名,密码,年龄,地址,电话,身份证号,邮箱以及备注,所以用户可以只修改想要修改的内容,其它部分不变,这种方式增加了用户体验性。 在修改密码时,为了保护帐号安全,不会显示登陆用户的密码。 需要自己重新输入旧密码,然后输入两次新密码,通过验证后才能进行修改。 管理员管理功能是对各仓库管理员进行管理,可以修改部分信息,包括仓库管理员对应的仓库等。 如果仓库管理员违反了管理条例,必要时还能删除该管理员。 2.出入库管理 出入库管理分为出入库单查询和出入库单添加。 出入库查询为了让用户更加方便快速地查询到想到的信息,做了很多查询方式,包括显示全部,按物品号查询,按仓库号查询,按出入库时间段查询。 其中按出入库时间段查询使用了lhgcalendar的Js框架,以文本框为时间选择载体,用户点击文本框则会跳出时间选择的版块。 此外两个文本框之间也做了一定的限制,后者文本框不能选择比前者还早的时间,保证了时间段的准确性,避免用户时间选择上的失误。 入库信息包括入库单号、入库货物、操作员、入库数量,入库价格、入库时间、仓库号、供应商、备注。 出库信息包括出库号、出库货物、操作员、出库数量、出库价格、出库时间、仓库号、备注。 出入库单的添加也是根据出入库信息所拥有的特性进行添加。 同时在客户端和服务器都做了一定的验证。 添加时系统会自动默认为当前登录用户为操作员,当前系统时间为出入库操作时间。 3.数据备份和恢复 这一模块在整个系统的系统管理里面。 用户点击进入后有两个按钮,分别是数据备份和数据恢复。 数据备份中使用properties文件存放一定的数据,当用户点击备份按钮时则利用properties对象去文件中读取要用的信息,并使用StringBuffer将用到的字符串连接成一个字符串,之后利用Runtime来执行语句。 数据恢复与数据备份类似,同样采用Runtime来执行语句的方法将备份好的数据重新输入到数据库中。 4.仓库管理 仓库管理模块可细化分为物品管理,库存管理、仓库管理。 仓库管理和物品管理大体功能差不多,都能多相应的对象进行增加、删除、修改的操作。 查询方式有一、查询所有。 点击后查询所有仓库、所有物品的库存。 二、按货物号查询。 在选择框中选择想要查询的物品,点击按钮后系统回去后台查询相应物品的信息。 若无法查到信息,则在页面显示无数据。 若能查到则显示货物编号,货物名字,所在仓库号和备注。 三、按仓库号查询。 执行流程和按货物号查询一样。 这样管理员能随心所欲查询自己想要的信息,同样也避免了信息太大,查看不方便。 5.登录和注册 登录时用户只需要输入用户名、密码,然后选择自己的权限,系统会从后台读取信息来验证输入的信息是否正确。 若不正确则显示错误信息,若正确则允许用户登录。 用户注册需要填写用户名,电子邮件,密码,确认密码,选择权限,身份,电话,管理的仓库号,选择性别,年龄,地址,备注。 用户填写无误后点击确认按钮。 系统会先在客户端进行验证,若有问题则不进入后台,否则进入服务器验证。 如果都通过了,则更新数据库,页面显示注册成功。 为了防止用户跳过客户端和服务器验证,本系统还采用了filter来进行控制,提高系统安全性。 如果用户未经登录直接输入其它操作页面的地址,则系统会自动跳转回登录界面。 如果用户想要注销自己的登录帐号,在登录后可以点击安全退出,系统会返回到登录界面,并消除刚才登录用户保存的信息。 4仓库管理系统数据库的设计 4.1数据库介绍 该系统为小型企业仓库管理系统,所以选择了开源的Mysql为数据库。 它是一种轻量级的关系型数据管理系统。 本系统采用JDBC的方式连接数据库。 将连接数据库用到的连接信息存放在properties中,包括JDBC驱动文件名,数据库的URL,数据库名,数据库登录密码。 在相应的类中使用静态代码块读取出properties的信息,并根据读取出来的信息利用类加载器加载JDBC驱动以及获取到连接。 4.2数据库概念设计 当了解到用户的需求后,则应对需求进行分析,根据分析结果对数据库进行概念设计。 使用E-R图来表示实体之间的关系。 图4.1仓库E-R图 图4.2货物E-R图 图4.3入库单E-R图 图4.4出库单E-R图 图4.5供应商E-R图 图4.6库存E-R图 图4.7员工E-R图 图4.8系统E-R图 4.2数据库表结构设计 根据设计好的数据库概念模型,就能很容易地设计出数据库表结构。 本系统的数据库名为warehouse,为了能够支持中文,故数据库采用了UTF-8的字符集编码,数据库中包含了7张表,分别是仓库消息表、货物信息表、货物入库信息表、货物出库信息表、供应商信息表、库存记录表以及用户信息表。 每张表也同样采用UTF-8的字符集编码。 1.仓库信息表(wareinfo) 仓库信息表主要有仓库编号,仓库名字,仓库的负责人编号,仓库地址,仓库备注。 其中仓库编号为主键,属性为自动增长。 仓库负责人编号为外键,参照用户表里的用户编号。 表4.1仓库信息表 字段名 数据类型 长度 允许空 约束 默认值 说明 Ware_id int 11 不 主键 空 仓库编号(自动增长) Name varchar 30 不 空 仓库名字 admin_id int 11 不 外键 空 负责人 address varchar 30 不 空 仓库地址 Remark varchar 30 允许 空 2.货物信息表(goods) 货物信息表主要有货物编号,货物名称,备注。 其中主键是货物编号,属性为自动增长。 表4.2货物信息表 字段名 数据类型 长度 允许空 约束 默认值 说明 Id int 11 不 主键 空 货物编号(自动增长) Name varchar 10 不 空 货物名字 Remark varchar 50 允许 空 备注 3.货物入库信息表(ingoodsinfo) 货物入库信息表主要有入库编号、货物编号、操作者编号、入库数量、入库价格、入库时间、仓库编号、供应商编号及其备注信息。 其中入库编号是主键,属性为自动增长,货物编号、操作者编号、仓库编号、供应商编号为外键,分别对应货物表的货物编号,用户表的用户编号,仓库表的仓库编号以及供应商表的供应商编号。 表4.3货物入库信息表 字段名 数据类型 长度 允许空 约束 默认值 说明 in_id int 11 不 主键 空 入库编号(自动增长) good_id int 11 不 外键 空 货物编号 user_id int 11 不 外键 空 操作人 in_num int 11 不 空 入库数量 in_price int 11 不 空 入库价格 in_time datetime 不 空 入库时间 wh_id int 11 不 外键 空 仓库编号 supp_id int 11 不 外键 空 供应商编号 Info varchar 30 允许 空 备注
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 J2EE 仓库 管理 系统 设计 实现