手动自动电导,新威优化#271
Merged
Andy6M merged 6 commits intoJun 4, 2026
Merged
Conversation
manual_confirm 出现"输出为空"难定位时,记录上游各 list 长度与 target_device, 再记录派生字段产出(coin_cell_code/electrolyte_code/pole_weight 仅来源于 assembly_data, 若上游未接入会全空,下游 submit_auto_export_excel 会拿不到数据)。 yaml result 中补 electrolyte_code 字段以便下游 handle 引用。 Co-authored-by: Cursor <cursoragent@cursor.com>
新增能力 - auto-create_orders_mock:配液 mock 入口(不跑 LIMS 实流程,仅生成与真实 create_orders 完全一致的 vial_plates / mass_ratios 数据结构,用于上下游联调) - auto-create_conductivity_orders_auto:5 号站电导自动新建实验 action, 接配液 handle 输出的 vial_plates,直连 LIMS material-info 拿真实瓶位 (X,Y) 后提交。 配液端 _submit_and_wait_orders 调整 - 把 batch_id 注入每个 vial_plates[i],删除 final_result 顶层独立 batch_id handle, 下游通过单一 vial_plates handle 即可拿到 batchId/orderCode/barCode/materialId 全套字段。 - 多个 dispensing order 共用同一物理板时按 materialId 去重 all_vial_plates, 每个唯一 plate 用 order_refs 列表保留所有引用过它的 (orderId, orderCode) 对。 _extract_vial_plate_from_report 重构 - 返回从 Optional[Dict] 改为 List[Dict],支持一个 order 对应多块 20ml 分液瓶板 (电导多温度场景)。 - 移除按 locationId 前缀的硬过滤;扫描所有 typemode=1 物料逐个查 material-info, 优先收集 typeName=="20ml分液瓶板",没有时回退到其它 *分液瓶板(带 warning)。 - plate dict 新增 orderId(GUID) 字段,供电导端按瓶子的 associateId 反查归属。 电导端 create_conductivity_orders_auto - 校验 vial_plates / temperature_points 入参(长度=1 广播 / 长度=N per-plate, 其它非法);强制板类型为 "20ml分液瓶板"。 - _query_plate_bottle_positions 不再按 typeName 过滤(实测 LIMS detail.typeName 经常 为空被误杀);只要 detail 项有 x/y 即视为孔位,与资源树创建 _populate_vial_bottles 对齐;返回值新增 associateId 字段(关联订单 GUID)。 - _resolve_order_code_for_bottle 新辅助:跨 order 共用板时按 bottle.associateId 在 plate.order_refs 中精确反查归属 orderCode;fallback 到首个 orderCode 并 warning。 - 不再做 scheduler stop/start 切换(实测调度 Running 时 LIMS 也接受电导订单创建, 与配液 _submit_and_wait_orders 行为一致);stop_scheduler_timeout 入参保留兼容 旧 yaml 但内部不使用,标 deprecated。 - 修 status 计算 bug:原先用 orderId != EMPTY_GUID 判断成功是错的,LIMS 创建阶段 始终返回 orderId=全 0 GUID(执行时才填);改为 errorMessage 为空 + orderCode 非空。 失败时打详细 errorMessage 日志,方便定位"板不在仓库"等业务错误。 返回值新增 new_order_codes 列表(LIMS 新建的电导单号 BSO20260604000XX)。 - create_conductivity_orders_from_excel 同步修 status 判据 + new_order_codes 输出。 辅助 - _wait_scheduler_status:轮询 scheduler-status 直到目标状态 / 超时(虽然 auto 入口不再使用,留作工具函数)。 Co-authored-by: Cursor <cursoragent@cursor.com>
移除: - bioyond_cell_workstation.py 中的 create_orders_mock 方法 - bioyond_cell.yaml 中的 auto-create_orders_mock action 定义 mock 入口当时是为了在配液虚拟机无法产出真实分液板条码时给下游联调用的, 现在真实流程已经跑通,留着会让 registry/handle 列表多一份易混淆条目。 Co-authored-by: Cursor <cursoragent@cursor.com>
create_conductivity_orders_auto 早先设计成 scheduler_stop → 等 Stop → POST → start, 为此加了这个轮询 /api/lims/scheduler/scheduler-status 的辅助。 后来确认调度 Running 时 LIMS 也接受电导订单创建,stop/start 切换被全部砍掉, 该函数已无任何调用方,删除。 Co-authored-by: Cursor <cursoragent@cursor.com>
5 个 output(total_entries / validated_barcodes / status / batch_id / new_order_codes) 没有任何下游 action 引用,UI 上还会列出来造成混淆,全部删除。 Python 函数仍然返回 dict,留作日志/调试输出用。 Co-authored-by: Cursor <cursoragent@cursor.com>
…eout 入参 之前因 scheduler stop/start 切换被砍掉而留作 deprecated 占位。 现在彻底从 yaml 的 goal_default / schema 中拆除,前端 UI 不再渲染该项。 Python 端把已弃用入参换成 **_legacy_kwargs 兜底,老 workflow JSON 若仍传 stop_scheduler_timeout=5.0 会被静默丢弃,避免 TypeError。 Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.