3.5 KiB
3.5 KiB
后端API服务器使用说明
功能特性
- SQLite数据库存储 - 使用SQLite数据库存储工单数据
- 工单管理 - 创建、查询、认领、提交工单
- 自动数据导入 - 首次启动时自动从JSON文件导入数据
API接口
1. 创建工单
POST /api/work-orders/create
请求体:
{
"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
请求体:
{
"trace_id": "TR20260119001",
"process_id": "P001",
"operator": "操作员名称"
}
4. 提交工单数据
POST /api/work-orders/submit
请求体:
{
"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
请求体:
{
"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. 安装依赖
pip install -r requirements.txt
2. 启动服务器
python app.py
服务器将在 http://localhost:5000 启动
3. 首次启动
- 如果数据库为空,会自动从
work_orders.json导入数据 - 数据库文件
wrench.db会自动创建
4. 创建工单
可以使用 create_order_example.py 作为示例:
python create_order_example.py
或使用curl:
curl -X POST http://localhost:5000/api/work-orders/create \
-H "Content-Type: application/json" \
-d @work_order_data.json
注意事项
- 追溯号和工序号必须同时匹配才能查询到工单
- 工单只能被认领一次,认领后其他客户端无法再认领
- 数据库文件
wrench.db会保存在backend/目录下 - 如果修改了
work_orders.json,可以删除wrench.db重新启动服务器来重新导入
故障排除
查询不到数据
- 检查数据库是否已初始化(查看是否存在
wrench.db文件) - 如果数据库为空,确保
work_orders.json文件存在 - 检查追溯号和工序号是否完全匹配(区分大小写)
数据库初始化
如果需要手动初始化数据库:
python init_database.py