feat(services): 重写核心业务逻辑 — 接收/驳回返工/裂变转交
task_service 新增 3 个核心业务函数:
- receive_task(): PENDING→WIP, 记录 received_at, 仅 PENDING 状态可接收
- reject_task(): →REJECTED, 记录 reject_reason+completed_at,
防呆闭环: 自动查找父任务负责人, 创建 is_rework=True 的返工任务
- transfer_task(): →COMPLETED, 记录 completed_at,
裂变转交: 遍历 next_assignees 批量创建 PENDING 任务,
多路裂变(>1)时子任务挂载形成树状分支,
virtual_warehouse 入库逻辑更新 Product.current_location_id
- complete_task(): 保留兼容, 同步使用新状态常量 TASK_STATUS_*
product_service 重构:
- get_product_by_serial(): 新增 task_tree 返回完整递归任务树
- _load_task_tree(): 递归加载产品关联的所有任务嵌套关系
2026-08-04 17:03:37 +08:00
|
|
|
"""业务逻辑层"""
|
|
|
|
|
from app.services.product_service import (
|
|
|
|
|
get_product_by_serial,
|
|
|
|
|
get_product,
|
|
|
|
|
create_product,
|
|
|
|
|
update_product,
|
|
|
|
|
get_all_products,
|
|
|
|
|
)
|
|
|
|
|
from app.services.task_service import (
|
|
|
|
|
get_task,
|
|
|
|
|
get_top_level_tasks,
|
|
|
|
|
create_task,
|
|
|
|
|
update_task,
|
|
|
|
|
complete_task,
|
|
|
|
|
receive_task,
|
|
|
|
|
reject_task,
|
|
|
|
|
transfer_task,
|
|
|
|
|
create_subtask,
|
|
|
|
|
get_all_tasks,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
__all__ = [
|
|
|
|
|
# Product
|
|
|
|
|
"get_product_by_serial",
|
|
|
|
|
"get_product",
|
|
|
|
|
"create_product",
|
|
|
|
|
"update_product",
|
|
|
|
|
"get_all_products",
|
|
|
|
|
# Task
|
|
|
|
|
"get_task",
|
|
|
|
|
"get_top_level_tasks",
|
|
|
|
|
"create_task",
|
|
|
|
|
"update_task",
|
|
|
|
|
"complete_task",
|
|
|
|
|
"receive_task",
|
|
|
|
|
"reject_task",
|
|
|
|
|
"transfer_task",
|
|
|
|
|
"create_subtask",
|
|
|
|
|
"get_all_tasks",
|
|
|
|
|
]
|