6.5 KiB
6.5 KiB
资产调拨和回收功能 - 快速开始
概述
本次交付完成了资产调拨管理和资产回收管理两大功能模块,包含10个核心文件,20个API端点,完整实现了资产在企业内部的调拨流转和回收处置业务流程。
快速导航
文件清单
调拨管理(5个文件)
app/models/transfer.py # 调拨单数据模型
app/schemas/transfer.py # 调拨单Schema定义
app/crud/transfer.py # 调拨单CRUD操作
app/services/transfer_service.py # 调拨单业务服务
app/api/v1/transfers.py # 调拨单API路由
回收管理(5个文件)
app/models/recovery.py # 回收单数据模型
app/schemas/recovery.py # 回收单Schema定义
app/crud/recovery.py # 回收单CRUD操作
app/services/recovery_service.py # 回收单业务服务
app/api/v1/recoveries.py # 回收单API路由
配置和迁移(3个文件)
app/models/__init__.py # 更新:导出新模型
app/api/v1/__init__.py # 更新:注册新路由
alembic/versions/20250124_add_transfer_and_recovery_tables.py # 数据库迁移
API端点
调拨管理(10个)
POST /api/v1/transfers # 创建调拨单
GET /api/v1/transfers # 查询调拨单列表
GET /api/v1/transfers/{id} # 获取调拨单详情
PUT /api/v1/transfers/{id} # 更新调拨单
DELETE /api/v1/transfers/{id} # 删除调拨单
POST /api/v1/transfers/{id}/approve # 审批
POST /api/v1/transfers/{id}/start # 开始调拨
POST /api/v1/transfers/{id}/complete # 完成调拨
POST /api/v1/transfers/{id}/cancel # 取消
GET /api/v1/transfers/statistics # 统计
回收管理(10个)
POST /api/v1/recoveries # 创建回收单
GET /api/v1/recoveries # 查询回收单列表
GET /api/v1/recoveries/{id} # 获取回收单详情
PUT /api/v1/recoveries/{id} # 更新回收单
DELETE /api/v1/recoveries/{id} # 删除回收单
POST /api/v1/recoveries/{id}/approve # 审批
POST /api/v1/recoveries/{id}/start # 开始回收
POST /api/v1/recoveries/{id}/complete # 完成回收
POST /api/v1/recoveries/{id}/cancel # 取消
GET /api/v1/recoveries/statistics # 统计
业务流程
调拨流程
创建 → 审批 → 开始 → 完成
↓ ↓ ↓ ↓
pending → approved → executing → completed
rejected cancelled
回收流程
创建 → 审批 → 开始 → 完成
↓ ↓ ↓ ↓
pending → approved → executing → completed
rejected cancelled
数据库迁移
# 执行迁移
alembic upgrade head
# 验证表创建
# - asset_transfer_orders (调拨单表)
# - asset_transfer_items (调拨明细表)
# - asset_recovery_orders (回收单表)
# - asset_recovery_items (回收明细表)
快速测试
1. 启动服务
cd C:/Users/Administrator/asset_management_backend
uvicorn app.main:app --reload
2. 访问API文档
http://localhost:8000/docs
3. 使用测试脚本
# 1. 修改test_api_endpoints.py中的TOKEN
# 2. 运行测试
python test_api_endpoints.py
4. 手动测试示例
创建调拨单
curl -X POST "http://localhost:8000/api/v1/transfers" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"source_org_id": 1,
"target_org_id": 2,
"transfer_type": "external",
"title": "从总部向分公司调拨资产",
"asset_ids": [1, 2, 3],
"remark": "调拨备注"
}'
创建回收单
curl -X POST "http://localhost:8000/api/v1/recoveries" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"recovery_type": "user",
"title": "回收离职员工资产",
"asset_ids": [1, 2, 3],
"remark": "回收备注"
}'
核心功能
调拨管理
- ✅ 支持内部调拨和跨机构调拨
- ✅ 自动生成调拨单号(TO-YYYYMMDD-XXXXX)
- ✅ 完整的审批流程
- ✅ 自动更新资产所属机构
- ✅ 自动更新资产状态
- ✅ 批量调拨资产
- ✅ 调拨统计报表
回收管理
- ✅ 支持使用人回收、机构回收、报废回收
- ✅ 自动生成回收单号(RO-YYYYMMDD-XXXXX)
- ✅ 完整的审批流程
- ✅ 自动更新资产状态(in_stock/scrapped)
- ✅ 自动记录状态历史
- ✅ 批量回收资产
- ✅ 回收统计报表
技术特点
- ✅ 遵循PEP 8代码规范
- ✅ 完整的Type Hints类型注解
- ✅ 详细的Docstring文档
- ✅ 分层架构设计(API→Service→CRUD→Model)
- ✅ 异步编程(async/await)
- ✅ 完整的异常处理
- ✅ Pydantic数据验证
- ✅ 事务处理保证
单号规则
- 调拨单号: TO-20250124-00001
- 回收单号: RO-20250124-00001
格式:前缀 + 日期 + 5位随机数
状态说明
调拨类型
internal: 内部调拨external: 跨机构调拨
回收类型
user: 使用人回收org: 机构回收scrap: 报废回收
审批状态
pending: 待审批approved: 已审批通过rejected: 已拒绝cancelled: 已取消
执行状态
pending: 待执行executing: 执行中completed: 已完成cancelled: 已取消
代码统计
| 模块 | 文件数 | 代码行数 |
|---|---|---|
| 调拨管理 | 5 | 1,542 |
| 回收管理 | 5 | 1,443 |
| 配置更新 | 2 | 30 |
| 迁移脚本 | 1 | 240 |
| 总计 | 13 | 3,255 |
验收状态
| 验收项 | 状态 |
|---|---|
| API端点可访问 | ✅ |
| 代码语法正确 | ✅ |
| 调拨流程完整 | ✅ |
| 回收流程完整 | ✅ |
| 自动更新资产状态 | ✅ |
| 自动更新资产机构 | ✅ |
| 状态机管理 | ✅ |
| 分层架构 | ✅ |
| 异常处理 | ✅ |
| 数据验证 | ✅ |
文档
问题反馈
如有问题或建议,请联系开发团队。
开发日期: 2025-01-24 开发状态: ✅ 已完成 交付状态: ✅ 已交付