已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕士学位论文 摘 要摘 要目前,我国快捷型酒店发展十分迅速,但是相对于酒店的快速扩展,酒店管理软件的更新却不是如此及时,快捷酒店相对于的操作应该是十分简单明了,但是传统酒店管理系统操作十分复杂,导致操作员需要大量时间学习如何操作。本文主要介绍了如何针对快捷酒店的需求,通过flex编写的前台程序,和后台迅速交互。达到使客户认为操作简单并且容易上手。介绍flex关于ria的开发流程及flex用作客户端编程所带来的好处。分析整个酒店管理系统的架构,分析各个功能模块的基本数据结构,接口,功能流程等。最后对系统的特点及不足之处进行总结。关键词:flex,ria,快捷酒店,模块功能,系统架构i浙江大学硕士学位论文 abstractabstractat present, there is an increasing development of inn hotel in china. however, the hotel management software is not updating in time. relative to the complex operation of traditional hotel management operating system, the operation of inn hotel should be simple and convenient. so staffs do not need spend too much time on learning how to handle it.this article gives an introduce of how to use client which is written by flex to interact with server, and finally makes it meet the inn hotel requirements. the article also presents the development process of ria and advantages of flex programming as client. then it makes a further analysis of management system frame as well as basic data structure of different functional model and interface. in the end, the article gives a brief summary of the characteristics and inadequacies for this management systemkey words:flex , ria, inn hotel, functional model, system frame iii浙江大学硕士学位论文 目录目录摘要iabstractii图目录iii第1章 绪论11.1 课题背景11.2 发展及现状11.3 研究的目标和内容2第2章 相关技术和方法32.1 ria介绍32.2 flex技术简介32.3 remoteobject介绍42.4 spring框架简介42.5 hibernate框架简介5第3章 系统的需求分析及概要设计73.1 系统的需求分析73.2 系统的总体设计73.3 模块设计83.3.1 功能介绍83.4 主要功能模块103.4.1 入住管理模块设计113.4.2 账务及现付账模块设计153.4.3 报表管理模块设计173.4.4 系统管理与维护模块设计183.5 数据库设计193.5.1 表和视图的设计193.5.2 存储过程设计253.6 其他功能模块设计26第4章 快捷酒店管理系统的实现274.1 主要开发技术274.2 用户界面实现284.2.1 登录模块的实现294.2.2 预定及登记模块的实现30第5章 总结与展望385.1 总结385.2 展望38致谢39参考文献40ii浙江大学硕士学位论文 图目录图目录图3.1系统总体设计图8图3.2酒店业务流程图11图3.3顾客预定用例图12图3.4顾客登记用例图12图3.5团队/协议单位入住用例图13图3.6房间状态图14图3.7房间状态图图例15图3.8顾客账务处理时序图16图3.9顾客房费管理用例图16图3.10会员消费示意图17图3.11营业日报报表图18图3.12权限查询流程图19图3.13登记单模型图21图3.14顾客管理模型图22图3.15会员管理模型图23图3.16房价信息模型图24图3.17房间信息模型图25图3.18公司级顾客信息修改存储过程26图3.19酒店夜审存储过程26图3.20报表生成存储过程26图4.1酒店登录界面图29图4.2酒店注册界面图29图4.3选择酒店页面30图4.4顾客预定界面31图4.5步入散客顾客登录界面32图4.6错误或为空提示框33图4.7已有顾客修改或增加信息界面34图4.8增加预收款界面35图4.9添加其它信息界面36图4.10添加周期收费界面37iv浙江大学硕士学位论文第1章 绪论第1章 绪论目前,我国快捷连锁酒店企业还没有真正属于自己的适合自己发展需要的快捷酒店的管理软件,大的连锁酒店如:如家,汉庭用的都是自己酒店内部开发的酒店管理系统。其他快捷酒店管理系统则主要来自各种星级酒店的管理系统。与自己的酒店业务办理有一些出入。因此我实习所在的公司,准备开发出一套专门针对快捷酒店快速反应及符合其业务需求的管理软件。不仅满足酒店的管理需求,也能充分让住客体验到快捷酒店的方便及实用性。1.1 课题背景本文的课题主要来自作者的工程实践,以杭州绿云软件有限公司的酒店管理系统的开发为背景,利用公司已开发的星级酒店管理系统,来设计一个针对快捷酒店的管理系统。同大多数b/s架构模式的系统相似,快捷酒店管理系统主要分为如下几个模块:前端,应用服务器端,数据库服务器端。其中,前台用flex编写,使用remoteobject与java端进行通信。然后通过java端程序的控制,从数据库服务器中交换数据。由于公司已经开发过星级酒店的管理系统,因此后台可以打一个分支即可重用以前的java代码。作者的主要任务是开发好前端flex代码,根据客户所需求的简单快捷的操作来设计编写前端界面。开发快捷酒店管理系统的价值如下:(1)使酒店操作员能够轻易上手并且能够增加前台的工作效率。(2)采用创新的flex技术使得原本影响flex程序性能的问题能得以解决。(3)为管理层决定酒店的消费定价等提供更多的数据分析及决策。1.2 发展及现状酒店管理软件是最早在西方发达国家最先使用的,像希尔顿,喜来登等国际型大酒店都有专门的软件公司为他们量身定做管理软件。因此,这些酒店的管理效率及公司运作方面都是做的比较好的。从现代科技的发展来看,一个好的酒店必须是软硬件配合的很好才能发挥最大的效率,硬件当然是指酒店的装潢服务等,而软件则是一套方便智能的管理系统。社会经济在不断发展,酒店在服务行业扮演的角色也越来越重要,一个酒店的管理和服务水平直接影响到酒店的形象和声誉1。酒店管理系统最先西方发达国家率先发展起来的,像喜来登,希尔顿等国际型连锁酒店,它们都有一套完善的酒店管理系统来提高酒店管理的效率,并且分析数据给高层用来决策。在上世纪90年代,酒店业因为竞争激烈而经营状况十分艰难2。他们最先了解并且使用了erp这个概念,也就是企业资源企划。使得企业的管理显得十分井井有条。酒店业也不再局限于传统意义上的价格恶性竞争,它将是各酒店集团连锁品牌(集团端)和各酒店之间运用网络系统的整体营销和管理上的竞争3。目前,国内快捷酒店管理软件遇到的问题有很多。还存在很多不足和问题,酒店行业作为服务业的典型,在此项技术面前,却又一次落伍。世界范围内的酒店管理集团,可以谈得上成功运用客户信息管理的寥寥无几,诸多客户信息管理厂商,也没有能够及时拿出一套切实可行的针对酒店行业的全面解决方案。1.3 研究的目标和内容本文以某快捷酒店管理系统项目为例,对快捷酒店管理系统项目研发过程中的需求分析,架构设计,产品测试及性能分析进行了实质性的研究。研究的目标是:结合快捷酒店管理系统项目的特点和开发过程,分析其设计模式及架构。分析各个功能模块的基本数据结构,接口,功能流程等。探讨如何设计出适用于快捷酒店管理系统项目的系统架构及对此系统完成后进行的系统性能进行详细分析。分析包括客户端程序在长时间运行时对操作系统资源占用和高并发操作时是否影响系统性能及稳定性。4浙江大学硕士学位论文第3章系统的需求分析及概要设计第2章 相关技术和方法2.1 ria介绍ria(rich internet applications)富互联网应用,传统的英特网应用程序都是把大量的对数据的处理都交给服务器端,网络的表示层只是一些html编写的静态页面。随着it技术的不断飞跃,传统的基于页面的系统已经不能满足客户的需求,主要原因就是很多时候客户端只需要从服务器端得到想要的数据,页面的基本内容不需要改变,但服务器端仍然返回的是html形式的页面。这样加重了网络的传输成本,同时也降低了用户的体验。ria 使用的是相对比较健壮的客户端描述引擎, 能够提供比传统瘦客户端内容更密集、响应速度更快和图形更丰富的用户界面4。ria就是区别于传统的瘦客户端而产生的,它把许多原来要经过服务器端处理才能得出的数据,交由前端处理。同时,服务器端向客户端传输的也可以不再是html,而是客户端所需要的数据集。ria引擎接收浏览器发出的请求后,调用本地的业务逻辑处理组件(一般是网页脚本语言)异步转发该请求到服务器;服务器给予应答后,ria引擎再利用自身的客户端框架程序处理数据和和样式特效对页面进行包装,反馈给浏览器显示5。 2.2 flex技术简介flex是由adobe公司发布的r ia应用程序框架,它提供了丰富的用户界面组件, 其开发模型由actionscrip t3 (兼容ecmascrip t这个国际标准的面向对象的脚本语言) ,mxml 模型描述语言(基于xml,实现标签化的定义方式,可用于可视化的编辑) ,以及其他的扩展类库组成的6。它与adobe发布的另一款产品flash是一个模式。flex和flash一样都是生成.swf文件运行。但相对于flash动画有多帧,flex制作出来的界面只有两帧。第一帧是预加载,第二帧就得到了我们想要的页面。actionscript 3.0 是adobe发布的一种面向对象编程语言,它提供mxml 所不具备的对程序流程的控制和对象操作等功能。flex 编译器和调试器及虚拟机avm帮助把mxml 及actionscript 3.0 源代码编译成能够运行在flash player 中的二进制文件7。这点也是flex和flash相似之处,它们都运行在flash player当中。但是flex与flash也是有明显差别的,flex提供了一种完全面向对象的语言actionscript并且是跨平台的。它打破了flash只能由专业的美工设计师来完成的局面。普通程序员也可以通过flex完成绚丽的界面效果。flex 和基于strut s ,spring , hibernate 的传统j2ee 而言,可以通过amf 这种模式网关进行集成flex 。从而在不影响原先应用的情况下,ria 对表示层的功能和显示灵活性进行了丰富增强8。2.3 remoteobject介绍flex 可以利用3 种方法来实现与服务器端交换数据的功能, 分别是使用httpservice 组件、使用webservice 组件和使用remoteobject 组件9。在flex作为客户端开发程序时,我们采用的是remoteobject组件的方式来实现与java端通信。我们使用blazeds来完成java端与flex端的通信。flex与java使用remoteobject是异步通信的。也就是说,flex端发完请求之后不需要等待服务器端的响应,可以做别的事情。remoteobject 组件和服务器之间传递信息采用action message format(amf) 编码的二进制格式,remoteobject 组件可以直接将amf 编码的信息转换成flex可以识别的object对象10。这样方便了前台对数据的处理。并且使用remoteobject比其他两种方式占用的内存更少。2.4 spring框架简介spring是一个轻量级的java开源框架,它遵循了面向对象的设计模式。并且把设计模式运用到实际开发及应用中。spring 框架是一种在j2ee 的基础上构建起来的一个轻量级面向对象的框架实现, 它是一个分层的应用程序开发框架, 而不是单独某一层例如web 层开发框架11。相对于j2ee 而言,spring具有维护容易、分层清楚、速度快、代码少、支持orm 对象关系映射和aop面向切面编程的概念等优点12。spring所展现出来的两种编程思想,一种是依赖注入(di),一种是面向方面编程(aop)。依赖注入概念上来说是程序不应该依赖于具体,而是应该依赖于抽象。简单来说是在运行期由spring容器将对象对其他对象的依赖关系注入到组件之中,使应用代码只需要直接使用已经由容器注入的实例13。简单来讲就是以前的对象都是根据具体的类来构造。这样耦合比较紧密。但是利用spring之后,对象的构造再也不依赖于具体的类。而是依赖于抽象接口。通过spring容器注入。这就是依赖注入的思想。而aop则是spring一个更加重要的思想。他的出现甚至改变了传统的编程方式。传统的编程方式是一条直线或多条直线(多线程)的思路编程。但是aop的思想是可以在这条直线上有一个切面。来运行别的代码。这是基于动态代理来实现的一个编程模式。sp ring 的职责主要包括:(1) 把应用程序的业务逻辑和业务校验交由spring处理。(2) 管理程序当中的事务。(3) 提供和其它层对接的接口模块。(4) 消除业务层级别的对象的依赖,已达到解耦合目的。(5) 在表示层和持久层之间增加了一个中间层, 使其不直接耦合在一起。(6) 揭示了从表示层到业务层之间的context 以此得到business services。(7) 管理程序的执行,在执行过程中增加逻辑处理(从业务层到持久层)14。2.5 hibernate框架简介hibernate 是一个功能十分强大的开源orm框架工具, 允许开发者使用常见的java 语言特性(如封装、继承、多态等)实现对象模型和关系数据库的相互映射, 并支持如oracle、db2、sql server、mysql等主流数据库系统15。现在,hibernate已经是开发轻量级web程序的首选框架。其一是因为他封装的很完善。并且程序员运用起来也比较简单。现在hibernate已经出到了4.3.0。它的许多新的特性也让人十分向往。hibernate对jdbc查出的数据使用了轻量级的对象封装,向上层程序应用提供了如同面向对象的数据访问api,减少了开发时人工使用sql和jdbc处理数据的时间,提高了软件开发的效率16。开发人员甚至不需要知道写sql就可以操作数据库。这也是orm(对象关系映射)所需要解决的。现阶段,软件产品大部分应用到的数据库都是关系型数据库。而hibernate就是把关系型数据库转换成为面向对象语言所能读懂的对象。hibernate的核心接口如下图所示。其中transaction接口是处理控制事务的。它主要在程序中合适的地方定义事务的开始和结束。对应于数据库操作的事务。query和criteria接口是数据库的查询。configration类主要负责配置和启动hibernate。创建sessionfactory实例来维护数据库连接池17。图2.1hibernate结构模式图由于hibernate只对jdbc 做了轻量级封装, 应用程序可以使用hibernate api对数据库进行操作, 也可以直接不使用hibernate提供的方便,使用jdbc 完成数据库操作18。这样就增加了系统的灵活性,由于有些复杂度较高的查询用hibernate写起来不仅麻烦,而且影响效率。实际工作中都是hibernate和jdbc一起用的。hibernate的优点有许多,这里只简单说明。总之使用hibernate有利于节约开发成本和时间,提高业务应用方面的性能,提供更灵活的和简单的业务逻辑19。第3章 系统的需求分析及概要设计thef快捷酒店管理系统分为客户端和服务器端两部分,client模块会被安装在每一个物理机上。client主要负责响应用户操作,上传数据给服务器端。server端主要负责处理数据,并返回给客户端。3.1 系统的需求分析根据对快捷酒店集团的调研,了解整个系统中各类功能模块协同工作需要获取的信息,进行归纳总结,确定了快捷酒店管理系统要实现的两大基本的功能性需求:1.系统要对前台操作员来说做到简单快捷和易上手快捷酒店管理系统一个重要理念就是员工基本不需要单独培训即可上岗,这样降低了对员工的要求。2.系统要对管理层人员提供可分析数据的支持,以便管理层做出决策3.2 系统的总体设计为了将快捷酒店管理系统符合软件设计的低耦合性和高可用性,在设计中完全遵守mvc的设计模式,设计了如下的分层式架构,具体的架构如图3.1所示:clientconfig.xmlapplication servera1a2a3controler(java)database servera5a4jdbcconfig图3.1系统总体设计图a1:客户端读取config中的url地址,连接到应用服务器端。a2:客户端以remoteobject的方式与应用服务器交互。a3:接受到的数据通过java端程序处理和控制。a4:java端读取jdbc配置文件。准备连接数据库a5:java端与数据库端进行通信。完成操作并且返回数据。由于前端使用flex制作界面,flex和java有很多种的通信方式。提到通信,我们有两方面的问题,一是选择通信协议,二是选择数据协议。通信协议如tcp,udp,http等。数据协议则是规定数据交换的格式,如json,xml,amf3等。在这个项目中,我们使用adobe提供的blazeds这个开源框架来实现java与flex之间的通信。它已经为我们提供了java封装amf3格式的方法。然后我们应用hibernate和spring这两个开源框架。把整个业务应用划分为三层,分别为表现层(ui),业务逻辑层(bll),和数据访问层(dal)。这也完全体现了面向对象开发的“高内聚,低耦合”的思想。一个软件组件仅仅是一个使我们可以关联不同的责任的抽象的设计实体20。综上所述,系统采用的架构设计是典型的mvc的思想。把客户端作为视图层。把java端不包括与数据库交互的部分作为控制层。把java端与数据库交互的模块作为模型层。这种分层的架构设计,不仅降低了系统的复杂程度,也减轻了各个模块的压力。同时各模块互相协作。也使得编程的思路更加清晰。在设计部分,主要通过对系统的用例图,类图,交互图和状态图等一系列uml图来进行详细的描述。并且对数据库的设计也将进行介绍。3.3 模块设计快捷酒店管理系统分为以下几个功能。用户权限体系管理,客户管理,协议单位管理,会员管理,销售员管理,房价及佣金体系管理,预定管理,接待管理,客房中心管理,前台收银管理,应收帐管理,夜审管理,报表及信息查询。3.3.1 功能介绍用户权限体系管理模块主要负责区分酒店内部不同员工所拥有的不同操作权限,比如经理登录后可在报表中查看当天的营业日报,而前台操作员登录后则没有报表项目显示,因此不能查看营业日报。客户管理主要负责建立客户档案,主要把客户分为团队和散客,而散客又分为会员,回头客。如果客人第一次入住,则会自动更新客户档案。使得酒店的管理更加人性化。协议单位管理此模块主要管理协议单位,协议单位就是和酒店有签订协议价的单位,酒店需要根据不同的公司分别管理其协议价格会员管理此模块主要负责管理各个种类的会员,如金卡会员,银卡会员,普通会员,并且管理其会员卡账户余额。积分兑换等。入住时系统会根据会员的不同程度给出合理的价格。销售员管理销售员管理则是对预定或者入住时,如果是有销售员参与的话,就会对销售员给予一定的奖励。房价及佣金体系管理此房价模块主要管理钟点房及全日房的房价,每一个房价都有与之对应的房价码,各种客户入住都有与之对应的房价码,才能找到与之对应的房价。佣金管理则是如果顾客是通过第三方平台预定并入住,则需要计算佣金给第三方平台。预定和接待管理此模块是酒店管理系统中比较重要的模块,负责处理酒店的预定和入住的所有事物,此模块几乎与所有模块都产生交互,此模块直接决定了此系统的用户体验。客房中心管理此模块主要负责管理每个房间当时的客房状态。管理哪些房间可用,哪些不可用。并且负责房间是否打扫的状态等。前台收银和应收账管理此功能主要负责前台收银和应收账务的的管理,此功能也是有关财务。因此需要格外小心。0夜审管理此功能主要负责每天的夜间审核,需要计算账务,生成营业日报,并且把当天的房费去除掉,重新计算应收款。还有需要重新计算明天的房费和房间资源。一系列有关账务的操作都在夜审步骤里面。1报表和其他信息查询此功能主要涉及管理层需要核对酒店的各种账务情况和入住情况,以便更好的调整策略,使酒店的管理更加高效。3.4 主要功能模块前面已经介绍了系统的各个功能组成部分,通过对这些部分的分析,我们将系统分为入住管理和系统管理两个大部分。入住管理主要分为:前台预定接待,客房管理,收银和应收账管理,会员和销售员管理等。系统管理则主要分为:店长系统,系统维护,夜审系统和报表系统等。下图显示了入住管理和系统管理的主要流程,其中起到桥梁作用的便是夜审。如图3.2所示。r:预定状态的登记单。i:在住状态的登记单。s:挂账状态的登记单。指入住完酒店后,但并不直接付款,通过记帐的形势方便以后一起计算。o:已经结账的登记单。x:已经被取消的预定单。n:应到未到的预订单。w:wait状态的登记单。d:删除了的登记单。图3.2酒店业务流程图3.4.1 入住管理模块设计入住管理模块主要涉及客人的预定入住,房间的状态显示及顾客的资料管理 前台入住用例描述入住管理主要包括顾客的预定,登记,客房管理,房价,换房及排房的管理。以下是顾客预定,顾客登记,客户管理和团队及协议单位管理这几个方面的用例图。如图3.3,3.4,3.5所示:图3.3顾客预定用例图图3.4顾客登记用例图图3.5团队/协议单位入住用例图 房间状态管理快捷酒店最核心的业务就是卖房间给客人,把房间当做商品资源一样卖出,因此房间也需要像商品资源一样管理。并且房态图的显示必须做到实时快捷。如果房态图有误,则直接影响到销售。由于酒店要做到对自己的所有房间状态了如指掌,因此便诞生了房态图这一模块。如图3.6。图3.6房间状态图房间的状态主要包括以下几个状态:(1)空净:当前没人住,并且已经打扫过房间。(2)空脏:当前没人住,但是没有打扫过房间。(3)住净:当前已经有人入住,并且打扫过房间。(4)住脏:当前已经有人入住,并且没有打扫过房间。,(5)维修:当前房间正在维修,不允许入住。并且每一个状态都有相应的颜色显示。每一个大方格代表一个房间,大方格内的小方格则是显示房间的其他一些信息。图例如图3.7图3.7房间状态图图例3.4.2 账务及现付账模块设计 账务模块业务流程针对酒店管理系统,首先我们要做到的是账务必须清楚明确,容不得一丁点差错。这也是一个合格的管理系统所必备的。因此我们要确保每一条账务都在历史数据中有据可查,只要产生了账务的登记单,就不能随便删除或者取消。账务处理的具体时序图如图3.8所示:图3.8顾客账务处理时序图 房务费管理用例描述房费管理包括房费信息录入,录入租用信息,及退还租赁物品。如图3.9所示:图3.9顾客房费管理用例图 会员卡消费机制现代快捷酒店发展迅速,各个分店如雨后春笋般在城市中间涌现,因此,拥有一张会员卡,便可以在所有酒店消费已经成了客户的需要。会员卡一般与储值卡相融合,但是根据国家的最新规定,会员卡的储值额度已经不能超过1000了。但是这样也不影响会员卡所拥有的打折或者积分服务。会员卡消费流程如图3.10所示:图3.10会员消费示意图3.4.3 报表管理模块设计报表管理是以数据或者图形形式统计和显示当前门店的运行情况。我们提供的快捷版管理系统包含了很多基本的报表,比如近日到店入住报表,营业日报报表等,在实施的时候,也可根据酒店的要求增加酒店的自定义报表。通过报表显示出想要得到的数据,并且清晰的呈现在操作人员眼里是十分重要的。我们以一天的营业日报为例,我们可以得到今天的各个部分的消费金额和结算金额。并且也支持报表打印功能。如图3.11所示。图3.11营业日报报表图3.4.4 系统管理与维护模块设计此模块主要是系统管理员对酒店内的员工分配角色和权限。酒店的信息管理,日志管理及与外部设备或者系统的接口管理等。 权限分配设计在这个快捷版的酒店系统中,权限是用权限字符串来表示和计算的。具体流程图如下图3.12所示。图3.12权限查询流程图首先,用户登录时查询用户表,看是否有此用户存在。然后看此用户的is_func_special字段是否为true。如果是的话则代表此用户拥有独立的权限,否则则查询部门和角色表来获取此用户的权限。最后再更新use_auth_cache表中的权限字段。3.5 数据库设计用e-r模型来创建和描述数据库的逻辑结构,其基本思想是:描述实体与实体之间的关系,根据关系反映一个数据库系统的设计和需求21。以下介绍表和视图设计时,我将着重举例介绍个张表是如何通过字段关联在一起的。3.5.1 表和视图的设计1预订单和登记单表先介绍这个快捷版酒店管理系统中一个最大也是最重要的一张表,master_base表,这张表总共有87个字段。他几乎与数据库中所有的表产生关联。但是它并没有外键,设计师如此设计也是为了系统的简便性,并且在使用hibernate的时候可以自由控制数据的增删改查。我们可以形容它为预定及等级单表。但是,它的字段绝不仅只有这些。下面我来分析一下它的几个重要字段,看是如何与其他表产生联系的。首先hotel_id和hotel_group_id是所有表都有的两个字段,他们分别表示的是酒店代码和酒店集团代码。当id和master_id相同时,表示此人如果有同住人的话,则这个登记单时主同住人。其他*_id的功能也大都如此。rmtype和rmno是此登记单的房类与房型,属于登记单信息。company_id在如果是协议单位或者团队入住时才会设置值。这个字段算是与company_base表一个外键,但是并没有设置成外键。rate_code是表示房价码的字段,有关房价码的表示code_ratecode。每一个房价码都对应一个房价。member_no则是此顾客的会员号,如果不是会员则为null。extra_flag是一连串的数字字符串,用来配置那些服务被开启,并且开启的等级是多少,比如电话计费,如果extra_flag的第三位是1表示仅仅可以打市话,是3表示可以打国内长途,是5则表示可以打国际长途等。link_id则表示该登记单的联房信息。如果两张登记单的link_id相同,则表示两个登记单是联房关系。这些还只是这张表字段一个大概介绍,其他字段也大都与上面介绍的相似用法。因此这张表集合了很多信息。如图3.13所示。图3.13登记单模型图2顾客信息表主要涉及两张表,master_guest和guest_base表。maste_guest是作为master_base和guest_base的中间表。master_guest中的id与master_base中的id是一一对应的关系。master_guest中的profile_id则和guest_base中的id相互对应。两张表组合起来就能够查到这个人的所有基本信息。master_guset中的vip字段表示这个住客的vip等级。为0则不是vip。如图3.14所示。图3.14顾客管理模型图3会员信息表与会员信息相关的两张表分别是member_base和card_base。其中id与master_base中的guest_id与guest_base中的id相对应。card_base中的id又与member_base中的inner_id对应。两张表一张储存会员信息,一张储存会员卡信息。如图3.15所示。图3.15会员管理模型图4 房价信息表每一个房价都对应一个房价码,因此房价码是整个房价系统的关键。code_ratecode主要储存房价码信息,而code_ratecode_detail则储存房价信息。两者用code也就是房价码相互对应。code_ratecode_detail中的code是作为额外主键出现的。如图3.16所示图3.16房价信息模型图5. 房间信息表room_no表中的id与room_sta表中的rmno_id是一一对应的。room_no里面储存房号信息,room_sta储存房间状态。room_no和room_sta表中都储存了多天的同一房号的信息。结合这两张表就可以确定该房间在某天的状态。图3.17房间信息模型图3.5.2 存储过程设计在java对数据库进行操作时,有时操作往往是非常复杂并且需要多次连接数据库的操作。这时我们就需要用到存储过程来帮我们完成对数据库的操作。如果程序中出席那大量数据运算、业务逻辑处理需要多次连接或者查询数据库,建议常采用存储过程实现, 这样处理的性能高、处理速度快、并且调试方便22。因为存储过程只涉及到数据库的操作,因此比java连接数据库得到数据后再操作快很多倍。并且也减轻了java端的负担。而且存储过程和数据库的贴合明显比java更加紧密。1.实现业务逻辑这些存储过程主要是用来增加协议公司和团队,增加修改顾客的等级等等。如图3.17所示。图3.18公司级顾客信息修改存储过程2使业务逻辑与java端分离,作为java端与数据库端的中间层。(1).酒店夜审:主要包括修改报表,计算房费,修改营业日期,计算房类资源等等。如图3.18图3.19酒店夜审存储过程(2).生成报表:通过这几个存储过程,存储过程中主要涉及账目的计算。这几个存储过程负责生成报表信息。如图3.20所示。图3.20报表生成存储过程3.6 其他功能模块设计1.夜审管理主要负责当日的关于账务,房费,及报表审查等。并且修改房间占用资源状态。修改营业日期等。如果不过夜审,软件永远只停留在刚安装的那一天,接下来也将无法使用。2.店长模块管理层可以有许多前台操作员没有的权限,比如设置房类,房价。增删改查协议单位和团队。夜审。用户管理和佣金。38浙江大学硕士学位论文第4章 快捷酒店管理系统的实现第4章 快捷酒店管理系统的实现由于酒店系统是个十分庞大的系统,因此本章将只对用户界面操作的部分及开发技术进行详细阐述。4.1 主要开发技术本系统涵盖了快捷酒店业务的几乎所有方面,因此在页面设计上也是比较复杂的。在页面设计上我们采用了flex这种技术作为我们图形界面开发的技术。开发工具使用的也是adobe公司提供的flashbuilder4.6作为开发工具。这是一种较为新颖的技术。以前开发网页动画都是用flash开发,但是这些只适合flash设计者。而adobe为了更多的编程人员和开发者能够进入到flash开发网页的世界。他们设计了actionscript语言来完成这项工作。这是一门面向对象的脚步脚步语言。同时也推出了与html十分相似的mxml,因此把他们两个结合起来就是现在的flex。这项新的技术也使得程序员能够更快的开发ria应用。其强大的外观设计也使得界面可以十分绚丽。flex最大的优点就是它也和java一样是有虚拟机的,他的虚拟机是avm,内存回收机制也和java相似。在框架上我们选用spring和hibernate。由hibernate构建持久层,并且由spring构建业务层23。本系统采用的数据库是mysql数据库,与其他数据库相比。mysql数据库具有以下主要特点: 一是,不限制同时访问数据库的用户数量,允许通过多客户端进行访问; 二是,可以保存最大超过50,000,000条记录的数据; 三是,在目前市场上现有关系型数据库系统产品中运行速度是最快的,并且开源; 四是,用户权限设置比较简单、有效。24 综上所述,本系统开发时采用基于c/s架构的web应用开发技术。以下是开发环境及工具的介绍。(1)系统结构采用c/s架构设计。支持多客户端操作。(2)系统主要技术remoteobject,灵活的与java端进行通信。(3)数据库系统选择成熟并且稳定的开源数据库mysql。(4)网络服务器tomcat4.2 用户界面实现用户界面设计是一个系统的重要组成部分。大部分对系统的功能性需求也在用户界面中得以体现。一个系统给人的第一印象就是界面,因此,界面的美观与否直接决定了该系统能不能有好的市场。一个好的用户界面应该具备以下几个特征(1)简约自然原则。界面应当简洁时尚。(2)可学习性原则。对新用户不增加操作难度。(3)可理解性原则。用户更好理解系统。(4)一致性原则。交互模式应当与用户的习惯保持一致。251.界面外观设计由于本系统界面是采用flex开发,flex的一个重要特性就是对自定义组件的完美支持,由于flex皮肤和组件是以组合的方式结合在一起,因此在对界面进行开发时,可以定义组件自己的皮肤,使得组件在外观设计上更加美观。2.界面功能设计由于flex是一个完全面向对象的语言,他的语法也和java是差不多的。因此在功能设计上我们遵照面向对象的原则进行开发。本系统最大的特点就是对flex中group类的加工,原先的flex设计的程序都是每次打开一个页面都是全新的页面,关闭页面后则页面交给avm虚拟机垃圾回收。如果垃圾回收不及时,则内存的占用率将会很高。针对flex的这个弊端,我们采用了加工group类的想法。用ocgroup来继承group,并且重新其setvisible,也就是设置页面可见的方法。当页面在主舞台显示时,则会触发event.added_to_stage事件。然后调用opened函数。同样,当页面从主舞台消失时,则会触发closed函数。本系统主要页面都采用自定义的ocgroup来实现,因此,在界面每次打开时需要在opened函数中初始化界面的数据,在closed函数中又需要对界面中的数据进行清空。进过这样的改善,程序运行起来更加迅速,在实际应用中,内存的占用率始终保持在150m左右便稳定下来,原因就是使用了重复的界面。4.2.1 登录模块的实现这个是简单的登录界面,输入用户名和密码之后,点击登录即可。界面如图4.1显示图4.1酒店登录界面图点击“酒店注册”后,可以如图4.2界面中输入酒店的注册号:备注:由系统提供商提供酒店注册号。图4.2酒店注册界面图如点击图1-2中的切换酒店,则进入如4.3图:图4.3选择酒店页面4.2.2 预定及登记模块的实现预定及登记模块是本系统中最为重要的一个模块。可以说其他所有模块都为这两个模块服务的。由于这两个模块需要输入的项目繁多,并且输入的准确性也难以预料,所以,在设计时我们将预定及登记分为许多个步骤,一个新建的单子只能按照步骤一步一步输入才能完成,然后再保存。我们把预订单和登记单数据都放在一个纯数据类的静态变量里面,以方便各个页面操作。代码如下:bindablepublic static var masterclientdata:fmasterdto = null;预定单主要分为散客预定和团队预定。如图4.4显示图4.4顾客预定界面第一步主要填写房型,房类,日期等入住信息。第二部是填写预订人及联系信息,第三部则是填写有关销售渠道之类的信息。由于有许多信息是以默认值的形势存在,因此只要填完少部分信息就可直接保存。下面将以散客入住为例说明系统的实现。散客一般指零星的客人,没有参加旅行团,并且不是协议公司的员工等得总称.散客入住包括新建散客入住。预定转入住。重新入住。增加删除同住人,打印登记单。预付款管理。联房操作等。1.散客入住散客步入的界面如图4.5所示:图4.5步入散客顾客登录界面操作步骤:1.新建入住登记单操作(1)散客步入打开步入散客窗口,出来第一步,其他步奏都灰色处理,因为是新建登记单,所以只能一步一步来。(2)选择房型和房号,选择完退房日期,然后进入到第二步,住客信息。在此步骤中,由于本系统实现了与身份证读卡器的接口。因此,基本信息不需要操作员填写,只要把身份证放在身份证读卡器扫描一下,就可出现顾客的其他信息。如需输入联系方式等其他信息则需要操作员手动输入。第三步则是市场销售,它主要填写的是房价码和房价及市场来源等。但是这些都只需要操作员在帮助框中选择,不需要亲自填写。(3)完成前面三步即可保存,保存时系统会检验数据的完整性与合法性。其实在每一步进行完成到下一步时,数据也是会检查的。只有完成了保存才能进行后面的预收款和其他操作。当数据检查没通过时会出现红框提示。如图4.6所示。图4.6错误或为空提示框2.已有入住登记单操作此操作主要用来修改登记单信息及添加登记单的账务信息的。只有已经保存的登记单才能进行第4,5,6步操作。还未保存的登记单只能进行1-3步操作。这里将着重介绍第4,5,6步操作。如图4.7所示图4.7已有顾客修改或增加信息界面(1)修改登记单信息。与新建登记单不同的是,所有步骤都可以选择。可以点击最上排的绿色功能组件来选择要修改的步骤。在此就不多冗余。(2)新增预收款信息。这是第4步。当登记单已经保存之后,酒店就可以收取预收款了。如图4.8显示图4.8增加预收款界面(3)增加其他信息。如图4.9显示图4.9添加其它信息界面这里是许多功能集合的功能面板。例如点击周期收费,则会出现如图4.10显示。图4.10添加周期收费界面同样的,这些也只能在已经保存的登记单上操作。可以根据登记单状态的不同来控制显示的内容。52浙江大学硕士学位论文第5章总结与展望第5章 总结与展望5.1 总结通过这次开发快捷酒店管理系统,我深刻觉得酒店管理的erp软件需要大力的推广起来。每一个成功的公司都应该需要一套自己的erp管理软件。通过这次的开发,我承担了部分需求分析及设计内容。也借鉴了其他的同类产品。达到了设计初的需求,也就是快捷,易用性。本系统已经在德舒连锁酒店试用。在开发过程中,始终遵循了面向对象的开发思想。采用了uml建模的方法。提高了设计和实现的效率。在后期的测试过程中。在内存占用方面也表现出了良好的态势。并且响应速度也是非常迅速的。但是本系统仍然有很多不足之处。也有许多可以进一步发展的方向。现在的时代是移动互联网的时代,我们可以把本系统进过进一步开发,转移到手机或者一切智能终端上面。给游客一个版本,并且给管理层一个可以图形化查看报表的版本,介于此,我们可以展望一下下一步的工作。5.2 展望通过刚才的总结,我们可以想象到将来本产品的发展方向。我们可以设计多个版本以供不同的用户操作。同时可以移植到多个平台上面。由于前台开发时我们使用的是flex开发。actionscript语言和java语言一样是基于虚拟机的。因此本系统也可以做成跨平台的应用。如我们前面提到的,可以设计一个ipad版本,只显示报表和其他基本信息查询的版本,用来给店长或者决策层使用。我们可以设计一个普通用户版本,当做app可以安装到手机上,顾客可以通过本系统自主完成预定及入住。用flex开发还有一个好处就是可以无缝把客户端变成网页版本,这样就更加灵活。54浙江大学硕士学位论文 参考文献致谢在此,首先我要感谢我的论文导师柴春雷,在论文完成期间给我的论文提了很多改进意见。帮助我完成论文。也要感谢我的研究生德育导师朱小军老师,在研究生期间给了我很
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论