● 网络版已部署上线 · 单机版可本地运行
书店进销存系统
一套覆盖采购、销售、库存、会员与账务的完整进销存解决方案。服务端 + 网页 + 微信小程序 + 手机 App 四端共用同一套接口,同时提供 Microsoft Access 单机版本。
首页›书店进销存系统
在线演示 账号
101(店长,全部权限) 密码
123456
另有 102 收银员、103 采购员、104 库管三个账号,密码相同,登录后可见功能按岗位权限自动裁剪。
四端协同架构
服务端统一对外提供 REST 接口,四类客户端调用同一套接口,业务逻辑只在服务端实现一次,避免了各端重复开发与数据不一致的问题。
浏览器直接打开即可使用,无需安装。适配桌面与手机屏幕,包含全部业务模块。
- 登录验证与岗位权限
- 进货单、销售单主子表录入
- 库存查询、预警与盘点
面向日常移动场景,提供库存查询、销售录入与经营日报的轻量化操作。
- 首页经营概况卡片
- 扫码 / 选择图书快速录单
- 库存不足消息提醒
与 Web 端功能对齐的移动端应用,通过 HTTP 访问服务端接口。
完整的桌面数据库应用:19 张表、13 个查询、16 个窗体、4 张报表与 3 个 VBA 模块。
- 不联网也能完整做账
- 进货 / 销售单自动过账改库存
- 日清月结一键生成
业务流程
功能模块
| 模块 | 主要功能 | 权限要求 |
| 基础资料 | 图书档案、图书分类、供应商、客户、会员、员工与岗位 | 店长 / 采购 / 库管 |
| 进货管理 | 进货单录入与明细计价,过账后自动增加库存 | 采购员 / 店长 |
| 销售管理 | 销售单录入,会员折扣自动计算,超卖即时拦截 | 收银员 / 店长 |
| 库存管理 | 库存台账、低于下限自动预警、盘点并按实盘调整 | 库管 / 店长 |
| 日清月结 | 生成日结滚存表、月结汇总表并自动比对盈亏 | 店长 |
| 会员管理 | 等级折扣、消费累计积分、会员消费明细 | 收银员 / 店长 |
| 统计报表 | 销售汇总按图书 / 客户、进货汇总按供应商、提成明细 | 店长 |
| 系统管理 | 账号与密码、岗位权限矩阵、操作日志 | 店长 |
数据库设计
共 19 张表,全部以自增 ID 为主键,单据采用「主干表 + 明细表」一对多结构,主从之间设置级联删除,保证删单不留孤儿数据。
岗位员工模块岗位权限
图书分类供应商图书客户
会员提成方案提成方案明细
进货单主干进货单明细销售单主干销售单明细
图书日结图书月结库存盘点操作日志
三条一致性规则
- 现存库存 = 期初库存 + 累计进货 − 累计销售(仅统计已过账单据)
- 单据金额合计 = 各明细行「数量 × 单价」之和
- 日结逐日滚存:本日结存 = 上日结存 + 本日入库 − 本日出库
安全设计
- 口令不明文存储:登录时用摘要算法把口令换算成定长摘要再比对,数据库中不含任何明文密码。
- 岗位—模块权限矩阵:每个功能模块是否可见由岗位权限表决定,登录后界面自动裁剪。
- 操作留痕:关键动作写入操作日志,含操作人、时间与详情。
- 全站 HTTPS:在线版部署于已配置 Let's Encrypt 证书的服务器上。
常见问题
在线版的数据是真实的吗?
不是。在线版中的图书、客户、单据均为课程演示数据,可自由增删改,仅用于功能验证与演示。
单机版和网络版的数据互通吗?
不互通,两者是各自独立的实现:网络版数据存于服务端 SQLite,单机版是本地 Access 文件。但两者的表结构、业务流程与校验规则保持一致,可以对照学习。
为什么不同账号看到的功能不一样?
系统按岗位划分权限。店长拥有全部模块权限,收银员侧重销售与会员,采购员侧重进货与供应商,库管侧重库存与盘点。登录时按权限矩阵动态裁剪菜单。
销售时提示库存不足怎么办?
这是系统的超卖拦截在起作用。先补录进货单并过账增加库存,或者修改销售数量后再试。
说明 本系统为课程学习作品,用于个人学习与技术交流,不涉及任何经营活动,也不对外提供商业服务。