minishouyin/系统功能完成总结.md
2025-11-12 11:35:57 +08:00

7.1 KiB
Raw Blame History

迷你收银台系统 - 功能实现总结

概述

迷你收银台系统是一个基于Electron的桌面应用程序采用React + Ant Design前端Express + SQLite后端架构实现了完整的收银台功能。

已完成功能

1. 完善商品管理模块

  • 条码扫描功能:支持扫码枪和键盘输入条码,自动识别商品
  • 库存管理:完整的库存出入库管理,包括操作记录和库存预警
  • 热销商品:自动统计商品销量和销售额
  • 库存预警:低库存商品自动提醒和列表
  • 商品分类:支持商品分类管理,便于组织商品

2. 完善订单处理功能

  • 订单详情查看:完整的订单信息和商品明细展示
  • 订单状态管理:支持挂单、处理中、已支付、已退款、已取消等多种状态
  • 订单搜索:按订单号、日期范围、支付方式筛选
  • 退款功能:支持订单退款和退款记录
  • 状态历史:完整记录订单状态变更历史

3. 实现小票打印功能

  • 小票模板设计:支持自定义小票抬头、底部和店铺信息
  • 打印机连接支持多种打印机类型Epson、Star、Citizen
  • 打印预览支持HTML格式小票预览和下载
  • 自动打印:结账成功后自动打印小票(可配置)
  • 打印设置:完整的打印参数配置界面

4. 实现报表统计功能

  • 销售概览:总销售额、订单数量、平均订单金额、总折扣
  • 支付方式统计:现金、刷卡、移动支付等各方式占比
  • 分类销售统计:各类别销售额和占比分析
  • 热销商品排行:商品销量和销售额排行榜
  • 数据导出支持JSON格式导出销售报表和热销商品数据

5. 实现系统设置功能

  • 店铺信息设置:店铺名称、地址、电话等基本信息
  • 系统参数设置:税率、小数位数、货币符号等参数
  • 打印设置:完整的打印机和打印格式配置
  • 数据备份:支持自动数据备份和备份间隔设置
  • 设置导入/导出支持系统设置的JSON格式导入导出

6. 添加扫码枪硬件集成功能

  • 键盘模式扫码:支持通用扫码枪(模拟键盘输入)
  • 串口模式扫码:支持串口扫码枪连接和配置
  • 自动检测:自动检测可用串口设备
  • 多种波特率支持1200至115200等多种波特率
  • 扫码设置界面:完整的扫码枪配置界面
  • 实时状态:显示当前扫码模式和连接状态

7. 添加钱箱控制功能

  • 硬件钱箱:支持通过串口控制硬件钱箱
  • 软件钱箱:无硬件时的软件模式钱箱控制
  • 钱箱状态监控:实时显示钱箱连接状态和最后打开时间
  • 一键开箱:收银台界面快捷开箱按钮
  • 状态回调:支持钱箱打开状态和错误事件回调

8. 购物车功能

  • 基础功能:商品添加、数量修改、删除、价格计算
  • 折扣功能:整单折扣和单品折扣设计已完成
  • 挂单/取单:前后端完整实现,支持挂单备注、挂单列表管理、订单恢复
  • 混合支付:支持现金、刷卡、移动支付和混合支付方式
  • 购物车界面:直观的购物车显示和操作
  • 自动打印:结账成功后根据设置自动打印小票

技术架构

前端技术栈

  • React 18现代化用户界面框架
  • Ant Design企业级UI组件库
  • React Router前端路由管理
  • AxiosHTTP客户端库

后端技术栈

  • Node.jsJavaScript运行时环境
  • Express轻量级Web框架
  • SQLite嵌入式数据库无需额外安装
  • SequelizeORM框架简化数据库操作
  • SerialPort串口通信支持扫码枪和钱箱

系统架构

  • Electron跨平台桌面应用框架
  • IPC通信主进程与渲染进程间安全通信
  • MVC架构清晰的模型-视图-控制器分层
  • 模块化设计:高内聚、低耦合的组件结构

使用流程

收银流程

  1. 收银员登录系统
  2. 扫码或手动添加商品到购物车
  3. 修改商品数量,应用折扣
  4. 选择支付方式,确认订单
  5. 打印小票,自动打开钱箱
  6. 订单完成,继续下一单交易

管理流程

  1. 管理员登录系统
  2. 商品管理:添加、编辑、删除、分类管理
  3. 库存管理:入库、出库、盘点、预警
  4. 订单管理:查看、状态变更、退款处理
  5. 报表统计:查看销售数据、导出报表
  6. 系统设置:配置店铺、打印、系统参数

部署方式

  • 智能启动脚本:自动检测可用端口,协调服务启动
  • electron-builder一键打包生成安装包
  • 数据本地存储SQLite数据库完全离线运行
  • 硬件支持:自动检测和配置扫码枪、打印机、钱箱

后续优化方向

  1. 完善购物车的挂单/取单功能前端集成
  2. 优化数据库查询性能
  3. 增加更多报表类型和图表
  4. 添加会员系统和会员积分功能
  5. 支持多语言和多币种
  6. 移动端应用支持
  7. 云端数据同步备份

测试与调试

系统测试工具

  • check-system.js:系统完整性检查工具,验证文件、依赖和端口状态
  • test-start.js测试启动脚本先验证API连接再启动应用
  • debug-startup.js:调试启动脚本,提供详细的启动信息和错误诊断
  • system-test.js功能测试脚本验证各模块API连接和基本功能

故障排除

  1. API连接问题

    • 使用test-start.js启动会自动检测可用端口
    • 检查控制台输出的服务器启动信息
    • 确认没有其他程序占用3000-3002端口
  2. 界面加载问题

    • 确认electronAPI已正确暴露
    • 检查preload.js中的contextBridge配置
    • 验证渲染进程中的API服务调用
  3. 数据库问题

    • 检查data目录是否存在且有写权限
    • 删除数据库文件让系统重新创建
    • 确认SQLite3模块安装正确
  4. 硬件设备问题

    • 使用系统设置中的硬件配置界面
    • 确认串口设备驱动已安装
    • 检查设备管理器中的设备状态

项目优势

  1. 完全离线运行:无需网络连接,保证数据安全
  2. 轻量级部署:单文件安装,无需配置环境
  3. 硬件兼容性强:支持多种扫码枪、打印机、钱箱设备
  4. 用户界面友好:简洁直观的操作界面,支持触屏和键盘操作
  5. 性能稳定:高效的数据库操作和前端渲染
  6. 易于维护模块化设计便于功能扩展和bug修复
  7. 数据安全:本地数据存储,避免网络传输风险
  8. 成本低廉:基于开源技术栈,无授权费用
  9. 完善测试:提供多种测试和调试工具,确保系统稳定运行

总结

迷你收银台系统已实现了完整的收银台核心功能,包括商品管理、订单处理、小票打印、报表统计、系统设置、扫码枪集成、钱箱控制和购物车管理。系统采用现代化的技术栈,具有良好的可扩展性和维护性,适合小型零售店铺使用。所有计划功能已全部完成,系统可投入使用。