基于SSH的物流配送管理系统的设计与实现-毕业论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
---文档均为word文档,下载后可直接编辑使用亦可打印---
要
当今社会,物流配送已成为影响经济发展的显著因素。
而随着社会信息化发展,建立有效的物流配送管理体系不仅能够减少物流成本,更能够提升工作人员的工作效率与客户的满意度。
而基于B/S架构的物流配送管理体系,不仅具有良好的分布性,可以随时随地进行业务的浏览、查询和处理,而且部署维护方便,易于扩展。
本文设计的物流配送管理系统正是基于B/S架构实现的JavaWeb项目,具备以上优点。
本文讨论了B/S架构与C/S结构之间的优缺点,介绍了进行JavaWeb项目开发的相关技术、所应用的MVC设计模式和开源集成框架SSH (Struts+Spring+Hibernate)以及使用的MySQL数据库,对开发的物流配送管理系统进行了详细的可行性研究与需求分析,并细致的介绍了系统的总体设计,包括系统的架构设计、功能模块划分及业务逻辑的实现。
本文设计的物流配送管理系统是利用Java语言和Eclipse编程工具编写而成的。
系统集客户管理、仓库货物管理、配送管理、权限管理等功能于一体,前端页面设计采用ExtJS进行布局,界面简洁且具有良好的兼容性,业务逻辑简单,易于操作,为用户提供了一个友好的信息管理系统。
关键词:物流配送;B/S架构;设计模式;SSH;ExtJS
Design and Implementation of Logistics Distribution Management
System Based on SSH
Abstract
In recent days, the logistics distribution has become the most important fact to affect the development of economic. And with the coming of information age, establishing an effective logistics distribution management system not only can reduce the logistics cost, but also can improve the working efficiency of the staff and customer satisfaction. The logistics distribution management system based on B/S model has good distribution capability. People can browse, query, and process of business at any time and place. In addition, it is convenient to develop and maintain, and it is easy to extend. This article describes a Java Web project that is based on B/S model.
This article describes the advantages and disadvantages of the B/S structure and C/S structure, and introduces the related technology of developing JavaWeb project, the application of MVC design pattern, the opening source SSH(Struts+Spring+Hibernate) framework and the technology of MySQL. In addition, the feasibility study and demand analysis of the logistics distribution management system are carried out in detail. The paper detailed describes the overall design of the system, including the system architecture design, function module division and business logic.
The logistics distribution management system designed in this paper is written by Java language and Eclipse programming tools. The system is consisted of customer management, warehouse and cargo management, distribution management, rights management and others functions. The layout of front page uses ExtJS. The interface is simple and has good compatibility. The business logic is easy for user to understand and operate. In short, a friendly management system is provided for the user.
Key Words:Logistics Distribution;B/S Model;Design Pattern;SSH;ExtJS
目录
摘要 (I)
Abstract (II)
引言 (1)
1 项目背景及相关技术介绍 (2)
1.1 项目背景 (2)
1.2 项目目的 (2)
1.3 开发环境介绍 (2)
1.3.1 Tomcat服务器 (2)
1.3.2 MySQL数据库 (2)
1.4 相关技术介绍 (3)
1.4.1 B/S架构和C/S架构 (3)
1.4.2 JSP介绍 (4)
1.4.3 ExtJS介绍 (5)
1.4.4 JavaWeb开发框架 (5)
1.5 论文结构 (8)
2 系统分析 (9)
2.1 可行性分析 (9)
2.1.1 社会可行性分析 (9)
2.1.2 经济可行性分析 (9)
2.1.3 技术可行性分析 (9)
2.2 需求分析 (9)
3 总体设计 (14)
3.1 系统架构设计 (14)
3.2 业务流程设计 (15)
3.3 系统功能模块图 (15)
3.4 系统配置文件 (16)
3.4.1 Web工程配置文件 (16)
3.4.2 Struts配置文件 (18)
3.4.3 Spring配置文件 (18)
3.4.4 Hibernate配置文件 (20)
4 详细设计 (21)
4.1 登陆及权限管理的设计 (21)
4.2 客户服务中心 (21)
4.3 调度中心 (22)
4.4 中心仓库管理 (23)
4.5 配送中心 (24)
4.6 分站管理 (25)
4.7 数据库设计 (26)
4.7.1 设计原则 (26)
4.7.2 关系设计 (26)
4.7.3 基本表的设计 (27)
5 功能实现 (33)
5.1 登陆及权限管理的实现 (33)
5.2 客户服务中心 (35)
5.3 调度中心 (39)
5.4 中心仓库管理 (40)
5.5 配送中心 (42)
5.6 分站管理 (45)
6 系统测试 (48)
结论 (50)
参考文献 (51)
致谢 (52)
引言
随着社会信息化发展的速度不断加快,互联网的覆盖面积不断扩大,计算机的不断普及,人们对互联网的认知也不断加深,对互联网的要求也越来越高。
随着人们访问互联网的便捷程度不断提升,以互联网为基础的网上办公已成为提升办公效率、提高办公规范的首要工作方式,因此,采用计算机来管理公司的各种业务已成为必然趋势。
管理信息系统(MIS)是一个以人为主导,利用计算机硬件、软件、网络通信设备以及其他办公设备,进行信息的收集、传输、加工、储存、更新、拓展和维护的系统。
通过调查了解一个企业的人力、物力、财力、设备、技术等资源,建立正确的业务逻辑及数据信息,并对其进行加工处理形成一整套的业务处理体系,提供给管理人员使其便捷、高效地做出决策,能够不断地提高企业的管理水平和经济效益。
伴随信息化浪潮的兴起,企业办公必然向着快捷、高效的无纸化方向发展。
使用MIS系统进行系统决策,更能够使管理人员及时了解企业现状,把握企业的未来发展道路。
本项目开发的物流配送管理系统是针对物流配送行业的相关业务需要建立起来的现代管理信息系统。
该系统是基于B/S结构实现的Java Web项目,能够满足基本的物流配送业务流程,其基本功能如下:
(1)客户服务中心:实现客户的增删改查管理,并能为客户生成订单;实现订单信息查询;
(2)调度中心:实现对缺货订单状态的修改以及对生成的订单进行调度管理;
(3)投递分站管理:面向客户提供服务,实现对已完成调度的任务单进行查询分配,并对已完成配送的任务单进行回执录入;对中心仓库的调拨货物入库,配送员按照配送任务单进行领货;
(4)中心仓库管理:仓库分为中心仓库与分站仓库,实现中心仓库对外进货并将货物入库,将货物调拨到投递分站的仓库;
(5)配送中心管理:实现商品、供应商、仓库的增删改查管理,对缺货商品安排进货;同时可查询客户订购的货物排行及配送员配送情况。
(6)权限管理:实现用户分权限管理,不同权限的用户可进行的管理操作不同。
程序在设计和开发实现后,对其进行了详尽的测试,经测试证实其业务逻辑和性能满足设计需求。
但由于开发时间短,故界面美观性及具体的功能还有待增加完善,今后会对其持续完善。
1 项目背景及相关技术介绍
1.1 项目背景
由信息化带来的世界发展趋势必然是全球化和市场化,而物流配送正是这两者的结合,并且物流配送也进一步促进了世界经济和贸易的发展。
自1996年11月的中国第一宗网络购物的发生到现在,网络购物依然成为人们生活中不可或缺的一部分。
各大网络购物平台的兴起,更是使得网购在人们消费方式中占据了相当大的比重,由此也带来了物流配送行业蓬勃兴起。
随着物流企业的规模和业务不断扩展,单靠传统的管理模式已无法满足其工作需求,因此一个高效便捷的业务决策系统就显得尤为重要。
1.2 项目目的
物流配送系统的主要目标是能够高效、快速的调配企业的各种资源,使企业的各部门分工协作,以求为客户提供满意、高效的配送服务。
本项目的目的是开发一款可以高效便捷处理物流配送业务的管理信息系统,界面简洁,操作简单。
本项目是基于B/S结构的JavaWeb项目,能够将传统物流配送管理中繁琐的管理工作清晰化,透明化,实现物流配送信息的系统化、规范化、信息化,从而达到提高物流配送管理效率的目的。
1.3 开发环境介绍
1.3.1 Tomcat服务器
Web容器是一种为应用程序组件(如JSP、Servlet)提供一个运行时环境(Runtime Environment),这样就可以不再关注其他的系统问题。
现在主流的Web容器有Tomcat、Weblogic、WebSphere等,而本设计采用Tomcat的原因为相较于其他的Web容器,Tomcat 具备了很多优点使其非常适合用来开发中小型系统,如开源免费、技术性能稳定、轻量级、具有良好的扩展性等,除此之外,Tomcat的部署简单方便,不像Weblogic等需要单独创建Weblogic域和数据源,而且Tomcat在运行时占用的系统资源小,启动速度快,其功能和性能的全面性使其非常适合快速开发调试Web程序。
1.3.2 MySQL数据库
MySQL是一个开源的关系型数据库管理系统。
关系型数据库,是指采用了关系模型来组织数据的数据库。
简单来说,可以将关系理解为“表格”,而一个关系型数据库就是由一个或者多个表格及其表格之间的关系组成的。
虽然相比于Oracle、Sybase、DB2等大型商业数据库,MySQL存在一些不足,如功能不够强大、没有提供自身的存储引擎、仅提供简单的可编程支持等,但整体而言,其功能完全可以满足通用的需求。
MySQL支持多线程,并为多种编程语言提供了API,非常适合用来开发JavaWeb项目;使用标准的SQL数据语言形式,使得查询、存储信息更加容易。
此外,MySQL作为一个开源的软件,不仅成本低,而且其易用性、性能及可靠性方面具有很大优势。
排在全球前10位的大型网站里面,大部分网站都有部分业务是运行在MySQL数据库环境上的,如Facebook、Yahoo、Google等。
1.4 相关技术介绍
1.4.1 B/S架构和C/S架构
现在软件开发的整体架构主要分为B/S架构和C/S结构。
B/S架构全称为Browser/Sever,即浏览器/服务器架构;C/S架构全称为Client/Sever,即客户端/服务器架构。
B/S架构中,B指的是Web浏览器,主要事物逻辑是在S端(即服务器端)实现的,极少数的事物逻辑在前端实现;另外,B/S架构中的显示逻辑交给了Web浏览器,事物处理逻辑交给WebApp完成,这样能够减少客户端的压力,避免了庞大的胖客户端,故也被称为瘦客户端。
如图1.1为B/S架构图。
而且现在任何操作系统中都带有浏览器,故基于B/S架构的软项目具有良好的普适性。
图1.1 B/S架构图
相较于C/S架构,B/S架构具有很多优点,客户端无需安装,有Web浏览器即可;具有良好的分布性,可以随时进行业务的查询、浏览与处理;业务扩展方便,增加服务
器功能只需要增加网页即可;维护简单,改变页面即可实现所有用户的同步更新;开发简单,成本低,且共享性强;数据可以存储在云端,不必担心数据丢失[1]。
同时B/S也有安全性相对较差,实现复杂功能较为困难,跨浏览器适应性较差等缺点。
但是随着编程语言的不断发展,B/S架构的这些缺点也在不断改善中。
我们可以通过一个B/S架构与C/S架构的对比来更加深入的了解它们之间的差异,如表1.1所示:
表1.1 B/S架构与C/S架构对比
项目B/S架构C/S架构
硬件环境适用于广域网,范围广适用于专用局域网
安全性面向不可知人群,安全性较弱面向固定人群,安全性强
重用性多重结构,重用性强注重整体性,重用性弱
可维护性可维护性强可维护性弱
工作原理浏览器通过WEB服务器向数据库服务器发
送数据请求,是多对多通信
客户端与服务器直接相连,是点对点通信
数据库连接类型JDBC连接,用户不保持对数据库的连接,
用户数无限制
ODBC连接,用户保持对数据库的连接,
用户数有限制
响应速度依赖数据库服务器,高并发时响应速度慢响应速度快
信息流信息流向可变化,交互性高典型的中央集权式机械处理,交互性低
随着PC机的诞生与应用,计算机模式从集中式(数据和应用程序在一台主机上)转向了分布式(数据和应用程序跨越多个节点机),尤为典型的是C/S架构。
近来,随着网络技术的不断发展,尤其是基于Web的信息发布和检索技术、Java计算技术以及网络分布式对象技术的飞速发展,导致了很多应用系统的体系结构从C/S结构向更加灵活的多及分布结构演化,即B/S体系架构。
对于分布式系统,B/S架构相较于C/S架构而言具有更高的适用性,故本文设计的物流配送管理系统是基于B/S架构的。
1.4.2 JSP介绍
JSP(Java Server Pages)是一种动态网页技术标准,实现了与用户的交互,是基于B/S架构的动态网页。
作为一种动态网页技术,JSP具备了很多静态网页(*.htm,*.html)所不具备的优点。
由于其是在静态网页(*.htm,*.html)中嵌入Java程序段(JavaScript)和JSP标记(tag),本质就是Java程序,继承了Java的一切优点,具有严格的Java语法和丰富的Java类库支持,且使用JSP技术开发出来的Web项目是平台无关性的,可以在Windows、Linux等不同操作系统上运行;JSP具有九大内置对象,在编写代码时无需声明即可直接使用,大大方便了软件开发人员的开发过程。
JSP技术发展到今天已
经变得相当成熟完备,并且其前景非常广阔。
在这样的背景之下,利用该技术来进行管理信息系统的开发非常具有意义。
1.4.3 ExtJS介绍
ExtJS的前身来自于YUI(Yahoo!UI Library),经过不断地发展和改进,目前已成为网络上UI界面最丰富、绚丽的JavaScript基础库之一。
ExtJS库提供了大量的UI 组件,可以大大缩短软件的开发周期;使用更加标准的形式展示数据,降低了开发难度;对浏览器没有任何要求,兼容性好;与后台代码无关。
虽然ExtJS也存在一些缺点,但其强大的功能及其适应性,使其成为开发Web项目的首选。
1.4.4 JavaWeb开发框架
本系统采用SSH(Struts+Spring+Hibernate)开源集成框架进行开发,属于传统的MVC设计模式。
接下来将对其进行介绍。
(1)MVC设计模式
MVC全名为Model View Controller,是模型-视图-控制器的缩写,是一种软件设计典范,它将业务逻辑、数据、界面显示的代码分离开来,将业务逻辑聚集到一个组件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
下面将详细说明MVC中的各个组成部分。
模型,也称为数据模型,是应用程序的主体部分,用于处理应用程序的数据逻辑,封装相关数据并定义处理数据的方法。
控制器依据I/O的需要来调用这些操作过程。
模型还为视图获取显示数据提供了访问其数据的操作。
视图是呈现给用户的,用户与之产生交互。
视图向用户显示相关的数据,并能接收用户的输入数据。
视图可以查询业务状态,但并不进行任何的业务处理,且不能改变模型。
视图还能接受模型发出的数据更新事件,从而实现对自身功能的同步更新。
控制器是应用程序中处理用户交互的组件。
通常控制器负责从视图中读取数据,控制数据在视图上展示,处理逻辑,并向模型发送数据,调用其处理业务的请求。
如图1.2所示描述了MVC组件间的关系与功能:
其事件发生过程如下:
①用户通过视图和应用发生交互,并向控制器发送请求。
②控制器的事件处理器被触发。
③控制器从模型中请求数据,并将其交给视图。
④视图将数据呈现给用户。
图1.2 MVC组件类型的关系和功能
MVC的工作模式具有很多优点,使其很受开发者的喜爱。
如,MVC具有低耦合性,实现了视图层与业务层的分离,可以不用重新编译模型和控制器的代码就更改视图层的代码。
同样地,如果应用程序的业务规则或业务流程发生了改变,只需要更改其模型层的代码即可。
另外,MVC也具有较高的重用性。
移动终端的发展与普及,给Web应用程序带来了新的挑战与更高的要求,而MVC的高重用性允许以各种不同的视图来访问同一个服务器,满足了Web应用程序不论通过Web浏览器还是无线浏览器(wap)都能实现其功能的需求。
此外,MVC还具有开发成本低,部署快,可维护性高等优点。
(2)SSH集成框架
SSH为Struts+Spring+Hibernate的一个集成框架,是一种Web应用程序开源框架,用于构建灵活、易于扩展的多层Web应用程序。
Struts本身是使用经典的MVC结构实现的,它将Servlet、JSP、自定义标签和信息资源(message resource)整合在一个统一的框架中,为Web应用提供了通用的框架,让开发人员专注于解决实际的业务逻辑,实现了代码的重用,使开发人员从繁杂的工作中解放出来,从而可以快速的开发出具有很强扩展性的Web应用程序。
Spring是一种基于MVC结构的轻量级业务服务层开发框架,其所耗费的系统资源开支比较少,而且Spring是非侵入式的,具体的对象并不依赖于Spring的API。
Spring 通过IoC(控制反转)和AOP(面向切面)这两种核心技术,统一了对象的配置、查找和生命周期的管理,从而实现了业务层中不同基础服务的分离,简化了企业应用开发的
复杂性。
在IoC中,对象之间的依赖关系是在统一的配置文件中进行描述,而不会在程序中用代码直接调用其他类的对象,这样就实现了由框架或容器掌握程序的控制权,而不是应用程序代码本身,大大降低了代码间的耦合程度。
AOP是OOP(面向对象编程)的延续,不同于OOP对实体及其属性和行为进行封装,AOP是面向动词领域的,它将影响到多个类的行为封装到可重用的模块中,能够通过预编译的方式和运行期间动态代理的方式在不修改源代码的前提下实现程序功能的统一维护,提高了程序的可重用性。
Hibernate是一个基于Java的对象/关系数据库映射工具,它将对象模型表示的数据映射到用SQL表示的关系模型上去,减少了应用开发过程中数据持久化的编程任务。
集成SSH框架的系统从职责上分为表示层、业务逻辑层、数据持久层和实体层(域模块层)四层。
表示层是由Struts框架实现的,业务逻辑层采用Spring框架实现,数据持久层采用Hibernate框架建立Java对象模型的持久对象。
Struts是系统的整体基础架构,负责MVC的分离。
在SSH集成框架中,Struts主要起控制作用,用于控制业务的跳转;Hibernate框架实现对数据持久层的支持;Spring作为一个轻量级的IoC容器,使Struts框架和Hibernate框架有效的结合起来,主要负责查找、定位、创建和管理对象及对象之间的依赖关系。
基于SSH集成框架构建而成的系统的基本业务流程如图1.3所示,
图1.3 架构图
①在表示层中,JSP页面为交互界面,实现用户与Web程序之间的交互,负责传送Request(请求)和接收Response(响应),然后根据配置文件(struts-config.xml)进行表单验证,并将ActionServlet接收到的Request分派给相应的Action来处理。
②在业务逻辑层中,Spring IoC容器提供给Action所需要的Model组件及其协作DAO组件来完成业务逻辑的处理。
③在数据持久层中,依赖于Hibernate的对象关系数据库映射查询数据库,并处理DAO组件请求的数据,返回处理结果。
采用SSH集成框架不仅实现了MVC的分离,而且实现了业务逻辑层和数据持久层的分离,降低了不同层之间的耦合度,大大提高了系统的可复用性。
1.5 论文结构
本文共分为六章,其内容安排如下所示。
第一章为项目背景及相关技术介绍,介绍了开发本项目的背景和目的,所用到的JSP、ExtJS、SSH开发框架、Tomcat Web容器及MySQL数据库概况和论文结构。
第二章为物流配送管理系统的分析,分别从社会、经济、技术三个方面分析了设计本项目的可行之处,同时还进行了需求分析。
第三章为系统的总体设计,描述了该系统的功能模块划分、架构设计及其配置文件设计。
第四章对本系统进行了详细设计,包括系统的登陆及权限管理的实现设计、各功能模块的详细功能设计和数据库设计。
第五章介绍了系统功能模块的实现过程以及使用方法。
第六章通过测试用例测试了该系统从创建订单到交付订单货物的整个流程,说明了该系统的可用性与完整性。
2 系统分析
系统分析是管理信息系统的一个主要阶段和关键阶段,本节将对物流配送管理系统做较为全面的可行性分析与需求分析。
2.1 可行性分析
本项目的可行性分析将分别从社会可行性、经济可行性以及技术可行性三个方面进行分析研究,说明开发本系统的可行性。
2.1.1 社会可行性分析
该项目不会对社会稳定性产生不利的影响,不存在任何妨碍政策方针的因素,也不存在侵犯法律道德的行为,不管从任何角度都不会成为一款对社会产生不良影响的系统。
2.1.2 经济可行性分析
该系统的设计和开发使用的是开源的集成框架SSH、ExtJS库、Web容器Tomcat、MySQL数据库、开发工具Eclipse,无需开发资金,仅仅需要投入开发时间即可,所以本系统的开发成本远远低于它的经济效益。
另外,该系统是一个小型Web项目,进行部署所需要的软件环境要求很低,并且系统投入工作后能够节省劳动力,提高工作效率,促使经济效益的提高。
2.1.3 技术可行性分析
开发该系统的编程语言为Java语言,另外采用了现在非常流行的SSH开源集成框架及ExtJS库,并与简单、易学的MySQL数据库相结合。
本系统主要涉及数据库的操作为增、删、改、查等重复性操作。
系统分层明确清晰,
2.2 需求分析
用例图是指由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的静态视图。
本节将通过用例图对该系统的功能需求进行分析。
作为一个MIS(管理信息系统),必须具备完整的功能以处理相应的业务需求。
本文设计的物流配送管理系统共分为五个模块,分别为客户服务中心、调度中心、中心仓库管理、配送中心、分站管理,并实现了相应的权限管理。
如图2.1为该系统的总体用例图。
图2.1 系统总体用例图
(1)客户服务中心
该模块主要实现与客户相关的功能,包括客户管理和订单信息查询两个子功能模块。
其中客户管理必需的功能为添加客户、删除客户、查询客户以及选择相应客户进行新订单的创建;订单查询则需要根据条件进行订单信息的查询并可查看订单的详细信息。
其用例图如下图2.2所示。
图2.2 客户服务中心用例图
(2)调度中心
该模块主要实现与订单相关的功能,包括对新创建的订单进行调度处理并产生任务配送单和货物调拨单,修改缺货订单在来货后的订单状态,查询订单在调度后产生的配送任务单。
如图2.3为该模块的用例图。
图2.3 调度中心用例图
(3)中心仓库管理
仓库主要分为中心仓库和分站仓库,该模块的功能为查询购货单,对缺货商品进行进货入库处理,修改入库货物的实际入库数量,将货物调拨到相应的投递分站仓库并产生分发单,查询调拨详情。
其用例图如下图2.4所示。
图2.4 中心仓库管理用例图
(4)配送中心
该模块包括商品管理、供应商管理、仓库管理、进货管理四个子模块。
其中商品管理的功能为商品一级分类、二级分类的添加与删除,商品的添加与删除;供应商管理的功能为供应商的添加与删除;仓库管理的功能为仓库的添加与删除,仓库存储量的设置,仓库出入货物单查询;进货管理的功能为生成相应的进货单与入库单。
其用例图如下图2.5所示。
图2.5 配送中心用例图
(5)分站管理
该模块的功能为将中心仓库的货物调拨入库,配送员领取货物,分配给配送员配送任务,根据相关条件查询配送任务单,根据配送员的配送信息进行回执录入。
其用例图如下图所示。
图2.6 分站管理用例图
3 总体设计
在进行了系统分析后,已经明确了本系统的功能。
在本章中将进行该系统的总体设计,分析研究如何实现该系统。
3.1 系统架构设计
该系统是基于B/S架构的Java Web项目,界面采用开源ExtJS库进行布局,总体架构为SSH,该系统的集成架构如图3.1所示。
图3.1 ExtJS+SSH集成架构图
编写JSP文件及JavaScript脚本,进行前端界面的布局。
JSP文件在编译后会生成“类servlet”,而Web.xml文件可以实现Servlet、JSP文件的URL定制,然后通过Struts-config.xml文件将URL请求映射到对应的Action类。
然后Action类调用相应的。