From eba0c3be98816b610db4419466509fe088691eba Mon Sep 17 00:00:00 2001 From: duxingchen Date: Wed, 12 Aug 2026 17:19:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=AB=AF=E7=82=B9=E5=B1=82operator=5Fid?= =?UTF-8?q?=E5=85=9C=E5=BA=95current=5Fuser.username=20=E2=80=94=20?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E4=BB=A3=E5=8A=9E=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因: 移动端不传?operator_id=参数, 后端收到None _admin_proxy_note(None, assignee) → 不触发标记 修复: 6个端点(receive/reject/transfer/end/recall/spawn) operator_id or current_user.get(username) 兜底 --- backend/app/api/v1/endpoints/tasks.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) 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"), )