Files
zcglxt/backend_new/TRANSFER_RECOVERY_README.md

6.5 KiB
Raw Permalink Blame History

资产调拨和回收功能 - 快速开始

概述

本次交付完成了资产调拨管理和资产回收管理两大功能模块包含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 开发状态: 已完成 交付状态: 已交付