基于Web的仓储系统的设计与实现
2009-04-29臧义
臧 义
摘要:本文在明确仓储管理及其信息化建设意义的基础上,分析了仓储作业的流程管理,详细研究了仓储系统的设计,并借助于J2EE环境实现了仓储系统的主要功能。本文所做的设计和实现思路对物流企业等具有较好的参考价值。
关键词:仓储系统 物流企业 J2EE
1.引言
随着我国社会主义市场经济体系的建设、世界经济全球化进程的加快和科学技术的飞速发展,仓库存储控制作业己十分多样化、复杂化,光靠人工去记忆去处理已十分困难。因而,“信息化是仓储的核心”的理念已经成为企业及生产厂的共识[1]。如何应用仓储系统,帮助我们合理有效地利用仓库空间,以最快速、最正确、最低成本的方式为客户提供高效率、低成本的现代物流服务,已经成为新的利益增长点。
2.仓储系统的总体设计
2.1系统的框架
(1)持久层
持久层(Persistence layer)也叫设备层是整个系统的最底层,它包括了整个系统的所有设备如和计算机相关的部分设备:服务器、终端机、局域网设备、广域网设备以及其它仓储自动化设备等等。该层为基于Web的仓储系统提供了一个数据显示与交换的平台,它的主要设备的选取和网络拓扑结构的设计将直接决定系统的工作效率和维护成本。
(2)业务逻辑层
业务逻辑层的作用如下:处理应用程序的业务逻辑和业务校验;管理事物;提供与其它层相互作用的接口;管理业务层级别的对象的依赖;在表示层和持久层之间增加了一个灵活的机制,使得他们不需要直接的联系在一起;通过揭示从表示层到业务逻辑层之间的上下文,来得到业务逻辑;管理程序的执行(从业务逻辑层到持久层)。
(3)表示层
表示层所负责的功能如下:管理用户的请求,作出相应的响应;各仓库之间的数据信息可以实时处理;减少网络故障点,增加了系统的运行可靠性;各仓库系统建设前期投资少,见效快;系统维护专业化,各仓库系统维护成本低廉;系统升级快捷方便。
2.2系统的主要功能
(1)入库管理
入库管理包括从客户那边得到要求保管的所有产品列表到客户的供应商将产品送入仓库并做好相关的记录。具体的流程是:客户发送Email订单,仓库的管理员A将订单导入系统,系统自动生成入库单。同时,客户通知它的商品供应商将货物送到该仓库,仓库的管理员B登记入库,并打印上架清单送给仓库的保管员,仓库的报关员根据上架清单将相应的货物上架,仓库管理员A进行上架确认,确保所有商品己成功上架。然后打印出收货报告交给客户供应商,在这过程中若出现上架库位不对,将要求相应人员进行库位调整。客户供应商拿到收货报告后将离开仓库,仓库管理员B进行出库的登记。
(2)出库管理
出库作业处理的是正常出库流程。系统会按照客户Email的订单生成拣货单,并由仓库文员手工创建批量拣货单。仓库保管员根据批量拣货单进行货物的拣选,并发货。
(3)交叉理货
交叉理货的货物从订单制订时就已经确定了发货的目的地。订单入库时己经做好了出库准备,集货完成就进行发货。
(4)客户退货
客户退货作业指仓库对于顾客退货(退回供应商)的处理流程,包括退货订单的处理、退货的收货、退货的上架、拣货(系统会自动完成)、退货的出库。
(5)移库
移库作业是仓库管理人员对仓库货物存放位置的一种管理。可以利用该作业进行货物的库位移动,最终达到合并SKU和(或)移空库位的目的。
3.仓储系统的实现
3.1系统的开发工具
编程语言:Java;开发工具:idea/eclipse;版本控制:CVS;版本发布:Maven;数据库:MYSQL/SQLServer 2000;应用服务器:Tomcat 5. 0;设计工具:Enterprise Architect;报表设计:Report。
3.2系统的具体实现
由于本文研究的仓储系统是基于Web环境,所以选用webwork/Spring/Hibemate架构,首要的任务就是将这些技术在Web.xml文件中进行配置。除此以外,web.xml中另外定义了几个新的xml文件,主要有chicwms-xwork.xml, action-serviet.xml, daoContext.xml等,它们分别负责不同层之间的映射管理。
(1)数据对象Warehouse的定义
public class Warehouse
{
private Set
private Set
public Set
return zones;
}
(2)业务层的实现
本Web仓储系统的业务逻辑处理主要分为两个部分:一部分为DAO层,它主要提供对数据库操作的方法。另一部分为Manager层,这是系统的核心,它提供了所有的业务逻辑处理方法。创建WarehouseDao接口的例子如下:
public interface WarehouseDao{
void storeWarehouse ( Warehouse warehouse );
void deleteWarehouse ( Warehouse warehouse );
Warehouse loadWarehouse ( Long warehouseld );
List loadAllWarehouse ();
Void loadCompanies ( Warehouse warehouse );
Warehouse getWarehouseByCode ( String code );
Void deleteSelectWarehouses ( List warehouses );
List loadSeleetWarehouses ( Long[] warehouselds );
}
(3)表示层的实现
表现层是系统与用户交流的窗口,本系统采用了纯Java编写,它被设计用来生成HTML Web页面。当用户访问一个页面的时候,系统根据在xwork.xml的配置调用相应的freemaker页面,freemaker生成html页面显示给用户。当用户提交请求的时候,由该页面对应的Action进行处理,action主要的作用是进行逻辑判断,所有的业务逻辑功能以及访问数据库的功能都应调用sernce和dao层中的方法。
4.小结
随着Internet的快速发展和广泛应用,企业越来越认识到信息化的重要性,依靠计算机技术和科学管理己成为企业持续发展的必要环节。本文所研究的系统即是仓储管理方面的信息化建设,该系统结合当前最新的计算机技术所设计完成的,以Java为基础,采用依托与J2EE框架的webwork/spring/hibernate技术来实现的。因此它的可靠性和可扩展性都是值得保障的。◆
参考文献:
[1]周城.物流信息化解决方案[M].四川人民出版社.2005:91-95.
[2]杨海荣.现代物流系统与管理[M].北京邮电大学出版社.2006:77-79.
作者简介:臧义(1987-),男,内蒙古呼伦贝尔人,西北民族大学计算机科学与信息工程学院(二级单位),学生,计算机科学与技术。