1、物流中心设计文档1.概述1.1 业务需求某物流中心是一家能够接受多家客户的委托管理他们的货物的仓储中心。物流中心能够对仓库内的货物收、发、存、调、移库等操作进行全面的预测、建议、控制和管理。输出报表,及时反映出货物占用状况、收发存情况。使客户能够实现高效管理。1、委托入库业务:客户出具入库货物清单及货物,物流中心根据清单内容核对入库。 委托入库正常业务的流程如下:1)仓库收到收货单(客户的发货单) ,仓库安排车辆,生成入库安排单,运货到仓库。一次运货可以包含多个收货单。2)当货物运送到库,进行收货确认。3)依照收货单生成入库单(实际信息) 。4)按照入库单入库,更改库存。2、发货出库业务:由客
2、户出具提货清单,物流中心根据清单内容进行核对备货并从仓库发送到客户处。3、拣货安排业务:由多张发货单生成,多张发货单作为一批,生成出库单,同时拣货。4、移库业务:由于某种需求,商品需要从一个仓库转移到另外一个仓库,这个业务用移库单来发出指令,然后移库。1.2 上下文图2.需求分析2.1 流程分析2.1.1 委托入库业务流程分析当客户有货物需要存到该物流中心时,客户向物流中心提供入库货物清单,物流中心仓库出具入库安排单,主要提供货物入库车辆安排,包括车辆信息、路线信息和时间信息。运输货物车辆根据入库安排单将货物运输到仓库,货物核对员进行收货确认。确认无误后依据收货单生成入库单;工作人员根据入库单
3、将货物移入库位,同时更改库存。2.1.2 发货出库业务流程分析客户根据自身需求出具提货清单,物流中心提货员根据清单将货物提到拣货区,货物核对员根据清单内容进行核对备货,若核对有误则重新到仓库提货;若核对无误则生成出库安排单,安排车辆将货物从仓库发送到客户处,同时更改库存。2.1.3 拣货安排业务流程分析由多张发货单生成,多张发货单作为一批,生成出库单,同时拣货。2.1.4 移库业务流程分析由于物流中心仓库自身需求或是客户的特殊需求,商品需要从一个仓库转移到另外一个仓库,这个业务用移库单来发出指令,然后移库,同时更新库存信息。2.2 数据建模2.2.1 委托入库数据流程图2.2.2 发货出库数据
4、流程图2.2.3 拣货安排数据流程图2.2.4 移库数据流程图2.3 用例建模物流中心系统的主要角色有四个,分别是:客户、仓库、车辆、货物核对员。其中客户角色通过分析可以识别出系统的用例为:委托入库管理、发货出库管理、移库管理、拣货安排、提供库存信息。系统用例图如下:角色:客户角色职责:提供发货单和提货单角色职责识别:负责提供发货单和提货单,是服务的发起者角色:仓库角色职责:存储货物提供库存信息角色职责识别:负责根据入库出库单存储货物、提供库存信息角色:车辆角色职责:运送货物角色职责识别:负责根据入库和出库安排单运送货物,由物流中心仓库安排车辆角色:货物核对员角色职责:核对货物角色职责识别:负
5、责核对确认入库和出库的货物,无误后方可移入库位或运到客户处2.4 基本类模型通过名词识别法和系统实体识别法等方法可以识别出系统的 13 个基本类,分别是客户类、仓库类、车辆类、货物类、货物核对员类、库存转移安排单类(父类) 、入库安排单类(子类) 、出库安排单类(子类) 、收货单类(入库货物清单类) 、发货单类(提货单类) 、移库单类、入库单类、出库单类。以下用类图来表示基本类模型,包括类名称和类的一些基本属性。如下所示:- 货物编号- 货物名称货 物- 客户 I D- 用户名- 密码客 户+ 更改库存 ( )- 仓库 I D- 库存信息仓 库- 车牌号- 司机车 辆- 员工编号- 密码货 物
6、 核 对 员- 编号- 客户- 货物集合收 货 单- 编号- 客户- 货物集合发 货 单- 编号- 货物- 原仓库- 移入仓库移 库 单- 编号- 收货单- 仓库- 货物核对员入 库 单- 编号- 发货单- 仓库- 货物核对员出 库 单- 编号- 车辆- 路线信息- 时间信息库 存 转 移 安 排 单- 编号- 收货单入 库 安 排 单- 编号- 出库单出 库 安 排 单3.系统设计3.1 架构设计由于系统要求实现客户通过互联网查询货物信息和发货信息,结合系统自身的功能需求以及当前的主流经典框架,该系统选择 SSH(Struts+spring+hibernate)架构来组织和整合系统各层次之间
7、的服务。在 SSH 框架中,struts 用来解决 MVC 中显示、请求控制部分,spring 主要负责访问数据库 DAO 类的事务控制以及它被人称誉的 IOC 思想在业务类中的恰当运用, hibernate 主要是充当数据访问层组件。由于 spring 对 hibernate 的良好支持,在 DAO 类主要由 spring 来完成,hibernate 更多关注的应是 O/R 影射文件上的配置,如级联关系,延迟加载等如何设置才能使效率更高。一、 表现层一个典型的 web 应用的末端是表现层,我们使用 struts 来负责管理表示层。Struts 在该系统中负责管理用户的请求和响应;提供一个控制
8、器将调用委托到业务逻辑层和其他上游处理;组装可以在视图中表现的模型对象;执行 UI 校验。二、 持久层持久层是 web 应用中的关键部分,开发者通常低估了自己创建自己的持久层框架的挑战。Hibernate 框架允许 Java 中对象关系的持久性和查询服务。 Hibernate 可以查询关系信息到对象中,它是通过称为 HQL 的查询语言或者使用更有表现能力的规则 API 来完成这个工作。HQL 是一种用于查询对象的自然语言。Hibernate 可以存储、更新和删除存储在数据库中的信息;Hibernate 同时支持大部分主流 SQL 数据库,它们支持父/子关系、事务、继承和多态。三、 业务逻辑层典
9、型的 web 应用的中间组件一般是业务层和服务层。 Spring 框架建立在一种叫做依赖注入(dependency injection)的概念之上,Spring 中通过针对命名配置参数的 bean 属性的setter 注入来使用。该系统利用 Spring 来处理应用的业务逻辑和业务校验;管理事务;允许与其他层进行交互的接口;管理业务级对象之间的依赖性;加入了表现和持久层之间的灵活性,以便他们不需要彼此进行直接通信;管理从业务层到表现层的实现。系统各层次间框架整合后的关系如下图所示:该物流管理系统的前后台数据交互以及各部分之间的关系图如下:3.2 界面设计该物流管理中系统的基本界面设计如下图所示:3.3 数据库设计该物流中心管理系统的数据库设计可以使用 Mysql 这个轻量级的数据库管理系统。物流中心管理系统的数据库设计主要包括 12 个表结构的设计以及他们之间的关系设计,其主要的表结构以及表之间的关系如下:3.4 类方法设计由系统的基本类模型以及系统的需求可以设计出实现系统功能的类方法以及类之间的关系。物流中心管理系统的类方法和类之间的关系如下图所示:4.参考文献