基于J2EE的仓库管理系统的设计与实现

上传人:痛*** 文档编号:143143739 上传时间:2022-08-25 格式:DOC 页数:33 大小:1.49MB
收藏 版权申诉 举报 下载
基于J2EE的仓库管理系统的设计与实现_第1页
第1页 / 共33页
基于J2EE的仓库管理系统的设计与实现_第2页
第2页 / 共33页
基于J2EE的仓库管理系统的设计与实现_第3页
第3页 / 共33页
资源描述:

《基于J2EE的仓库管理系统的设计与实现》由会员分享,可在线阅读,更多相关《基于J2EE的仓库管理系统的设计与实现(33页珍藏版)》请在装配图网上搜索。

1、 本科毕业设计说明书(论文) 第 17 页 共 33 页1 引言1.1 仓库管理系统的开发背景及意义随着互联网时代的逐步进入社会进入人民的生活,面对计算机应用日益普及的今天,大大小小的企业都已离不开计算机。加之电子商务越来越成熟,企业也更需要对仓库进行电子化管理。一个好的仓库管理系统可以减轻仓库管理人员大量的负担,在电子屏幕上就能清楚的了解到自己管理的仓库具体情况,也能方便快捷地统计出货物出入库的数据。对于企业来说一个良好的仓库管理系统对于提高管理效率能起到非常大的作用,企业能很快找到仓库管理方面的漏洞,及时修改管理方法,提高工作效率以此来获得更高的经济效益。仓库管理系统是一个以企业管理为背景

2、,它可为企业提供全方位的管理视角,可方便地了解仓库的物品进出和库存情况。根据仓库管理软件结构分类,就目前仓库管理软件所使用的应用范围来看,仓库管理包括如下几个子系统:WMS(Warehouse Management System,仓库管理系统)、TMS(Transportation Management System,运输管理系统。OMS(Order Management System,定单管理系统)、SMS(Service Management System,服务管理系统)。如今的仓库管理系统功能已多样化,单靠人工实现会耗费大量的人力,同时还会消耗一定的时间,而且效率也不一定高。为了能够让仓

3、库的管理更加信息化、便捷化、正规化,方便入库管理部门和销售部门提供对产品的跟踪和管理,要想尽可能地降低仓库的损耗,就必须增加对仓库管理系统的投入以此提高服务质量,同时也免去售后人员去客户那查看产品等一系列繁琐的问题,节约了费用,提高了办事效率,还避免了潜在的不必要的纠纷,既而实现全面的、完善的企业仓库信息管理。1.2 课题研究的主要内容 使用仓库管理系统能极大程度上充分利用仓库,同时能提高货物收发的效率,从而获得了巨大的经济受益,避免出现断档和退货的现象。仓库管理系统是一个以企业管理为背景,它可为企业提供全方位的管理视角,可方便地了解仓库的物品进出和库存情况。所以本课题采用B/S结构,针对小型

4、的企业仓库,提供给仓库管理员一系列管理的JSP页面,实现对各种信息的管理。主要包括信息管理:人员管理,仓库管理,货物管理;出入库管理和库存管理,并且提供给用户多种查询的方式,包括按货物查询,按仓库查询,按用户指定时间段查询等;数据库的备份和恢复。整体页面使用iframe,将页面分为3部分,通过iframe之间的数据传递来控制页面的跳转。该系统还采用了Serlvet以及Mysql数据库来实现各个模块功能。1.3 论文的章节安排 论文总共分为五章: 第一章主要介绍仓库管理系统软件开发的目的以及意义。并提出了本课题所要研究的主要内容。 第二章主要介绍仓库管理系统的概述。对该系统开发的可行性进行探讨。

5、介绍仓库管理系统开发时使用的软件环境,以及开发中使用的技术。 第三章主要介绍仓库管理系统的总体分析、需求描述以及模块设计。通过附带上程序运行时图片将模块展示出来。 第四章主要根据需求分析对数据库设计进行详细介绍。介绍所使用的数据库以及表结构设计和表之间的联系。 第五章介绍系统每个功能模块实现思路。使用流程图将数据处理过程和程序界面展示出来,并设计一个测试用例测试单元模块。 总结部分是对整个系统的总结以及提出对该系统以后的展望。2 仓库管理系统研究概述2.1 仓库管理系统的可行性研究2.1.1 技术可行性通过对系统需求的仔细分析决定采用java web的形式开发系统。Java是跨平台的,面向对象

6、的语言,兼容性好,与平台无关,可移植。Java语言的并发性也能解决实际生活中很多问题。同时Java语言又擅长进行web开发,所以通过多方分析,决定采用Java语言进行系统开发。本系统基于B/S模式进行开发,很好地解决了用户客户端的问题,只要使用这电脑拥有浏览器就能方便快捷的使用该系统。采用成熟的三层结构模型开发,每层之间通过实体对象或者实体对象的集合进行交互,禁止方法的跨层调用,所以每层各自改变不会对其它层造成影响。客户端页面采用JSP技术、JS技术以及JSTL标签来实现,控制器使用servlet、Filter以及自定义的业务逻辑层控制器。可以对一下非法数据进行验证,以及防止用户未登录就直接使

7、用系统功能,这样就保证了系统的安全性。服务器使用Tomcat 6.0。后台采用Mysql作为数据库来进行数据存储。2.1.2 运行可行性该系统的研制主要以两个目的出发进行开发。一、简化软件的使用,让使用者能后在短时间内熟悉该软件。二、方便管理者进行数据查询,添加信息等操作。2.2 仓库管理系统的开发工具及使用环境简介2.2.1 开发工具简介开发环境:Myeclipse8.5,Tomcat6.0数据库:Mysql5.5开发系统环境:Windows 7 64位旗舰版2.2.1 使用环境简介用户使用的系统:windows操作系统需要的工具:浏览器服务器:Tomcat数据库:Mysql2.3 仓库管理

8、系统的开发所用技术简介2.3.1 JSP简介JSP中文名为java服务器页面(Java Server Page),页面文件以扩展名.jsp命名。是由Sun公司倡导提出的一种网页标准,JSP技术的推出时为了对抗ASP,但它又和ASP技术类似,它可以在传统的网页html中使用来插入Java程序段和脚本文件,让Java程序员能够轻松的使用,或者使用JSP标记来控制html,例如标签可以使当前页面跳转到制定的页面。JSP运行方式是:JSP其实本质与Servlet相同,当服务器接收到客户端发送来的请求时,该服务器就会被编译成Servlet并执行,之后将结果作为一个html文件返回给浏览器。当用户在此后再

9、访问该资源文件,JSP就不会被编译,系统会直接使用编译好的Servlet,从而。如果该JSP文件没有被修改过,当客户端再次向服务器发送请求时,JSP文件将不会被编译,而是直接执行已经编译好的Servlet,从而加快了访问速度。JSP内置了6种对象:Request,Response,Session,Application,Out,Cookie。前四者不同主要体现在作用域上。Request里包含了用户的请求信息,Response则是动态相应用户的请求,作用域为Page。Session对象的存在机制类似于JSP,在页面装载的时候就创建,之后页面如果再次被访问也不会重新去创建Servlet。Sessi

10、on会一直存在除非用户关闭浏览器。Application是在启动服务器的时候创建,所有的用户都共享一个Application对象,所以我们也能利用该对象实现访问量的统计。Out对象是向客户端输出数据。Cookie是以键值对的形式保存内容,并且允许用户读取和创建。2.3.2 Servlet简介Servlet被设计成一种独立于服务器端的应用程序, web页面可以由它动态生成。Servlet由包含支持Serlvet的JVM的web服务器进行加载。Servlet中没有main方法,通常都使用doPost()方法或者doGet()对客户端传来的数据进行处理。Servlet同样有生命周期,都包含init和

11、destroy方法,每个Servlet都继承了HttpServlet,主要将集中在service方法中。当一个请求发送到对应的Servlet时,如果那个Servlet实例没存在,web容器将加载这个Servlet类,创建实例调用init方法初始化。如果该容器要移除这个Serlvet,可调用Servlet的destroy方法来结束该Serlvet。Servlet的生命周期包括加载、初始化、处理客户端请求及服务结束。2.3.3 JSTL简介JSTL(JSP Standard Tag Library,JSP标准标签库)是有开源组织来维护并且不断完善的JSP标签库。它有四个定制标记库(core、for

12、mat、fn 和 sql)。其中core标记库包含了迭代,选择,判断,赋值等的标签,format主要用于数据的格式化操作,比如时间对象或者数字。Fn函数标签库为EL表达式提供了很多功能。而 sql 库用于从JSP页面访问数据库。JSTL的提出大大简化了JSP页面的代码,配合EL表达式一起使用能得到非常好的效果。可以有效的避免在JSP页面上使用的JAVA脚本或代码,让开发更加简单,在最大程度上提高了开发的应用在各个服务器之间的移植。3 仓库管理系统总体分析与设计 3.1 仓库管理系统的总体分析在设计和开发系统之前,必须对用户的需求进行分析。需要开发者很清楚的了解用户想让程序达到什么样的效果,了解

13、到用户对系统的执行效率和性能有什么要求,明白用户使用时所承载的数据量有多大。需求分析的结果是程序开发的基础,需求分析说明书是程序设计的指南针。只有文档写得好,程序才能有效合理的开发,才能更好的达到用户的需求。本系统基于B/S模型开发,采用MVC模式开发。将系统分为视图层、模型层和控制层三层。视图层采用JSP配合JS脚本实现。模型层采用JavaBean,控制层使用Servlet和Filter技术实现逻辑控制。此外,整个系统采用界面层、业务逻辑层、数据连接对象层三层模式开发。界面层将从数据库中查到的数据显示给用户,并提供一些可操作的按钮或文本框视图,并且利用JavaScript脚本对用户输入的信息

14、进行验证。业务逻辑层连接界面层和数据连接对象层,是这两层交流的纽带。业务逻辑层获取到用户在界面操作的信息,在这一层进行控制,检测数据是否合法,通过之后再调用数据面向对象层的方法将数据存储到数据库中。这样既能在客户端做好控制,又能在服务器端验证,确保了数据的安全性,并且更加人性化的提供给用户一些错误消息,能让用户及时发现错误。数据面向对象层则通过JDBC技术将收集到的消息通过不同的方法存储到数据库中,如果出货,则将错误信息通过业务逻辑层传回给界面层显示给用户看。仓库管理系统的核心功能在于出库、入库以及库存统计,包括外键的设计。每修改一张表就能引起另外一张表的改变。查询功能也是核心之一。使用者可以

15、方便地查询到库存信息、出入库信息,并且考虑到了不同的货物来自同一仓库,而同一货物来自不同仓库。同时能统计每月或指定时间段的货物进出情况,统计每个仓库的货物进出及库存情况,统计仓库中同一货物进出及库存情况等。此外该系统还添加了人员注册、删除,密码修改,人员信息修改以及数据的备份与恢复功能。数据备份与恢复可以防止人员错误操作后让数据重新恢复,减少企业仓库一定情况下的不必要损失。3.2 仓库管理系统的功能模块描述3.2.1 货物出库和入库的模块需求描述1.入库模块仓库顾名思义是用来存放货物的,在存放货物的时候就免不了出库入库等操作。入库出库时管理人员都要进行登记。入库人员向仓库管理人员提交入库清单,

16、提交的入库清单包括入库号,货物名称,操作员名字,入库数量,入库价格,入库时间,要入库的仓库名称,供应商名称,备用信息。仓库管理人员根据所提供的入库清单清点所要入库的货物。如果信息正确无误,仓库管理人员则将入库信息通过入库管理模块输入系统,入库信息同入库清单一致,系统会自动根据提供的信息存入数据库,将货物名字,操作员名字,要入库的仓库名称,供应商名称通过数据库查询转换成相应的数字id再存储到数据库中。如果信息有误,则拒绝入库。2.出库模块货物出库同样是要根据所提供的出库清单,仓库管理人员根据清单进行核对出库。出库清单包括出库号,出库货物名称,操作人员名称,出库数量,出库价格,出库时间,所出库的仓

17、库的名称,出库备份信息。在出库过程中,如果出库数量超过仓库所存储的数量,则不允许出库。如果出库数量少于仓库所存储的数量,则仓库管理员进行出库操作,并将信息录入电脑。同样电脑会将出库货物名称,操作人员名称,所出库的仓库的名称通过查询数据库转换成相应的数字id存入数据库。3.出入库查询模块仓库管理人员可以通过货物出库、入库信息查询模块对出库、入库信息单进行查询。该模块可通过以下几种方式查询。一、查询所有信息。仓库管理人员可通过点击出入库信息按钮进入相应的页面,进入后界面就能直接显示所有信息。二、通过仓库号进行查询。仓库管理人员可通过仓库选择下拉菜单选取相应的仓库,然后点击查询按钮,界面就能显示相应

18、仓库的出入库信息。三、通过货物号进行查询。仓库管理人员同样可通过货物选择下拉菜单选择相应的货物,然后点击查询按钮,界面就能显示相应货物的出入库信息。四、通过时间段进行查询。仓库管理人员可以通过点击两个文本框进行日期时间的选择。然后点击查询按钮可以显示在这段时间内的所有出入库信息。系统提供四种查询方式,方便使用,能让仓库管理人员快速的了解自己管理的仓库的出入库信息,了解动态。对分析经济效益起到很好的效果。3.2.2 货物、仓库和库存模块的需求描述1.货物模块根据不同的仓库,不同的货物有着不一样的属性,例如食品需要注明保质期,其它一些物品可能还要注明防潮,易碎等。可根据不同的属性将物品分到不同的仓

19、库中。对货物本身的登记十分重要。管理人员也能了解到目前仓库有哪些货物。如果来了新的货物,仓库管理人员需要进行添加货物操作,将新的物品的信息添加到系统中,以方便其它操作。如果在操作中对输入的信息有误,管理人员可以通过信息修改功能将货物的信息进行修改。当然对于以后不打算入库的货物,仓库管理人员也可将此类货物信息删除。2.仓库管理模块对于企业来说,一个企业一般不止一个仓库,仓库越多就越能体现一个仓库管理系统的好坏。好的仓库管理系统经全面分析设计能够大大减少一些不必要的错误出现。故仓库管理部分在系统中也是举足轻重。在该系统中管理员可根据企业实际情况设置仓库。该模块中有增加,修改,删除三个功能。具体操作

20、看实际而定。3.货物库存模块库存管理模块对于一个仓库管理系统来说也算是至关重要的一部分。库存管理结合入库出库操作,以及货物管理就构成了整个仓库管理系统的框架。货物在入库操作后后台自动将数量新增到相应的库存中,同理当仓库管理员做出库操作后后台库存也会做相应的修改。仓库管理员能通过库存查询界面来了解相应货物的数量情况,如果货物不足以便及时进货,能大大提高仓库管理的执行效率,为企业创造更多的经济价值。3.2.3 人员管理和登录注册模块的需求描述1.人员管理模块仓库管理虽然没有太大的机密性,但是在管理还是要有一定的严谨性。所以人员管理也是相当重要的。本系统中每个仓库的管理员均可通过注册后进行登录。在注

21、册时需填入管理员的准确个人信息,包括姓名,密码,电话,住址,身份证号,管理仓库号,邮箱,登录权限等。在用户登录时填写正确的用户名,密码以及身份。一般仓库管理员均为普通员工,另设立管理员,对普通员工进行管理。当用户登录成功后,进入系统主页,如果是普通员工则没有人员管理这一选项,只能查看自己的信息,通过个人信息修改界面,可以修改个人相应的信息或者修改密码。如果是管理员登录了系统,则多出人员管理模块,对所有人员进行管理。可对仓库管理员进行删除或者修改,修改管理员对应的仓库。这样企业在仓库管理方面如果出现问题能及时找到相应的仓库负责人了解情况。7.登录注册模块登录和注册模块是每个系统基本都具有的模块。

22、在该系统中这连个模块结合在一张页面上,使用html,js和css配合将界面进行美化。通过客户端和服务器两次验证来保证数据的准确性。3.2.4 数据备份和数据恢复模块的需求描述对于一个系统来说数据是相当重要的组成部分。如果一旦系统数据丢失将会对企业造成不可估计的损失。同时还要耗费很大的人力物力将仓库重新清点完再输入系统。所以数据备份和恢复功能保障了系统数据一定的安全性。管理员可根据一定事件对数据进行备份,以防数据丢失后无法找回。3.3 仓库管理系统的功能模块图图3.1 系统功能组织结构图3.3.1 系统各功能简介系统大体模块分为人员管理、出入库管理、数据备份和恢复、仓库管理、登录和注册。下面一一

23、做介绍。1人员管理人员管理模块可划分为个人信息修改和管理员管理功能。个人信息修改可修改当前登录用户的基本信息和密码。进入界面后,系统会自动读取出当前登录用户的基本信息,显示在相应的输入框中,因为个人信息可修改的较多,包括姓名,密码,年龄,地址,电话,身份证号,邮箱以及备注,所以用户可以只修改想要修改的内容,其它部分不变,这种方式增加了用户体验性。在修改密码时,为了保护帐号安全,不会显示登陆用户的密码。需要自己重新输入旧密码,然后输入两次新密码,通过验证后才能进行修改。管理员管理功能是对各仓库管理员进行管理,可以修改部分信息,包括仓库管理员对应的仓库等。如果仓库管理员违反了管理条例,必要时还能删

24、除该管理员。2.出入库管理出入库管理分为出入库单查询和出入库单添加。出入库查询为了让用户更加方便快速地查询到想到的信息,做了很多查询方式,包括显示全部,按物品号查询,按仓库号查询,按出入库时间段查询。其中按出入库时间段查询使用了lhgcalendar的Js框架,以文本框为时间选择载体,用户点击文本框则会跳出时间选择的版块。此外两个文本框之间也做了一定的限制,后者文本框不能选择比前者还早的时间,保证了时间段的准确性,避免用户时间选择上的失误。入库信息包括入库单号、入库货物、操作员、入库数量,入库价格、入库时间、仓库号、供应商、备注。出库信息包括出库号、出库货物、操作员、出库数量、出库价格、出库时

25、间、仓库号、备注。出入库单的添加也是根据出入库信息所拥有的特性进行添加。同时在客户端和服务器都做了一定的验证。添加时系统会自动默认为当前登录用户为操作员,当前系统时间为出入库操作时间。3.数据备份和恢复这一模块在整个系统的系统管理里面。用户点击进入后有两个按钮,分别是数据备份和数据恢复。数据备份中使用properties文件存放一定的数据,当用户点击备份按钮时则利用properties对象去文件中读取要用的信息,并使用StringBuffer将用到的字符串连接成一个字符串,之后利用Runtime来执行语句。数据恢复与数据备份类似,同样采用Runtime来执行语句的方法将备份好的数据重新输入到数

26、据库中。4.仓库管理仓库管理模块可细化分为物品管理,库存管理、仓库管理。仓库管理和物品管理大体功能差不多,都能多相应的对象进行增加、删除、修改的操作。查询方式有一、查询所有。点击后查询所有仓库、所有物品的库存。二、按货物号查询。在选择框中选择想要查询的物品,点击按钮后系统回去后台查询相应物品的信息。若无法查到信息,则在页面显示无数据。若能查到则显示货物编号,货物名字,所在仓库号和备注。三、按仓库号查询。执行流程和按货物号查询一样。这样管理员能随心所欲查询自己想要的信息,同样也避免了信息太大,查看不方便。5.登录和注册登录时用户只需要输入用户名、密码,然后选择自己的权限,系统会从后台读取信息来验

27、证输入的信息是否正确。若不正确则显示错误信息,若正确则允许用户登录。用户注册需要填写用户名,电子邮件,密码,确认密码,选择权限,身份,电话,管理的仓库号,选择性别,年龄,地址,备注。用户填写无误后点击确认按钮。系统会先在客户端进行验证,若有问题则不进入后台,否则进入服务器验证。如果都通过了,则更新数据库,页面显示注册成功。为了防止用户跳过客户端和服务器验证,本系统还采用了filter来进行控制,提高系统安全性。如果用户未经登录直接输入其它操作页面的地址,则系统会自动跳转回登录界面。如果用户想要注销自己的登录帐号,在登录后可以点击安全退出,系统会返回到登录界面,并消除刚才登录用户保存的信息。4

28、仓库管理系统数据库的设计 4.1 数据库介绍该系统为小型企业仓库管理系统,所以选择了开源的Mysql为数据库。它是一种轻量级的关系型数据管理系统。本系统采用JDBC的方式连接数据库。将连接数据库用到的连接信息存放在properties中,包括JDBC驱动文件名,数据库的URL,数据库名,数据库登录密码。在相应的类中使用静态代码块读取出properties的信息,并根据读取出来的信息利用类加载器加载JDBC驱动以及获取到连接。4.2 数据库概念设计当了解到用户的需求后,则应对需求进行分析,根据分析结果对数据库进行概念设计。使用E-R图来表示实体之间的关系。图4.1 仓库E-R图图4.2 货物E-

29、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)仓库信息表主要有仓库编号,仓库名字,仓库的负责人编号,仓库地址,仓库备注。其中仓

30、库编号为主键,属性为自动增长。仓库负责人编号为外键,参照用户表里的用户编号。表4.1 仓库信息表字段名数据类型长度允许空约束默认值说明Ware_idint11不主键空仓库编号(自动增长)Namevarchar30不空仓库名字admin_idint11不外键空负责人addressvarchar30不空仓库地址Remarkvarchar30允许空2. 货物信息表 (goods)货物信息表主要有货物编号,货物名称,备注。其中主键是货物编号,属性为自动增长。表4.2 货物信息表字段名数据类型长度允许空约束默认值说明Idint11不主键空货物编号(自动增长)Namevarchar10不空货物名字Rema

31、rkvarchar50允许空备注3. 货物入库信息表(ingoodsinfo)货物入库信息表主要有入库编号、货物编号、操作者编号、入库数量、入库价格、入库时间、仓库编号、供应商编号及其备注信息。其中入库编号是主键,属性为自动增长,货物编号、操作者编号、仓库编号、供应商编号为外键,分别对应货物表的货物编号,用户表的用户编号,仓库表的仓库编号以及供应商表的供应商编号。表 4.3 货物入库信息表字段名数据类型长度允许空约束默认值说明in_idint11不主键空入库编号(自动增长)good_idint11不外键空货物编号user_idint11不外键空操作人in_numint11不空入库数量in_pr

32、iceint11不空入库价格in_timedatetime不空入库时间wh_idint11不外键空仓库编号supp_idint11不外键空供应商编号Infovarchar30允许空备注4. 货物出库信息表(sellgoodsinfo)货物出库信息表主要有出库编号、货物编号、操作者编号、出库数量、出库价格、出库时间、仓库编号及其备注信息。其中出库编号是主键,属性为自动增长,货物编号、操作者编号、仓库编号为外键,分别对应货物表的货物编号,用户表的用户编号以及仓库表的仓库编号。表 4.4 货物出库信息表字段名数据类型长度允许空约束默认值说明sell_idint11不主键空出库编号(自动增长)good

33、s_idint11不外键空货物编号user_idint11不外键空操作人sell_numint11不空出库数量sell_priceint11不空出库价格sell_timedatetime不空出库时间wh_idint11不外键空仓库编号Infovarchar30允许空备注5. 供应商信息表(supplier)供应商信息表包括供应商编号,供应商名字,供应商地址,供应商电话,备注5个属性。其中供应商编号为主键,属性为自动增长。表 4.5 供应商信息表字段名数据类型长度允许空约束默认值说明supp_idint11不主键空供应商编号(自动增长)Namevarchar30不空供应商名字Addressvar

34、char30不空供应商地址Phonevarchar30不空供应商电话Remarkvarchar30允许空供应商备注6. 库存记录表(store)库存记录表主要有货物编号,货物名称,货物数量,仓库编号4个属性。因为需要考虑到同一货物在不同仓库和同一仓库下的不同货物,所以设置货物编号和仓库编号共同组成该表的主键。分别参照货物信息表中的货物编号和仓库信息表中的仓库编号。表 4.6 库存记录主表字段名数据类型长度允许空约束默认值说明good_idint11不主键空货物编号good_namevarchar30不空货物名字Amountvarchar30不空货物数量wh_idint11不主键空仓库编号7.

35、用户信息表(users)用户信息表主要有用户编号、用户名字、用户密码、性别、年龄、电话、仓库编号、身份证号、权限、邮箱、地址和备注等属性。其中用户编号为主键,属性为自动增长。仓库编号为外键,参照仓库信息表中的仓库编号。表 4.7 用户表字段名数据类型长度允许空约束默认值说明Idint11不主键空用户编号(自动增长)Namevarchar10不空用户姓名passwordvarchar16不空用户密码Genderchar1允许空性别Ageint11允许空年龄Phonevarchar15不空电弧wh_idint11不外键空仓库编号Idcardvarchar18不空身份证号Authint1不空权限(普

36、通员工、管理员)Emailvarchar20不空邮箱Addressvarchar30允许空地址Remarkvarchar30允许空备注 本科毕业设计说明书(论文) 第 33 页 共 33 页5 仓库管理系统的实现 5.1 登录注册功能的实现5.1.1 登录界面实现登录是软件使用的必经之路,登录界面的数据也通常只包括用户名,密码,在本系统中还添加了权限的选择。并且在客户端和服务端都进行数据控制。登录界面:图5.1 登录界面图功能实现的数据流程图:图5.2 登录界面数据控制流程图5.1.2 注册界面实现注册和登录是相辅相成的功能,用户注册即是要填写完整的用户信息。其处理过程与登录界面类似。界面采用

37、JS和CSS共同完成,当用户选择相应的标签时,界面会滑向相应的标签。注册界面:图5.3 注册界面图5.1.3 拉下选单功能实现该系统中的下拉选择列表采用JS和CSS配合html实现的动态选单。点击后下拉选项左右交替淡出淡入。图5.4仓库、供应商管理选项卡界面图5.2 个人信息管理功能的实现5.2.1 个人信息修改实现个人信息修改是通过获取当前登录用户的信息填入相应的文本框,用户可选择性修改想要的部分。当文本框失去焦点时能自动检测输入的文本是否合法,方便用户及时修改相应的信息。图5.5 个人信息修改界面图个人信息修改数据流程:图5.6 个人信息修改流程图5.3 仓库、供应商管理功能的实现5.3.

38、1 仓库管理功能实现仓库管理功能的实现分为两部分,一是仓库信息查询,二是仓库添加、修改和删除。仓库信息查询则是以表格的形式显示仓库的信息。对仓库操作界面同样以表格的形式显示仓库信息,在最后添加删除按钮,可删除对应的仓库。另外还有添加和修改按钮,此处利用div将所需要的板块先隐藏,点击按钮后才出现相应的功能板块。图5.7 仓库信息管理界面图5.3.2 供应商管理功能实现 供应商管理功能实现思路与仓库管理功能基本一致。图5.8 添加供应商数据处理图5.4 出入库页面功能的实现5.4.1 入库界面实现当仓库要入库某种货物时,需要仓库管理人员操作添加入库单。在添加界面输入相应的信息并添加到数据库中。其

39、中入库货物、供应商和仓库从数据库中获取现在已有的信息提供给管理员使用。如果入库成功则根据货物的编号和仓库的编号在相应的库存表中添加数据。若库存表中没有该条信息,则进行添加操作,如果信息存在就进行更新操作,在原来数量的基础上增加新入库的数量并保存。图 5.9 货物入库信息添加图 5.10 货物入库信息查询仓库管理员可以根据相应的需求进行查询入库信息。利用时间段来选择相应的入库信息,两个文本框使用了lhgcalender时间选择框架。该框架能让用户很方便的选择想要的时间,且能控制时间段的选择。该程序中两个有效时间后者不能选择小于前者的时间,避免了用户选择时出错的问题。图 5.11 时间选择界面图

40、5.12 数据入库信息处理流程图5.4.2 出库界面实现当有货物要出库时,仓库管理员需要进行出库操作,填写出库信息并添加到数据库中。在出库时,系统会根据货物的编号和仓库编号进行判断是否有足够的货物出库,如果不足则提醒仓库管理员库存不足无法出库,如果库存足够,则允许出库并且在相应的库存信息表中减去出库的数据。出库界面处理思路与入库类似。图 5.13 货物出库信息添加主要实现代码:图 5.14 货物出库信息添加仓库管理员可以根据相应的需求进行查询出库信息。若数据库中无信息则显示无记录。图 5.15 货物出库数据处理流程图5.5 货物管理页面功能的实现货物管理模块思路与仓库管理类似,同样实现了增删改

41、查四种基本功能。图 5.16 货物管理界面5.6 货物库存管理页面功能的实现库存查询是该系统至关重要的功能,能够让管理员清楚的了解到某个货物在某个仓库中的库存数量,以便管理员能够了解到是否需要进货。在修改库存数量的代码中采用了事务的处理方式,因为影响到多张表格的数据所以操作时如果其中某一张表格修改出现了问题其它操作也不能继续。事务的处理方式保证了数据的准确性,同样也让系统使用起来更加简单方便。图 5.17 货物库存信息查询5.7 员工管理页面功能的实现员工管理是超级管理员的一项特殊权限,超级管理员可以管理所有仓库管理员,可以修改他们部分信息,还能修改他们管理的仓库。该部分具体功能实现也个人信息

42、修改类似。图 5.18 人员管理界面5.8 系统管理功能的实现系统管理主要包括数据的备份与恢复。使用执行命令行的方式实现。数据备份主要代码:pros.load(BaseDAO.class.getClassLoader().getResourceAsStream(db.properties); String username = pros.getProperty(user); String password = pros.getProperty(password); / 得到MYSQL的用户名密码后调用 mysql 的 cmd: String mysqlpaths = pros.getPrope

43、rty(mysqlpath); String databaseName = pros.getProperty(databaseName); String address = pros.getProperty(address); String sqlpath = pros.getProperty(sql); File backupath = new File(sqlpath); if (!backupath.exists() backupath.mkdir(); StringBuffer sb = new StringBuffer(); sb.append(mysqlpaths); sb.app

44、end(mysqldump ); sb.append(-opt ); sb.append(-h ); sb.append(address); sb.append( ); sb.append(-user=); sb.append(username); sb.append( ); sb.append(-password=); sb.append(password); sb.append( ); sb.append(-lock-all-tables=true ); sb.append(-result-file=); sb.append(sqlpath); sb.append(sql); sb.app

45、end( ); sb.append(-default-character-set=utf8 ); sb.append(databaseName); Runtime cmd = Runtime.getRuntime(); Process p = cmd.exec(sb.toString();数据恢复主要代码:String fPath = d:warehouse.sql; Runtime rt = Runtime.getRuntime(); / 调用 mysql 的 cmd: Process child = rt.exec(C:Program Files (x86)MySQLMySQL Serve

46、r 5.5binmysql.exe -uroot -proot warehouse ); OutputStream out = child.getOutputStream();/控制台的输入信息作为输出流 String inStr; StringBuffer sb = new StringBuffer(); String outStr; BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(fPath), utf8); while (inStr = br.readLine() != n

47、ull) sb.append(inStr + rn); outStr = sb.toString(); OutputStreamWriter writer = new OutputStreamWriter(out, utf8); writer.write(outStr); / 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免 writer.flush(); / 别忘记关闭输入输出流 out.close(); br.close(); writer.close();5.9 系统功能测试系统调试是系统做完后必要的环节,可以让开发者了解到当前程序存在的bug。由于系统

48、篇幅有限故只列出添加出库信息模块测试。添加出库信息界面要求用户选择出库的货物,填写数量,价格并选择出库的仓库,还能添加一些备注。如果用户在输入数量和价格时没有输入数字,则系统会告知错误。图 5.19 测试添加出库信息如果用户添加时没有选择仓库编号或者出库货物,则系统会告知信息不完整。图 5.20 测试添加出库信息如果用户所出库的数量大于该仓库最存储货物的数量,则不允许出库。先库存中有清风纸巾200包,若想出库250包,则不允许出库。图 5.21 测试添加出库信息结 论通过几个月的努力,完成了这个仓库管理系统,实现了一些基本功能。整个过程中主要的任务就是需求分析,以及数据库设计和各逻辑功能的实现

49、。通过该系统可以快捷地实现仓库的人员管理、出库入库、货物盘点等工作,使企业的仓库管理有条不紊,为企业经营管理提供了一个良好平台。经过毕业设计,我进一步了解到软件工程的重要性,同时也更进一步的熟悉运用了jsp,servlet等技术。由于毕业设计是要单独完成,这也同样锻炼了自己独立思考的能力,了解到开发软件的整个流程。在开发过程中也遇到过很多难题,主要靠用谷歌搜索引擎以及老师和同学的帮助使问题迎刃而解。但是由于工作关系,时间有限,系统的功能还不够全面,还有很多功能可以添加进去。例如可以添加账单模块,计算整个仓库管理系统的收入支出,使得企业能更加了解盈亏情况。还可以添加一个提醒功能,比如某种货物的库

50、存低于一定数目时就提醒仓库管理员要求进货。 这是大学里做的最完整的一个系统,我希望临毕业之际能够用我大学所学的付诸于实践中,了解自己薄弱和擅长的方面,查漏补缺,提交上一份满意的答卷。致 谢在这里我要向我的指导老师叶老师表示感谢。叶老师参与了我整个毕业设计过程中,提供给我大量的帮助。在前期工作中,叶老师耐心的给我分析这个系统,教我如何开发,对开发工具的选择上也提供了一定的建议。在撰写前期材料时,叶老师都会细心指导,及时和我指出错误的地方。每一次材料的修改都蕴含着他们辛勤的汗水。在程序开发过程中,叶老师也时常关注我们的进度,给我们尽可能的提供更大的帮助。我在开发中遇到困难也会发邮件寻求老师的帮助,

51、加强沟通交流,能让自己学到更多的东西。在论文工作中,再次得到了叶老师的悉心指导。让我明白写论文的方法以及一些侧重点。值此论文完成之际,谨向叶老师致以最崇高的谢意!四年的大学生活即将结束,回顾四年来的点点滴滴,倍感欣慰,大学期间学到了很多有用的专业知识,并且打好了一定的计算机基础,对以后工作起到一定的作用。在此,我要向所有帮助过我的老师和同学表示由衷的感谢!参 考 文 献1 董泉源.基于Web的物流管理系统LH的设计与实现J.南京:计算机应用研究,2002(8):124-128.2 李海峰.基于J2EE技术开发高性能BBS论坛D.上海:华东师范大学,2006.3 董世清.微型计算机仓库库存管理系

52、统M北京:电子工业出版社,20104 韩杰.仓库管理系统D. 武汉:电子科技大学,20125 强锋科技.Eclipse从入门到精通(Java开发利器)M北京:清华大出版社,20056 孙鑫Java Web开发详解:深入剖析与实例应用M北京:电子工业出版社,20107 孙卫琴精通Hibernate:Java对象持久化详解M北京:电子工业出版社,20058 林信良Spring2.0技术手册M北京:电子工业出版社,20079 强锋科技,邱哲Struts Web设计与开发大全M北京:清华大学出版社,200610 丁振凡Java语言实用教程M北京:北京邮电大学出版社, 200511 阎宏Java与模式M 北京:电子工业出版社, 200212 BruceEckelJava编程思想M北京:机械工业出版社, 200713 孙卫琴基于MVC的JavaWeb设计与开发M北京:电子工业出版社,200414 王艳科技项目申报审批系统的设计与实现D济南:山东大学,201015 梁民基于Ajax技术基础的Web应用Developing Web Application Based on AjaxJ电脑知识与技术(学术交流)2006,5(3):15-45

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!