从单据到批次,从业务到合规,一套系统覆盖经营与监管的双重诉求
所有出入库必须落到具体批号与有效期,不允许无批次库存;解锁「先进先出 / 近效先出」的自动配货。
每一笔收发都写入条码级流水台账,可从供应商批次正向追到客户,也可由零售小票反向追回收货单。
资质到期、商品近效期、过期与锁定批次、人员执业证到期、库存低于下限,统一在预警中心提示与处置。
制度与职责、人员培训、设施设备、温湿度、不合格处理、不良反应,以及收货验收 / 销售 / 处方药记录。
平台维护公共云商品库,租户检索后一键落到自有商品档案;提交资料可走平台审核流程。
平台端管理租户、角色与权限;租户端再设子账号与角色,行级 tenant_id 隔离,跨租户数据不可见。
平台端「管理后台」与租户端「用户后台」双端一体,菜单即路由
单据驱动库存,库存驱动台账,台账支撑追溯与报表
调拨、盘点、损益、退换货同样按批次登记,全部流向统一的出入库台账。
前后端分离、同域部署,无需额外网关
Vue 3 + Vite 5 + Element Plus + Pinia + Axios,hash 路由同域部署。
PHP 8 + ThinkPHP 6/8 多应用,REST 风格 JSON 接口,令牌鉴权。
MySQL 5.7+/InnoDB + utf8mb4,44 张表,租户数据行级隔离。
前端构建产物置于 PHP 根静态目录,Nginx 优先命中 index.html。
| 层次 | 技术选型 | 关键约定 |
|---|---|---|
| 表现层 | Vue 3、Element Plus、Pinia、Vue Router | 目录 jinxiaocun-web/src;菜单即路由,由 config/menus.js 驱动 |
| 接口层 | ThinkPHP 控制器 app/api/controller | /api/<控制器>/<方法>,统一响应 {code,msg,data} |
| 鉴权层 | AuthService + ApiMiddleware | Authorization: Bearer <token>,platform / tenant 双守卫 |
| 服务层 | app/service(库存引擎、字典、单号、日志) | 库存与流水由 Stock::in/out 统一入口写入,事务保障 |
| 数据层 | MySQL InnoDB / ThinkORM | 表前缀 sys_/biz_/qc_/cloud_,无物理外键,应用层关联 |
| 运行环境 | PHP ≥ 8.0(安装向导要求 ≥ 7.4 检测)、Nginx、MySQL | 依赖扩展:pdo_mysql、mbstring、openssl、json |
安装向导内置环境检测,初始化后可删除安装入口
database/jinxiaocun.sql(已有库可用 jinxiaocun_import.sql),字符集 utf8mb4config/database.php 或设置 DB_HOST/DB_NAME/DB_USER/DB_PASS 环境变量jinxiaocun 目录(含 vendor/)上传至站点,根目录指向 public//install.html 完成环境检测并创建首个平台管理员dist/ 内容覆盖至 public/,Nginx index 顺序调整为 index.html 优先cd jinxiaocun-web
npm install
npm run build # 产物 dist/ 覆盖到 public/
# 宝塔 / Nginx site 配置
index index.html index.htm index.php;
| 运维项 | 建议 |
|---|---|
| 安装入口 | 初始化完成后删除 public/install.html,防止重复安装 |
| 令牌清理 | 按 sys_token.expire_at 定期清理过期令牌 |
| 日志归档 | sys_log 按时间归档;保留合规所需年限 |
| 台账容量 | biz_flow 增长最快,建议按 biz_date 分区或历史归档 |
| 过期批次 | 定期清理近效 / 过期批次或转历史表,保持库存表体积 |
| 备份策略 | 每日全量 + binlog 增量,恢复演练每季度一次 |
与本页同目录提供两份工程级文档,便于开发、审计与交付
44 张表全字段级说明(类型、可空、默认值、索引),以及枚举字典、状态字典、预警字典、平台配置项字典与维护建议。
数据字典.mddatabase/jinxiaocun.sql仓库全部源码、配置、脚本文件清单与职责说明,含后端控制器方法列表、前端页面接口映射、命名与接口约定。
文件字典.md