# 药店进销存与处方药管理系统 **Repository Path**: dm_team/Pharmacy-Inventory-Prescription-Drug-Management-System ## Basic Information - **Project Name**: 药店进销存与处方药管理系统 - **Description**: 药店进销存与处方药管理系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-09 - **Last Updated**: 2026-08-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 药店进销存与处方药管理系统 基于 Spring Boot 3 + Vue 3 的药店进销存与处方药合规管理系统,覆盖药品档案 → 采购入库 → 门店销售 → 库存盘点 → 效期预警 → 处方药合规登记的完整业务闭环。 ## 功能亮点 - **批次效期管理**:一药多批次,销售按效期近者先出(FIFO),销售明细落批次号,全链路可溯源 - **双重库存预警**:定时任务每日扫描,近效期(3/6 个月分级)+ 低库存自动预警,阈值可配置 - **处方药合规流程**:处方药销售强制登记(患者/医师/执业证号/诊断)→ 药师审核,未登记不允许出库 - **智能经营建议**:数据驱动决策引擎,自动生成补货建议 / 近效期促销建议 / 过期报损建议 / 会员复购提醒 - **会员运营体系**:会员等级(普通/银卡/金卡/钻石)+ 结算自动折扣(9.8/9.5/9 折)+ 积分累计(1 元=1 分) - **会员健康档案**:画像 + 常用药 + 购买历程时间线 + 复购周期提醒,店长工作台可读可跳转 - **三端角色形态**:收银员 POS 终端 / 店长经营驾驶舱(智能建议+待办)/ 管理员完整后台 - **交互细节**:扫码/编码回车加购、结算打印小票弹窗、采购状态步骤条、统计数字滚动、消息铃铛预览 - **数据看板**:ECharts 销售趋势 / 销售排行 / 库存周转 / 效期分布 / 分类占比 ## 技术栈 | 端 | 技术 | |---|---| | 后端 | Spring Boot 3.2 · MyBatis-Plus · Spring Security · JWT | | 前端 | Vue 3 · Vite · Element Plus · ECharts · Pinia | | 数据库 | MySQL 8.0(33 张业务表 + 权限树) | ## 目录结构 ``` init.sql # 建库 + 33 张表 + 菜单权限树 + 演示数据 backend/ # Spring Boot 后端源码(含 tools/ 开发脚本、upload/ 上传目录) frontend/ # Vue3 前端源码 系统截图/ # 系统运行截图 ``` ## 快速启动 ### 环境要求 - JDK 21、Maven 3.9+ - Node.js 18+、npm - MySQL 8.0(本机 3306 端口) ### 1. 初始化数据库 ```bash mysql -uroot -p < init.sql ``` 脚本会创建 `pharmacy_db` 库(含应用账号 workstudy/WorkStudy@2024、演示数据、菜单权限树),可重复执行。 > ⚠️ 前提:MySQL 服务已启动;`-uroot -p` 后输入**你自己的 MySQL root 密码**。导入后应用账号自动可用,**无需修改后端数据库配置**。 ### 2. 启动后端(8080 端口) ```bash cd backend mvn spring-boot:run ``` > - 首次运行会自动下载 Maven 依赖(联网,约 3~10 分钟,期间无输出属正常,不是卡死);之后秒启 > - 后端配置在 `backend/src/main/resources/application.yml`,默认连接 `127.0.0.1:3306/pharmacy_db`(账号 workstudy,由 init.sql 创建) > - 启动成功的标志:日志出现 `Started PharmacyApplication` 且 8080 端口监听 ### 3. 启动前端(5173 端口) ```bash cd frontend npm install npm run dev ``` 浏览器访问 **http://localhost:5173**,前端已配置 `/api` 代理到后端 8080。 ## 演示账号(密码均为 123456) | 账号 | 角色 | 权限范围 | |---|---|---| | admin | 管理员 | 全部功能 + 系统管理 | | manager01 | 店长/药师 | 采购审核、入库、盘点、处方审核、预警处理、统计 | | cashier01 | 收银员 | 收银销售、处方登记、退换货、库存查询 | > 登录页支持一键切换演示角色。交付态开启图形验证码(`alarm_config` 表 `workstudy.captcha.enabled`)。 ## 业务模块 | 模块 | 功能 | |---|---| | 药品管理 | 药品档案(规格/厂家/处方类型/警戒库存)、同药多批次、调价记录 | | 采购管理 | 采购单 → 审核 → 入库(登记批次+生产日期+效期)、供应商管理 | | 销售管理 | 收银台(FIFO 批次出库)、处方登记与审核、退换货回库、会员客户 | | 库存管理 | 库存查询、效期预警、低库存提醒、盘点盈亏调整、报损、调拨、预警参数配置 | | 统计分析 | 销售趋势/排行、库存周转、效期分布、分类占比、**智能经营建议** | | 会员运营 | 会员等级折扣、积分累计、健康档案(购买史/常用药/复购提醒) | | 系统管理 | 用户、角色、菜单、字典、公告、消息、操作日志 | ## 测试 - JUnit 单测:`cd backend && mvn test`(FIFO 出库 / 处方合规 / 采购状态流转 / 入库批次校验,12 项) - API 冒烟:`python backend/tools/api_smoke.py`(45 项) - 业务闭环:`python backend/tools/human_flow_test.py`(14 项)+ `security_test.py`(越权 23 项) - 浏览器完整闭环:`node frontend/scripts/final_flow.mjs`(22 步实体贯穿,单号链 PO→批次→XS→处方→盘点全链路,0 JS 错误) - 测试计划见 `frontend/scripts/browser_test_plan.md`,明细写入 `frontend/scripts/test_results.json` ## 常见问题 - **登录提示验证码错误**:验证码开启时需输入图形验证码;联调可执行 `UPDATE alarm_config SET config_value='false' WHERE config_key='workstudy.captcha.enabled'` 后重启后端关闭 - **8080 端口被占用**:`netstat -ano | findstr :8080` 找到 PID 后 `taskkill /PID /F` 再启动 - **修改 Java 代码不生效**:`mvn spring-boot:run` 需重启进程(`Ctrl+C` 后重新启动)