253 lines
6.5 KiB
Markdown
253 lines
6.5 KiB
Markdown
# 资产调拨和回收功能 - 快速开始
|
||
|
||
## 概述
|
||
|
||
本次交付完成了资产调拨管理和资产回收管理两大功能模块,包含10个核心文件,20个API端点,完整实现了资产在企业内部的调拨流转和回收处置业务流程。
|
||
|
||
## 快速导航
|
||
|
||
- 📖 [完整API文档](./TRANSFER_RECOVERY_API.md)
|
||
- 📋 [交付报告](./TRANSFER_RECOVERY_DELIVERY_REPORT.md)
|
||
- 🚀 [快速测试](#快速测试)
|
||
|
||
## 文件清单
|
||
|
||
### 调拨管理(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
|
||
```
|
||
|
||
## 数据库迁移
|
||
|
||
```bash
|
||
# 执行迁移
|
||
alembic upgrade head
|
||
|
||
# 验证表创建
|
||
# - asset_transfer_orders (调拨单表)
|
||
# - asset_transfer_items (调拨明细表)
|
||
# - asset_recovery_orders (回收单表)
|
||
# - asset_recovery_items (回收明细表)
|
||
```
|
||
|
||
## 快速测试
|
||
|
||
### 1. 启动服务
|
||
```bash
|
||
cd C:/Users/Administrator/asset_management_backend
|
||
uvicorn app.main:app --reload
|
||
```
|
||
|
||
### 2. 访问API文档
|
||
```
|
||
http://localhost:8000/docs
|
||
```
|
||
|
||
### 3. 使用测试脚本
|
||
```bash
|
||
# 1. 修改test_api_endpoints.py中的TOKEN
|
||
# 2. 运行测试
|
||
python test_api_endpoints.py
|
||
```
|
||
|
||
### 4. 手动测试示例
|
||
|
||
#### 创建调拨单
|
||
```bash
|
||
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": "调拨备注"
|
||
}'
|
||
```
|
||
|
||
#### 创建回收单
|
||
```bash
|
||
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端点可访问 | ✅ |
|
||
| 代码语法正确 | ✅ |
|
||
| 调拨流程完整 | ✅ |
|
||
| 回收流程完整 | ✅ |
|
||
| 自动更新资产状态 | ✅ |
|
||
| 自动更新资产机构 | ✅ |
|
||
| 状态机管理 | ✅ |
|
||
| 分层架构 | ✅ |
|
||
| 异常处理 | ✅ |
|
||
| 数据验证 | ✅ |
|
||
|
||
## 文档
|
||
|
||
- 📖 [完整API文档](./TRANSFER_RECOVERY_API.md) - 详细的API接口文档
|
||
- 📋 [交付报告](./TRANSFER_RECOVERY_DELIVERY_REPORT.md) - 完整的交付说明
|
||
- 📝 [项目概述](./PROJECT_OVERVIEW.md) - 项目整体介绍
|
||
- 🔧 [开发规范](./DEVELOPMENT.md) - 开发指南
|
||
|
||
## 问题反馈
|
||
|
||
如有问题或建议,请联系开发团队。
|
||
|
||
---
|
||
|
||
**开发日期**: 2025-01-24
|
||
**开发状态**: ✅ 已完成
|
||
**交付状态**: ✅ 已交付
|