From 0dea116faace500331ce1cc0ebd09b8ddf858636 Mon Sep 17 00:00:00 2001 From: duxingchen Date: Mon, 31 Aug 2026 17:20:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(backend):=20=E6=B5=81=E8=BD=AC=E6=A0=91=20?= =?UTF-8?q?created=5Fby=20=E5=8A=A0=E5=85=A5=E4=B8=AD=E6=96=87=E5=90=8D?= =?UTF-8?q?=E6=98=A0=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - get_product_by_serial 把任务创建人(created_by)纳入 assignee_names 中文名映射 - 前端可显示『谁转入在库』等创建人信息 --- backend/app/services/product_service.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/backend/app/services/product_service.py b/backend/app/services/product_service.py index d0aa329..f661562 100644 --- a/backend/app/services/product_service.py +++ b/backend/app/services/product_service.py @@ -96,7 +96,6 @@ async def get_product_by_serial(db: AsyncSession, serial_number: str) -> Product all_task_ids.append(t.id) if t.assignee_id: assignee_ids.add(t.assignee_id) _collect_ids(task_tree) - assignee_names = _lookup_display_names(list(assignee_ids)) # 🔧 批量查 task_logs: 谁创建了每个任务 creator_map: dict[uuid.UUID, str] = {} @@ -125,15 +124,20 @@ async def get_product_by_serial(db: AsyncSession, serial_number: str) -> Product if row[1]: creator_map[row[0]] = row[1] - # 注入 created_by 到 task_tree 和 top_tasks + # 注入 created_by 到 task_tree 和 top_tasks(并收集 created_by 到中文名映射) def _inject_creator(tasks): for t in tasks: t.created_by = creator_map.get(t.id) + if t.created_by: assignee_ids.add(t.created_by) if t.child_tasks: _inject_creator(t.child_tasks) _inject_creator(task_tree) for t in top_tasks: t.created_by = creator_map.get(t.id) + if t.created_by: assignee_ids.add(t.created_by) + + # 🔧 中文名映射(负责人 + 创建人,供前端显示"谁转入在库"等) + assignee_names = _lookup_display_names(list(assignee_ids)) return ProductScanResponse( id=product.id,