概要设计 - HelloYu/Restaurant-Management-System GitHub Wiki

总体设计

RMS_general_design_top

登录模块

RMS_User_Login_DFD 用户通过浏览器或者手机APP登录系统,系统根据验证结果返回相关信息。如果认证成功,会根据用户的角色信息,跳转到不同的界面。

员工管理

添加员工模块

add_personnel_DFD 管理员输入员工基本信息,提交添加请求,服务器收到请求信息,调用用户模型操作数据库。

编辑员工模块

管理员编辑完员工信息,提交编辑请求,服务器收到请求信息,调用用户模型更新数据库。

删除员工模块

管理员删除某员工,提交删除请求,服务器收到请求信息,调用用户模型,根据ID进行删除。

菜品管理

添加菜品模块

activity_add_menu 管理员输入菜品名称和价格,提交添加菜品请求,服务器收到请求信息,调用菜品模型向数据库插入菜品信息。

编辑菜品模块

管理员编辑完菜品信息,提交编辑请求,服务器收到请求信息,调用菜品模型更新数据库。

删除菜品模块

管理员删除某菜品,提交删除请求,服务器收到请求信息,调用菜品模型,根据ID进行删除。

订单管理

order_DFD 实时订单有二种状态:处理中,未处理。根据不同的状态在订单管理界面中呈现不同的状态。服务员可以对未处理的订单进行取消操作。

实时订单处理系统

real_order_system_DFD 此子系统使用WebSocket与客户端建立长连接,当订单状态更新,服务器将最新的订单信息推送到客户端。

订单拆分

服务器会根据服务员提供的订单信息,如果订单内有多个菜品,会对订单进行拆分,相同菜品会分发给同一个厨师进行处理。

订单分发

拆分后根据厨师队列中,各个厨师当前的处理菜品数量来进行分发。会使用订单的单独ID进行绑定。

数据字典

用户

名称 类型
用户名 username String
密码 password String
角色 role String

菜品

名称 类型
菜品名 menu_name String
菜金 menu_price Number

实时订单

名称 类型
桌号 table_id Number
服务员Id waiter_id String
状态 status Number
订单菜品总数 menu_number Number
被拆分多少份 apart_number Number
价格 price Number

历史订单

名称 类型
服务员Id waiter_id String
订单菜品总数 menu_number Number
厨师数组 chiefs Object
价格 order_price Number