ERP/README.md
2025-12-08 15:05:47 +08:00

212 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 生产管理系统
一个基于 Flask + 原生 JavaScript 的轻量级生产管理系统,用于管理生产流程、物料采购、发货跟踪和质量控制。
## 功能特性
### 📊 仪表盘
- 实时显示生产良品率、直通良品率
- 发货数量统计
- 不良品数量监控
### 📦 生产管理
- **工单管理** - 创建、跟踪生产工单
- **BOM 物料清单** - 定义产品的物料组成
- **期初库存** - 管理物料初始库存
- **采购需求** - 自动计算采购需求
### 🚚 发货管理
- **发货记录** - 记录发货信息
- **发货查询** - 按 SN/MAC 查询发货记录
- **发货汇总** - 发货数据统计分析
### 📋 订单与对账
- **客户订单** - 管理客户订单信息
- **对账管理** - 订单对账功能
- **物料采购** - 采购单管理
### 👥 系统管理
- **用户管理** - 支持超级管理员、管理员、普通用户角色
- **通知系统** - 操作通知推送
- **操作日志** - 记录用户操作历史
- **SOP 文件管理** - 上传和管理标准作业程序文件
## 技术栈
### 后端
- **Flask** - Python Web 框架
- **SQLite** - 轻量级数据库
- **Redis** - 缓存和实时数据存储(可选)
### 前端
- **原生 JavaScript** - 无框架依赖
- **CSS3** - 现代化 UI 样式
- **组件化架构** - 模块化的 JS 组件
## 项目结构
```
生产管理系统/
├── server/ # 后端服务
│ ├── app.py # Flask 应用主文件
│ ├── data.db # SQLite 数据库
│ └── requirements.txt # Python 依赖
├── frontend/ # 前端资源
│ ├── index.html # 主页面
│ ├── login.html # 登录页面
│ ├── assets/ # 静态资源CSS、图片
│ ├── js/
│ │ ├── app.js # 应用入口
│ │ ├── api.js # API 请求封装
│ │ ├── router.js # 前端路由
│ │ └── components/ # 页面组件
│ └── sop_files/ # SOP 文件存储
├── deploy/ # 部署配置
│ ├── nginx/ # Nginx 配置
│ └── systemd/ # Systemd 服务配置
├── .env.example # 环境变量示例
└── README.md
```
## 快速开始
### 环境要求
- Python 3.8+
- Redis可选用于缓存和实时数据
### 安装步骤
1. **克隆项目**
```bash
cd 生产管理系统
```
2. **创建虚拟环境**
```bash
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# 或 venv\Scripts\activate # Windows
```
3. **安装依赖**
```bash
pip install -r server/requirements.txt
```
4. **配置环境变量**
```bash
cp .env.example .env
# 编辑 .env 文件,配置 Redis 和管理员密码
```
5. **启动服务**
```bash
cd server
python app.py
```
6. **访问系统**
打开浏览器访问 `http://localhost:5000`
### 默认账户
- **用户名**: `admin`
- **密码**: `admin123`(或通过环境变量 `ADMIN_PASSWORD` 配置)
## 环境变量配置
| 变量名 | 说明 | 默认值 |
|--------|------|--------|
| `REDIS_HOST` | Redis 服务器地址 | `127.0.0.1` |
| `REDIS_PORT` | Redis 端口 | `6379` |
| `REDIS_DB` | Redis 数据库编号 | `0` |
| `REDIS_PASSWORD` | Redis 密码 | - |
| `ADMIN_PASSWORD` | 默认管理员密码 | `admin123` |
| `SUPERADMIN_USERNAME` | 超级管理员用户名 | - |
| `SUPERADMIN_PASSWORD` | 超级管理员密码 | - |
| `APP_SECRET` | Flask Session 密钥 | `change-me` |
| `HOST` | 服务监听地址 | `0.0.0.0` |
| `PORT` | 服务监听端口 | `5000` |
## 生产部署
### 使用 Systemd
1. 复制服务配置文件:
```bash
sudo cp deploy/systemd/production-system.service /etc/systemd/system/
```
2. 启动服务:
```bash
sudo systemctl enable production-system
sudo systemctl start production-system
```
### 使用 Nginx 反向代理
1. 复制 Nginx 配置:
```bash
sudo cp deploy/nginx/production-system.conf /etc/nginx/sites-available/
sudo ln -s /etc/nginx/sites-available/production-system.conf /etc/nginx/sites-enabled/
```
2. 重载 Nginx
```bash
sudo nginx -t
sudo systemctl reload nginx
```
## API 接口
### 认证
- `POST /api/auth/login` - 用户登录
- `GET /api/auth/me` - 获取当前用户信息
- `POST /api/auth/logout` - 用户登出
- `GET /api/auth/captcha` - 获取验证码
### 仪表盘
- `GET /api/dashboard` - 获取仪表盘数据
### 工单管理
- `GET /api/work-orders` - 获取工单列表
- `POST /api/work-orders` - 创建工单
### 发货管理
- `GET /api/shipments` - 获取发货记录
- `POST /api/shipments` - 创建发货记录
更多 API 详见 `server/app.py`
## 开发说明
### 前端组件开发
前端采用组件化架构,每个页面对应一个 JS 组件文件:
```javascript
// frontend/js/components/example.js
export function render() {
return `<div class="page">...</div>`;
}
export function init() {
// 初始化逻辑
}
```
### 添加新路由
`frontend/js/router.js` 中添加路由配置:
```javascript
const routes = {
'/example': () => import('./components/example.js'),
// ...
};
```
## 许可证
MIT License