# KK点餐系统 技术文档
## 一、系统概述
KK点餐系统是面向餐饮门店的全流程点餐管理系统,包含前台POS收银、后台管理、厨打分单、厨房看板四大模块,支持多档口厨房打印、活动折扣、报表统计、权限管理等功能。
## 二、技术栈
– **后端**:Spring Boot 3 + MyBatis-Plus + MySQL 8
– **前台POS**:Vue 3 + Vite + Element Plus,部署路径`/pos/`
– **后台管理**:Vue 3 + Vite + Element Plus,部署路径`/admin/`
– **服务端GUI**:C# WinForms(打印队列管理、数据库备份、服务状态监控)
– **通信协议**:后端REST API,端口11201
– **打印协议**:RAW Socket 9100端口,直接发送ESC/POS指令到网络打印机
## 三、部署架构
“`
客户端浏览器/安卓厨房屏
↓ HTTP 11201
Spring Boot后端(内嵌POS+后台静态页面)
↓ 9100端口
网络厨打打印机(刺身/宝宝/本帮/中厨/海鲜/配菜/蒸菜/铁板档口)
↓ JDBC
MySQL 数据库(库名kkorder)
“`
## 四、目录结构
“`
E:kk点餐系统
├── kk-order-backend/ # Spring Boot后端源码
│ ├── src/main/java/com/kk/order/
│ │ ├── controller/ # REST接口
│ │ ├── service/ # 业务逻辑
│ │ ├── entity/ # 数据库实体
│ │ ├── mapper/ # MyBatis-Plus Mapper
│ │ └── config/ # 配置类
│ └── src/main/resources/static/
│ ├── pos/ # 编译后的POS前端
│ └── admin/ # 编译后的后台管理前端
├── kk-order-pos/ # POS前台Vue源码
├── kk-order-admin/ # 后台管理Vue源码
├── kk-server/ # 服务端C# GUI
│ ├── app/kk-order-backend-1.0.0.jar # 后端jar包
│ └── kk-server.exe # 服务端管理程序
└── KK点餐系统_发布版/ # 最终发布包
“`
## 五、核心功能模块
### 1. 前台POS端
– 桌台视图:区域分类显示桌台状态(空台/用餐中/已结账)
– 开台:选择桌台→录入人数→创建订单
– 点单:按分类选菜品→选规格→选做法→加入待下单列表
– 锁单/解锁:临时锁单防止误操作,需密码解锁
– 退菜:支持选择”厨打退菜”/”不厨打退菜”,厨打退菜自动发退菜单到对应档口
– 结账:选择支付方式→支持折扣/代金券/优惠券/随机减免/抹零→生成结账单打印
– 更多功能:返台、查看历史账单
– 权限:所有按钮按登录用户权限显示,无权限自动隐藏
### 2. 后台管理端
– 工作台:营业数据概览
– 结算活动方案:折扣方案、代金券、优惠券、满减随机减免配置
– 菜品管理:菜品CRUD、多档口厨打绑定、规格/做法配置
– 分类管理:菜品分类
– 区域/桌台管理:区域划分、桌台添加
– 支付方式管理:微信/支付宝/现金/会员等支付方式
– 厨打单设置:网络打印机IP/端口配置,重试次数10次,超时10秒
– 打印样式:自定义账单/厨打单/退菜单模板,支持变量插入
– 营业报表:按日期范围统计品项销售、退菜、对比
– 订单记录:所有订单查询
– 操作日志:所有订单操作记录,带操作人
– 用户管理:员工账号配置,角色权限分配
– 系统设置:门店信息、自动厨打开关、数据库备份
### 3. 厨房看板
– 实时显示新下单菜品,按档口分类
– 标记出餐、标记上桌状态流转
– 支持安卓平板部署
### 4. 服务端GUI
– 服务状态监控:后端/数据库/API状态
– 启动/停止服务按钮
– 数据库备份:一键导出整个数据库SQL文件
– 打印队列:查看打印任务状态,失败重试
– 打印机状态:实时显示在线打印机
## 六、数据库核心表
| 表名 | 说明 |
| —————– | ——————————- |
| `order_master` | 订单主表:订单号、桌台、人数、状态、总金额、折扣、抹零、实收 |
| `order_item` | 订单菜品:菜品ID、数量、规格、做法、单价、绑定打印机ID |
| `dining_table` | 桌台:桌号、区域、状态(FREE/DINING/BILLED) |
| `dish` | 菜品:名称、分类、价格、绑定档口打印机ID |
| `employee` | 员工:账号、密码、角色、权限JSON |
| `kitchen_printer` | 厨打打印机:名称、档口、IP、端口 |
| `print_log` | 打印日志:打印内容、打印机、状态 |
| `operation_log` | 操作日志:操作人、操作类型、关联订单ID |
| `promotion` | 活动方案:类型(折扣/代金券/优惠券/满减)、参数 |
| `sys_config` | 系统配置:门店名、自动厨打开关等键值对 |
## 七、API接口列表
| 接口 | 方法 | 说明 |
| —————————- | —- | ——– |
| `/api/employee/login` | POST | POS/后台登录 |
| `/api/order/open` | POST | 开台创建订单 |
| `/api/order/{id}/items` | POST | 加菜 |
| `/api/order/{id}/lock` | POST | 锁单/解锁 |
| `/api/order/{id}/checkout` | POST | 结账 |
| `/api/order/history` | GET | 历史订单 |
| `/api/order/{id}/return` | POST | 退菜 |
| `/api/kitchen-printer/list` | GET | 厨打打印机列表 |
| `/api/print-log/print` | POST | 发送打印任务 |
| `/api/print-template/{type}` | GET | 获取打印模板 |
| `/api/config/all` | GET | 获取系统配置 |
| `/api/system/backup-db` | GET | 数据库备份 |
## 八、权限体系
### 角色
– ADMIN 系统管理员:自动全量权限
– MANAGER 经理:全部POS权限+营业报表
– FOREMAN 领班:点单+退菜+锁单+结账
– CASHIER 收银员:点单+结账+折扣
– WAITER 点菜员:开台+下单+标记上桌
### 权限点
– 后台16项:工作台、结算活动方案、菜品管理、分类管理、区域管理、桌台管理、订单记录、营业报表、规格做法、支付方式、厨打设置、打印监控、打印样式、操作日志、用户管理、系统设置
– POS13项:开台、下单/加菜、退菜、锁单/解锁、结单/结账、折扣/抹零、使用活动方案、查看历史账单、打印账单、厨打打印、标记出餐、标记上桌、返台
## 九、部署说明
1. 安装MySQL 8,创建数据库`kkorder`,导入表结构
2. 双击`kk-server.exe`启动服务
3. 访问:
– 后台管理:`http://服务器IP:11201/admin`
– POS收银台:`http://服务器IP:11201/pos`
– 厨房看板:`http://服务器IP:11201/pos/kitchen`










