基于SSH+Oracle的物流管理系统的设计与实现毕业设计说明书.docx
《基于SSH+Oracle的物流管理系统的设计与实现毕业设计说明书.docx》由会员分享,可在线阅读,更多相关《基于SSH+Oracle的物流管理系统的设计与实现毕业设计说明书.docx(84页珍藏版)》请在冰点文库上搜索。
基于SSH+Oracle的物流管理系统的设计与实现毕业设计说明书
设计题目:
基于SSH+Oracle的物流管理
系统的设计与实现
DesignAndImplementationOfLogisticsManagementSystemBasedOnSSH+Oracle
College:
ComputerandInformationScience
SpecialtyandGrade:
SoftwareEngineering,2008
Number:
081181062
Name:
ZhongweiSu
Advisor:
AssociateProfessor.JinmingLi.
Submittedtime:
May,2012
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
摘要
本文介绍了基于SSH轻量级框架+Oracle的物流管理系统的开发过程。
首先查阅资料和分析系统的可行性,然后从系统的需求分析入手,提取出系统应具有的功能,为进行系统设计,重点阐述了物流管理系统的功能模块、框架结构、系统的体系结构、开发环境、开发流程和系统测试。
还介绍了数据库及数据表分析和创建过程,并且给出了部分数据表及相关的E-R图,最后详细介绍了“用户登录”、“权限拦截”、“组配管理”等模块的设计及实现过程。
本系统采用MyEclipse10.0+Oracle的开发环境。
MyEclipse提供了更为方便、友好的开发界面,降低了对使用者的要求,大大提高了开发的效率。
系统采用B/Sweb软件体系结构,使用Oracle11gR2作为后台数据库,充分利用Struts+Spring+Hibernate主流web轻量级框架,结合JSP+JavaBean等技术快速开发出来的一个符合MVC模式的物流管理系统。
关键词:
SSH;Oracle;MVC;权限拦截;物流管理;页面过滤;AOP;注解
Abstract
ThispaperintroducesthedevelopmentprocessoftheSSHlightweightframeworkforOracle-basedlogisticsmanagementsystem.Firstly,checkthefeasibilityoftheinformationandanalysissystem.Andthen,fromtheanalysisofdemand,extractedthefunctionwhichthesystemshouldbehave,alsofocusingonthelogisticsmanagementfunctionmodules,systemframework,systemarchitecture,developmentenvironment,developmentprocessandsystemtesting.Ithasalsointroducedthedatabaseanddataanalysisandtablecreationprocess,andapartofthedatapresentedinTableE-Randrelateddiagram.Finally,adetailed"userlogin","permissioninterceptor","distributionmanagement"modulesofthedesignandimplementationprocess.
ThesystemusestheMyEclipse10.0&Oracledevelopmentenvironment.MyEclipseprovidesamoreconvenient,friendlydevelopmentinterface,reducingtheuser'srequirements,greatlyimprovingtheefficiencyofdevelopment.ThesystemusestheB/Swebsoftwarearchitecture,andusesOracle11gR2asthebackgrounddatabase,andmakefulluseoftheStruts+Spring+Hibernatemostpopularlightweightwebframework,combinedwithtechnologiessuchasJSP,JavaBean,todevelopalogisticsmanagementsystemoftheMVCpatternquickly.
Keywords:
SSH;Oracle;MVC;permissioninterceptor;logisticsmanagement;requestpagefilter;AOP;annotation
1引言
1.1课题的研究背景和意义
电子商务物流是一整套的电子物流解决方案,电子上的物流显示及相关操作,物流还是需要机器和人搬运的。
电子商务物流还要从传统物流做起。
目前国内外的各种物流配送虽然大都跨越了简单送货上门的阶段,但在层次上仍是传统意义上的物流配送,因此在经营中存在着传统物流配送无法克服的种种弊端和问题,尚不具备或基本不具备信息化、现代化、社会化的新型物流配送的特征[1]。
电子商务时代,由于企业销售范围的扩大,企业和商业销售方式及最终消费者购买方式的转变,使得送货上门等业务成为一项极为重要的服务业务,促使了物流行业的兴起。
物流行业即能完整提供物流机能服务,以及运输配送、仓储保管、分装包装、流通加工、等以收取报偿的行业。
主要包括仓储企业、运输企业、装卸搬运、配送企业、流通加工业等。
信息化、全球化、多功能化和一流的服务水平,已成为电子商务下的物流企业追求的目标[2]。
随着我国电子商务的发展尤其是网络购物的爆发式增长大大促进了电子商务物流服务业尤其是快递服务业的发展,使其成为社会商品流通的重要渠道。
据统计,与淘宝网合作密切的圆通、申通等快递企业,其六成以上的业务量都来自网络购物。
因此,可以看到研究物流管理系统是一件非常有意义的事情。
首先,从社会发展的角度来说,软件系统的实施有助于加快企业信息化的步伐,同时为促进信息化和社会进步作贡献。
软件系统的普及率是一个社会是否达到信息化的重要参考,信息化对整个社会进步和生产力的提高的重要作用是有目共睹,没有良好的硬件环境作基础,就没有软件系统兴旺发达的基础,同样光有先进的硬件环境却没有优秀的软件作支撑,硬件就会变成好看不中用的摆设,于个人、企业都没有什么益处,正是大量优秀的软件被广泛地使用,推动了硬件的不断更新换代,为社会创造了巨大的价值。
其次,从管理的角度来看,物流管理系统在企业的全面实行可以改变企业的运行模式,提高企业的工作效率,增强企业竞争力。
物流管理系统是物流管理理论和计算机技术相结合的产物,实践证明他是科学可行的,大量优秀的物流管理软件系统的被使用,将使得物流信息将更加及时、速度将得到很大提升、管理会更科学、物流人才更具专业化和大大节约企业物流成本,对于企业各方面取到了越来越重要的作用。
再次,从技术的层面来讲,本物流管理系统采用JAVA技术进行开发,JAVA技术是目前商业软件开发使用最广泛的技术之一,不仅高效、功能强大、灵活,而且开发的系统界面友好、使用稳定、安全。
本课题的研究是JAVA技术很好的一次应用实践。
2系统总体设计
2.1需求分析
需求分析是系统开发的第一步也是最重要的一个环节,其基本任务是要准确地定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。
在可行性研究和项目开发计划阶段对这个问题的回答是概括的、粗略的[3]。
它需要我们在对用户需求进行充分调研的基础上,深入理解并描述出软件的功能、性能、接口等方面的需求。
物流管理系统的总目标是:
在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的物流管理系统,实现物流信息的自动化管理,为物流公司提供全面、真实的数据支持;建立完善了订舱管理系统,减少物流企业中各生产、管理员的工作量;提供准确的信息,供查询、统计、分析、归档。
优化物流作业流程,提升物流运行效率,提供高效的客户资源管理;解决了人工调度、人工跟单及处理紧急送任务时的工作量大、处理差错多等问题。
根据可行性研究的结果,分析现有情况及问题,要求物流管理系统应具有以下功能:
●对系统的用户进行管理,包括系统各模块的使用权限,划分每个员工的职能和角色安排。
●对位置、车辆、司机的管理,做好对物流基础配置方面的处理。
●对客户进行管理,将客户所下订单补充好信息并保存。
●对库存信息进行管理,包括入库和出库操作以及仓库的增设删除。
●将运单送至组配中心,在当前位置为其配置车辆、司机,并做好出车记录。
●对配货信息进行跟踪,直到客户接收到货单。
2.2系统功能结构
系统总体功能设计就是对系统的需求进行分析,采用面向对象的设计方法对系统进行分解,其基本思想就是自顶向下将整个系统划分为若干个子系统,在必要时子系统再划分成若干功能模块。
所以要开发出一个成功的系统程序,关键是要紧密联系实际,程序的实用性要强,为此要先分析物流管理工作的内容、流程,并将其优化,最后程序化实现。
本系统划分为用户管理、客户管理、位置管理、司机管理、车辆管理、运单管理、系统管理、库存管理、权限管理、角色管理、组配管理、出车记录管理等十二个子系统,具体的功能结构图如下:
图2-1物流管理系统功能结构图
各子系统的功能描述如下:
登录模块:
该模块提供系统管理员分配的用户进行登录,成功登录后将添加该用户登录信息到数据库记录中,提供验证码重新加载功能,成功登录后可以安全退出系统。
用户管理模块:
该模块主要功能是对系统用户的基本信息及权限进行管理,包括添加用户、用户按条件查询、修改或还原密码、设置&更改用户权限、删除用户、赋予用户角色。
位置管理模块:
该模块主要是对国内各大城市地理位置进行管理,包括添加位置信息、按条件查询位置信息、删除记录。
角色管理模块:
该模块主要是对系统用户所有角色进行管理,包括添加角色信息、按条件查询角色信息、删除角色记录、修改角色权限掩码。
权限管理模块:
该模块主要是对系统所有操作权限进行管理,包括添加权限信息、按条件查询权限信息、删除权限记录、修改权限记录。
系统信息模块:
该模块主要功能是对当前系统用户所处的客户端信息进行采样,并可查询用户登录信息记录。
客户管理模块:
该模块主要功能是对客户基本信息进行管理,包括添加客户信息(填写客户基本资料),按条件查询客户信息、修改客户信息、删除客户信息。
运单管理模块:
该模块主要是对订单信息进行管理,包括下订单、按条件查询订单信息、对运单入库成功之后,可以通过组配中心,进行发货操作,最后在成功接收车辆后,接收运单,完成运单的结算。
组配中心模块:
该模块主要是对运单进行车辆、司机的分配管理,并对运单提供两种运送方式分别为派送和传输,同时还具备删除组配案例。
车辆管理模块:
该模块主要是对公司的车辆进行管理,添加车辆、按条件查询车辆信息、修改车辆信息、删除车辆信息,对组配运单的车辆进行出车记录跟踪,并实现车辆到达目的后添加接收记录功能。
司机模块:
该模块主要是对司机信息进行管理,包括下订单、按条件查询司机信息、修改司机信息、删除司机记录。
仓库管理模块:
该模块主要功能是对物流公司的仓库进行管理,包括添加仓库、按条件查询仓库记录、修改仓库记录、删除仓库记录、将运单入库处理,对运单出车时的出库操作。
2.3系统体系结构
随着Web技术的发展,由于HTTP(HypertextTransferProtocol:
超文本传输协议)为所有的应用提供了统一的基础,解决了通信层的问题,B/S结构应运而生。
B/S系统由浏览器和服务器组成,服务器包括Web服务器、数据库服务器、应用服务器、中间件等[4]。
数据和程序放在服务器端,服务器可以有多层结构,服务器执行必要的计算,负责与数据库的交互工作,并将结果发送给客户。
客户端只需拥有浏览器即可十分容易地使用该系统,前端的浏览器不用维护,操作风格一致,因此它是一种瘦客户机模式,B/S结构大体可被分为如下四层,层次结构如下图:
用户服务层
业务处理层
应用服务器
数据库
图2-2层次结构图
第一层为人机界面,一般为基于HTML(HypertextMarkupLanguage:
超文本标记语言)的浏览器,用一些客户端控件或脚本技术来丰富用户界面。
第二层为业务规则层,一般由内嵌HTML网页的脚本和控件来处理。
当然,浏览器并没有固定的规则,它们仅存在于网页中。
由于这些规则要通过网络传输,会带来安全性的问题,一般采用安全套接层SSL(SecureSocketsLayers)来减少安全风险。
第三层为应用服务器,该层位于服务器端,处理和产生最后的结果。
这部分可以为数据库或其它业务对象将挖掘出的信息发往浏览器或存储由浏览器发来的信息。
第四层为数据服务层,主要实现数据定义、存储、备份和检索等功能,主要由数据库系统实现.
在Web模式下,第一层和第二层位于浏览器端,而服务器端则包含第三和第四层。
由上可以看出,基于Web的B/S体系结构是由C/S体系结构转化而来的,B/S模式可以看作是传统C/S模式的一个延续[4]。
基于以上特性,在本系统的设计过程中,我选择了B/S结构。
2.4系统的开发环境
2.4.1MyEclipse概述
开发这个系统,我选择了MyEclipse作为开发工具。
MyEclipse,是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。
在该开发平台中可以集成不同软件开发供应商的产品,任何软件开发工具供应商都可以将他们的开发工具和组件加入到MyEclipse平台中。
MyEclipse是是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。
2.4.2Oracledatabase概述
OracleDatabase,又名OracleRDBMS,或简称Oracle。
是甲骨文公司的一款关系数据库管理系统。
ORACLE公司于1979年,首先推出基于SQL标准的关系数据库产品,可在100多种硬件平台上运行(所括微机、工作站、小型机、中型机和大型机),支持很多种操作系统。
用户的ORACLE应用可方便地从一种计算机配置移至另一种计算机配置上。
ORACLE的分布式结构可将数据和应用驻留在多台计算机上,而相互间的通信是透明的。
1992年6月ORACLE公司推出的ORACLE7协同服务器数据库,使关系数据库技术迈上了新台阶。
根据IDG(国际数据集团)1992年全球UNIX数据库市场报告,ORACLE占市场销售量50%。
它之所以倍受用户喜爱是因为它有以下突出的特点:
支持大数据库、多用户的高性能的事务处理。
ORACLE支持最大数据库,其大小可到几百千兆,可充分利用硬件设备。
支持大量用户同时在同一数据上执行各种数据应用,并使数据争用最小,保证数据一致性。
系统维护具有高的性能,ORACLE每天可连续24小时工作,正常的系统操作(后备或个别计算机系统故障)不会中断数据库的使用。
可控制数据库数据的可用性,可在数据库级或在子数据库级上控制。
ORACLE是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。
是目前最流行的客户/服务器(CLIENT/SERVER)体系结构的数据库之一[5]。
ORACLE提供了与第三代高级语言的接口软件PRO*系列,能在C,C++等主语言中嵌入SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。
加上它有许多优秀的前台开发工具如POWERBUILD、SQL*FORMS、VISIABASIC等,可以快速开发生成基于客户端PC平台的应用程序,并具有良好的移植性。
3数据库设计
3.1数据库概念结构设计
下面介绍数据库设计中的E-R图,即实体-关系图,举例如下:
图3-1物流管理系统E-R图
3.2数据库逻辑结构设计
本系统共12个表,限于篇幅,下面简要介绍一下系统中用到的几个表的结构:
(1)车辆表
车辆表主要用于保存车辆信息。
表3-1车辆表的结构
字段名
数据类型及长度
是否为空
是否主键
描述
ID
DRIVERID
CARID
DEADWEIGHT
VOLUME
STOREMODE
TYPE
CURRENTLOCATION
STATUS
NUMBER(11,0)
VARCHAR2(20BYTE)
VARCHAR2(20BYTE)
NUMBER(11,0)
NUMBER(11,0)
VARCHAR2(20BYTE)
VARCHAR2(20BYTE)
VARCHAR2(20BYTE)
NUMBER(6,0)
否
否
否
否
否
否
否
否
是
是
否
否
否
否
否
否
否
否
数据库流水号
司机编号
汽车牌号
载重
容积
储存方式
车辆类型
当前位置
当前状态
(2)客户表
客户表主要用于存放企业员工信息。
表3-2客户表的结构
字段名
数据类型及长度
是否为空
是否主键
描述
ID
NAME
ADDRESS
PHONE
MOBILE
EMAIL
QQ
STATUS
VARCHAR2(18BYTE)
VARCHAR2(20BYTE)
VARCHAR2(255BYTE)
VARCHAR2(20BYTE)
VARCHAR2(20BYTE)
VARCHAR2(20BYTE)
VARCHAR2(20BYTE)
NUMBER(6,0)
否
否
是
是
是
是
是
是
是
否
否
否
否
否
否
否
客户身份证
姓名
客户住址
电话
手机号
邮箱
QQ
当前状态
(3)司机表
司机表主要用于存放司机信息记录。
表3-3司机表的结构
字段名
数据类型及长度
是否为空
是否主键
描述
ID
LOCATIONID
NAME
LICENSELEVEL
PHONE
STATUS
VARCHAR2(20BYTE)
NUMBER(11,0)
VARCHAR2(20BYTE)
VARCHAR2(2BYTE)
VARCHAR2(20BYTE)
NUMBER(6,0)
否
否
否
否
是
是
是
否
否
否
否
否
司机身份证
位置编号
姓名
驾驶证
手机号
当前状态
(4)位置表
位置表主要用于存放城市位置记录。
表3-4位置表的结构
字段名
数据类型及长度
是否为空
是否主键
描述
ID
NAME
STATUS
NUMBER(11,0)
VARCHAR2(20BYTE)
NUMBER(6,0)
否
否
是
是
否
否
数据库流水号
名称
当前状态
(5)登录记录表
登录记录表主要用于存放员工用户登录记录。
表3-5登录记录表的结构
字段名
数据类型及长度
是否为空
是否主键
描述
ID
USERID
TIME
NUMBER(11,0)
NUMBER(11,0)
DATE
否
否
是
是
否
否
数据库流水号
用户编号
登录时间
(6)权限表
权限表主要用于存放系统操作基本权限信息记录。
表3-6权限表的结构
字段名
数据类型及长度
是否为空
是否主键
描述
ID
NAME
MASK
REMARK
NUMBER(11,0)
VARCHAR2(20BYTE)
VARCHAR2(32BYTE)
VARCHAR2(255BYTE)
否
否
否
是
是
否
否
否
数据库流水号
名称
掩码
说明
(7)角色表
角色表主要用于存放公司组织架构中角色信息记录。
表3-7角色表的结构
字段名
数据类型及长度
是否为空
是否主键
描述
ID
NAME
PERMISSION
STATUS
NUMBER(11,0)
VARCHAR2(20BYTE)
VARCHAR2(32BYTE)
NUMBER(6,0)
否
否
否
是
是
否
否
否
数据库流水号
名称
权限掩码
当前状态
(8)库存表
库存表主要用于存放仓库信息记录。
表3-8库存表的结构
字段名
数据类型及长度
是否为空
是否主键
描述
ID
LOCATIONID
STOREMODE
ADDRESS
LENGHT
WIDTH
HEIGHT
CURRENTVOLUME
STATUS
VARCHAR2(20BYTE)
NUMBER(11,0)
VARCHAR2(20BYTE)
VARCHAR2(255BYTE)
NUMBER(11,0)
NUMBER(11,0)
NUMBER(11,0)
NUMBER(11,0)
NUMBER(6,0)
否
否
否
否
否
否
否
否
是
是
否
否
否
否
否
否
否
否
库存编号
位置编号
存储方式
地址
长
宽
高
当前容量
当前状态
(9)出车记录表
出车记录表主要用于存放运单出车记录