# 资产管理系统API快速参考

> **版本**: v1.0.0
> **更新时间**: 2025-01-24

---

## 🚀 快速开始

### 基础URL
```
开发环境: http://localhost:8000/api/v1
```

### 认证方式
```http
Authorization: Bearer {access_token}
```

---

## 📦 已发布模块

### 1. 认证模块 (/auth)
- `POST /auth/login` - 用户登录
- `POST /auth/refresh` - 刷新Token
- `POST /auth/logout` - 用户登出
- `PUT /auth/change-password` - 修改密码
- `GET /auth/captcha` - 获取验证码

### 2. 用户管理 (/users)
- `GET /users` - 用户列表
- `POST /users` - 创建用户
- `GET /users/{id}` - 用户详情
- `PUT /users/{id}` - 更新用户
- `DELETE /users/{id}` - 删除用户
- `POST /users/{id}/reset-password` - 重置密码
- `GET /users/me` - 当前用户信息

### 3. 角色权限 (/roles)
- `GET /roles` - 角色列表
- `POST /roles` - 创建角色
- `GET /roles/{id}` - 角色详情
- `PUT /roles/{id}` - 更新角色
- `DELETE /roles/{id}` - 删除角色
- `GET /permissions/tree` - 权限树

### 4. 设备类型管理 (/device-types)
- `GET /device-types` - 设备类型列表
- `POST /device-types` - 创建设备类型
- `GET /device-types/{id}` - 设备类型详情
- `PUT /device-types/{id}` - 更新设备类型
- `DELETE /device-types/{id}` - 删除设备类型
- `GET /device-types/{id}/fields` - 获取字段配置
- `POST /device-types/{id}/fields` - 添加字段

### 5. 机构网点管理 (/organizations)
- `GET /organizations/tree` - 机构树
- `POST /organizations` - 创建机构
- `GET /organizations/{id}` - 机构详情
- `PUT /organizations/{id}` - 更新机构
- `DELETE /organizations/{id}` - 删除机构

### 6. 品牌和供应商管理 (/brands, /suppliers)
- `GET /brands` - 品牌列表
- `POST /brands` - 创建品牌
- `PUT /brands/{id}` - 更新品牌
- `DELETE /brands/{id}` - 删除品牌
- `GET /suppliers` - 供应商列表
- `POST /suppliers` - 创建供应商
- `PUT /suppliers/{id}` - 更新供应商
- `DELETE /suppliers/{id}` - 删除供应商

### 7. 资产管理 (/assets)
- `GET /assets` - 资产列表
- `GET /assets/statistics` - 资产统计
- `GET /assets/{id}` - 资产详情
- `GET /assets/scan/{code}` - 扫码查询
- `POST /assets` - 创建资产
- `PUT /assets/{id}` - 更新资产
- `DELETE /assets/{id}` - 删除资产
- `POST /assets/{id}/status` - 变更状态
- `GET /assets/{id}/history` - 状态历史

### 8. 资产分配管理 (/allocation-orders) ✨新增
- `GET /allocation-orders` - 分配单列表
- `GET /allocation-orders/statistics` - 分配单统计
- `GET /allocation-orders/{id}` - 分配单详情
- `GET /allocation-orders/{id}/items` - 分配单明细
- `POST /allocation-orders` - 创建分配单
- `PUT /allocation-orders/{id}` - 更新分配单
- `POST /allocation-orders/{id}/approve` - 审批分配单
- `POST /allocation-orders/{id}/execute` - 执行分配单
- `POST /allocation-orders/{id}/cancel` - 取消分配单
- `DELETE /allocation-orders/{id}` - 删除分配单

### 9. 维修管理 (/maintenance-records) ✨新增
- `GET /maintenance-records` - 维修记录列表
- `GET /maintenance-records/statistics` - 维修统计
- `GET /maintenance-records/{id}` - 维修记录详情
- `POST /maintenance-records` - 创建维修记录（报修）
- `PUT /maintenance-records/{id}` - 更新维修记录
- `POST /maintenance-records/{id}/start` - 开始维修
- `POST /maintenance-records/{id}/complete` - 完成维修
- `POST /maintenance-records/{id}/cancel` - 取消维修
- `DELETE /maintenance-records/{id}` - 删除维修记录
- `GET /maintenance-records/asset/{id}` - 资产的维修记录

---

## 🔑 常用参数

### 分页参数
```
page: 页码（默认1）
page_size: 每页数量（默认20，最大100）
skip: 跳过条数（默认0）
limit: 返回条数（默认20）
```

### 搜索参数
```
keyword: 搜索关键词
status: 状态筛选
```

### 日期格式
```
YYYY-MM-DD
```

---

## 📊 常用状态码

### 资产状态
- `pending` - 待入库
- `in_stock` - 库存中
- `in_use` - 使用中
- `transferring` - 调拨中
- `maintenance` - 维修中
- `pending_scrap` - 待报废
- `scrapped` - 已报废
- `lost` - 已丢失

### 分配单审批状态
- `pending` - 待审批
- `approved` - 已审批
- `rejected` - 已拒绝
- `cancelled` - 已取消

### 分配单执行状态
- `pending` - 待执行
- `executing` - 执行中
- `completed` - 已完成
- `cancelled` - 已取消

### 维修记录状态
- `pending` - 待处理
- `in_progress` - 维修中
- `completed` - 已完成
- `cancelled` - 已取消

### 维修类型
- `self_repair` - 自行维修
- `vendor_repair` - 外部维修
- `warranty` - 保修维修

### 故障类型
- `hardware` - 硬件故障
- `software` - 软件故障
- `network` - 网络故障
- `other` - 其他故障

---

## 💡 使用示例

### Python示例

```python
import requests

BASE_URL = "http://localhost:8000/api/v1"
TOKEN = "your_access_token"

headers = {
    "Authorization": f"Bearer {TOKEN}",
    "Content-Type": "application/json"
}

# 获取资产列表
response = requests.get(
    f"{BASE_URL}/assets",
    params={"page": 1, "page_size": 20},
    headers=headers
)
assets = response.json()

# 创建分配单
response = requests.post(
    f"{BASE_URL}/allocation-orders",
    json={
        "order_type": "allocation",
        "title": "天河网点资产分配",
        "target_organization_id": 3,
        "asset_ids": [1, 2, 3]
    },
    headers=headers
)
order = response.json()

# 报修
response = requests.post(
    f"{BASE_URL}/maintenance-records",
    json={
        "asset_id": 1,
        "fault_description": "无法开机",
        "fault_type": "hardware",
        "priority": "high"
    },
    headers=headers
)
record = response.json()
```

---

## 📖 详细文档

- [资产分配管理API](./ALLOCATIONS_API.md)
- [维修管理API](./MAINTENANCE_API.md)
- [开发规范指南](../development_standards_guide.md)
- [完整API参考](../complete_api_reference.md)

---

## 🧪 测试

### 运行测试
```bash
# 运行所有测试
pytest

# 运行特定模块测试
pytest tests/api/test_assets.py

# 查看测试覆盖率
pytest --cov=app --cov-report=html
```

---

## 📝 更新日志

### v1.0.0 (2025-01-24)
- ✅ 新增资产分配管理模块（10个API端点）
- ✅ 新增维修管理模块（9个API端点）
- ✅ 完整的审批和执行流程
- ✅ 自动状态管理
- ✅ 统计分析功能

---

**最后更新**: 2025-01-24
**维护者**: 后端API扩展组
