# QMS 质量管理系统
**Repository Path**: MerlinRong/QMS
## Basic Information
- **Project Name**: QMS 质量管理系统
- **Description**: QMS 质量管理系统
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2026-10-07
- **Last Updated**: 2026-10-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# QMS 质量管理系统
**制造业质量管理全生命周期系统**
检验标准 · IQC 来料 · IPQC 制程 · FQC/OQC 成品 · NCR 不合格品 · 统计报表
[](https://www.python.org/)
[](https://fastapi.tiangolo.com/)
[](https://vuejs.org/)
[](https://www.typescriptlang.org/)
[](https://www.postgresql.org/)
[](qms-backend/tests)
[](#-license)
---
## 📦 仓库结构
```
QMS/
├── qms-backend/ # 后端 — FastAPI · SQLAlchemy 2.0 (async) · Pydantic v2
│ ├── app/core/ # 基础设施:配置 / 数据库 / 安全 / 异常 / 响应
│ ├── app/common/ # 公共组件:状态机 · GB/T 2828.1 抽样算法 · 编号生成器
│ ├── app/modules/ # 业务模块:system / standard / iqc / ipqc / fqc / ncr / report
│ ├── alembic/ # 数据库迁移
│ └── tests/ # pytest 测试
├── qms-frontend/ # 前端 — Vue 3.4 · TypeScript · Vite 5 · Element Plus · ECharts
├── deploy/ # 部署 — docker-compose · nginx · postgres 初始化
└── docs/ # 文档指引(正式文档见 .codebuddy/docs)
```
## ✨ 功能模块
| 模块 | 功能 | 状态 |
|------|------|:----:|
| 系统管理 | JWT 双 Token 认证 · RBAC 菜单/按钮权限 · 操作审计 | ✅ |
| 检验标准 | 版本快照 · GB/T 2828.1 抽样计算 · 审批发布 · 删除保护 | ✅ |
| IQC 来料检验 | 报检幂等 · 免检规则 · 自动判定 · NCR 事务联动 | ✅ |
| NCR 不合格品 | 状态机全流转 · MRB 双部门评审 · 处置/复检/闭环 | ✅ |
| IPQC 制程检验 | 首件/巡检/末件 · 异常触发 · 连续超差升级 | ✅ |
| FQC/OQC 成品检验 | 合格放行 · 入库/出货前提校验 | ✅ |
| 统计报表 | 合格率 · Pareto 分析 · NCR 统计 · 仪表盘 | ✅ |
| 8D / CAPA / PDCA | 改进闭环管理 | 🚧 Phase 2 |
| 质量追溯 | 正向/反向/供应商追溯 · 可视化链路 | 🚧 Phase 2 |
| SPC 控制图 | Xbar-R · P 图 · Cp/Cpk 过程能力 | 📅 Phase 3 |
## 🚀 快速启动
### 1. 后端(端口 8000)
```bash
cd qms-backend
python -m venv .venv
.venv\Scripts\pip install -r requirements.txt -r requirements-dev.txt # Windows
pip install -r requirements.txt -r requirements-dev.txt # Linux/macOS
copy .env.example .env # 按需修改 DATABASE_URL / SECRET_KEY
.venv\Scripts\python scripts\init_db.py # 建表 + 预置管理员
.venv\Scripts\python -m uvicorn app.main:app --reload --port 8000
```
| 地址 | 说明 |
|------|------|
| http://127.0.0.1:8000/api/docs | Swagger API 文档 |
| http://127.0.0.1:8000/api/v1/health | 健康检查 |
> 默认账号:`admin / Admin123`(首次登录后请立即修改)
### 2. 前端(端口 5173,代理 /api → 8000)
```bash
cd qms-frontend
npm install
npm run dev
```
### 3. Docker 一键部署
```bash
cd deploy
docker compose up -d --build # postgres + redis + api + nginx
```
## 🧪 测试
```bash
cd qms-backend
.venv\Scripts\python -m pytest -q
```
覆盖范围:
- GB/T 2828.1 抽样算法(标准锚点用例、箭头解析、全检边界)
- 单项判定(计量/计数/外观三类型规则)
- NCR 状态机(守卫条件、违规转移、让步/复检强制规则)
- API 集成(认证 → 报检 → 录入 → 判定 → NCR 联动全链路)
## 🗄️ 数据库迁移(Alembic)
```bash
cd qms-backend
.venv\Scripts\python -m alembic upgrade head # 全新库:升级到最新
.venv\Scripts\python -m alembic stamp head # 已有旧库:采纳基线
.venv\Scripts\python -m alembic revision --autogenerate -m "描述" # 模型变更后生成迁移
```
> 约定:所有表结构变更必须走 Alembic;每个迁移必须提供可回滚的 `downgrade`。
## 🔌 API 概览
| 模块 | 路径前缀 | 示例 |
|------|---------|------|
| 认证 | `/api/v1/auth` | `POST /login` · `POST /refresh` |
| 检验标准 | `/api/v1/inspection-standards` | `POST /calculate-sampling` |
| IQC | `/api/v1/iqc` | `POST /inspections/{id}/submit` |
| NCR | `/api/v1/ncr` | `POST /{id}/isolate` · `POST /{id}/close` |
| 报表 | `/api/v1/reports` | `GET /defect-pareto` |
统一响应结构:`{ "code": 0, "message": "success", "data": {...} }`,错误码按模块分段(详见 SRS §11.1)。
## 📐 编码约定
- 每次改动必须创建 Git commit,交付前测试全绿
- 模块/函数用 docstring 说明用途,关键行内注释解释**为什么**
- 错误码分段遵循 SRS §11.1;单号编码遵循 SRS §11.3(如 `IQC-20261007-001`)
## 📄 文档体系
| 文档 | 说明 |
|------|------|
| SRS 软件需求规格说明书 | 需求基线(功能清单 / 业务规则 / 数据字典) |
| SDS 系统设计说明书 | 总体设计 + 详细设计(架构 / 状态机 / 算法 / 库表) |
| 编码实现方案 | WBS 任务拆解 / 迭代计划 / DoD 质量门禁 |
> 文档位于 `.codebuddy/docs/`(已 gitignore,不随仓库分发)。
## License
Proprietary — 仅供项目团队内部使用。