2025-06-04 10:55:05 +08:00
|
|
|
|
# WMS-PY 项目
|
2025-06-04 10:39:32 +08:00
|
|
|
|
|
|
|
|
|
|
这是一个基于 FastAPI 的仓库管理系统(WMS),采用标准的项目结构,支持多环境配置。
|
|
|
|
|
|
|
|
|
|
|
|
## 项目结构
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
wms-py/
|
|
|
|
|
|
├── app/ # 应用核心代码
|
|
|
|
|
|
│ ├── __init__.py
|
|
|
|
|
|
│ ├── main.py # 主应用文件
|
|
|
|
|
|
│ ├── config/ # 配置模块
|
|
|
|
|
|
│ │ ├── __init__.py
|
|
|
|
|
|
│ │ └── settings.py # 配置管理
|
|
|
|
|
|
│ ├── controllers/ # 控制器(路由)
|
|
|
|
|
|
│ │ ├── __init__.py
|
|
|
|
|
|
│ │ ├── base_controller.py # 基础接口
|
|
|
|
|
|
│ │ ├── database_controller.py # 数据库测试接口
|
2025-06-04 10:55:05 +08:00
|
|
|
|
│ │ └── location_controller.py # 库位管理接口
|
|
|
|
|
|
│ ├── services/ # 业务服务层
|
2025-06-04 10:39:32 +08:00
|
|
|
|
│ │ ├── __init__.py
|
|
|
|
|
|
│ │ └── location_service.py # 库位业务逻辑
|
2025-06-04 10:55:05 +08:00
|
|
|
|
│ ├── models/ # 数据模型
|
2025-06-04 10:39:32 +08:00
|
|
|
|
│ │ ├── __init__.py
|
|
|
|
|
|
│ │ └── location.py # 库位数据模型
|
2025-06-04 10:55:05 +08:00
|
|
|
|
│ ├── schemas/ # Pydantic模式
|
2025-06-04 10:39:32 +08:00
|
|
|
|
│ │ ├── __init__.py
|
|
|
|
|
|
│ │ ├── common.py # 通用响应模式
|
|
|
|
|
|
│ │ └── location.py # 库位请求/响应模式
|
|
|
|
|
|
│ └── utils/ # 工具类
|
|
|
|
|
|
│ ├── __init__.py
|
|
|
|
|
|
│ ├── database.py # 数据库工具类
|
2025-06-04 10:55:05 +08:00
|
|
|
|
│ └── string_utils.py # 字符串工具
|
2025-06-04 10:39:32 +08:00
|
|
|
|
├── config/ # 环境配置文件
|
|
|
|
|
|
│ ├── development.yaml # 开发环境配置
|
|
|
|
|
|
│ └── production.yaml # 生产环境配置
|
|
|
|
|
|
├── requirements.txt # 依赖包列表
|
|
|
|
|
|
├── run.py # 启动脚本
|
2025-06-04 10:55:05 +08:00
|
|
|
|
├── create_tables.py # 数据库表创建脚本
|
2025-06-04 10:39:32 +08:00
|
|
|
|
└── README.md # 项目说明
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 快速开始
|
|
|
|
|
|
|
|
|
|
|
|
### 1. 安装依赖
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2. 配置数据库
|
|
|
|
|
|
|
|
|
|
|
|
根据需要修改配置文件:
|
|
|
|
|
|
|
|
|
|
|
|
**开发环境** (`config/development.yaml`):
|
|
|
|
|
|
```yaml
|
|
|
|
|
|
database:
|
|
|
|
|
|
host: "localhost"
|
|
|
|
|
|
port: 3306
|
|
|
|
|
|
username: "root"
|
|
|
|
|
|
password: "root"
|
|
|
|
|
|
database: "wms_ntyc"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-06-04 10:55:05 +08:00
|
|
|
|
### 3. 运行应用
|
2025-06-04 10:39:32 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 开发环境
|
|
|
|
|
|
python run.py
|
|
|
|
|
|
|
|
|
|
|
|
# 生产环境
|
|
|
|
|
|
set ENVIRONMENT=production && python run.py
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## API接口
|
|
|
|
|
|
|
|
|
|
|
|
### 基础接口
|
|
|
|
|
|
- `GET /` - 系统信息
|
|
|
|
|
|
- `GET /config` - 配置信息
|
|
|
|
|
|
|
|
|
|
|
|
### 数据库测试接口
|
|
|
|
|
|
- `GET /database/test` - 测试数据库连接
|
|
|
|
|
|
- `GET /database/tables` - 获取所有表名
|
|
|
|
|
|
- `GET /database/query?sql=SELECT * FROM table_name` - 执行SQL查询
|
|
|
|
|
|
- `GET /database/table/{table_name}` - 查看指定表数据
|
|
|
|
|
|
|
2025-06-04 10:55:05 +08:00
|
|
|
|
### 库位管理接口
|
2025-06-04 10:39:32 +08:00
|
|
|
|
|
|
|
|
|
|
**库位查询**:
|
|
|
|
|
|
- `GET /wms/location/getUsedLocations?equipment_id=1&location_type=1` - 获取已使用库位数量
|
|
|
|
|
|
|
|
|
|
|
|
### API 文档
|
|
|
|
|
|
- `GET /docs` - Swagger UI 文档
|
|
|
|
|
|
- `GET /redoc` - ReDoc 文档
|
|
|
|
|
|
|
|
|
|
|
|
## 项目架构说明
|
|
|
|
|
|
|
|
|
|
|
|
### 分层架构
|
|
|
|
|
|
|
|
|
|
|
|
1. **Controller层** (`app/controllers/`)
|
|
|
|
|
|
- 处理HTTP请求
|
|
|
|
|
|
- 参数验证
|
|
|
|
|
|
- 路由定义
|
|
|
|
|
|
|
|
|
|
|
|
2. **Service层** (`app/services/`)
|
|
|
|
|
|
- 业务逻辑处理
|
|
|
|
|
|
- 事务管理
|
|
|
|
|
|
- 数据操作
|
|
|
|
|
|
|
|
|
|
|
|
3. **Model层** (`app/models/`)
|
|
|
|
|
|
- 数据库表映射
|
|
|
|
|
|
- ORM模型定义
|
|
|
|
|
|
|
|
|
|
|
|
4. **Schema层** (`app/schemas/`)
|
|
|
|
|
|
- 请求/响应数据验证
|
|
|
|
|
|
- API文档生成
|
|
|
|
|
|
|
|
|
|
|
|
### 依赖注入
|
|
|
|
|
|
|
|
|
|
|
|
项目使用FastAPI的依赖注入系统:
|
|
|
|
|
|
- 数据库会话注入
|
|
|
|
|
|
- 服务类注入
|
|
|
|
|
|
- 配置注入
|
|
|
|
|
|
|
|
|
|
|
|
### 对应关系
|
|
|
|
|
|
|
|
|
|
|
|
| Java概念 | Python/FastAPI概念 | 文件位置 |
|
|
|
|
|
|
|---------|-------------------|----------|
|
|
|
|
|
|
| @RestController | APIRouter | `app/controllers/` |
|
|
|
|
|
|
| @Service | Service类 | `app/services/` |
|
|
|
|
|
|
| @Entity | SQLAlchemy Model | `app/models/` |
|
|
|
|
|
|
| DTO | Pydantic Schema | `app/schemas/` |
|
|
|
|
|
|
| @Autowired | Depends() | 依赖注入 |
|
|
|
|
|
|
|
|
|
|
|
|
## IDE 配置
|
|
|
|
|
|
|
|
|
|
|
|
### PyCharm 配置
|
|
|
|
|
|
|
|
|
|
|
|
创建运行配置:
|
|
|
|
|
|
- **Name**: `WMS Development`
|
|
|
|
|
|
- **Script path**: `run.py`
|
|
|
|
|
|
- **Environment variables**: `ENVIRONMENT=development`
|
|
|
|
|
|
|
|
|
|
|
|
## 注意事项
|
|
|
|
|
|
|
|
|
|
|
|
1. 确保数据库服务已启动
|
2025-06-04 10:55:05 +08:00
|
|
|
|
2. 修改配置文件后需要重启应用
|
|
|
|
|
|
3. 库位生成前请确认参数,避免重复数据
|