diff --git a/backend/app/services/dashboard_service.py b/backend/app/services/dashboard_service.py index 9e16cb6..d6fbf9b 100644 --- a/backend/app/services/dashboard_service.py +++ b/backend/app/services/dashboard_service.py @@ -613,6 +613,7 @@ async def get_wip_matrix( """生产分布透视表:Y=规格型号,X=人员 或 工序,单元格=设备数量。 覆盖全部任务状态(含已完成/在库),工序分布能看到「在库」(生产完成)。 + 只统计主分支(parent_task_id IS NULL 或 TRANSFER/RECOVERY),避免协助分支/返工重复计数。 since/until 按任务接手/创建时间过滤。 dimension: @@ -632,6 +633,13 @@ async def get_wip_matrix( func.array_agg(func.distinct(Task.assignee_id)), ) .join(Task, Task.product_id == Product.id) + # 🔧 只统计主分支(主线任务),排除 SPAWN 协助分支 + .where( + or_( + Task.parent_task_id.is_(None), + Task.task_type.in_(["TRANSFER", "RECOVERY"]), + ) + ) .group_by(Product.spec_model, dim_expr) .order_by(Product.spec_model, dim_expr) )