# Python-erp
**Repository Path**: Kwoko/python-erp
## Basic Information
- **Project Name**: Python-erp
- **Description**: 使用纯Python编写的一套简洁的小erp系统
涵盖功能:
1、产品管理
2、库存管理
3、销售管理
4、采购管理
5、用户管理
6、角色管理
- **Primary Language**: Python
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://gitee.com/Kwoko
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2026-04-08
- **Last Updated**: 2026-04-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: ERP, Python, MySQL
## README
# ERP系统使用指南
企业资源规划系统 - 高效管理企业核心业务流程
## 📋 系统概述
本ERP(企业资源规划)系统是一个基于Python和Tkinter开发的桌面应用程序,旨在帮助企业管理产品、库存、销售、采购、用户、部门和角色等核心业务流程。系统采用模块化设计,具有良好的扩展性和可维护性。
### ✨ 系统特点
- **模块化架构**:采用清晰的模块化设计,便于维护和扩展
- **安全可靠**:密码加密存储,确保用户数据安全
- **高效审批**:完善的订单审批流程,提高业务处理效率
- **权限控制**:基于角色的权限管理,确保系统安全
- **数据可视化**:直观的界面设计,便于数据管理和分析
- **PDF打印**:支持横向表格格式的PDF打印功能
## 🏗️ 系统架构
### 目录结构
```
erp/
├── database/ # 数据库连接管理
├── department/ # 部门管理模块
├── doc/ # 系统截图和文档
├── inventory/ # 库存管理模块
├── product/ # 产品管理模块
├── purchase/ # 采购管理模块
├── role/ # 角色管理模块
├── sales/ # 销售管理模块
├── user/ # 用户管理模块
├── utils/ # 工具类
├── config.py # 配置文件
├── login.py # 登录模块
└── main.py # 主程序
```
### 核心模块
| 模块名称 | 功能描述 |
|---------|----------|
| **数据库管理** | 提供数据库连接池和事务管理,确保数据操作的高效性和一致性 |
| **用户管理** | 管理系统用户,包括添加、编辑、删除用户,以及密码管理 |
| **角色管理** | 管理用户角色和权限,支持权限多选功能 |
| **部门管理** | 管理部门信息,支持部门主管设置 |
| **产品管理** | 管理产品信息,包括添加、编辑、删除产品 |
| **库存管理** | 管理库存信息,支持库存查询和打印 |
| **销售管理** | 管理销售订单,包括审批流程和状态管理 |
| **采购管理** | 管理采购订单,包括审批流程和状态管理 |
| **工具类** | 提供打印功能和权限工具 |
## 🚀 系统功能
### 1. 登录功能
- ✅ 用户登录验证
- ✅ 密码加密存储
- ✅ 登录失败提示
### 2. 产品管理
- ✅ 添加新产品
- ✅ 编辑现有产品
- ✅ 删除产品
- ✅ 产品列表查询
- ✅ 产品信息打印(PDF格式)
### 3. 库存管理
- ✅ 库存列表查询
- ✅ 库存信息打印(PDF格式)
### 4. 销售管理
- ✅ 添加销售订单
- ✅ 编辑销售订单
- ✅ 删除销售订单
- ✅ 销售订单列表查询
- ✅ 销售订单审批流程
- 保存 → 提交 → 审批/驳回 → 完成
- ✅ 销售订单打印(PDF格式)
### 5. 采购管理
- ✅ 添加采购订单
- ✅ 编辑采购订单
- ✅ 删除采购订单
- ✅ 采购订单列表查询
- ✅ 采购订单审批流程
- 保存 → 提交 → 审批/驳回 → 完成
- ✅ 采购订单打印(PDF格式)
### 6. 用户管理
- ✅ 添加新用户
- ✅ 编辑现有用户
- ✅ 删除用户(系统管理员不可删除)
- ✅ 用户列表查询
- ✅ 密码管理(包括密码可见性切换)
### 7. 部门管理
- ✅ 添加新部门
- ✅ 编辑现有部门
- ✅ 删除部门
- ✅ 部门列表查询
- ✅ 部门主管设置
### 8. 角色管理
- ✅ 添加新角色
- ✅ 编辑现有角色
- ✅ 删除角色
- ✅ 角色列表查询
- ✅ 权限多选功能
### 9. 打印功能
- ✅ 支持PDF格式打印
- ✅ 横向表格布局
- ✅ 文件保存对话框
- ✅ 支持自定义保存路径
## 🔄 系统流程
### 登录流程
1. 用户打开应用程序
2. 输入用户名和密码
3. 系统验证用户凭据
4. 验证成功后进入主界面
5. 根据用户角色显示相应的功能菜单
### 订单流程(销售/采购)
1. **保存**:用户创建或编辑订单,点击保存按钮
2. **提交**:用户点击提交按钮,订单进入待审批状态
3. **审批**:部门主管审核订单,可选择通过或驳回
4. **驳回**:如果订单被驳回,用户可以查看驳回原因,修改后重新提交
5. **完成**:订单通过审批后,状态变为已批准
### 权限控制流程
1. 管理员创建角色并分配权限
2. 管理员为用户分配角色
3. 用户登录系统
4. 系统根据用户角色过滤显示的功能菜单
5. 系统管理员(admin)拥有所有权限
## ⚙️ 系统配置
### 数据库配置
在`config.py`文件中配置数据库连接信息:

### 密码加密
系统使用Fernet加密算法存储密码,确保密码安全。
## 📱 系统界面
### 登录界面

### 主界面

### 产品管理

### 库存管理

### 销售管理

### 采购管理

### 用户管理

### 部门管理

### 角色管理

### 个人信息

## 📦 系统安装与运行
### 环境要求
- Python 3.12+
- MySQL 5.7+
- 依赖库:
- mysql-connector-python
- cryptography
- fpdf2
- tkinter (Python标准库)
### 安装步骤
1. 克隆或下载项目代码
2. 创建Python虚拟环境:`python -m venv .venv`
3. 激活虚拟环境:
- Windows: `.venv\Scripts\activate`
- Linux/Mac: `source .venv/bin/activate`
4. 安装依赖:`pip install -r requirements.txt`
5. 配置数据库连接信息(config.py)
6. 运行应用程序:`python main.py`
### 默认账户
- 用户名:admin
- 密码:admin123
## 📦 打包为可执行文件
### 打包方法
#### 方法一:使用批处理脚本(推荐)
```bash
build.bat
```
#### 方法二:使用Python脚本
```bash
python build.py
```
### 图标路径说明
**重要**:打包脚本中的图标路径默认为:
```
C:\Users\kwoky\Downloads\lock.ico
```
如果该路径不存在图标文件,打包时会自动使用默认图标。您可以根据需要修改以下文件中的图标路径:
1. **build.bat**:修改第25行的 `ICON_PATH` 变量
2. **build.py**:修改第94行的 `icon_path` 变量
3. **erp.spec**:修改第102行的 `icon` 参数
### 打包输出
打包完成后,可执行文件位于:
```
dist\erp.exe
```
直接双击即可运行,无需Python环境。
## 🛠️ 系统维护
### 数据备份
定期备份MySQL数据库,确保数据安全。
### 日志管理
系统运行过程中的错误信息会输出到控制台,可根据需要配置日志系统。
### 性能优化
- 数据库连接池已配置,提高数据库操作效率
- 系统使用索引优化查询性能
## ❓ 常见问题
### 登录失败
- 检查用户名和密码是否正确
- 检查数据库连接是否正常
### 订单审批流程问题
- 确保当前用户是部门主管
- 检查订单状态是否正确
### 打印功能问题
- 确保系统中安装了PDF阅读器
- 检查文件保存路径是否有写入权限
## 📞 技术支持
如有技术问题,请联系系统管理员。
## 📋 版本历史
| 版本号 | 发布日期 | 功能更新 |
|-------|---------|----------|
| v1.0.0 | 2026-03 | 系统初始版本 |
| v1.1.0 | 2026-04 | 添加审批流程功能 |
| v1.2.0 | 2026-04 | 优化打印功能,支持PDF格式 |
| v1.3.0 | 2026-04 | 添加权限控制功能 |
---
© 2026 ERP系统 | 企业资源规划解决方案