From 3e43359460284acb0bd69ab130778a84abb8d1ff Mon Sep 17 00:00:00 2001 From: Andy6M Date: Thu, 16 Apr 2026 21:17:22 +0800 Subject: [PATCH] fix(bioyond): fix order name type and prep bottle max volumes bioyond_cell: Ensure order_name is cast to str and fix mix_time handling for single int/float values. YB_bottles: Fix max_volume capacity for 15mL and 60mL prep bottles to match their names. --- .../bioyond_cell/bioyond_cell_workstation.py | 9 ++++++--- unilabos/resources/bioyond/YB_bottles.py | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/unilabos/devices/workstation/bioyond_studio/bioyond_cell/bioyond_cell_workstation.py b/unilabos/devices/workstation/bioyond_studio/bioyond_cell/bioyond_cell_workstation.py index ce199b2b..498c795c 100644 --- a/unilabos/devices/workstation/bioyond_studio/bioyond_cell/bioyond_cell_workstation.py +++ b/unilabos/devices/workstation/bioyond_studio/bioyond_cell/bioyond_cell_workstation.py @@ -1087,9 +1087,9 @@ class BioyondCellWorkstation(BioyondWorkstation): for idx, item in enumerate(formulation): materials = item.get("materials", []) + item.get("liquids", []) # 兼容两种物料列表命名 if idx < len(order_names) and order_names[idx]: - order_name = order_names[idx] + order_name = str(order_names[idx]) else: - order_name = item.get("order_name", f"{batch_id}_order_{idx + 1}") + order_name = str(item.get("order_name", f"{batch_id}_order_{idx + 1}")) mats: List[Dict[str, Any]] = [] total_mass = 0.0 @@ -1104,7 +1104,10 @@ class BioyondCellWorkstation(BioyondWorkstation): logger.warning(f"[create_orders_formulation] 第 {idx + 1} 个配方无有效物料,跳过") continue - raw_mix_time = mix_time[idx] if idx < len(mix_time) else None + if isinstance(mix_time, (int, float)): + raw_mix_time = mix_time + else: + raw_mix_time = mix_time[idx] if idx < len(mix_time) else None try: item_mix_time = int(raw_mix_time) if raw_mix_time not in (None, "", "null") else 0 except (ValueError, TypeError): diff --git a/unilabos/resources/bioyond/YB_bottles.py b/unilabos/resources/bioyond/YB_bottles.py index 54f3e2a9..60163881 100644 --- a/unilabos/resources/bioyond/YB_bottles.py +++ b/unilabos/resources/bioyond/YB_bottles.py @@ -131,7 +131,7 @@ def YB_PrepBottle_15mL( name: str, diameter: float = 35.0, height: float = 60.0, - max_volume: float = 30000.0, # 30mL + max_volume: float = 15000.0, # 15mL barcode: str = None, ) -> Bottle: """创建配液瓶(小)""" @@ -149,7 +149,7 @@ def YB_PrepBottle_60mL( name: str, diameter: float = 55.0, height: float = 100.0, - max_volume: float = 150000.0, # 150mL + max_volume: float = 60000.0, # 60mL barcode: str = None, ) -> Bottle: """创建配液瓶(大)"""