170 lines
3.5 KiB
Markdown
170 lines
3.5 KiB
Markdown
# 后端API服务器使用说明
|
||
|
||
## 功能特性
|
||
|
||
1. **SQLite数据库存储** - 使用SQLite数据库存储工单数据
|
||
2. **工单管理** - 创建、查询、认领、提交工单
|
||
3. **自动数据导入** - 首次启动时自动从JSON文件导入数据
|
||
|
||
## API接口
|
||
|
||
### 1. 创建工单
|
||
**POST** `/api/work-orders/create`
|
||
|
||
请求体:
|
||
```json
|
||
{
|
||
"trace_id": "TR20260119001",
|
||
"process_id": "P001",
|
||
"process_name": "前轮装配",
|
||
"product_name": "汽车底盘组件",
|
||
"station": "装配工位A1",
|
||
"operator": "张三",
|
||
"status": "pending",
|
||
"bolts": [
|
||
{
|
||
"bolt_id": 1,
|
||
"name": "前轮螺栓1",
|
||
"target_torque": 280,
|
||
"mode": 1,
|
||
"torque_tolerance": 0.10,
|
||
"angle_min": 1,
|
||
"angle_max": 360,
|
||
"status": "pending"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 2. 查询工单列表
|
||
**GET** `/api/work-orders?trace_id=TR20260119001&process_id=P001`
|
||
|
||
返回:符合条件的未认领工单列表
|
||
|
||
### 3. 认领工单
|
||
**POST** `/api/work-orders/claim`
|
||
|
||
请求体:
|
||
```json
|
||
{
|
||
"trace_id": "TR20260119001",
|
||
"process_id": "P001",
|
||
"operator": "操作员名称"
|
||
}
|
||
```
|
||
|
||
### 4. 提交工单数据
|
||
**POST** `/api/work-orders/submit`
|
||
|
||
请求体:
|
||
```json
|
||
{
|
||
"trace_id": "TR20260119001",
|
||
"process_id": "P001",
|
||
"bolts": [
|
||
{
|
||
"bolt_id": 1,
|
||
"name": "前轮螺栓1",
|
||
"target_torque": 280,
|
||
"actual_torque": 285,
|
||
"actual_angle": 0,
|
||
"status": "success",
|
||
"timestamp": "2026-01-19 10:30:00",
|
||
"result": {...}
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 5. 释放工单
|
||
**POST** `/api/work-orders/release`
|
||
|
||
请求体:
|
||
```json
|
||
{
|
||
"trace_id": "TR20260119001",
|
||
"process_id": "P001"
|
||
}
|
||
```
|
||
|
||
### 6. 健康检查
|
||
**GET** `/api/health`
|
||
|
||
## 数据库结构
|
||
|
||
### work_orders 表
|
||
- `id` - 主键
|
||
- `trace_id` - 追溯号
|
||
- `process_id` - 工序号
|
||
- `process_name` - 工序名称
|
||
- `product_name` - 产品名称
|
||
- `station` - 工位
|
||
- `operator` - 操作员
|
||
- `status` - 状态
|
||
- `bolts_data` - 螺栓数据(JSON格式)
|
||
- `created_at` - 创建时间
|
||
- `updated_at` - 更新时间
|
||
|
||
### claimed_orders 表
|
||
- `id` - 主键
|
||
- `trace_id` - 追溯号
|
||
- `process_id` - 工序号
|
||
- `process_name` - 工序名称
|
||
- `operator` - 操作员
|
||
- `claimed_at` - 认领时间
|
||
- `completed_at` - 完成时间
|
||
- `status` - 状态(claimed/completed)
|
||
- `bolts_result` - 螺栓结果数据(JSON格式)
|
||
|
||
## 使用步骤
|
||
|
||
### 1. 安装依赖
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 2. 启动服务器
|
||
```bash
|
||
python app.py
|
||
```
|
||
|
||
服务器将在 `http://localhost:5000` 启动
|
||
|
||
### 3. 首次启动
|
||
- 如果数据库为空,会自动从 `work_orders.json` 导入数据
|
||
- 数据库文件 `wrench.db` 会自动创建
|
||
|
||
### 4. 创建工单
|
||
可以使用 `create_order_example.py` 作为示例:
|
||
```bash
|
||
python create_order_example.py
|
||
```
|
||
|
||
或使用curl:
|
||
```bash
|
||
curl -X POST http://localhost:5000/api/work-orders/create \
|
||
-H "Content-Type: application/json" \
|
||
-d @work_order_data.json
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
1. **追溯号和工序号必须同时匹配**才能查询到工单
|
||
2. **工单只能被认领一次**,认领后其他客户端无法再认领
|
||
3. **数据库文件** `wrench.db` 会保存在 `backend/` 目录下
|
||
4. 如果修改了 `work_orders.json`,可以删除 `wrench.db` 重新启动服务器来重新导入
|
||
|
||
## 故障排除
|
||
|
||
### 查询不到数据
|
||
1. 检查数据库是否已初始化(查看是否存在 `wrench.db` 文件)
|
||
2. 如果数据库为空,确保 `work_orders.json` 文件存在
|
||
3. 检查追溯号和工序号是否完全匹配(区分大小写)
|
||
|
||
### 数据库初始化
|
||
如果需要手动初始化数据库:
|
||
```bash
|
||
python init_database.py
|
||
```
|
||
|