# 生产管理系统 一个基于 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 `
...
`; } export function init() { // 初始化逻辑 } ``` ### 添加新路由 在 `frontend/js/router.js` 中添加路由配置: ```javascript const routes = { '/example': () => import('./components/example.js'), // ... }; ``` ## 许可证 MIT License