1. 项目背景与核心价值
作为一名长期从事医药行业信息化建设的开发者,我深刻理解传统药店管理面临的痛点。去年为某连锁药店实施数字化改造时,他们的店长给我看了一摞厚厚的纸质台账——库存盘点误差率高达15%,过期药品损失每年超过20万元。这正是我们开发这套药店销售系统的初衷。
这个基于Spring Boot的全栈系统实现了三大突破:
- 实时库存动态:通过智能预警机制,当库存量低于阈值时自动触发采购流程,将库存误差控制在3%以内
- 全流程追溯:从供应商到客户的完整药品流向记录,满足GSP认证要求
- 多角色协同:独创的"药师-管理员"双审核机制,确保特殊药品的合规销售
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构解析
2.1 整体技术栈设计
系统采用经典的三层架构,但在数据持久层做了创新设计:
code复制[前端] Vue.js + ElementUI
↑
[REST API] Spring Boot 2.7 + JWT
↑
[数据层] MyBatis-Plus + Druid + Redis
↑
[存储层] MySQL 8.0 (主从架构)
特别说明几个关键技术选型:
- MyBatis-Plus:相比原生MyBatis,其Lambda查询构建器使药品多条件检索代码量减少60%
- Druid连接池:配置了完善的SQL监控和防火墙规则,防止药品数据泄露
- Redis应用:采用Hash结构缓存药品库存信息,QPS可达20000+
2.3 数据库设计精要
药品管理的核心在于数据关系的严谨性。我们设计了7个关键实体:
-
药品主表(drug_warehouse)
- 采用"一物一码"原则,每个药品有唯一编号
- 包含有效期字段,系统会提前30天预警
-
业务流水表设计
sql复制CREATE TABLE `purchase_order` (
`purchase_number` varchar(64) NOT NULL COMMENT '采购单号规则:PO+年月日+4位序列',
`drug_number` varchar(64) NOT NULL COMMENT '关联药品编号',
`examine_state` enum(
