diff --git a/backend/app/api/v1/endpoints/tasks.py b/backend/app/api/v1/endpoints/tasks.py index a07510d..8a7f901 100644 --- a/backend/app/api/v1/endpoints/tasks.py +++ b/backend/app/api/v1/endpoints/tasks.py @@ -125,7 +125,8 @@ async def end_task_endpoint( 用于工人认为工序已完结、无需转交下一人的场景。 """ return await task_service.end_task( - db, uuid.UUID(task_id), operator_id, + db, uuid.UUID(task_id), + operator_id or current_user.get("username", "") or None, operator_role=current_user.get("role"), ) @@ -146,7 +147,8 @@ async def recall_task_endpoint( 适用场景:转交后发现选错人,在对方接收前撤回。 """ return await task_service.recall_task( - db, uuid.UUID(task_id), operator_id, + db, uuid.UUID(task_id), + operator_id or current_user.get("username", "") or None, operator_role=current_user.get("role"), ) @@ -173,7 +175,9 @@ async def spawn_subtask_endpoint( **派发协助分支:在当前任务下创建并行子任务,父任务状态保持不变。** 用于 WIP 期间工人需要其他人协助协同的场景。 """ - return await task_service.spawn_subtask(db, uuid.UUID(task_id), data, operator_id) + return await task_service.spawn_subtask( + db, uuid.UUID(task_id), data, + operator_id or current_user.get("username", "") or None) # ============================================================ @@ -196,7 +200,9 @@ async def receive_task_endpoint( 动作:状态改为 WIP,记录 received_at,更新 task_name,同步产品宏观状态。 """ return await task_service.receive_task( - db, uuid.UUID(task_id), operator_id, remark, task_name, + db, uuid.UUID(task_id), + operator_id or current_user.get("username", "") or None, + remark, task_name, operator_role=current_user.get("role"), ) @@ -222,7 +228,8 @@ async def reject_task_endpoint( 3. 为该负责人新建返工任务(is_rework=True, status=PENDING)。 """ return await task_service.reject_task( - db, uuid.UUID(task_id), request, operator_id, + db, uuid.UUID(task_id), request, + operator_id or current_user.get("username", "") or None, operator_role=current_user.get("role"), ) @@ -256,7 +263,8 @@ async def transfer_task_endpoint( - 否则 → 顶层同级转交。 """ return await task_service.transfer_task( - db, uuid.UUID(task_id), request, operator_id, + db, uuid.UUID(task_id), request, + operator_id or current_user.get("username", "") or None, operator_role=current_user.get("role"), )