昨天写了餐饮管理系统的相关需求,得到了园友的一些好的建议,感到很高兴,确实写的也不全面,现在补充一下需要的业务,这次主要做的主要是前台收银系统,所以业务主要集中在前台点菜收银这块,而后面数据管理这块则暂时先不考虑。
至于像权限,不同的组门应该有不同的权限不同级别的员工也有相应的权限,比如收银员只有9折的打折权限,而收银主管则可以打折到8.5折,而经理可以打折到8折。至于一个园友说的前景,希望系统可以应用在中小型的餐饮,都说民以食为天,特别是现在社会发展如此快,人民对生活水平的需求越来越高,她们不仅仅满足于吃饱,更在乎餐厅的环境,而一个拥有好环境的餐厅不仅仅指餐厅装饰是多么的华丽,当然还包括像管理系统这样的软件环境,它代表的是一种先进的管理水平,现在全国各地每年都有好多新餐厅开张或改装,而且它们也越来越认可信息技术在管理中的重要作用,以前像手持点菜宝,PDA到现在的O2O技术的应用,现在像手机或IPad等平板硬件都已经应用的越来越普遍。所以说前景还是比较看好的,只有使用方便,个性化以及很好的用户体验,肯定会有一席之地。好,开始今天的系统概要设计。
第一部分 引言
一、编写目的
本系统是系统系统的总体设计和实现说明,记录了整个系统实现上的技术实现的考虑,以需求说明为依据,同时作为系统要求的控制的依据。
二、背景
说明:名称: RMS(Restaurant manage system)
开发:LZ
本系统将实现真实情况下客人从进入餐厅到吃完饭后结账离开时一系统流程。帮助餐厅高效管理,提前员工工作效率。实现无纸化管理。
数据库:sqlser2008R2
数据库设计工具:Power Designer 15 + 设计表导出工具
代码开发环境:VS2012,主要使用WINForm + wpf设计界面。
三、定义
暂无
四、参考资料
《CLR via C#》
《.NET组件程序设计》
《C#程序开发范例宝典》
《First Head 设计模式》
《大话设计模式》
第二部分 总体设计
一、系统流程与基本概念
本系统采用典型的C/S来实现,不同的客户端通过网络连接到数据库服务器来访问或操作数据。如下图所示:
功能的模块划分如下图所示:
二、功能需求
1、开始界面设计
a.系统启动后首先运行的是欢迎界面,在启动的过程中会显示相关的初始化进度,并且显示各初始化模块的名称,启动完成后进入登录界面,此界面与QQ相似,用户名能够保存之前保存过的用户名,能够实现模糊查询用户名。输入错误的用户名或密码会有相应的错误提示。
b.系统退出可以提示不直接退出与直接退出两种,不直接退出就是相当于锁定系统,只要再次输入密码就可以登入系统。
c.系统有统一的界面风格,统一的logo.有统一的信息提示框。
2、台桌界面
a.输入正确的用户名与密码后进入台桌显示界面,界面会根据不同的状态显示不同的颜色来标识,能够根据不同的条件实现台桌的查询,如位置像包厢,大厅,状态像空台,已上菜或结账,当台桌状态是已上菜时,单击时会显示它对应的菜品与金额,双击后直接进入此台桌已点菜界面。空台则直接进入到点菜界面。
b.台桌界面能够显示台桌名称并且可以根据不同的配置来设置。能够有相应的颜色标识来标识台桌的状态。
3、点菜界面
a.当客人需要点菜或加菜时,可以进入到点菜界面进入操作,界面上能够根据类型来显示餐厅所有的菜品,可以根据菜品代码和拼音码进行点菜,点菜界面同时能显示已点菜的记录,选中要修改的菜品,可以个性它的数量,上菜模式,发送到厨房,或整单发送到厨房,可以删除已点菜,对已点菜记录可以根据类型进行排序,系统能够自动算出已点菜数量,金额等相关信息。
4、已发送菜界面
a.对于已经发送到厨房的菜品,就不能删除了,只有通过退菜来操作,退菜时一定输入数量,当然数量不能大于已点菜数量,当客人要加菜时,则可以跳转到点菜界面再点菜然后再发送,客人想加快上菜速度,则可以点催菜操作,会打印单子到厨房。
b.客人可以转台,比如有A台到B台,特殊情况下可以拼台。
5、结账
a.当客人要结帐时,可以操作打折,赠送等操作,前提是此菜品能够打折,能够赠送。打折的类型根据配置可能有不同的情况。
b.结账界面能够显示所有金额,可以选择支付方式,如现金还是银行卡,能够自动算出像打折,赠送以及签单等相应金额。
c.结账时能够打印所有菜品的信息,显示名称,数量,金额,收银员名称,打印时间等信息。
d.结完账后实现翻台操作,一个完整流程结束。
6、其他
a.餐厅有相应的餐段,比如是午餐还是晚餐,这个根据时间来由系统自动识别,对于大型的餐厅,还有不同的餐牌,如是中餐还是西餐。
b.客人类型有散客与团队等。
c.菜品还在套餐与非套餐。
d.打印菜品的格式。
第三部分 接口设计
系统采用Ado.net连接数据库来实现对数据的操作,复杂的操作使用存储过程,简单的数据库操作可以不使用存储过程,使用xml或其他像INI存储一些配置相关方面的信息。对用户密码等敏感信息使用md5加密技术,所有的界面继承同一个父界面,所有的错误或异常能够捕抓到到记录到日志文件或表中并将提示返回给用户,提示信息应该是友好的,不是看不懂的一些信息。
1、模块设计
之前也一直想要不要重复创轮子,前面也说了,主要是练练手,所以不使用第三方的控件,像日志记录控件log4net,微软的enterPrise都是不错的选择,像控件库telerik那么炫,但是为了加深学习,还是不使用这些非常优秀的控件。
a.解决方案名称: RMS,命名空间名称也以这开头。
b. 数据访问层:DataAccess
c.自定义控件:UserControls,所有的自定义控件放这个项目里面
d.业务层:Business,所有相关的业务处理放这里。
c.数据层:Entities,存储所有的实体类,每个实体类实现Insert,update以及Delete方法。
d.日志:Logger,存放日志相关的项目。
e.Common:所有通用类存放在此项目中。
f.UI文件夹:UI相关的文件放此文件夹中,UI下面放Resources以及Operations和FORM相关子文件夹,分别存放资源相关以及窗体和对应的操作类。
下次写数据库表设计,这次先到这,主要是概要,详细设计会以模块一个一个地介绍,然后再合起来写一个完整的详细设计文档。