基于J2EE的销售合同管理系统的研究和设计
2012-05-08毛晨双仲梁维
毛晨双 仲梁维
摘要:以销售合同管理系统项目的开发为背景,分析了现有销售合同管理系统在应用中的特点以及局限性,根据企业的实际的需求,运用J2EE框架结构完成整个销售合同管理系统的搭建,着重分析了struts框架和hibernate在系统设计过程中关键应用。实际应用表明:该系统达到了设计目标,并成功的实施运行,对企业开发管理信息系统有一定的借鉴价值。
关键词:销售合同管理系统;J2EE;Struts;hibernate
中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)07-1486-04
Research and Design of Sales Contract Management System Based on J2EE
MAO Chen-shuang1, ZHONG Liang-wei2
(1.School of Mechanical Engineer,University of Shanghai For Science & Technology, Shanghai 200093,China; 2.Center of CAD,University of Shanghai For Science & Technology, Shanghai 200093,China)
Abstract:Based on the development of The Management System of Sales Contracts, the essay analyses some problems in the system. According to the actual need of company, the essay propose the Management Systems of Sales Contracts through J2EE framework, and especially analyses the critical functions of struts frame and hibernate in the designing of the system. Actual application shows the system meet the requirements of enterprise and are being succeed carried out. The companies can take this essay as a reference in regard to the development the management information system.
Key words: sales contract management system; J2EE;Struts;hibernate
随着计算机技术和网络技术的发展,我国的制造业逐渐摆脱了传统的粗放型经营模式,信息化技术在企业之间有了广泛的应用。而国内外的现代企业为了在激烈的市场竞争中立于不败之地,越来越重视企业信息化建设,由此应运而生的ERP把企业的制造、财务、销售、采购、库存等各个子系统结合到一起,构建整体化的信息管理系统。销售管理是ERP系统中重要的一环,通过销售管理可以掌握客户的需求信息,从而进行生产计划安排、原材料的采购计划制定,还可以对客户信息进行管理维护,预测客户将来的产品需求。在当前市场经济环境下,企业生产、经营销售都是围绕市场进行展开,因此销售管理在企业的整个运作过程中是信息流程的开端,完整的销售管理系统应该实现销售业务活动的整体处理,同时将销售与计划、生产、运输、库存、财务等方面紧密联系起来[1]。本文来源于上海某机械设备制造企业实施信息化的项目过程中所开发的销售合同管理系统。
1现有销售合同管理系统的分析
1.1现有销售合同管理系统的特点
现有的销售合同管理系统包含的主要功能模块有:合同信息管理、合同执行管理、合同查询统计、用户管理、其他系统的接口等。对于系统的架构而言,目前很多企业采用的还是传统的C/S模式,能够充分发挥客户端的PC处理能力,响应速度快,有利于处理大量的合同数据。适应了企业内部局域网上的数据共享、网上会签,实现完全办公自动化。
1.2现有销售合同管理系统的局限性
1)C/S体系架构的系统可维护性不高,对于大型的企业来说,一旦客户端的程序发生修改,则所有的客户端都需要重新安装程序。同时系统支持的并发连接数有限,限制了同时运行的客户端程序的数目。
2)用户对象单一,适应性不强。目前很多的销售合同管理系统都是针对特定企业进行设计开发的。诸如供电合同管理系统、购销合同系统、应用在房地产、煤炭企业的销售合同管理系统等。
3)数据的利用率不高。合同文档中保存有大量的数据信息,这些数据不仅与企业的采购、生产、销售等环节紧密相关,而且还需要与其他系统进行数据的交换和共享。而在现有同类系统大都只是提供简单的查询,没有能有效地利用合同数据来进行数据挖掘和分析,充分发挥合同中数据的作用。
2销售合同管理系统的需求分析及业务流程
2.1销售合同管理系统的需求分析
经过实际的调研和访谈,发现该公司的目前从销售合同的签订到审核、执行完全交由人工操作,其中涉及營销部、计划处、财务、技术等多个部门。我们分析公司实际需求主要有如下几个方面:1)项目跟踪管理:根据公司市场调研的结果,记录甲方、业主、设计院三方面的客户信息,同时还有项目的技术方案信息,并能够及时的更新项目实施的进度。2)合同的基本信息管理:目前的合同签订到实施完全由销售员手工填写,再经过负责人签字审核,而不同的销售员操作方式并不一致,导致合同的样式不规范。需要统一的合同样式,同时对已经输入的合同能够进行相应的编辑修改。3)合同评审:合同评审的过程中涉及到技术、财务、营销多个部门,纸质版的合同在实际操作过程中效率低下,需要系统中设计不同的用户权限。4)用户管理:根据部门的不同,对相应的用户设置不同的角色,不同的角色赋予不同的权限,这样既保证了系统中数据的安全也提高了员工的工作效率。5)工作命令管理:对于已经审核通过的合同,要及时的生成工作令并且投入生产。6)发货管理:对于已经制造完成成品的合同,及时的开具提货单,进行发货。同时记录发货时间、查找过往发货的记录。7)安装及调试管理:该公司生产的大型设备在合同中规定了是本公司安装还是指导安装,需要记录售后安装信息以及调试反馈的信息。8)合同的查询与统计:可以根据合同的状态查询合同实施的过程,并把合同的相关信息以报表的形式集中导出。
2.2销售合同管理系统的业务流程
我们通过销售合同的信息流向来分析整个业务流程[2],通常的生产计划是根据企业签订的合同,完成评审后,由生产计划处下达工作命令。另外一个基于预投的生产命令下达方式是指企业预先生产部分市场需求的产品放在库存中,在客户需要的时候可以直接进行销售。如图1和图2所示。
图2预投工作令的流程
3系统设计
3.1系统架构
通过业务流程的分析,我们着眼于整个销售合同管理系统,采用J2EE平台的多层模型结构,它根据功能将应用逻辑分在不同的组件,各个应用组件根据他们所属的不同的J2EE层而被安装在不同的平台上[3]。如图3所示。一个J2EE应用主要包括客户层、WEB层、业务逻辑层以及企业信息系统层。
客户层组件位于客户机上,主要由WEB浏览器和动态网页构成,在该销售合同管理系统中,客户层直接通过浏览器负责页面的处理。进行各种输入、编辑、查询等操作。WEB层和业务逻辑层位于J2EE服务器上,其中WEB层主要是通过JSP、Java Servlets进行服务器端的WEB组件编程,用来接收客户层的请求并返回相应的回答。业务逻辑层负责处理某一特定领域的业务逻辑,它从客户层接收数据,经过适当处理后存储到数据存储设备中,或者从数据存储设备中读取数据,经过处理反馈到客户端。在销售合同的系统中所实现的功能都是在业务逻辑层中实现。企业信息系统层位于数据库服务器上,公司采用的是SQL Server 2008数据库系统。
3.2系统开发关键技术分析
在销售系统的WEB层主要应用的JSP语言是用来开发含有动态内容网页的一种技术,但区别于静态的HTML语言,JSP页面不但包含了HTML语言的各种标签,还包括JS脚本语言、CSS样式表、以及自身定义的各种标签。因此,我们可以根据公司的需求快速的更改页面的布局、实现表单的验证、读取数据库的数据信息以及记录合同需要保存的信息等功能。JSP的实现过程如下[4]:首先由客户端发出请求(request),服务器在将JSP转译成Servlet源代码,产生的源代码经过编译加载到内存执行,最后将结果(response)回馈到客户端。
我们运用Struts框架来实现J2EE业务逻辑的处理,通过Struts框架的运用使得J2EE应用的视图和业务逻辑得以清晰的分离。它主要由控制器(ActionServlet)、业务逻辑控制器(Action)、模型、视图等组成[5]。控制器负责拦截所有用户的请求,当请求与配置文件的中一致,该请求将转入Struts框架处理。如下图所示,业务逻辑层控制器就是用户自己实现Action类的各个实例,这种类都包含一个execute方法,该方法都返回一个ActionForward,用来确定返回的页面;视图由JSP文件实现;模型则有实现业务逻辑的JavaBean或EJB组件构成。
图3 J2EE体系架构
图3 Struts框架的请求与响应
在与数据库交互的过程中,我们采用了hibernate框架结构。它是一个开源的对象关系映射框架,同时对JDBC进行了非常轻量级的对象封装,使得我们在开发的过程中能用面向对象的思维来操作数据库[6]。hibernate可以在应用EJB的J2EE架构中完成数据持久化的任务。在系统中主要使用hibernate.cfg.xml配置文件和hibernate根据数据库中的表生成的映射文件,hibernate.cfg.xml主要是配置数据库的连接和hibernate运行的主要属性,映射文件是为了将实体类中的字段与表中的字段关联起来,反映出持久类与数据库表的映射关系。这样对数据库的操作就转化成对持久化类的操作。
3.3功能模块设计实例
由需求分析我们把系统主要分成八个模块,项目管理、合同信息管理、合同评审、工作命令管理、发货管理、安装及售后管理、查询模块,客户用户管理。以新建合同为例。在系统登录时就确定了用户的权限,部门等信息,输入合同时,首先选择合同的客户,然后输入合同的基本信息、设备的基本信息,最后按照企业规定的合同号生成合同。图4为新建合同所用到的一些基本方法。
4小结
销售管理是企业中重要的一个环节,本文以J2EE框架为平台,根据企业的实际需求,设计并实现了一个基于J2EE为平台的销售合同管理系统。该系统已实现了销售合同从签订、审核、执行以及最后交付的各功能流程,强化了合同实施的稳健性,达到了预期的设计目标。该系统已经在公司成功部署并实现运行。随着企业信息化建设的深入,对系统的依赖性会越来越大,同时对系统的要求也会更高,要求整个系统具有可靠性、稳定性和高安全性。希望能对同类系统的开发和设计起到一定的借鉴作用。
图4新建合同中所用的基本类和方法
参考文献:
[1]于俭,胡彬.对ERP/MRPII系统实施过程中关键问题的探讨[J].商业研究,2002(9):96-98.
[2]张谋喆,仲梁维.基于UML的销售合同管理系统[J].计算机系统应用,2011,20(3):23-26.
[3]张为.基于J2EE技术的物流系统的设计[J].计算机应用与软件,2007,24(7):106-108.
[4]李淑娟,李言.基于JSP的合同管理系统开发[J].计算机工程,2004,30(24):147-149.
[5]常倬林.Java Web从入门到精通[M].北京:机械工业出版社,2011.
[6]陈先桢.基于轻量级J2EE架构的销售系统的构建[D].上海:复旦大学,2008.