mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-17 13:01:12 +00:00
refactor(bioyond_studio): 优化材料缓存加载和参数验证逻辑
改进材料缓存加载逻辑以支持多种材料类型和详细材料处理 更新工作流参数验证中的字段名从key/value改为Key/DisplayValue 移除未使用的merge_workflow_with_parameters方法 添加get_station_info方法获取工作站基础信息 清理实验文件中的注释代码和更新导入路径
This commit is contained in:
@@ -334,8 +334,8 @@ class BioyondV1RPC(BaseRequest):
|
||||
for j, param in enumerate(params):
|
||||
if not isinstance(param, dict):
|
||||
workflow_errors.append(f"步骤 {step_id} 模块 {module_name} 参数 {j} 必须是字典类型")
|
||||
elif "key" not in param or "value" not in param:
|
||||
workflow_errors.append(f"步骤 {step_id} 模块 {module_name} 参数 {j} 必须包含 key 和 value")
|
||||
elif "Key" not in param or "DisplayValue" not in param:
|
||||
workflow_errors.append(f"步骤 {step_id} 模块 {module_name} 参数 {j} 必须包含 Key 和 DisplayValue")
|
||||
|
||||
if workflow_errors:
|
||||
validation_errors.append({
|
||||
@@ -703,20 +703,35 @@ class BioyondV1RPC(BaseRequest):
|
||||
"""预加载材料列表到缓存中"""
|
||||
try:
|
||||
print("正在加载材料列表缓存...")
|
||||
stock_query = '{"typeMode": 2, "includeDetail": true}'
|
||||
stock_result = self.stock_material(stock_query)
|
||||
|
||||
# 加载所有类型的材料:耗材(0)、样品(1)、试剂(2)
|
||||
material_types = [1, 2]
|
||||
|
||||
for type_mode in material_types:
|
||||
print(f"正在加载类型 {type_mode} 的材料...")
|
||||
stock_query = f'{{"typeMode": {type_mode}, "includeDetail": true}}'
|
||||
stock_result = self.stock_material(stock_query)
|
||||
|
||||
if isinstance(stock_result, str):
|
||||
stock_data = json.loads(stock_result)
|
||||
else:
|
||||
stock_data = stock_result
|
||||
if isinstance(stock_result, str):
|
||||
stock_data = json.loads(stock_result)
|
||||
else:
|
||||
stock_data = stock_result
|
||||
|
||||
materials = stock_data
|
||||
for material in materials:
|
||||
material_name = material.get("name")
|
||||
material_id = material.get("id")
|
||||
if material_name and material_id:
|
||||
self.material_cache[material_name] = material_id
|
||||
materials = stock_data
|
||||
for material in materials:
|
||||
material_name = material.get("name")
|
||||
material_id = material.get("id")
|
||||
if material_name and material_id:
|
||||
self.material_cache[material_name] = material_id
|
||||
|
||||
# 处理样品板等容器中的detail材料
|
||||
detail_materials = material.get("detail", [])
|
||||
for detail_material in detail_materials:
|
||||
detail_name = detail_material.get("name")
|
||||
detail_id = detail_material.get("detailMaterialId")
|
||||
if detail_name and detail_id:
|
||||
self.material_cache[detail_name] = detail_id
|
||||
print(f"加载detail材料: {detail_name} -> ID: {detail_id}")
|
||||
|
||||
print(f"材料列表缓存加载完成,共加载 {len(self.material_cache)} 个材料")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user