diff --git a/backend/app.pid b/backend/app.pid index 64a384e6..47c8e328 100644 --- a/backend/app.pid +++ b/backend/app.pid @@ -1 +1 @@ -39408 +56422 diff --git a/backend/app/api/production.py b/backend/app/api/production.py index d638081e..540e98b8 100644 --- a/backend/app/api/production.py +++ b/backend/app/api/production.py @@ -1271,7 +1271,7 @@ async def get_production_work_order( wo = production_work_order_svc.get_production_work_order(db, wo_id, tenant_no) if not wo: return error_response(404, "工单不存在") - return success_response(production_work_order_svc._wo_to_dict(wo)) + return success_response(production_work_order_svc._wo_to_response_dict(db, wo)) @router.put("/production-work-orders/{wo_id}/complete") @@ -1286,7 +1286,7 @@ async def complete_production_work_order( wo = production_work_order_svc.complete_production_work_order( db, wo_id, tenant_no, user.get("user_id"), body, ) - return success_response(production_work_order_svc._wo_to_dict(wo), message="操作成功") + return success_response(production_work_order_svc._wo_to_response_dict(db, wo), message="操作成功") except ValueError as e: return error_response(400, str(e)) @@ -1549,12 +1549,16 @@ async def set_production_task_outputs( @router.get("/cell-products/next-code") async def get_next_cell_product_code( + count: int = Query(1, ge=1, le=50), user: dict = Depends(require_admin_or_super_admin), db: Session = Depends(get_db), ): tenant_no = _get_tenant_no(db, user) - code = cell_product_svc.get_next_code(db, tenant_no) - return success_response({"code": code}) + if count <= 1: + code = cell_product_svc.get_next_code(db, tenant_no) + return success_response({"code": code}) + codes = cell_product_svc.reserve_next_codes(db, tenant_no, count) + return success_response({"codes": codes, "code": codes[0] if codes else ""}) @router.get("/cell-products") @@ -1606,12 +1610,42 @@ async def create_cell_product( ): try: tenant_no = _get_tenant_no(db, user) - obj = cell_product_svc.create_cell_product( - db, tenant_no=tenant_no, user_id=user.get("user_id"), - create_dept_id="", data=body, - ) + items = body.items or [] + qty = int(body.quantity) if body.quantity is not None else 1 + qty = max(1, min(qty, 50)) + if items: + created = cell_product_svc.create_cell_products_batch( + db, + tenant_no=tenant_no, + user_id=user.get("user_id"), + create_dept_id="", + data=body, + items=items, + ) + elif qty > 1: + created = cell_product_svc.create_cell_products_by_quantity( + db, + tenant_no=tenant_no, + user_id=user.get("user_id"), + create_dept_id="", + data=body, + count=qty, + ) + else: + obj = cell_product_svc.create_cell_product( + db, tenant_no=tenant_no, user_id=user.get("user_id"), + create_dept_id="", data=body, + ) + return success_response( + cell_product_svc.product_to_response(db, tenant_no, obj), message="创建成功" + ) + resp_list = [ + cell_product_svc.product_to_response(db, tenant_no, obj) for obj in created + ] + n = len(created) return success_response( - cell_product_svc.product_to_response(db, tenant_no, obj), message="创建成功" + {"list": resp_list, "count": n}, + message=f"成功创建 {n} 份细胞产品", ) except ValueError as e: return error_response(400, str(e)) diff --git a/backend/app/crud/cell_product.py b/backend/app/crud/cell_product.py index fd0b4368..2aea6168 100644 --- a/backend/app/crud/cell_product.py +++ b/backend/app/crud/cell_product.py @@ -2,6 +2,7 @@ from __future__ import annotations import math +import re from datetime import datetime from typing import Any, Dict, List, Optional, Tuple @@ -344,9 +345,7 @@ def delete_cell_product( db.commit() -def get_next_code(db: Session, tenant_no: str) -> str: - today_str = datetime.now().strftime("%Y%m%d") - prefix = f"CP{today_str}" +def _next_code_start_seq(db: Session, tenant_no: str, prefix: str) -> int: last = ( db.query(BizCellProduct) .filter( @@ -363,9 +362,177 @@ def get_next_code(db: Session, tenant_no: str) -> str: seq = int(last.product_code[-6:]) + 1 except (ValueError, IndexError): seq = 1 + return seq + + +def get_next_code(db: Session, tenant_no: str) -> str: + today_str = datetime.now().strftime("%Y%m%d") + prefix = f"CP{today_str}" + seq = _next_code_start_seq(db, tenant_no, prefix) return f"{prefix}{seq:06d}" +_PRODUCT_CODE_SUFFIX_RE = re.compile(r"^(.+)-(\d{2})$") + + +def normalize_product_code_base(code: str) -> str: + """去掉末尾 -01/-02 等序号,得到多份入库时的基础编码。""" + c = (code or "").strip() + if not c: + return "" + m = _PRODUCT_CODE_SUFFIX_RE.match(c) + if m: + return m.group(1).strip() + return c + + +def build_split_product_codes(base: str, count: int) -> List[str]: + """按基础编码生成 基础-01、基础-02 …""" + if count < 1: + return [] + return [f"{base}-{i:02d}" for i in range(1, count + 1)] + + +def reserve_next_codes(db: Session, tenant_no: str, count: int) -> List[str]: + if count < 1: + return [] + count = min(count, 50) + today_str = datetime.now().strftime("%Y%m%d") + prefix = f"CP{today_str}" + start = _next_code_start_seq(db, tenant_no, prefix) + return [f"{prefix}{start + i:06d}" for i in range(count)] + + +def _validate_batch_items( + db: Session, + tenant_no: str, + items: List[Any], + *, + require_storage_slot: bool = True, +) -> Tuple[List[str], List[Optional[str]]]: + if not items: + raise ValueError("至少需要一份产品明细") + if len(items) > 50: + raise ValueError("单次入库份数不能超过 50") + + codes: List[str] = [] + slot_ids: List[Optional[str]] = [] + for it in items: + code = (getattr(it, "product_code", None) or "").strip() + if not code: + raise ValueError("产品编码不能为空") + if code in codes: + raise ValueError(f"产品编码 {code} 重复") + codes.append(code) + + sid = (getattr(it, "storage_slot_id", None) or "").strip() or None + if require_storage_slot and not sid: + raise ValueError("每份产品须选择储物格位置") + slot_ids.append(sid) + + existing_codes = ( + db.query(BizCellProduct.product_code) + .filter( + BizCellProduct.tenant_no == tenant_no, + BizCellProduct.product_code.in_(codes), + BizCellProduct.del_flag == 0, + ) + .all() + ) + if existing_codes: + dup = existing_codes[0][0] + raise ValueError(f"产品编码 {dup} 已存在") + + return codes, slot_ids + + +def create_cell_products_by_quantity( + db: Session, + *, + tenant_no: str, + user_id: Optional[str] = None, + create_dept_id: Optional[str] = None, + data: Any = None, + count: int, +) -> List[BizCellProduct]: + """按入库份数拆分:基础编码-01、基础编码-02 …""" + count = max(1, min(int(count), 50)) + base = normalize_product_code_base(getattr(data, "product_code", None) or "") + if not base: + raise ValueError("产品编码不能为空") + codes = build_split_product_codes(base, count) + slot_id = (getattr(data, "storage_slot_id", None) or "").strip() or None + from types import SimpleNamespace + + items = [ + SimpleNamespace(product_code=c, storage_slot_id=slot_id) for c in codes + ] + return create_cell_products_batch( + db, + tenant_no=tenant_no, + user_id=user_id, + create_dept_id=create_dept_id, + data=data, + items=items, + require_storage_slot=False, + ) + + +def create_cell_products_batch( + db: Session, + *, + tenant_no: str, + user_id: Optional[str] = None, + create_dept_id: Optional[str] = None, + data: Any = None, + items: List[Any], + require_storage_slot: bool = True, +) -> List[BizCellProduct]: + codes, slot_ids = _validate_batch_items( + db, + tenant_no, + items, + require_storage_slot=require_storage_slot, + ) + now = datetime.now() + created: List[BizCellProduct] = [] + for code, slot_id in zip(codes, slot_ids): + obj = BizCellProduct( + id=generate_uuid(), + product_code=code, + product_name=(data.product_name or "").strip(), + product_type_id=(data.product_type_id or "").strip() or None, + spec_id=(data.spec_id or "").strip() or None, + batch_no=(data.batch_no or "").strip() or None, + storage_slot_id=slot_id, + passage=((data.passage or "").strip() or None) if getattr(data, "passage", None) else None, + freeze_date=data.freeze_date if hasattr(data, "freeze_date") else None, + expected_cell_count=data.expected_cell_count if hasattr(data, "expected_cell_count") else None, + viability=data.viability if hasattr(data, "viability") else None, + product_status=data.product_status or "frozen", + source_type=data.source_type or "manual", + quantity=1, + unit=(data.unit or "").strip() or None, + expiry_date=data.expiry_date, + product_images=(data.product_images or "").strip() or None, + tenant_no=tenant_no, + order_num=0, + remark=(data.remark or "").strip() or None, + create_by=user_id, + create_dept_id=create_dept_id or "", + create_time=now, + update_by=user_id, + update_time=now, + del_flag=0, + ) + db.add(obj) + created.append(obj) + db.commit() + for obj in created: + db.refresh(obj) + return created + + def total_pages(total: int, page_size: int) -> int: if total <= 0: return 0 diff --git a/backend/app/crud/production_work_order.py b/backend/app/crud/production_work_order.py index 8d1e1954..be3bfa50 100644 --- a/backend/app/crud/production_work_order.py +++ b/backend/app/crud/production_work_order.py @@ -69,12 +69,26 @@ def _wo_to_dict(wo: BizProductionWorkOrder) -> Dict[str, Any]: ), "workOrderStatus": wo.work_order_status, "workOrderStatusLabel": _WORK_ORDER_STATUS_LABELS.get(wo.work_order_status, wo.work_order_status), + "receptionTime": "", + "handlerName": "", + "sampleTypeName": "", "remark": wo.remark or "", "createTime": _fmt_dt(wo.create_time), "updateTime": _fmt_dt(wo.update_time), } +def _enrich_wo_items(db: Session, items: List[Dict[str, Any]]) -> List[Dict[str, Any]]: + from app.crud import qc_work_order as qc_wo_svc + + return qc_wo_svc._enrich_work_order_list_items(db, items) + + +def _wo_to_response_dict(db: Session, wo: BizProductionWorkOrder) -> Dict[str, Any]: + """工单响应(含接收记录关联的样本类型、接收人、接收时间)。""" + return _enrich_wo_items(db, [_wo_to_dict(wo)])[0] + + def create_production_work_order_from_reception( db: Session, reception: BizSampleReception, @@ -229,7 +243,7 @@ def list_production_work_orders( .limit(effective_size) .all() ) - items = [_wo_to_dict(x) for x in rows] + items = _enrich_wo_items(db, [_wo_to_dict(x) for x in rows]) return {"items": items, "total": int(total)} diff --git a/backend/app/graphify-out/cache/ast/0d5821f79e094d8f6ed55b7df14d76b3a5077bb27865f482c167aea4f3d07d5f.json b/backend/app/graphify-out/cache/ast/0d5821f79e094d8f6ed55b7df14d76b3a5077bb27865f482c167aea4f3d07d5f.json new file mode 100644 index 00000000..ef40f504 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/0d5821f79e094d8f6ed55b7df14d76b3a5077bb27865f482c167aea4f3d07d5f.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "label": "cell_product.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L1"}, {"id": "crud_cell_product_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L21"}, {"id": "crud_cell_product_build_facility_path_label", "label": "_build_facility_path_label()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L54"}, {"id": "crud_cell_product_enrich_product_dicts", "label": "_enrich_product_dicts()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L69"}, {"id": "crud_cell_product_product_to_response", "label": "product_to_response()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L142"}, {"id": "crud_cell_product_list_cell_products", "label": "list_cell_products()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L147"}, {"id": "crud_cell_product_get_cell_product", "label": "get_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L208"}, {"id": "crud_cell_product_create_cell_product", "label": "create_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L222"}, {"id": "crud_cell_product_update_cell_product", "label": "update_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L276"}, {"id": "crud_cell_product_delete_cell_product", "label": "delete_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L331"}, {"id": "crud_cell_product_get_next_code", "label": "get_next_code()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L347"}, {"id": "crud_cell_product_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L369"}, {"id": "crud_cell_product_rationale_1", "label": "\u7ec6\u80de\u4ea7\u54c1 CRUD\uff08biz_cell_product\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "math", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_row_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_build_facility_path_label", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L54", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_enrich_product_dicts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L69", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_product_to_response", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L142", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_list_cell_products", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L147", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_get_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L208", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_create_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L222", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_update_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L276", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_delete_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L331", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_get_next_code", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L347", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_total_pages", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L369", "weight": 1.0}, {"source": "crud_cell_product_enrich_product_dicts", "target": "crud_cell_product_build_facility_path_label", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L125", "weight": 1.0}, {"source": "crud_cell_product_product_to_response", "target": "crud_cell_product_enrich_product_dicts", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L143", "weight": 1.0}, {"source": "crud_cell_product_product_to_response", "target": "crud_cell_product_row_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L143", "weight": 1.0}, {"source": "crud_cell_product_list_cell_products", "target": "crud_cell_product_enrich_product_dicts", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L202", "weight": 1.0}, {"source": "crud_cell_product_list_cell_products", "target": "crud_cell_product_row_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L203", "weight": 1.0}, {"source": "crud_cell_product_update_cell_product", "target": "crud_cell_product_get_cell_product", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L283", "weight": 1.0}, {"source": "crud_cell_product_delete_cell_product", "target": "crud_cell_product_get_cell_product", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L337", "weight": 1.0}, {"source": "crud_cell_product_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "crud_cell_product_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L34"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L35"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L36"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L40"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L42"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L48"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L50"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L56"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L57"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L59"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L60"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L63"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L64"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "reverse", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L65"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L66"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L77"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L77"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L78"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L78"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L79"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L79"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L84"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L84"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L84"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L86"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L96"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L96"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L96"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L98"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L108"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L108"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L108"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L110"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L116"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L116"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L116"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L126"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L133"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L134"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L135"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L136"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L137"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L138"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "scalar", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L192"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "with_entities", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L192"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L192"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "_filtered", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L192"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L192"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L193"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "min", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L194"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L194"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L196"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "limit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L196"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "offset", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L196"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L196"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "_filtered", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L196"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L197"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L205"}, {"caller_nid": "crud_cell_product_get_cell_product", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L210"}, {"caller_nid": "crud_cell_product_get_cell_product", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L210"}, {"caller_nid": "crud_cell_product_get_cell_product", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L210"}, {"caller_nid": "crud_cell_product_get_cell_product", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L212"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L230"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L232"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L234"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L234"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L234"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L240"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "BizCellProduct", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L242"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L243"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L245"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L246"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L247"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L248"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L249"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L250"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L250"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L251"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L252"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L253"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L257"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L259"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L262"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L265"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L267"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L270"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L271"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L272"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L285"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L288"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L290"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L292"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L294"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L296"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L297"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L298"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L299"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L301"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L303"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L310"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L315"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L319"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L321"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L324"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L325"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L326"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L327"}, {"caller_nid": "crud_cell_product_delete_cell_product", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L339"}, {"caller_nid": "crud_cell_product_delete_cell_product", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L342"}, {"caller_nid": "crud_cell_product_delete_cell_product", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L343"}, {"caller_nid": "crud_cell_product_delete_cell_product", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L344"}, {"caller_nid": "crud_cell_product_get_next_code", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L348"}, {"caller_nid": "crud_cell_product_get_next_code", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L348"}, {"caller_nid": "crud_cell_product_get_next_code", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L351"}, {"caller_nid": "crud_cell_product_get_next_code", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L351"}, {"caller_nid": "crud_cell_product_get_next_code", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L351"}, {"caller_nid": "crud_cell_product_get_next_code", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L351"}, {"caller_nid": "crud_cell_product_get_next_code", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L354"}, {"caller_nid": "crud_cell_product_get_next_code", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L357"}, {"caller_nid": "crud_cell_product_get_next_code", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L363"}, {"caller_nid": "crud_cell_product_total_pages", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L372"}, {"caller_nid": "crud_cell_product_total_pages", "callee": "ceil", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L372"}, {"caller_nid": "crud_cell_product_total_pages", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L372"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/1cf6d724598eba27d5b26fa7329285f8ab02bd73a598bf45e28d593faa641060.json b/backend/app/graphify-out/cache/ast/1cf6d724598eba27d5b26fa7329285f8ab02bd73a598bf45e28d593faa641060.json new file mode 100644 index 00000000..e645c340 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/1cf6d724598eba27d5b26fa7329285f8ab02bd73a598bf45e28d593faa641060.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "label": "production.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1"}, {"id": "api_production_get_tenant_no", "label": "_get_tenant_no()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L52"}, {"id": "api_production_consumablecreatebody", "label": "ConsumableCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L65"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "api_production_consumableupdatebody", "label": "ConsumableUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L77"}, {"id": "api_production_list_consumables", "label": "list_consumables()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L90"}, {"id": "api_production_list_all_consumables", "label": "list_all_consumables()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L104"}, {"id": "api_production_create_consumable", "label": "create_consumable()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L114"}, {"id": "api_production_update_consumable", "label": "update_consumable()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L140"}, {"id": "api_production_delete_consumable", "label": "delete_consumable()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L167"}, {"id": "api_production_reagentcreatebody", "label": "ReagentCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L184"}, {"id": "api_production_reagentupdatebody", "label": "ReagentUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L196"}, {"id": "api_production_list_reagents", "label": "list_reagents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L209"}, {"id": "api_production_list_all_reagents", "label": "list_all_reagents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L223"}, {"id": "api_production_create_reagent", "label": "create_reagent()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L233"}, {"id": "api_production_update_reagent", "label": "update_reagent()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L259"}, {"id": "api_production_delete_reagent", "label": "delete_reagent()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L286"}, {"id": "api_production_sopdocumentcreatebody", "label": "SopDocumentCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L303"}, {"id": "api_production_sopdocumentupdatebody", "label": "SopDocumentUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L313"}, {"id": "api_production_list_sop_documents", "label": "list_sop_documents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L324"}, {"id": "api_production_list_all_sop_documents", "label": "list_all_sop_documents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L338"}, {"id": "api_production_create_sop_document", "label": "create_sop_document()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L348"}, {"id": "api_production_update_sop_document", "label": "update_sop_document()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L375"}, {"id": "api_production_delete_sop_document", "label": "delete_sop_document()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L404"}, {"id": "api_production_processcategorycreatebody", "label": "ProcessCategoryCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L421"}, {"id": "api_production_processcategoryupdatebody", "label": "ProcessCategoryUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L429"}, {"id": "api_production_list_process_categories", "label": "list_process_categories()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L438"}, {"id": "api_production_list_all_process_categories", "label": "list_all_process_categories()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L452"}, {"id": "api_production_create_process_category", "label": "create_process_category()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L462"}, {"id": "api_production_update_process_category", "label": "update_process_category()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L484"}, {"id": "api_production_delete_process_category", "label": "delete_process_category()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L507"}, {"id": "api_production_outputtypecreatebody", "label": "OutputTypeCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L524"}, {"id": "api_production_outputtypeupdatebody", "label": "OutputTypeUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L532"}, {"id": "api_production_list_output_types", "label": "list_output_types()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L541"}, {"id": "api_production_list_all_output_types", "label": "list_all_output_types()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L555"}, {"id": "api_production_create_output_type", "label": "create_output_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L565"}, {"id": "api_production_update_output_type", "label": "update_output_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L587"}, {"id": "api_production_delete_output_type", "label": "delete_output_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L610"}, {"id": "api_production_packiteminput", "label": "PackItemInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L627"}, {"id": "api_production_consumablepackcreatebody", "label": "ConsumablePackCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L637"}, {"id": "api_production_consumablepackupdatebody", "label": "ConsumablePackUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L649"}, {"id": "api_production_list_consumable_packs", "label": "list_consumable_packs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L662"}, {"id": "api_production_list_all_consumable_packs", "label": "list_all_consumable_packs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L676"}, {"id": "api_production_get_consumable_pack_detail", "label": "get_consumable_pack_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L686"}, {"id": "api_production_create_consumable_pack", "label": "create_consumable_pack()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L698"}, {"id": "api_production_update_consumable_pack", "label": "update_consumable_pack()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L725"}, {"id": "api_production_delete_consumable_pack", "label": "delete_consumable_pack()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L753"}, {"id": "api_production_processreagentinput", "label": "ProcessReagentInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L770"}, {"id": "api_production_processconsumableinput", "label": "ProcessConsumableInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L781"}, {"id": "api_production_processoutputinput", "label": "ProcessOutputInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L792"}, {"id": "api_production_processdatacollectioninput", "label": "ProcessDataCollectionInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L800"}, {"id": "api_production_processcreatebody", "label": "ProcessCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L808"}, {"id": "api_production_processupdatebody", "label": "ProcessUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L825"}, {"id": "api_production_list_processes", "label": "list_processes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L843"}, {"id": "api_production_list_all_processes", "label": "list_all_processes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L857"}, {"id": "api_production_get_process_detail", "label": "get_process_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L867"}, {"id": "api_production_create_process", "label": "create_process()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L879"}, {"id": "api_production_update_process", "label": "update_process()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L921"}, {"id": "api_production_delete_process", "label": "delete_process()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L964"}, {"id": "api_production_list_process_routes", "label": "list_process_routes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L982"}, {"id": "api_production_get_process_route_detail", "label": "get_process_route_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1003"}, {"id": "api_production_create_process_route", "label": "create_process_route()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1015"}, {"id": "api_production_update_process_route", "label": "update_process_route()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1038"}, {"id": "api_production_set_current_process_route", "label": "set_current_process_route()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1061"}, {"id": "api_production_delete_process_route", "label": "delete_process_route()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1075"}, {"id": "api_production_add_route_step", "label": "add_route_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1090"}, {"id": "api_production_copy_route_step", "label": "copy_route_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1111"}, {"id": "api_production_update_route_step", "label": "update_route_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1130"}, {"id": "api_production_reorder_route_steps", "label": "reorder_route_steps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1145"}, {"id": "api_production_delete_route_step", "label": "delete_route_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1158"}, {"id": "api_production_update_step_reagents", "label": "update_step_reagents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1173"}, {"id": "api_production_update_step_consumables", "label": "update_step_consumables()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1188"}, {"id": "api_production_update_step_outputs", "label": "update_step_outputs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1203"}, {"id": "api_production_update_step_data_collections", "label": "update_step_data_collections()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1218"}, {"id": "api_production_list_production_work_orders", "label": "list_production_work_orders()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1238"}, {"id": "api_production_get_production_work_order", "label": "get_production_work_order()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1265"}, {"id": "api_production_complete_production_work_order", "label": "complete_production_work_order()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1278"}, {"id": "api_production_create_production_task", "label": "create_production_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1300"}, {"id": "api_production_list_production_tasks", "label": "list_production_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1319"}, {"id": "api_production_get_production_task_detail", "label": "get_production_task_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1339"}, {"id": "api_production_update_production_task", "label": "update_production_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1352"}, {"id": "api_production_update_production_task_status", "label": "update_production_task_status()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1370"}, {"id": "api_production_add_production_task_step", "label": "add_production_task_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1387"}, {"id": "api_production_update_production_task_step", "label": "update_production_task_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1405"}, {"id": "api_production_delete_production_task_step", "label": "delete_production_task_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1424"}, {"id": "api_production_replace_task_step_reagents", "label": "replace_task_step_reagents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1439"}, {"id": "api_production_replace_task_step_consumables", "label": "replace_task_step_consumables()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1468"}, {"id": "api_production_replace_task_step_data_collections", "label": "replace_task_step_data_collections()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1497"}, {"id": "api_production_set_production_task_inputs", "label": "set_production_task_inputs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1514"}, {"id": "api_production_set_production_task_outputs", "label": "set_production_task_outputs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1530"}, {"id": "api_production_get_next_cell_product_code", "label": "get_next_cell_product_code()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1551"}, {"id": "api_production_list_cell_products", "label": "list_cell_products()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1565"}, {"id": "api_production_get_cell_product_detail", "label": "get_cell_product_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1593"}, {"id": "api_production_create_cell_product", "label": "create_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1606"}, {"id": "api_production_update_cell_product", "label": "update_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1655"}, {"id": "api_production_delete_cell_product", "label": "delete_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1674"}, {"id": "api_production_rationale_1", "label": "\u751f\u4ea7\u7ba1\u7406 API \u8def\u7531\uff087 \u4e2a\u5b50\u6a21\u5757\uff1a\u8017\u6750\u3001\u8bd5\u5242\u3001SOP\u6587\u6863\u3001\u5de5\u827a\u5de5\u5e8f\u5206\u7c7b\u3001\u4ea7\u51fa\u7269\u7c7b\u578b\u3001\u8017\u6750\u5305\u3001\u5de5\u827a\u5e93\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "fastapi", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "pydantic", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_core_database", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_core_menu_guard", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_core_response", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_schemas_process_route", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L31", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L33", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L34", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_schemas_production_work_order", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L35", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_schemas_production_task", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_schemas_cell_product", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L47", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_tenant_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L52", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_consumablecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L65", "weight": 1.0}, {"source": "api_production_consumablecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L65", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_consumableupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L77", "weight": 1.0}, {"source": "api_production_consumableupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L77", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_consumables", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L90", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_consumables", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L104", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_consumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L114", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_consumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L140", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_consumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L167", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_reagentcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L184", "weight": 1.0}, {"source": "api_production_reagentcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L184", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_reagentupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L196", "weight": 1.0}, {"source": "api_production_reagentupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L196", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_reagents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L209", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_reagents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L223", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_reagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L233", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_reagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L259", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_reagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L286", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_sopdocumentcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L303", "weight": 1.0}, {"source": "api_production_sopdocumentcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L303", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_sopdocumentupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L313", "weight": 1.0}, {"source": "api_production_sopdocumentupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L313", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_sop_documents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L324", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_sop_documents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L338", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_sop_document", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L348", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_sop_document", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L375", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_sop_document", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L404", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processcategorycreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L421", "weight": 1.0}, {"source": "api_production_processcategorycreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L421", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processcategoryupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L429", "weight": 1.0}, {"source": "api_production_processcategoryupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L429", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_process_categories", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L438", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_process_categories", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L452", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_process_category", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L462", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_process_category", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L484", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_process_category", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L507", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_outputtypecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L524", "weight": 1.0}, {"source": "api_production_outputtypecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L524", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_outputtypeupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L532", "weight": 1.0}, {"source": "api_production_outputtypeupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L532", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_output_types", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L541", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_output_types", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L555", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_output_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L565", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_output_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L587", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_output_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L610", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_packiteminput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L627", "weight": 1.0}, {"source": "api_production_packiteminput", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L627", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_consumablepackcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L637", "weight": 1.0}, {"source": "api_production_consumablepackcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L637", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_consumablepackupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L649", "weight": 1.0}, {"source": "api_production_consumablepackupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L649", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_consumable_packs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L662", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_consumable_packs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L676", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_consumable_pack_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L686", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_consumable_pack", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L698", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_consumable_pack", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L725", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_consumable_pack", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L753", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processreagentinput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L770", "weight": 1.0}, {"source": "api_production_processreagentinput", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L770", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processconsumableinput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L781", "weight": 1.0}, {"source": "api_production_processconsumableinput", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L781", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processoutputinput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L792", "weight": 1.0}, {"source": "api_production_processoutputinput", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L792", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processdatacollectioninput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L800", "weight": 1.0}, {"source": "api_production_processdatacollectioninput", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L800", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L808", "weight": 1.0}, {"source": "api_production_processcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L808", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L825", "weight": 1.0}, {"source": "api_production_processupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L825", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_processes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L843", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_processes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L857", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_process_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L867", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_process", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L879", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_process", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L921", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_process", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L964", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_process_routes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L982", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_process_route_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1003", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_process_route", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1015", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_process_route", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1038", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_set_current_process_route", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1061", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_process_route", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1075", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_add_route_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1090", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_copy_route_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_route_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1130", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_reorder_route_steps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1145", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_route_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1158", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_step_reagents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1173", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_step_consumables", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1188", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_step_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1203", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_step_data_collections", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1218", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_production_work_orders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1238", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_production_work_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1265", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_complete_production_work_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1278", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_production_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1300", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_production_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1319", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_production_task_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1339", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_production_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1352", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_production_task_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1370", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_add_production_task_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1387", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_production_task_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1405", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_production_task_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1424", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_replace_task_step_reagents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1439", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_replace_task_step_consumables", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1468", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_replace_task_step_data_collections", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1497", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_set_production_task_inputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1514", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_set_production_task_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1530", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_next_cell_product_code", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1551", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_cell_products", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1565", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_cell_product_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1593", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1606", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1655", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1674", "weight": 1.0}, {"source": "api_production_list_consumables", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L97", "weight": 1.0}, {"source": "api_production_list_all_consumables", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L108", "weight": 1.0}, {"source": "api_production_list_all_consumables", "target": "api_production_list_consumables", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L109", "weight": 1.0}, {"source": "api_production_create_consumable", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L120", "weight": 1.0}, {"source": "api_production_list_reagents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L216", "weight": 1.0}, {"source": "api_production_list_all_reagents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L227", "weight": 1.0}, {"source": "api_production_list_all_reagents", "target": "api_production_list_reagents", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L228", "weight": 1.0}, {"source": "api_production_create_reagent", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L239", "weight": 1.0}, {"source": "api_production_list_sop_documents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L331", "weight": 1.0}, {"source": "api_production_list_all_sop_documents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L342", "weight": 1.0}, {"source": "api_production_list_all_sop_documents", "target": "api_production_list_sop_documents", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L343", "weight": 1.0}, {"source": "api_production_create_sop_document", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L354", "weight": 1.0}, {"source": "api_production_update_sop_document", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L394", "weight": 1.0}, {"source": "api_production_list_process_categories", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L445", "weight": 1.0}, {"source": "api_production_list_all_process_categories", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L456", "weight": 1.0}, {"source": "api_production_list_all_process_categories", "target": "api_production_list_process_categories", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L457", "weight": 1.0}, {"source": "api_production_create_process_category", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L468", "weight": 1.0}, {"source": "api_production_list_output_types", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L548", "weight": 1.0}, {"source": "api_production_list_all_output_types", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L559", "weight": 1.0}, {"source": "api_production_list_all_output_types", "target": "api_production_list_output_types", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L560", "weight": 1.0}, {"source": "api_production_create_output_type", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L571", "weight": 1.0}, {"source": "api_production_list_consumable_packs", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L669", "weight": 1.0}, {"source": "api_production_list_all_consumable_packs", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L680", "weight": 1.0}, {"source": "api_production_create_consumable_pack", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L704", "weight": 1.0}, {"source": "api_production_list_processes", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L850", "weight": 1.0}, {"source": "api_production_list_all_processes", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L861", "weight": 1.0}, {"source": "api_production_create_process", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L885", "weight": 1.0}, {"source": "api_production_list_process_routes", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L991", "weight": 1.0}, {"source": "api_production_create_process_route", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1021", "weight": 1.0}, {"source": "api_production_set_current_process_route", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1067", "weight": 1.0}, {"source": "api_production_add_route_step", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1096", "weight": 1.0}, {"source": "api_production_copy_route_step", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1117", "weight": 1.0}, {"source": "api_production_update_step_reagents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1179", "weight": 1.0}, {"source": "api_production_update_step_consumables", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1194", "weight": 1.0}, {"source": "api_production_update_step_outputs", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1209", "weight": 1.0}, {"source": "api_production_update_step_data_collections", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1224", "weight": 1.0}, {"source": "api_production_list_production_work_orders", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1248", "weight": 1.0}, {"source": "api_production_get_production_work_order", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1270", "weight": 1.0}, {"source": "api_production_complete_production_work_order", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1285", "weight": 1.0}, {"source": "api_production_create_production_task", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1306", "weight": 1.0}, {"source": "api_production_list_production_tasks", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1328", "weight": 1.0}, {"source": "api_production_get_production_task_detail", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1344", "weight": 1.0}, {"source": "api_production_update_production_task", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1359", "weight": 1.0}, {"source": "api_production_update_production_task_status", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1377", "weight": 1.0}, {"source": "api_production_add_production_task_step", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1394", "weight": 1.0}, {"source": "api_production_update_production_task_step", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1413", "weight": 1.0}, {"source": "api_production_delete_production_task_step", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1431", "weight": 1.0}, {"source": "api_production_replace_task_step_reagents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1447", "weight": 1.0}, {"source": "api_production_replace_task_step_consumables", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1476", "weight": 1.0}, {"source": "api_production_replace_task_step_data_collections", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1505", "weight": 1.0}, {"source": "api_production_set_production_task_inputs", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1521", "weight": 1.0}, {"source": "api_production_set_production_task_outputs", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1537", "weight": 1.0}, {"source": "api_production_get_next_cell_product_code", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1556", "weight": 1.0}, {"source": "api_production_list_cell_products", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1577", "weight": 1.0}, {"source": "api_production_get_cell_product_detail", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1598", "weight": 1.0}, {"source": "api_production_create_cell_product", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1612", "weight": 1.0}, {"source": "api_production_update_cell_product", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1662", "weight": 1.0}, {"source": "api_production_delete_cell_product", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1680", "weight": 1.0}, {"source": "api_production_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "api_production_get_tenant_no", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L53"}, {"caller_nid": "api_production_get_tenant_no", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L56"}, {"caller_nid": "api_production_get_tenant_no", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L56"}, {"caller_nid": "api_production_get_tenant_no", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L56"}, {"caller_nid": "api_production_list_consumables", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L99"}, {"caller_nid": "api_production_list_consumables", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L100"}, {"caller_nid": "api_production_list_all_consumables", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L110"}, {"caller_nid": "api_production_create_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L132"}, {"caller_nid": "api_production_create_consumable", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L134"}, {"caller_nid": "api_production_create_consumable", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L134"}, {"caller_nid": "api_production_create_consumable", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L136"}, {"caller_nid": "api_production_create_consumable", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L136"}, {"caller_nid": "api_production_update_consumable", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L147"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L151"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L152"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L153"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L154"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L155"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L156"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L157"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L158"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L159"}, {"caller_nid": "api_production_update_consumable", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L161"}, {"caller_nid": "api_production_update_consumable", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L161"}, {"caller_nid": "api_production_update_consumable", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L163"}, {"caller_nid": "api_production_update_consumable", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L163"}, {"caller_nid": "api_production_delete_consumable", "callee": "soft_delete_consumable", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L173"}, {"caller_nid": "api_production_delete_consumable", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L174"}, {"caller_nid": "api_production_delete_consumable", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L176"}, {"caller_nid": "api_production_delete_consumable", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L176"}, {"caller_nid": "api_production_list_reagents", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L218"}, {"caller_nid": "api_production_list_reagents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L219"}, {"caller_nid": "api_production_list_all_reagents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L229"}, {"caller_nid": "api_production_create_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L251"}, {"caller_nid": "api_production_create_reagent", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L253"}, {"caller_nid": "api_production_create_reagent", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L253"}, {"caller_nid": "api_production_create_reagent", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L255"}, {"caller_nid": "api_production_create_reagent", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L255"}, {"caller_nid": "api_production_update_reagent", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L266"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L270"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L271"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L272"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L273"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L274"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L275"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L276"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L277"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L278"}, {"caller_nid": "api_production_update_reagent", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L280"}, {"caller_nid": "api_production_update_reagent", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L280"}, {"caller_nid": "api_production_update_reagent", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L282"}, {"caller_nid": "api_production_update_reagent", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L282"}, {"caller_nid": "api_production_delete_reagent", "callee": "soft_delete_reagent", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L292"}, {"caller_nid": "api_production_delete_reagent", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L293"}, {"caller_nid": "api_production_delete_reagent", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L295"}, {"caller_nid": "api_production_delete_reagent", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L295"}, {"caller_nid": "api_production_list_sop_documents", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L333"}, {"caller_nid": "api_production_list_sop_documents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L334"}, {"caller_nid": "api_production_list_all_sop_documents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L344"}, {"caller_nid": "api_production_create_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L364"}, {"caller_nid": "api_production_create_sop_document", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L366"}, {"caller_nid": "api_production_create_sop_document", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L367"}, {"caller_nid": "api_production_create_sop_document", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L371"}, {"caller_nid": "api_production_create_sop_document", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L371"}, {"caller_nid": "api_production_update_sop_document", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L382"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L386"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L387"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L388"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L389"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L390"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L391"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L392"}, {"caller_nid": "api_production_update_sop_document", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L395"}, {"caller_nid": "api_production_update_sop_document", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L396"}, {"caller_nid": "api_production_update_sop_document", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L400"}, {"caller_nid": "api_production_update_sop_document", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L400"}, {"caller_nid": "api_production_delete_sop_document", "callee": "soft_delete_sop_document", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L410"}, {"caller_nid": "api_production_delete_sop_document", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L411"}, {"caller_nid": "api_production_delete_sop_document", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L413"}, {"caller_nid": "api_production_delete_sop_document", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L413"}, {"caller_nid": "api_production_list_process_categories", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L447"}, {"caller_nid": "api_production_list_process_categories", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L448"}, {"caller_nid": "api_production_list_all_process_categories", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L458"}, {"caller_nid": "api_production_create_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L476"}, {"caller_nid": "api_production_create_process_category", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L478"}, {"caller_nid": "api_production_create_process_category", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L478"}, {"caller_nid": "api_production_create_process_category", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L480"}, {"caller_nid": "api_production_create_process_category", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L480"}, {"caller_nid": "api_production_update_process_category", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L491"}, {"caller_nid": "api_production_update_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L495"}, {"caller_nid": "api_production_update_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L496"}, {"caller_nid": "api_production_update_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L497"}, {"caller_nid": "api_production_update_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L498"}, {"caller_nid": "api_production_update_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L499"}, {"caller_nid": "api_production_update_process_category", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L501"}, {"caller_nid": "api_production_update_process_category", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L501"}, {"caller_nid": "api_production_update_process_category", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L503"}, {"caller_nid": "api_production_update_process_category", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L503"}, {"caller_nid": "api_production_delete_process_category", "callee": "soft_delete_process_category", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L513"}, {"caller_nid": "api_production_delete_process_category", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L514"}, {"caller_nid": "api_production_delete_process_category", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L516"}, {"caller_nid": "api_production_delete_process_category", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L516"}, {"caller_nid": "api_production_list_output_types", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L550"}, {"caller_nid": "api_production_list_output_types", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L551"}, {"caller_nid": "api_production_list_all_output_types", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L561"}, {"caller_nid": "api_production_create_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L579"}, {"caller_nid": "api_production_create_output_type", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L581"}, {"caller_nid": "api_production_create_output_type", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L581"}, {"caller_nid": "api_production_create_output_type", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L583"}, {"caller_nid": "api_production_create_output_type", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L583"}, {"caller_nid": "api_production_update_output_type", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L594"}, {"caller_nid": "api_production_update_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L598"}, {"caller_nid": "api_production_update_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L599"}, {"caller_nid": "api_production_update_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L600"}, {"caller_nid": "api_production_update_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L601"}, {"caller_nid": "api_production_update_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L602"}, {"caller_nid": "api_production_update_output_type", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L604"}, {"caller_nid": "api_production_update_output_type", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L604"}, {"caller_nid": "api_production_update_output_type", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L606"}, {"caller_nid": "api_production_update_output_type", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L606"}, {"caller_nid": "api_production_delete_output_type", "callee": "soft_delete_output_type", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L616"}, {"caller_nid": "api_production_delete_output_type", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L617"}, {"caller_nid": "api_production_delete_output_type", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L619"}, {"caller_nid": "api_production_delete_output_type", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L619"}, {"caller_nid": "api_production_list_consumable_packs", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L671"}, {"caller_nid": "api_production_list_consumable_packs", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L672"}, {"caller_nid": "api_production_list_all_consumable_packs", "callee": "list_all_packs", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L681"}, {"caller_nid": "api_production_list_all_consumable_packs", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L682"}, {"caller_nid": "api_production_get_consumable_pack_detail", "callee": "get_pack_detail", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L691"}, {"caller_nid": "api_production_get_consumable_pack_detail", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L693"}, {"caller_nid": "api_production_get_consumable_pack_detail", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L694"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L705"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L717"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L719"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L719"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L721"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L721"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L732"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L733"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L737"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L738"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L739"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L740"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L741"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L743"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L744"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L745"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L747"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L747"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L749"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L749"}, {"caller_nid": "api_production_delete_consumable_pack", "callee": "soft_delete_consumable_pack", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L759"}, {"caller_nid": "api_production_delete_consumable_pack", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L760"}, {"caller_nid": "api_production_delete_consumable_pack", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L762"}, {"caller_nid": "api_production_delete_consumable_pack", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L762"}, {"caller_nid": "api_production_list_processes", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L852"}, {"caller_nid": "api_production_list_processes", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L853"}, {"caller_nid": "api_production_list_all_processes", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L863"}, {"caller_nid": "api_production_get_process_detail", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L874"}, {"caller_nid": "api_production_get_process_detail", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L875"}, {"caller_nid": "api_production_create_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L886"}, {"caller_nid": "api_production_create_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L887"}, {"caller_nid": "api_production_create_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L888"}, {"caller_nid": "api_production_create_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L889"}, {"caller_nid": "api_production_create_process", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L892"}, {"caller_nid": "api_production_create_process", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L893"}, {"caller_nid": "api_production_create_process", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L895"}, {"caller_nid": "api_production_create_process", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L896"}, {"caller_nid": "api_production_create_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L913"}, {"caller_nid": "api_production_create_process", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L915"}, {"caller_nid": "api_production_create_process", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L915"}, {"caller_nid": "api_production_create_process", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L917"}, {"caller_nid": "api_production_create_process", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L917"}, {"caller_nid": "api_production_update_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L928"}, {"caller_nid": "api_production_update_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L929"}, {"caller_nid": "api_production_update_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L930"}, {"caller_nid": "api_production_update_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L931"}, {"caller_nid": "api_production_update_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L932"}, {"caller_nid": "api_production_update_process", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L935"}, {"caller_nid": "api_production_update_process", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L936"}, {"caller_nid": "api_production_update_process", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L938"}, {"caller_nid": "api_production_update_process", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L939"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L943"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L944"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L945"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L946"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L947"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L948"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L949"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L954"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L955"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L956"}, {"caller_nid": "api_production_update_process", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L958"}, {"caller_nid": "api_production_update_process", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L958"}, {"caller_nid": "api_production_update_process", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L960"}, {"caller_nid": "api_production_update_process", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L960"}, {"caller_nid": "api_production_delete_process", "callee": "soft_delete_process", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L970"}, {"caller_nid": "api_production_delete_process", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L971"}, {"caller_nid": "api_production_delete_process", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L973"}, {"caller_nid": "api_production_delete_process", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L973"}, {"caller_nid": "api_production_list_process_routes", "callee": "list_routes", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L992"}, {"caller_nid": "api_production_list_process_routes", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L998"}, {"caller_nid": "api_production_list_process_routes", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L999"}, {"caller_nid": "api_production_get_process_route_detail", "callee": "get_route_detail", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1008"}, {"caller_nid": "api_production_get_process_route_detail", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1010"}, {"caller_nid": "api_production_get_process_route_detail", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1011"}, {"caller_nid": "api_production_create_process_route", "callee": "create_route", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1022"}, {"caller_nid": "api_production_create_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1030"}, {"caller_nid": "api_production_create_process_route", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1032"}, {"caller_nid": "api_production_create_process_route", "callee": "_route_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1032"}, {"caller_nid": "api_production_create_process_route", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1034"}, {"caller_nid": "api_production_create_process_route", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1034"}, {"caller_nid": "api_production_update_process_route", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1045"}, {"caller_nid": "api_production_update_process_route", "callee": "update_route", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1046"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1048"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1049"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1050"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1051"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1052"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1053"}, {"caller_nid": "api_production_update_process_route", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1055"}, {"caller_nid": "api_production_update_process_route", "callee": "_route_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1055"}, {"caller_nid": "api_production_update_process_route", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1057"}, {"caller_nid": "api_production_update_process_route", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1057"}, {"caller_nid": "api_production_set_current_process_route", "callee": "set_current_route", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1068"}, {"caller_nid": "api_production_set_current_process_route", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1069"}, {"caller_nid": "api_production_set_current_process_route", "callee": "_route_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1069"}, {"caller_nid": "api_production_set_current_process_route", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1071"}, {"caller_nid": "api_production_set_current_process_route", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1071"}, {"caller_nid": "api_production_delete_process_route", "callee": "soft_delete_route", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1081"}, {"caller_nid": "api_production_delete_process_route", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1082"}, {"caller_nid": "api_production_delete_process_route", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1084"}, {"caller_nid": "api_production_delete_process_route", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1084"}, {"caller_nid": "api_production_add_route_step", "callee": "add_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1097"}, {"caller_nid": "api_production_add_route_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1103"}, {"caller_nid": "api_production_add_route_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1105"}, {"caller_nid": "api_production_add_route_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1107"}, {"caller_nid": "api_production_add_route_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1107"}, {"caller_nid": "api_production_copy_route_step", "callee": "copy_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1118"}, {"caller_nid": "api_production_copy_route_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1122"}, {"caller_nid": "api_production_copy_route_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1124"}, {"caller_nid": "api_production_copy_route_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1126"}, {"caller_nid": "api_production_copy_route_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1126"}, {"caller_nid": "api_production_update_route_step", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1136"}, {"caller_nid": "api_production_update_route_step", "callee": "pop", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1137"}, {"caller_nid": "api_production_update_route_step", "callee": "update_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1138"}, {"caller_nid": "api_production_update_route_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1138"}, {"caller_nid": "api_production_update_route_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1139"}, {"caller_nid": "api_production_update_route_step", "callee": "_step_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1139"}, {"caller_nid": "api_production_update_route_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1141"}, {"caller_nid": "api_production_update_route_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1141"}, {"caller_nid": "api_production_reorder_route_steps", "callee": "reorder_steps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1151"}, {"caller_nid": "api_production_reorder_route_steps", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1152"}, {"caller_nid": "api_production_reorder_route_steps", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1154"}, {"caller_nid": "api_production_reorder_route_steps", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1154"}, {"caller_nid": "api_production_delete_route_step", "callee": "soft_delete_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1164"}, {"caller_nid": "api_production_delete_route_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1165"}, {"caller_nid": "api_production_delete_route_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1167"}, {"caller_nid": "api_production_delete_route_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1167"}, {"caller_nid": "api_production_update_step_reagents", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1180"}, {"caller_nid": "api_production_update_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1181"}, {"caller_nid": "api_production_update_step_reagents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1182"}, {"caller_nid": "api_production_update_step_reagents", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1184"}, {"caller_nid": "api_production_update_step_reagents", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1184"}, {"caller_nid": "api_production_update_step_consumables", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1195"}, {"caller_nid": "api_production_update_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1196"}, {"caller_nid": "api_production_update_step_consumables", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1197"}, {"caller_nid": "api_production_update_step_consumables", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1199"}, {"caller_nid": "api_production_update_step_consumables", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1199"}, {"caller_nid": "api_production_update_step_outputs", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1210"}, {"caller_nid": "api_production_update_step_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1211"}, {"caller_nid": "api_production_update_step_outputs", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1212"}, {"caller_nid": "api_production_update_step_outputs", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1214"}, {"caller_nid": "api_production_update_step_outputs", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1214"}, {"caller_nid": "api_production_update_step_data_collections", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1225"}, {"caller_nid": "api_production_update_step_data_collections", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1226"}, {"caller_nid": "api_production_update_step_data_collections", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1227"}, {"caller_nid": "api_production_update_step_data_collections", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1229"}, {"caller_nid": "api_production_update_step_data_collections", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1229"}, {"caller_nid": "api_production_list_production_work_orders", "callee": "ProductionWorkOrderListQuery", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1249"}, {"caller_nid": "api_production_list_production_work_orders", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1258"}, {"caller_nid": "api_production_list_production_work_orders", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1259"}, {"caller_nid": "api_production_list_production_work_orders", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1260"}, {"caller_nid": "api_production_list_production_work_orders", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1261"}, {"caller_nid": "api_production_get_production_work_order", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1273"}, {"caller_nid": "api_production_get_production_work_order", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1274"}, {"caller_nid": "api_production_get_production_work_order", "callee": "_wo_to_response_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1274"}, {"caller_nid": "api_production_complete_production_work_order", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1287"}, {"caller_nid": "api_production_complete_production_work_order", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1289"}, {"caller_nid": "api_production_complete_production_work_order", "callee": "_wo_to_response_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1289"}, {"caller_nid": "api_production_complete_production_work_order", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1291"}, {"caller_nid": "api_production_complete_production_work_order", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1291"}, {"caller_nid": "api_production_create_production_task", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1307"}, {"caller_nid": "api_production_create_production_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1309"}, {"caller_nid": "api_production_create_production_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1312"}, {"caller_nid": "api_production_create_production_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1313"}, {"caller_nid": "api_production_create_production_task", "callee": "_task_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1313"}, {"caller_nid": "api_production_create_production_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1315"}, {"caller_nid": "api_production_create_production_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1315"}, {"caller_nid": "api_production_list_production_tasks", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1334"}, {"caller_nid": "api_production_list_production_tasks", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1335"}, {"caller_nid": "api_production_get_production_task_detail", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1347"}, {"caller_nid": "api_production_get_production_task_detail", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1348"}, {"caller_nid": "api_production_update_production_task", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1360"}, {"caller_nid": "api_production_update_production_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1362"}, {"caller_nid": "api_production_update_production_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1364"}, {"caller_nid": "api_production_update_production_task", "callee": "_task_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1364"}, {"caller_nid": "api_production_update_production_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1366"}, {"caller_nid": "api_production_update_production_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1366"}, {"caller_nid": "api_production_update_production_task_status", "callee": "update_task_status", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1378"}, {"caller_nid": "api_production_update_production_task_status", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1379"}, {"caller_nid": "api_production_update_production_task_status", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1381"}, {"caller_nid": "api_production_update_production_task_status", "callee": "_task_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1381"}, {"caller_nid": "api_production_update_production_task_status", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1383"}, {"caller_nid": "api_production_update_production_task_status", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1383"}, {"caller_nid": "api_production_add_production_task_step", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1395"}, {"caller_nid": "api_production_add_production_task_step", "callee": "add_task_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1396"}, {"caller_nid": "api_production_add_production_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1397"}, {"caller_nid": "api_production_add_production_task_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1399"}, {"caller_nid": "api_production_add_production_task_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1401"}, {"caller_nid": "api_production_add_production_task_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1401"}, {"caller_nid": "api_production_update_production_task_step", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1414"}, {"caller_nid": "api_production_update_production_task_step", "callee": "update_task_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1415"}, {"caller_nid": "api_production_update_production_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1416"}, {"caller_nid": "api_production_update_production_task_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1418"}, {"caller_nid": "api_production_update_production_task_step", "callee": "_step_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1418"}, {"caller_nid": "api_production_update_production_task_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1420"}, {"caller_nid": "api_production_update_production_task_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1420"}, {"caller_nid": "api_production_delete_production_task_step", "callee": "delete_task_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1432"}, {"caller_nid": "api_production_delete_production_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1432"}, {"caller_nid": "api_production_delete_production_task_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1433"}, {"caller_nid": "api_production_delete_production_task_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1435"}, {"caller_nid": "api_production_delete_production_task_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1435"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1450"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1451"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1452"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1453"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1454"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1455"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1456"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1457"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1458"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1459"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "replace_step_reagents", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1461"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1461"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1462"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1464"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1464"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1479"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1480"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1481"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1482"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1483"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1484"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1485"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1486"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1487"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1488"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "replace_step_consumables", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1490"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1490"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1491"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1493"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1493"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1506"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "replace_step_data_collections", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1507"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1507"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1508"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1510"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1510"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1522"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "set_task_inputs", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1523"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1523"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1524"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1526"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1526"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1538"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "set_task_outputs", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1539"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1539"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1540"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1542"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1542"}, {"caller_nid": "api_production_get_next_cell_product_code", "callee": "get_next_code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1558"}, {"caller_nid": "api_production_get_next_cell_product_code", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1559"}, {"caller_nid": "api_production_get_next_cell_product_code", "callee": "reserve_next_codes", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1560"}, {"caller_nid": "api_production_get_next_cell_product_code", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1561"}, {"caller_nid": "api_production_list_cell_products", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1586"}, {"caller_nid": "api_production_list_cell_products", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1587"}, {"caller_nid": "api_production_list_cell_products", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1588"}, {"caller_nid": "api_production_list_cell_products", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1589"}, {"caller_nid": "api_production_get_cell_product_detail", "callee": "get_cell_product", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1599"}, {"caller_nid": "api_production_get_cell_product_detail", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1601"}, {"caller_nid": "api_production_get_cell_product_detail", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1602"}, {"caller_nid": "api_production_get_cell_product_detail", "callee": "product_to_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1602"}, {"caller_nid": "api_production_create_cell_product", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1614"}, {"caller_nid": "api_production_create_cell_product", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1615"}, {"caller_nid": "api_production_create_cell_product", "callee": "min", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1615"}, {"caller_nid": "api_production_create_cell_product", "callee": "create_cell_products_batch", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1617"}, {"caller_nid": "api_production_create_cell_product", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1620"}, {"caller_nid": "api_production_create_cell_product", "callee": "create_cell_products_by_quantity", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1626"}, {"caller_nid": "api_production_create_cell_product", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1629"}, {"caller_nid": "api_production_create_cell_product", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1636"}, {"caller_nid": "api_production_create_cell_product", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1639"}, {"caller_nid": "api_production_create_cell_product", "callee": "product_to_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1640"}, {"caller_nid": "api_production_create_cell_product", "callee": "product_to_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1643"}, {"caller_nid": "api_production_create_cell_product", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1645"}, {"caller_nid": "api_production_create_cell_product", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1646"}, {"caller_nid": "api_production_create_cell_product", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1651"}, {"caller_nid": "api_production_create_cell_product", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1651"}, {"caller_nid": "api_production_update_cell_product", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1664"}, {"caller_nid": "api_production_update_cell_product", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1666"}, {"caller_nid": "api_production_update_cell_product", "callee": "product_to_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1667"}, {"caller_nid": "api_production_update_cell_product", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1670"}, {"caller_nid": "api_production_update_cell_product", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1670"}, {"caller_nid": "api_production_delete_cell_product", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1681"}, {"caller_nid": "api_production_delete_cell_product", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1682"}, {"caller_nid": "api_production_delete_cell_product", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1684"}, {"caller_nid": "api_production_delete_cell_product", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1684"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/268b15ab5a8bcd771c9aa8e7b978ce5396a74e8f875b4cb7409fa30a006d229f.json b/backend/app/graphify-out/cache/ast/268b15ab5a8bcd771c9aa8e7b978ce5396a74e8f875b4cb7409fa30a006d229f.json new file mode 100644 index 00000000..1a6c3294 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/268b15ab5a8bcd771c9aa8e7b978ce5396a74e8f875b4cb7409fa30a006d229f.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "label": "cell_product.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L1"}, {"id": "schemas_cell_product_coerce_optional_datetime", "label": "_coerce_optional_datetime()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L9"}, {"id": "schemas_cell_product_cellproductbatchitem", "label": "CellProductBatchItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L23"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "schemas_cell_product_cellproductcreate", "label": "CellProductCreate", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L32"}, {"id": "schemas_cell_product_coerce_date_fields", "label": "coerce_date_fields()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L56"}, {"id": "schemas_cell_product_validate_viability", "label": "validate_viability()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L61"}, {"id": "schemas_cell_product_validate_passage", "label": "validate_passage()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L68"}, {"id": "schemas_cell_product_cellproductupdate", "label": "CellProductUpdate", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L77"}, {"id": "schemas_cell_product_validate_status", "label": "validate_status()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L120"}, {"id": "schemas_cell_product_cellproductlistquery", "label": "CellProductListQuery", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L126"}, {"id": "schemas_cell_product_rationale_10", "label": "\u517c\u5bb9\u524d\u7aef date-picker \u7684 YYYY-MM-DD \u4e0e\u5b8c\u6574\u65e5\u671f\u65f6\u95f4\u5b57\u7b26\u4e32\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L10"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "pydantic", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_coerce_optional_datetime", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_cellproductbatchitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L23", "weight": 1.0}, {"source": "schemas_cell_product_cellproductbatchitem", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_cellproductcreate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L32", "weight": 1.0}, {"source": "schemas_cell_product_cellproductcreate", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_coerce_date_fields", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L56", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_validate_viability", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L61", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_validate_passage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L68", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_cellproductupdate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L77", "weight": 1.0}, {"source": "schemas_cell_product_cellproductupdate", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L77", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_coerce_date_fields", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L98", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_validate_viability", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L103", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_validate_passage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L110", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_validate_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L120", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_cellproductlistquery", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L126", "weight": 1.0}, {"source": "schemas_cell_product_cellproductlistquery", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L126", "weight": 1.0}, {"source": "schemas_cell_product_coerce_date_fields", "target": "schemas_cell_product_coerce_optional_datetime", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L57", "weight": 1.0}, {"source": "schemas_cell_product_rationale_10", "target": "schemas_cell_product_coerce_optional_datetime", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L10", "weight": 1.0}], "raw_calls": [{"caller_nid": "schemas_cell_product_coerce_optional_datetime", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L13"}, {"caller_nid": "schemas_cell_product_coerce_optional_datetime", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L15"}, {"caller_nid": "schemas_cell_product_coerce_optional_datetime", "callee": "parse_datetime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L16"}, {"caller_nid": "schemas_cell_product_coerce_optional_datetime", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L16"}, {"caller_nid": "schemas_cell_product_coerce_optional_datetime", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L19"}, {"caller_nid": "schemas_cell_product_validate_viability", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L63"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "range", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L70"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L71"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L72"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L73"}, {"caller_nid": "schemas_cell_product_validate_viability", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L105"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "range", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L112"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L113"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L114"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L115"}, {"caller_nid": "schemas_cell_product_validate_status", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L122"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/54826378969b6b392c2f7ee30ffa4c4a506f660422d2b7fa87f8cc3cfc862cd4.json b/backend/app/graphify-out/cache/ast/54826378969b6b392c2f7ee30ffa4c4a506f660422d2b7fa87f8cc3cfc862cd4.json new file mode 100644 index 00000000..041d82ff --- /dev/null +++ b/backend/app/graphify-out/cache/ast/54826378969b6b392c2f7ee30ffa4c4a506f660422d2b7fa87f8cc3cfc862cd4.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "label": "production.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1"}, {"id": "api_production_get_tenant_no", "label": "_get_tenant_no()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L52"}, {"id": "api_production_consumablecreatebody", "label": "ConsumableCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L65"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "api_production_consumableupdatebody", "label": "ConsumableUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L77"}, {"id": "api_production_list_consumables", "label": "list_consumables()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L90"}, {"id": "api_production_list_all_consumables", "label": "list_all_consumables()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L104"}, {"id": "api_production_create_consumable", "label": "create_consumable()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L114"}, {"id": "api_production_update_consumable", "label": "update_consumable()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L140"}, {"id": "api_production_delete_consumable", "label": "delete_consumable()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L167"}, {"id": "api_production_reagentcreatebody", "label": "ReagentCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L184"}, {"id": "api_production_reagentupdatebody", "label": "ReagentUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L196"}, {"id": "api_production_list_reagents", "label": "list_reagents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L209"}, {"id": "api_production_list_all_reagents", "label": "list_all_reagents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L223"}, {"id": "api_production_create_reagent", "label": "create_reagent()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L233"}, {"id": "api_production_update_reagent", "label": "update_reagent()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L259"}, {"id": "api_production_delete_reagent", "label": "delete_reagent()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L286"}, {"id": "api_production_sopdocumentcreatebody", "label": "SopDocumentCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L303"}, {"id": "api_production_sopdocumentupdatebody", "label": "SopDocumentUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L313"}, {"id": "api_production_list_sop_documents", "label": "list_sop_documents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L324"}, {"id": "api_production_list_all_sop_documents", "label": "list_all_sop_documents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L338"}, {"id": "api_production_create_sop_document", "label": "create_sop_document()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L348"}, {"id": "api_production_update_sop_document", "label": "update_sop_document()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L375"}, {"id": "api_production_delete_sop_document", "label": "delete_sop_document()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L404"}, {"id": "api_production_processcategorycreatebody", "label": "ProcessCategoryCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L421"}, {"id": "api_production_processcategoryupdatebody", "label": "ProcessCategoryUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L429"}, {"id": "api_production_list_process_categories", "label": "list_process_categories()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L438"}, {"id": "api_production_list_all_process_categories", "label": "list_all_process_categories()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L452"}, {"id": "api_production_create_process_category", "label": "create_process_category()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L462"}, {"id": "api_production_update_process_category", "label": "update_process_category()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L484"}, {"id": "api_production_delete_process_category", "label": "delete_process_category()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L507"}, {"id": "api_production_outputtypecreatebody", "label": "OutputTypeCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L524"}, {"id": "api_production_outputtypeupdatebody", "label": "OutputTypeUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L532"}, {"id": "api_production_list_output_types", "label": "list_output_types()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L541"}, {"id": "api_production_list_all_output_types", "label": "list_all_output_types()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L555"}, {"id": "api_production_create_output_type", "label": "create_output_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L565"}, {"id": "api_production_update_output_type", "label": "update_output_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L587"}, {"id": "api_production_delete_output_type", "label": "delete_output_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L610"}, {"id": "api_production_packiteminput", "label": "PackItemInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L627"}, {"id": "api_production_consumablepackcreatebody", "label": "ConsumablePackCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L637"}, {"id": "api_production_consumablepackupdatebody", "label": "ConsumablePackUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L649"}, {"id": "api_production_list_consumable_packs", "label": "list_consumable_packs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L662"}, {"id": "api_production_list_all_consumable_packs", "label": "list_all_consumable_packs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L676"}, {"id": "api_production_get_consumable_pack_detail", "label": "get_consumable_pack_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L686"}, {"id": "api_production_create_consumable_pack", "label": "create_consumable_pack()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L698"}, {"id": "api_production_update_consumable_pack", "label": "update_consumable_pack()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L725"}, {"id": "api_production_delete_consumable_pack", "label": "delete_consumable_pack()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L753"}, {"id": "api_production_processreagentinput", "label": "ProcessReagentInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L770"}, {"id": "api_production_processconsumableinput", "label": "ProcessConsumableInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L781"}, {"id": "api_production_processoutputinput", "label": "ProcessOutputInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L792"}, {"id": "api_production_processdatacollectioninput", "label": "ProcessDataCollectionInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L800"}, {"id": "api_production_processcreatebody", "label": "ProcessCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L808"}, {"id": "api_production_processupdatebody", "label": "ProcessUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L825"}, {"id": "api_production_list_processes", "label": "list_processes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L843"}, {"id": "api_production_list_all_processes", "label": "list_all_processes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L857"}, {"id": "api_production_get_process_detail", "label": "get_process_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L867"}, {"id": "api_production_create_process", "label": "create_process()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L879"}, {"id": "api_production_update_process", "label": "update_process()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L921"}, {"id": "api_production_delete_process", "label": "delete_process()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L964"}, {"id": "api_production_list_process_routes", "label": "list_process_routes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L982"}, {"id": "api_production_get_process_route_detail", "label": "get_process_route_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1003"}, {"id": "api_production_create_process_route", "label": "create_process_route()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1015"}, {"id": "api_production_update_process_route", "label": "update_process_route()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1038"}, {"id": "api_production_set_current_process_route", "label": "set_current_process_route()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1061"}, {"id": "api_production_delete_process_route", "label": "delete_process_route()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1075"}, {"id": "api_production_add_route_step", "label": "add_route_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1090"}, {"id": "api_production_copy_route_step", "label": "copy_route_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1111"}, {"id": "api_production_update_route_step", "label": "update_route_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1130"}, {"id": "api_production_reorder_route_steps", "label": "reorder_route_steps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1145"}, {"id": "api_production_delete_route_step", "label": "delete_route_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1158"}, {"id": "api_production_update_step_reagents", "label": "update_step_reagents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1173"}, {"id": "api_production_update_step_consumables", "label": "update_step_consumables()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1188"}, {"id": "api_production_update_step_outputs", "label": "update_step_outputs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1203"}, {"id": "api_production_update_step_data_collections", "label": "update_step_data_collections()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1218"}, {"id": "api_production_list_production_work_orders", "label": "list_production_work_orders()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1238"}, {"id": "api_production_get_production_work_order", "label": "get_production_work_order()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1265"}, {"id": "api_production_complete_production_work_order", "label": "complete_production_work_order()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1278"}, {"id": "api_production_create_production_task", "label": "create_production_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1300"}, {"id": "api_production_list_production_tasks", "label": "list_production_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1319"}, {"id": "api_production_get_production_task_detail", "label": "get_production_task_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1339"}, {"id": "api_production_update_production_task", "label": "update_production_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1352"}, {"id": "api_production_update_production_task_status", "label": "update_production_task_status()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1370"}, {"id": "api_production_add_production_task_step", "label": "add_production_task_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1387"}, {"id": "api_production_update_production_task_step", "label": "update_production_task_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1405"}, {"id": "api_production_delete_production_task_step", "label": "delete_production_task_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1424"}, {"id": "api_production_replace_task_step_reagents", "label": "replace_task_step_reagents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1439"}, {"id": "api_production_replace_task_step_consumables", "label": "replace_task_step_consumables()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1468"}, {"id": "api_production_replace_task_step_data_collections", "label": "replace_task_step_data_collections()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1497"}, {"id": "api_production_set_production_task_inputs", "label": "set_production_task_inputs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1514"}, {"id": "api_production_set_production_task_outputs", "label": "set_production_task_outputs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1530"}, {"id": "api_production_get_next_cell_product_code", "label": "get_next_cell_product_code()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1551"}, {"id": "api_production_list_cell_products", "label": "list_cell_products()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1565"}, {"id": "api_production_get_cell_product_detail", "label": "get_cell_product_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1593"}, {"id": "api_production_create_cell_product", "label": "create_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1606"}, {"id": "api_production_update_cell_product", "label": "update_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1643"}, {"id": "api_production_delete_cell_product", "label": "delete_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1662"}, {"id": "api_production_rationale_1", "label": "\u751f\u4ea7\u7ba1\u7406 API \u8def\u7531\uff087 \u4e2a\u5b50\u6a21\u5757\uff1a\u8017\u6750\u3001\u8bd5\u5242\u3001SOP\u6587\u6863\u3001\u5de5\u827a\u5de5\u5e8f\u5206\u7c7b\u3001\u4ea7\u51fa\u7269\u7c7b\u578b\u3001\u8017\u6750\u5305\u3001\u5de5\u827a\u5e93\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "fastapi", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "pydantic", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_core_database", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_core_menu_guard", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_core_response", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_schemas_process_route", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L31", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L33", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L34", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_schemas_production_work_order", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L35", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_schemas_production_task", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_schemas_cell_product", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L47", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_tenant_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L52", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_consumablecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L65", "weight": 1.0}, {"source": "api_production_consumablecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L65", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_consumableupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L77", "weight": 1.0}, {"source": "api_production_consumableupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L77", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_consumables", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L90", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_consumables", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L104", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_consumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L114", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_consumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L140", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_consumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L167", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_reagentcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L184", "weight": 1.0}, {"source": "api_production_reagentcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L184", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_reagentupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L196", "weight": 1.0}, {"source": "api_production_reagentupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L196", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_reagents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L209", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_reagents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L223", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_reagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L233", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_reagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L259", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_reagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L286", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_sopdocumentcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L303", "weight": 1.0}, {"source": "api_production_sopdocumentcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L303", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_sopdocumentupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L313", "weight": 1.0}, {"source": "api_production_sopdocumentupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L313", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_sop_documents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L324", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_sop_documents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L338", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_sop_document", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L348", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_sop_document", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L375", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_sop_document", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L404", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processcategorycreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L421", "weight": 1.0}, {"source": "api_production_processcategorycreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L421", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processcategoryupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L429", "weight": 1.0}, {"source": "api_production_processcategoryupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L429", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_process_categories", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L438", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_process_categories", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L452", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_process_category", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L462", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_process_category", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L484", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_process_category", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L507", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_outputtypecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L524", "weight": 1.0}, {"source": "api_production_outputtypecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L524", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_outputtypeupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L532", "weight": 1.0}, {"source": "api_production_outputtypeupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L532", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_output_types", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L541", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_output_types", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L555", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_output_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L565", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_output_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L587", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_output_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L610", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_packiteminput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L627", "weight": 1.0}, {"source": "api_production_packiteminput", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L627", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_consumablepackcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L637", "weight": 1.0}, {"source": "api_production_consumablepackcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L637", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_consumablepackupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L649", "weight": 1.0}, {"source": "api_production_consumablepackupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L649", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_consumable_packs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L662", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_consumable_packs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L676", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_consumable_pack_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L686", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_consumable_pack", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L698", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_consumable_pack", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L725", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_consumable_pack", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L753", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processreagentinput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L770", "weight": 1.0}, {"source": "api_production_processreagentinput", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L770", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processconsumableinput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L781", "weight": 1.0}, {"source": "api_production_processconsumableinput", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L781", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processoutputinput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L792", "weight": 1.0}, {"source": "api_production_processoutputinput", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L792", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processdatacollectioninput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L800", "weight": 1.0}, {"source": "api_production_processdatacollectioninput", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L800", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L808", "weight": 1.0}, {"source": "api_production_processcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L808", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L825", "weight": 1.0}, {"source": "api_production_processupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L825", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_processes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L843", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_processes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L857", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_process_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L867", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_process", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L879", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_process", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L921", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_process", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L964", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_process_routes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L982", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_process_route_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1003", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_process_route", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1015", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_process_route", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1038", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_set_current_process_route", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1061", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_process_route", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1075", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_add_route_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1090", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_copy_route_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_route_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1130", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_reorder_route_steps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1145", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_route_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1158", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_step_reagents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1173", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_step_consumables", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1188", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_step_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1203", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_step_data_collections", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1218", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_production_work_orders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1238", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_production_work_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1265", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_complete_production_work_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1278", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_production_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1300", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_production_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1319", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_production_task_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1339", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_production_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1352", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_production_task_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1370", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_add_production_task_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1387", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_production_task_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1405", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_production_task_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1424", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_replace_task_step_reagents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1439", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_replace_task_step_consumables", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1468", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_replace_task_step_data_collections", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1497", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_set_production_task_inputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1514", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_set_production_task_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1530", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_next_cell_product_code", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1551", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_cell_products", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1565", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_cell_product_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1593", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1606", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1643", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1662", "weight": 1.0}, {"source": "api_production_list_consumables", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L97", "weight": 1.0}, {"source": "api_production_list_all_consumables", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L108", "weight": 1.0}, {"source": "api_production_list_all_consumables", "target": "api_production_list_consumables", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L109", "weight": 1.0}, {"source": "api_production_create_consumable", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L120", "weight": 1.0}, {"source": "api_production_list_reagents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L216", "weight": 1.0}, {"source": "api_production_list_all_reagents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L227", "weight": 1.0}, {"source": "api_production_list_all_reagents", "target": "api_production_list_reagents", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L228", "weight": 1.0}, {"source": "api_production_create_reagent", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L239", "weight": 1.0}, {"source": "api_production_list_sop_documents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L331", "weight": 1.0}, {"source": "api_production_list_all_sop_documents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L342", "weight": 1.0}, {"source": "api_production_list_all_sop_documents", "target": "api_production_list_sop_documents", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L343", "weight": 1.0}, {"source": "api_production_create_sop_document", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L354", "weight": 1.0}, {"source": "api_production_update_sop_document", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L394", "weight": 1.0}, {"source": "api_production_list_process_categories", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L445", "weight": 1.0}, {"source": "api_production_list_all_process_categories", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L456", "weight": 1.0}, {"source": "api_production_list_all_process_categories", "target": "api_production_list_process_categories", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L457", "weight": 1.0}, {"source": "api_production_create_process_category", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L468", "weight": 1.0}, {"source": "api_production_list_output_types", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L548", "weight": 1.0}, {"source": "api_production_list_all_output_types", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L559", "weight": 1.0}, {"source": "api_production_list_all_output_types", "target": "api_production_list_output_types", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L560", "weight": 1.0}, {"source": "api_production_create_output_type", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L571", "weight": 1.0}, {"source": "api_production_list_consumable_packs", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L669", "weight": 1.0}, {"source": "api_production_list_all_consumable_packs", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L680", "weight": 1.0}, {"source": "api_production_create_consumable_pack", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L704", "weight": 1.0}, {"source": "api_production_list_processes", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L850", "weight": 1.0}, {"source": "api_production_list_all_processes", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L861", "weight": 1.0}, {"source": "api_production_create_process", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L885", "weight": 1.0}, {"source": "api_production_list_process_routes", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L991", "weight": 1.0}, {"source": "api_production_create_process_route", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1021", "weight": 1.0}, {"source": "api_production_set_current_process_route", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1067", "weight": 1.0}, {"source": "api_production_add_route_step", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1096", "weight": 1.0}, {"source": "api_production_copy_route_step", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1117", "weight": 1.0}, {"source": "api_production_update_step_reagents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1179", "weight": 1.0}, {"source": "api_production_update_step_consumables", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1194", "weight": 1.0}, {"source": "api_production_update_step_outputs", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1209", "weight": 1.0}, {"source": "api_production_update_step_data_collections", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1224", "weight": 1.0}, {"source": "api_production_list_production_work_orders", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1248", "weight": 1.0}, {"source": "api_production_get_production_work_order", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1270", "weight": 1.0}, {"source": "api_production_complete_production_work_order", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1285", "weight": 1.0}, {"source": "api_production_create_production_task", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1306", "weight": 1.0}, {"source": "api_production_list_production_tasks", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1328", "weight": 1.0}, {"source": "api_production_get_production_task_detail", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1344", "weight": 1.0}, {"source": "api_production_update_production_task", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1359", "weight": 1.0}, {"source": "api_production_update_production_task_status", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1377", "weight": 1.0}, {"source": "api_production_add_production_task_step", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1394", "weight": 1.0}, {"source": "api_production_update_production_task_step", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1413", "weight": 1.0}, {"source": "api_production_delete_production_task_step", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1431", "weight": 1.0}, {"source": "api_production_replace_task_step_reagents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1447", "weight": 1.0}, {"source": "api_production_replace_task_step_consumables", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1476", "weight": 1.0}, {"source": "api_production_replace_task_step_data_collections", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1505", "weight": 1.0}, {"source": "api_production_set_production_task_inputs", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1521", "weight": 1.0}, {"source": "api_production_set_production_task_outputs", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1537", "weight": 1.0}, {"source": "api_production_get_next_cell_product_code", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1556", "weight": 1.0}, {"source": "api_production_list_cell_products", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1577", "weight": 1.0}, {"source": "api_production_get_cell_product_detail", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1598", "weight": 1.0}, {"source": "api_production_create_cell_product", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1612", "weight": 1.0}, {"source": "api_production_update_cell_product", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1650", "weight": 1.0}, {"source": "api_production_delete_cell_product", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1668", "weight": 1.0}, {"source": "api_production_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "api_production_get_tenant_no", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L53"}, {"caller_nid": "api_production_get_tenant_no", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L56"}, {"caller_nid": "api_production_get_tenant_no", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L56"}, {"caller_nid": "api_production_get_tenant_no", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L56"}, {"caller_nid": "api_production_list_consumables", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L99"}, {"caller_nid": "api_production_list_consumables", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L100"}, {"caller_nid": "api_production_list_all_consumables", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L110"}, {"caller_nid": "api_production_create_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L132"}, {"caller_nid": "api_production_create_consumable", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L134"}, {"caller_nid": "api_production_create_consumable", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L134"}, {"caller_nid": "api_production_create_consumable", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L136"}, {"caller_nid": "api_production_create_consumable", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L136"}, {"caller_nid": "api_production_update_consumable", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L147"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L151"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L152"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L153"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L154"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L155"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L156"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L157"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L158"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L159"}, {"caller_nid": "api_production_update_consumable", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L161"}, {"caller_nid": "api_production_update_consumable", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L161"}, {"caller_nid": "api_production_update_consumable", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L163"}, {"caller_nid": "api_production_update_consumable", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L163"}, {"caller_nid": "api_production_delete_consumable", "callee": "soft_delete_consumable", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L173"}, {"caller_nid": "api_production_delete_consumable", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L174"}, {"caller_nid": "api_production_delete_consumable", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L176"}, {"caller_nid": "api_production_delete_consumable", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L176"}, {"caller_nid": "api_production_list_reagents", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L218"}, {"caller_nid": "api_production_list_reagents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L219"}, {"caller_nid": "api_production_list_all_reagents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L229"}, {"caller_nid": "api_production_create_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L251"}, {"caller_nid": "api_production_create_reagent", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L253"}, {"caller_nid": "api_production_create_reagent", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L253"}, {"caller_nid": "api_production_create_reagent", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L255"}, {"caller_nid": "api_production_create_reagent", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L255"}, {"caller_nid": "api_production_update_reagent", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L266"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L270"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L271"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L272"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L273"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L274"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L275"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L276"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L277"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L278"}, {"caller_nid": "api_production_update_reagent", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L280"}, {"caller_nid": "api_production_update_reagent", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L280"}, {"caller_nid": "api_production_update_reagent", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L282"}, {"caller_nid": "api_production_update_reagent", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L282"}, {"caller_nid": "api_production_delete_reagent", "callee": "soft_delete_reagent", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L292"}, {"caller_nid": "api_production_delete_reagent", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L293"}, {"caller_nid": "api_production_delete_reagent", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L295"}, {"caller_nid": "api_production_delete_reagent", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L295"}, {"caller_nid": "api_production_list_sop_documents", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L333"}, {"caller_nid": "api_production_list_sop_documents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L334"}, {"caller_nid": "api_production_list_all_sop_documents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L344"}, {"caller_nid": "api_production_create_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L364"}, {"caller_nid": "api_production_create_sop_document", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L366"}, {"caller_nid": "api_production_create_sop_document", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L367"}, {"caller_nid": "api_production_create_sop_document", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L371"}, {"caller_nid": "api_production_create_sop_document", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L371"}, {"caller_nid": "api_production_update_sop_document", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L382"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L386"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L387"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L388"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L389"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L390"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L391"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L392"}, {"caller_nid": "api_production_update_sop_document", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L395"}, {"caller_nid": "api_production_update_sop_document", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L396"}, {"caller_nid": "api_production_update_sop_document", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L400"}, {"caller_nid": "api_production_update_sop_document", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L400"}, {"caller_nid": "api_production_delete_sop_document", "callee": "soft_delete_sop_document", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L410"}, {"caller_nid": "api_production_delete_sop_document", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L411"}, {"caller_nid": "api_production_delete_sop_document", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L413"}, {"caller_nid": "api_production_delete_sop_document", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L413"}, {"caller_nid": "api_production_list_process_categories", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L447"}, {"caller_nid": "api_production_list_process_categories", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L448"}, {"caller_nid": "api_production_list_all_process_categories", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L458"}, {"caller_nid": "api_production_create_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L476"}, {"caller_nid": "api_production_create_process_category", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L478"}, {"caller_nid": "api_production_create_process_category", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L478"}, {"caller_nid": "api_production_create_process_category", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L480"}, {"caller_nid": "api_production_create_process_category", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L480"}, {"caller_nid": "api_production_update_process_category", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L491"}, {"caller_nid": "api_production_update_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L495"}, {"caller_nid": "api_production_update_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L496"}, {"caller_nid": "api_production_update_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L497"}, {"caller_nid": "api_production_update_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L498"}, {"caller_nid": "api_production_update_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L499"}, {"caller_nid": "api_production_update_process_category", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L501"}, {"caller_nid": "api_production_update_process_category", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L501"}, {"caller_nid": "api_production_update_process_category", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L503"}, {"caller_nid": "api_production_update_process_category", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L503"}, {"caller_nid": "api_production_delete_process_category", "callee": "soft_delete_process_category", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L513"}, {"caller_nid": "api_production_delete_process_category", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L514"}, {"caller_nid": "api_production_delete_process_category", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L516"}, {"caller_nid": "api_production_delete_process_category", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L516"}, {"caller_nid": "api_production_list_output_types", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L550"}, {"caller_nid": "api_production_list_output_types", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L551"}, {"caller_nid": "api_production_list_all_output_types", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L561"}, {"caller_nid": "api_production_create_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L579"}, {"caller_nid": "api_production_create_output_type", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L581"}, {"caller_nid": "api_production_create_output_type", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L581"}, {"caller_nid": "api_production_create_output_type", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L583"}, {"caller_nid": "api_production_create_output_type", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L583"}, {"caller_nid": "api_production_update_output_type", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L594"}, {"caller_nid": "api_production_update_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L598"}, {"caller_nid": "api_production_update_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L599"}, {"caller_nid": "api_production_update_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L600"}, {"caller_nid": "api_production_update_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L601"}, {"caller_nid": "api_production_update_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L602"}, {"caller_nid": "api_production_update_output_type", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L604"}, {"caller_nid": "api_production_update_output_type", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L604"}, {"caller_nid": "api_production_update_output_type", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L606"}, {"caller_nid": "api_production_update_output_type", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L606"}, {"caller_nid": "api_production_delete_output_type", "callee": "soft_delete_output_type", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L616"}, {"caller_nid": "api_production_delete_output_type", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L617"}, {"caller_nid": "api_production_delete_output_type", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L619"}, {"caller_nid": "api_production_delete_output_type", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L619"}, {"caller_nid": "api_production_list_consumable_packs", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L671"}, {"caller_nid": "api_production_list_consumable_packs", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L672"}, {"caller_nid": "api_production_list_all_consumable_packs", "callee": "list_all_packs", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L681"}, {"caller_nid": "api_production_list_all_consumable_packs", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L682"}, {"caller_nid": "api_production_get_consumable_pack_detail", "callee": "get_pack_detail", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L691"}, {"caller_nid": "api_production_get_consumable_pack_detail", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L693"}, {"caller_nid": "api_production_get_consumable_pack_detail", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L694"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L705"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L717"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L719"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L719"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L721"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L721"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L732"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L733"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L737"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L738"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L739"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L740"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L741"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L743"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L744"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L745"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L747"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L747"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L749"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L749"}, {"caller_nid": "api_production_delete_consumable_pack", "callee": "soft_delete_consumable_pack", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L759"}, {"caller_nid": "api_production_delete_consumable_pack", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L760"}, {"caller_nid": "api_production_delete_consumable_pack", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L762"}, {"caller_nid": "api_production_delete_consumable_pack", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L762"}, {"caller_nid": "api_production_list_processes", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L852"}, {"caller_nid": "api_production_list_processes", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L853"}, {"caller_nid": "api_production_list_all_processes", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L863"}, {"caller_nid": "api_production_get_process_detail", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L874"}, {"caller_nid": "api_production_get_process_detail", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L875"}, {"caller_nid": "api_production_create_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L886"}, {"caller_nid": "api_production_create_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L887"}, {"caller_nid": "api_production_create_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L888"}, {"caller_nid": "api_production_create_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L889"}, {"caller_nid": "api_production_create_process", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L892"}, {"caller_nid": "api_production_create_process", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L893"}, {"caller_nid": "api_production_create_process", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L895"}, {"caller_nid": "api_production_create_process", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L896"}, {"caller_nid": "api_production_create_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L913"}, {"caller_nid": "api_production_create_process", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L915"}, {"caller_nid": "api_production_create_process", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L915"}, {"caller_nid": "api_production_create_process", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L917"}, {"caller_nid": "api_production_create_process", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L917"}, {"caller_nid": "api_production_update_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L928"}, {"caller_nid": "api_production_update_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L929"}, {"caller_nid": "api_production_update_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L930"}, {"caller_nid": "api_production_update_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L931"}, {"caller_nid": "api_production_update_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L932"}, {"caller_nid": "api_production_update_process", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L935"}, {"caller_nid": "api_production_update_process", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L936"}, {"caller_nid": "api_production_update_process", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L938"}, {"caller_nid": "api_production_update_process", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L939"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L943"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L944"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L945"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L946"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L947"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L948"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L949"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L954"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L955"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L956"}, {"caller_nid": "api_production_update_process", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L958"}, {"caller_nid": "api_production_update_process", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L958"}, {"caller_nid": "api_production_update_process", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L960"}, {"caller_nid": "api_production_update_process", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L960"}, {"caller_nid": "api_production_delete_process", "callee": "soft_delete_process", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L970"}, {"caller_nid": "api_production_delete_process", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L971"}, {"caller_nid": "api_production_delete_process", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L973"}, {"caller_nid": "api_production_delete_process", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L973"}, {"caller_nid": "api_production_list_process_routes", "callee": "list_routes", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L992"}, {"caller_nid": "api_production_list_process_routes", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L998"}, {"caller_nid": "api_production_list_process_routes", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L999"}, {"caller_nid": "api_production_get_process_route_detail", "callee": "get_route_detail", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1008"}, {"caller_nid": "api_production_get_process_route_detail", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1010"}, {"caller_nid": "api_production_get_process_route_detail", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1011"}, {"caller_nid": "api_production_create_process_route", "callee": "create_route", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1022"}, {"caller_nid": "api_production_create_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1030"}, {"caller_nid": "api_production_create_process_route", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1032"}, {"caller_nid": "api_production_create_process_route", "callee": "_route_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1032"}, {"caller_nid": "api_production_create_process_route", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1034"}, {"caller_nid": "api_production_create_process_route", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1034"}, {"caller_nid": "api_production_update_process_route", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1045"}, {"caller_nid": "api_production_update_process_route", "callee": "update_route", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1046"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1048"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1049"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1050"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1051"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1052"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1053"}, {"caller_nid": "api_production_update_process_route", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1055"}, {"caller_nid": "api_production_update_process_route", "callee": "_route_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1055"}, {"caller_nid": "api_production_update_process_route", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1057"}, {"caller_nid": "api_production_update_process_route", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1057"}, {"caller_nid": "api_production_set_current_process_route", "callee": "set_current_route", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1068"}, {"caller_nid": "api_production_set_current_process_route", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1069"}, {"caller_nid": "api_production_set_current_process_route", "callee": "_route_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1069"}, {"caller_nid": "api_production_set_current_process_route", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1071"}, {"caller_nid": "api_production_set_current_process_route", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1071"}, {"caller_nid": "api_production_delete_process_route", "callee": "soft_delete_route", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1081"}, {"caller_nid": "api_production_delete_process_route", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1082"}, {"caller_nid": "api_production_delete_process_route", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1084"}, {"caller_nid": "api_production_delete_process_route", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1084"}, {"caller_nid": "api_production_add_route_step", "callee": "add_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1097"}, {"caller_nid": "api_production_add_route_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1103"}, {"caller_nid": "api_production_add_route_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1105"}, {"caller_nid": "api_production_add_route_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1107"}, {"caller_nid": "api_production_add_route_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1107"}, {"caller_nid": "api_production_copy_route_step", "callee": "copy_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1118"}, {"caller_nid": "api_production_copy_route_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1122"}, {"caller_nid": "api_production_copy_route_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1124"}, {"caller_nid": "api_production_copy_route_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1126"}, {"caller_nid": "api_production_copy_route_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1126"}, {"caller_nid": "api_production_update_route_step", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1136"}, {"caller_nid": "api_production_update_route_step", "callee": "pop", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1137"}, {"caller_nid": "api_production_update_route_step", "callee": "update_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1138"}, {"caller_nid": "api_production_update_route_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1138"}, {"caller_nid": "api_production_update_route_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1139"}, {"caller_nid": "api_production_update_route_step", "callee": "_step_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1139"}, {"caller_nid": "api_production_update_route_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1141"}, {"caller_nid": "api_production_update_route_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1141"}, {"caller_nid": "api_production_reorder_route_steps", "callee": "reorder_steps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1151"}, {"caller_nid": "api_production_reorder_route_steps", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1152"}, {"caller_nid": "api_production_reorder_route_steps", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1154"}, {"caller_nid": "api_production_reorder_route_steps", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1154"}, {"caller_nid": "api_production_delete_route_step", "callee": "soft_delete_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1164"}, {"caller_nid": "api_production_delete_route_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1165"}, {"caller_nid": "api_production_delete_route_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1167"}, {"caller_nid": "api_production_delete_route_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1167"}, {"caller_nid": "api_production_update_step_reagents", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1180"}, {"caller_nid": "api_production_update_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1181"}, {"caller_nid": "api_production_update_step_reagents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1182"}, {"caller_nid": "api_production_update_step_reagents", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1184"}, {"caller_nid": "api_production_update_step_reagents", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1184"}, {"caller_nid": "api_production_update_step_consumables", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1195"}, {"caller_nid": "api_production_update_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1196"}, {"caller_nid": "api_production_update_step_consumables", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1197"}, {"caller_nid": "api_production_update_step_consumables", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1199"}, {"caller_nid": "api_production_update_step_consumables", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1199"}, {"caller_nid": "api_production_update_step_outputs", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1210"}, {"caller_nid": "api_production_update_step_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1211"}, {"caller_nid": "api_production_update_step_outputs", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1212"}, {"caller_nid": "api_production_update_step_outputs", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1214"}, {"caller_nid": "api_production_update_step_outputs", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1214"}, {"caller_nid": "api_production_update_step_data_collections", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1225"}, {"caller_nid": "api_production_update_step_data_collections", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1226"}, {"caller_nid": "api_production_update_step_data_collections", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1227"}, {"caller_nid": "api_production_update_step_data_collections", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1229"}, {"caller_nid": "api_production_update_step_data_collections", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1229"}, {"caller_nid": "api_production_list_production_work_orders", "callee": "ProductionWorkOrderListQuery", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1249"}, {"caller_nid": "api_production_list_production_work_orders", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1258"}, {"caller_nid": "api_production_list_production_work_orders", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1259"}, {"caller_nid": "api_production_list_production_work_orders", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1260"}, {"caller_nid": "api_production_list_production_work_orders", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1261"}, {"caller_nid": "api_production_get_production_work_order", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1273"}, {"caller_nid": "api_production_get_production_work_order", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1274"}, {"caller_nid": "api_production_get_production_work_order", "callee": "_wo_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1274"}, {"caller_nid": "api_production_complete_production_work_order", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1287"}, {"caller_nid": "api_production_complete_production_work_order", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1289"}, {"caller_nid": "api_production_complete_production_work_order", "callee": "_wo_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1289"}, {"caller_nid": "api_production_complete_production_work_order", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1291"}, {"caller_nid": "api_production_complete_production_work_order", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1291"}, {"caller_nid": "api_production_create_production_task", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1307"}, {"caller_nid": "api_production_create_production_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1309"}, {"caller_nid": "api_production_create_production_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1312"}, {"caller_nid": "api_production_create_production_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1313"}, {"caller_nid": "api_production_create_production_task", "callee": "_task_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1313"}, {"caller_nid": "api_production_create_production_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1315"}, {"caller_nid": "api_production_create_production_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1315"}, {"caller_nid": "api_production_list_production_tasks", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1334"}, {"caller_nid": "api_production_list_production_tasks", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1335"}, {"caller_nid": "api_production_get_production_task_detail", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1347"}, {"caller_nid": "api_production_get_production_task_detail", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1348"}, {"caller_nid": "api_production_update_production_task", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1360"}, {"caller_nid": "api_production_update_production_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1362"}, {"caller_nid": "api_production_update_production_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1364"}, {"caller_nid": "api_production_update_production_task", "callee": "_task_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1364"}, {"caller_nid": "api_production_update_production_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1366"}, {"caller_nid": "api_production_update_production_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1366"}, {"caller_nid": "api_production_update_production_task_status", "callee": "update_task_status", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1378"}, {"caller_nid": "api_production_update_production_task_status", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1379"}, {"caller_nid": "api_production_update_production_task_status", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1381"}, {"caller_nid": "api_production_update_production_task_status", "callee": "_task_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1381"}, {"caller_nid": "api_production_update_production_task_status", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1383"}, {"caller_nid": "api_production_update_production_task_status", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1383"}, {"caller_nid": "api_production_add_production_task_step", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1395"}, {"caller_nid": "api_production_add_production_task_step", "callee": "add_task_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1396"}, {"caller_nid": "api_production_add_production_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1397"}, {"caller_nid": "api_production_add_production_task_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1399"}, {"caller_nid": "api_production_add_production_task_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1401"}, {"caller_nid": "api_production_add_production_task_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1401"}, {"caller_nid": "api_production_update_production_task_step", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1414"}, {"caller_nid": "api_production_update_production_task_step", "callee": "update_task_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1415"}, {"caller_nid": "api_production_update_production_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1416"}, {"caller_nid": "api_production_update_production_task_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1418"}, {"caller_nid": "api_production_update_production_task_step", "callee": "_step_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1418"}, {"caller_nid": "api_production_update_production_task_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1420"}, {"caller_nid": "api_production_update_production_task_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1420"}, {"caller_nid": "api_production_delete_production_task_step", "callee": "delete_task_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1432"}, {"caller_nid": "api_production_delete_production_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1432"}, {"caller_nid": "api_production_delete_production_task_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1433"}, {"caller_nid": "api_production_delete_production_task_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1435"}, {"caller_nid": "api_production_delete_production_task_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1435"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1450"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1451"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1452"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1453"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1454"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1455"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1456"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1457"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1458"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1459"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "replace_step_reagents", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1461"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1461"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1462"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1464"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1464"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1479"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1480"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1481"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1482"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1483"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1484"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1485"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1486"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1487"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1488"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "replace_step_consumables", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1490"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1490"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1491"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1493"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1493"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1506"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "replace_step_data_collections", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1507"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1507"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1508"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1510"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1510"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1522"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "set_task_inputs", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1523"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1523"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1524"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1526"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1526"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1538"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "set_task_outputs", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1539"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1539"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1540"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1542"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1542"}, {"caller_nid": "api_production_get_next_cell_product_code", "callee": "get_next_code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1558"}, {"caller_nid": "api_production_get_next_cell_product_code", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1559"}, {"caller_nid": "api_production_get_next_cell_product_code", "callee": "reserve_next_codes", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1560"}, {"caller_nid": "api_production_get_next_cell_product_code", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1561"}, {"caller_nid": "api_production_list_cell_products", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1586"}, {"caller_nid": "api_production_list_cell_products", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1587"}, {"caller_nid": "api_production_list_cell_products", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1588"}, {"caller_nid": "api_production_list_cell_products", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1589"}, {"caller_nid": "api_production_get_cell_product_detail", "callee": "get_cell_product", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1599"}, {"caller_nid": "api_production_get_cell_product_detail", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1601"}, {"caller_nid": "api_production_get_cell_product_detail", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1602"}, {"caller_nid": "api_production_get_cell_product_detail", "callee": "product_to_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1602"}, {"caller_nid": "api_production_create_cell_product", "callee": "create_cell_products_batch", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1615"}, {"caller_nid": "api_production_create_cell_product", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1618"}, {"caller_nid": "api_production_create_cell_product", "callee": "product_to_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1624"}, {"caller_nid": "api_production_create_cell_product", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1626"}, {"caller_nid": "api_production_create_cell_product", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1627"}, {"caller_nid": "api_production_create_cell_product", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1632"}, {"caller_nid": "api_production_create_cell_product", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1635"}, {"caller_nid": "api_production_create_cell_product", "callee": "product_to_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1636"}, {"caller_nid": "api_production_create_cell_product", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1639"}, {"caller_nid": "api_production_create_cell_product", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1639"}, {"caller_nid": "api_production_update_cell_product", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1652"}, {"caller_nid": "api_production_update_cell_product", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1654"}, {"caller_nid": "api_production_update_cell_product", "callee": "product_to_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1655"}, {"caller_nid": "api_production_update_cell_product", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1658"}, {"caller_nid": "api_production_update_cell_product", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1658"}, {"caller_nid": "api_production_delete_cell_product", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1669"}, {"caller_nid": "api_production_delete_cell_product", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1670"}, {"caller_nid": "api_production_delete_cell_product", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1672"}, {"caller_nid": "api_production_delete_cell_product", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1672"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/63291cf51fc23432df0f9b9dcbaff048ff7c13b389fed3d39c795881400480d5.json b/backend/app/graphify-out/cache/ast/63291cf51fc23432df0f9b9dcbaff048ff7c13b389fed3d39c795881400480d5.json new file mode 100644 index 00000000..65c00fce --- /dev/null +++ b/backend/app/graphify-out/cache/ast/63291cf51fc23432df0f9b9dcbaff048ff7c13b389fed3d39c795881400480d5.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "label": "production_work_order.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L1"}, {"id": "crud_production_work_order_fmt_dt", "label": "_fmt_dt()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L33"}, {"id": "crud_production_work_order_generate_work_order_no", "label": "_generate_work_order_no()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L37"}, {"id": "crud_production_work_order_wo_to_dict", "label": "_wo_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L56"}, {"id": "crud_production_work_order_enrich_wo_items", "label": "_enrich_wo_items()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L81"}, {"id": "crud_production_work_order_wo_to_response_dict", "label": "_wo_to_response_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L87"}, {"id": "crud_production_work_order_create_production_work_order_from_reception", "label": "create_production_work_order_from_reception()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L92"}, {"id": "crud_production_work_order_list_production_work_orders", "label": "list_production_work_orders()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L203"}, {"id": "crud_production_work_order_get_production_work_order", "label": "get_production_work_order()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L250"}, {"id": "crud_production_work_order_complete_production_work_order", "label": "complete_production_work_order()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L264"}, {"id": "crud_production_work_order_rationale_88", "label": "\u5de5\u5355\u54cd\u5e94\uff08\u542b\u63a5\u6536\u8bb0\u5f55\u5173\u8054\u7684\u6837\u672c\u7c7b\u578b\u3001\u63a5\u6536\u4eba\u3001\u63a5\u6536\u65f6\u95f4\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L88"}, {"id": "crud_production_work_order_rationale_99", "label": "\u63a5\u6536\u7ed3\u8bba\u4e3a js \u65f6\u521b\u5efa\u5f85\u914d\u7f6e\u5165\u5e93\u751f\u4ea7\u5de5\u5355\uff08flush\uff0c\u4e0d commit\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L99"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "app_models_research_donation", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "app_schemas_production_work_order", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "crud_production_work_order_fmt_dt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L33", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "crud_production_work_order_generate_work_order_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L37", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "crud_production_work_order_wo_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L56", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "crud_production_work_order_enrich_wo_items", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L81", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "crud_production_work_order_wo_to_response_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L87", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "crud_production_work_order_create_production_work_order_from_reception", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L92", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "crud_production_work_order_list_production_work_orders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L203", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "crud_production_work_order_get_production_work_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L250", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_work_order_py", "target": "crud_production_work_order_complete_production_work_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L264", "weight": 1.0}, {"source": "crud_production_work_order_wo_to_dict", "target": "crud_production_work_order_fmt_dt", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L76", "weight": 1.0}, {"source": "crud_production_work_order_wo_to_response_dict", "target": "crud_production_work_order_enrich_wo_items", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L89", "weight": 1.0}, {"source": "crud_production_work_order_wo_to_response_dict", "target": "crud_production_work_order_wo_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L89", "weight": 1.0}, {"source": "crud_production_work_order_create_production_work_order_from_reception", "target": "crud_production_work_order_generate_work_order_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L141", "weight": 1.0}, {"source": "crud_production_work_order_list_production_work_orders", "target": "crud_production_work_order_enrich_wo_items", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L246", "weight": 1.0}, {"source": "crud_production_work_order_list_production_work_orders", "target": "crud_production_work_order_wo_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L246", "weight": 1.0}, {"source": "crud_production_work_order_complete_production_work_order", "target": "crud_production_work_order_get_production_work_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L271", "weight": 1.0}, {"source": "crud_production_work_order_rationale_88", "target": "crud_production_work_order_wo_to_response_dict", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L88", "weight": 1.0}, {"source": "crud_production_work_order_rationale_99", "target": "crud_production_work_order_create_production_work_order_from_reception", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L99", "weight": 1.0}], "raw_calls": [{"caller_nid": "crud_production_work_order_fmt_dt", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L34"}, {"caller_nid": "crud_production_work_order_generate_work_order_no", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L38"}, {"caller_nid": "crud_production_work_order_generate_work_order_no", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L38"}, {"caller_nid": "crud_production_work_order_generate_work_order_no", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L41"}, {"caller_nid": "crud_production_work_order_generate_work_order_no", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L41"}, {"caller_nid": "crud_production_work_order_generate_work_order_no", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L41"}, {"caller_nid": "crud_production_work_order_generate_work_order_no", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L41"}, {"caller_nid": "crud_production_work_order_generate_work_order_no", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L44"}, {"caller_nid": "crud_production_work_order_generate_work_order_no", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L47"}, {"caller_nid": "crud_production_work_order_generate_work_order_no", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L52"}, {"caller_nid": "crud_production_work_order_wo_to_dict", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L65"}, {"caller_nid": "crud_production_work_order_wo_to_dict", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L66"}, {"caller_nid": "crud_production_work_order_wo_to_dict", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L67"}, {"caller_nid": "crud_production_work_order_wo_to_dict", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L68"}, {"caller_nid": "crud_production_work_order_wo_to_dict", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L71"}, {"caller_nid": "crud_production_work_order_enrich_wo_items", "callee": "_enrich_work_order_list_items", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L84"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L100"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L103"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L103"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L103"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L114"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L119"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L119"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L119"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L130"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L130"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L130"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "BizProductionWorkOrder", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L139"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L140"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L153"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L154"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L160"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L160"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L160"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L171"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L171"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L171"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "BizProductionWorkOrder", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L180"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L181"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L194"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L195"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L198"}, {"caller_nid": "crud_production_work_order_create_production_work_order_from_reception", "callee": "flush", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L199"}, {"caller_nid": "crud_production_work_order_list_production_work_orders", "callee": "scalar", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L236"}, {"caller_nid": "crud_production_work_order_list_production_work_orders", "callee": "with_entities", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L236"}, {"caller_nid": "crud_production_work_order_list_production_work_orders", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L236"}, {"caller_nid": "crud_production_work_order_list_production_work_orders", "callee": "_filtered", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L236"}, {"caller_nid": "crud_production_work_order_list_production_work_orders", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L236"}, {"caller_nid": "crud_production_work_order_list_production_work_orders", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L237"}, {"caller_nid": "crud_production_work_order_list_production_work_orders", "callee": "min", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L238"}, {"caller_nid": "crud_production_work_order_list_production_work_orders", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L238"}, {"caller_nid": "crud_production_work_order_list_production_work_orders", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L240"}, {"caller_nid": "crud_production_work_order_list_production_work_orders", "callee": "limit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L240"}, {"caller_nid": "crud_production_work_order_list_production_work_orders", "callee": "offset", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L240"}, {"caller_nid": "crud_production_work_order_list_production_work_orders", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L240"}, {"caller_nid": "crud_production_work_order_list_production_work_orders", "callee": "_filtered", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L240"}, {"caller_nid": "crud_production_work_order_list_production_work_orders", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L241"}, {"caller_nid": "crud_production_work_order_list_production_work_orders", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L247"}, {"caller_nid": "crud_production_work_order_get_production_work_order", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L254"}, {"caller_nid": "crud_production_work_order_get_production_work_order", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L254"}, {"caller_nid": "crud_production_work_order_get_production_work_order", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L254"}, {"caller_nid": "crud_production_work_order_complete_production_work_order", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L273"}, {"caller_nid": "crud_production_work_order_complete_production_work_order", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L275"}, {"caller_nid": "crud_production_work_order_complete_production_work_order", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L278"}, {"caller_nid": "crud_production_work_order_complete_production_work_order", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L281"}, {"caller_nid": "crud_production_work_order_complete_production_work_order", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L282"}, {"caller_nid": "crud_production_work_order_complete_production_work_order", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_work_order.py", "source_location": "L283"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/8582c6a6d8f4c97990bee390574bd03c8573650bd3f30829090f2fe667861cd5.json b/backend/app/graphify-out/cache/ast/8582c6a6d8f4c97990bee390574bd03c8573650bd3f30829090f2fe667861cd5.json new file mode 100644 index 00000000..a2cd75fe --- /dev/null +++ b/backend/app/graphify-out/cache/ast/8582c6a6d8f4c97990bee390574bd03c8573650bd3f30829090f2fe667861cd5.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "label": "production.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1"}, {"id": "api_production_get_tenant_no", "label": "_get_tenant_no()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L52"}, {"id": "api_production_consumablecreatebody", "label": "ConsumableCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L65"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "api_production_consumableupdatebody", "label": "ConsumableUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L77"}, {"id": "api_production_list_consumables", "label": "list_consumables()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L90"}, {"id": "api_production_list_all_consumables", "label": "list_all_consumables()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L104"}, {"id": "api_production_create_consumable", "label": "create_consumable()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L114"}, {"id": "api_production_update_consumable", "label": "update_consumable()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L140"}, {"id": "api_production_delete_consumable", "label": "delete_consumable()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L167"}, {"id": "api_production_reagentcreatebody", "label": "ReagentCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L184"}, {"id": "api_production_reagentupdatebody", "label": "ReagentUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L196"}, {"id": "api_production_list_reagents", "label": "list_reagents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L209"}, {"id": "api_production_list_all_reagents", "label": "list_all_reagents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L223"}, {"id": "api_production_create_reagent", "label": "create_reagent()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L233"}, {"id": "api_production_update_reagent", "label": "update_reagent()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L259"}, {"id": "api_production_delete_reagent", "label": "delete_reagent()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L286"}, {"id": "api_production_sopdocumentcreatebody", "label": "SopDocumentCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L303"}, {"id": "api_production_sopdocumentupdatebody", "label": "SopDocumentUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L313"}, {"id": "api_production_list_sop_documents", "label": "list_sop_documents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L324"}, {"id": "api_production_list_all_sop_documents", "label": "list_all_sop_documents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L338"}, {"id": "api_production_create_sop_document", "label": "create_sop_document()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L348"}, {"id": "api_production_update_sop_document", "label": "update_sop_document()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L375"}, {"id": "api_production_delete_sop_document", "label": "delete_sop_document()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L404"}, {"id": "api_production_processcategorycreatebody", "label": "ProcessCategoryCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L421"}, {"id": "api_production_processcategoryupdatebody", "label": "ProcessCategoryUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L429"}, {"id": "api_production_list_process_categories", "label": "list_process_categories()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L438"}, {"id": "api_production_list_all_process_categories", "label": "list_all_process_categories()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L452"}, {"id": "api_production_create_process_category", "label": "create_process_category()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L462"}, {"id": "api_production_update_process_category", "label": "update_process_category()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L484"}, {"id": "api_production_delete_process_category", "label": "delete_process_category()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L507"}, {"id": "api_production_outputtypecreatebody", "label": "OutputTypeCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L524"}, {"id": "api_production_outputtypeupdatebody", "label": "OutputTypeUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L532"}, {"id": "api_production_list_output_types", "label": "list_output_types()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L541"}, {"id": "api_production_list_all_output_types", "label": "list_all_output_types()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L555"}, {"id": "api_production_create_output_type", "label": "create_output_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L565"}, {"id": "api_production_update_output_type", "label": "update_output_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L587"}, {"id": "api_production_delete_output_type", "label": "delete_output_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L610"}, {"id": "api_production_packiteminput", "label": "PackItemInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L627"}, {"id": "api_production_consumablepackcreatebody", "label": "ConsumablePackCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L637"}, {"id": "api_production_consumablepackupdatebody", "label": "ConsumablePackUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L649"}, {"id": "api_production_list_consumable_packs", "label": "list_consumable_packs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L662"}, {"id": "api_production_list_all_consumable_packs", "label": "list_all_consumable_packs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L676"}, {"id": "api_production_get_consumable_pack_detail", "label": "get_consumable_pack_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L686"}, {"id": "api_production_create_consumable_pack", "label": "create_consumable_pack()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L698"}, {"id": "api_production_update_consumable_pack", "label": "update_consumable_pack()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L725"}, {"id": "api_production_delete_consumable_pack", "label": "delete_consumable_pack()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L753"}, {"id": "api_production_processreagentinput", "label": "ProcessReagentInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L770"}, {"id": "api_production_processconsumableinput", "label": "ProcessConsumableInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L781"}, {"id": "api_production_processoutputinput", "label": "ProcessOutputInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L792"}, {"id": "api_production_processdatacollectioninput", "label": "ProcessDataCollectionInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L800"}, {"id": "api_production_processcreatebody", "label": "ProcessCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L808"}, {"id": "api_production_processupdatebody", "label": "ProcessUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L825"}, {"id": "api_production_list_processes", "label": "list_processes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L843"}, {"id": "api_production_list_all_processes", "label": "list_all_processes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L857"}, {"id": "api_production_get_process_detail", "label": "get_process_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L867"}, {"id": "api_production_create_process", "label": "create_process()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L879"}, {"id": "api_production_update_process", "label": "update_process()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L921"}, {"id": "api_production_delete_process", "label": "delete_process()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L964"}, {"id": "api_production_list_process_routes", "label": "list_process_routes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L982"}, {"id": "api_production_get_process_route_detail", "label": "get_process_route_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1003"}, {"id": "api_production_create_process_route", "label": "create_process_route()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1015"}, {"id": "api_production_update_process_route", "label": "update_process_route()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1038"}, {"id": "api_production_set_current_process_route", "label": "set_current_process_route()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1061"}, {"id": "api_production_delete_process_route", "label": "delete_process_route()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1075"}, {"id": "api_production_add_route_step", "label": "add_route_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1090"}, {"id": "api_production_copy_route_step", "label": "copy_route_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1111"}, {"id": "api_production_update_route_step", "label": "update_route_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1130"}, {"id": "api_production_reorder_route_steps", "label": "reorder_route_steps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1145"}, {"id": "api_production_delete_route_step", "label": "delete_route_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1158"}, {"id": "api_production_update_step_reagents", "label": "update_step_reagents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1173"}, {"id": "api_production_update_step_consumables", "label": "update_step_consumables()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1188"}, {"id": "api_production_update_step_outputs", "label": "update_step_outputs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1203"}, {"id": "api_production_update_step_data_collections", "label": "update_step_data_collections()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1218"}, {"id": "api_production_list_production_work_orders", "label": "list_production_work_orders()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1238"}, {"id": "api_production_get_production_work_order", "label": "get_production_work_order()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1265"}, {"id": "api_production_complete_production_work_order", "label": "complete_production_work_order()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1278"}, {"id": "api_production_create_production_task", "label": "create_production_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1300"}, {"id": "api_production_list_production_tasks", "label": "list_production_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1319"}, {"id": "api_production_get_production_task_detail", "label": "get_production_task_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1339"}, {"id": "api_production_update_production_task", "label": "update_production_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1352"}, {"id": "api_production_update_production_task_status", "label": "update_production_task_status()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1370"}, {"id": "api_production_add_production_task_step", "label": "add_production_task_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1387"}, {"id": "api_production_update_production_task_step", "label": "update_production_task_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1405"}, {"id": "api_production_delete_production_task_step", "label": "delete_production_task_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1424"}, {"id": "api_production_replace_task_step_reagents", "label": "replace_task_step_reagents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1439"}, {"id": "api_production_replace_task_step_consumables", "label": "replace_task_step_consumables()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1468"}, {"id": "api_production_replace_task_step_data_collections", "label": "replace_task_step_data_collections()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1497"}, {"id": "api_production_set_production_task_inputs", "label": "set_production_task_inputs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1514"}, {"id": "api_production_set_production_task_outputs", "label": "set_production_task_outputs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1530"}, {"id": "api_production_get_next_cell_product_code", "label": "get_next_cell_product_code()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1551"}, {"id": "api_production_list_cell_products", "label": "list_cell_products()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1561"}, {"id": "api_production_get_cell_product_detail", "label": "get_cell_product_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1589"}, {"id": "api_production_create_cell_product", "label": "create_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1602"}, {"id": "api_production_update_cell_product", "label": "update_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1621"}, {"id": "api_production_delete_cell_product", "label": "delete_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1640"}, {"id": "api_production_rationale_1", "label": "\u751f\u4ea7\u7ba1\u7406 API \u8def\u7531\uff087 \u4e2a\u5b50\u6a21\u5757\uff1a\u8017\u6750\u3001\u8bd5\u5242\u3001SOP\u6587\u6863\u3001\u5de5\u827a\u5de5\u5e8f\u5206\u7c7b\u3001\u4ea7\u51fa\u7269\u7c7b\u578b\u3001\u8017\u6750\u5305\u3001\u5de5\u827a\u5e93\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "fastapi", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "pydantic", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_core_database", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_core_menu_guard", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_core_response", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_schemas_process_route", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L31", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L33", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L34", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_schemas_production_work_order", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L35", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_schemas_production_task", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "app_schemas_cell_product", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L47", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_tenant_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L52", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_consumablecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L65", "weight": 1.0}, {"source": "api_production_consumablecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L65", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_consumableupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L77", "weight": 1.0}, {"source": "api_production_consumableupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L77", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_consumables", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L90", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_consumables", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L104", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_consumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L114", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_consumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L140", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_consumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L167", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_reagentcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L184", "weight": 1.0}, {"source": "api_production_reagentcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L184", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_reagentupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L196", "weight": 1.0}, {"source": "api_production_reagentupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L196", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_reagents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L209", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_reagents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L223", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_reagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L233", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_reagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L259", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_reagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L286", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_sopdocumentcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L303", "weight": 1.0}, {"source": "api_production_sopdocumentcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L303", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_sopdocumentupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L313", "weight": 1.0}, {"source": "api_production_sopdocumentupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L313", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_sop_documents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L324", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_sop_documents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L338", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_sop_document", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L348", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_sop_document", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L375", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_sop_document", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L404", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processcategorycreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L421", "weight": 1.0}, {"source": "api_production_processcategorycreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L421", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processcategoryupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L429", "weight": 1.0}, {"source": "api_production_processcategoryupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L429", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_process_categories", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L438", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_process_categories", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L452", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_process_category", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L462", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_process_category", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L484", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_process_category", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L507", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_outputtypecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L524", "weight": 1.0}, {"source": "api_production_outputtypecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L524", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_outputtypeupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L532", "weight": 1.0}, {"source": "api_production_outputtypeupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L532", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_output_types", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L541", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_output_types", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L555", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_output_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L565", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_output_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L587", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_output_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L610", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_packiteminput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L627", "weight": 1.0}, {"source": "api_production_packiteminput", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L627", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_consumablepackcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L637", "weight": 1.0}, {"source": "api_production_consumablepackcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L637", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_consumablepackupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L649", "weight": 1.0}, {"source": "api_production_consumablepackupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L649", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_consumable_packs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L662", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_consumable_packs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L676", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_consumable_pack_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L686", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_consumable_pack", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L698", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_consumable_pack", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L725", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_consumable_pack", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L753", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processreagentinput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L770", "weight": 1.0}, {"source": "api_production_processreagentinput", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L770", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processconsumableinput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L781", "weight": 1.0}, {"source": "api_production_processconsumableinput", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L781", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processoutputinput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L792", "weight": 1.0}, {"source": "api_production_processoutputinput", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L792", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processdatacollectioninput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L800", "weight": 1.0}, {"source": "api_production_processdatacollectioninput", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L800", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L808", "weight": 1.0}, {"source": "api_production_processcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L808", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_processupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L825", "weight": 1.0}, {"source": "api_production_processupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L825", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_processes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L843", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_all_processes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L857", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_process_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L867", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_process", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L879", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_process", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L921", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_process", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L964", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_process_routes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L982", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_process_route_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1003", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_process_route", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1015", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_process_route", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1038", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_set_current_process_route", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1061", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_process_route", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1075", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_add_route_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1090", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_copy_route_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_route_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1130", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_reorder_route_steps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1145", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_route_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1158", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_step_reagents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1173", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_step_consumables", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1188", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_step_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1203", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_step_data_collections", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1218", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_production_work_orders", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1238", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_production_work_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1265", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_complete_production_work_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1278", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_production_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1300", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_production_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1319", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_production_task_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1339", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_production_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1352", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_production_task_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1370", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_add_production_task_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1387", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_production_task_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1405", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_production_task_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1424", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_replace_task_step_reagents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1439", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_replace_task_step_consumables", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1468", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_replace_task_step_data_collections", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1497", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_set_production_task_inputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1514", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_set_production_task_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1530", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_next_cell_product_code", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1551", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_list_cell_products", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1561", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_get_cell_product_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1589", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_create_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1602", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_update_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1621", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "target": "api_production_delete_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1640", "weight": 1.0}, {"source": "api_production_list_consumables", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L97", "weight": 1.0}, {"source": "api_production_list_all_consumables", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L108", "weight": 1.0}, {"source": "api_production_list_all_consumables", "target": "api_production_list_consumables", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L109", "weight": 1.0}, {"source": "api_production_create_consumable", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L120", "weight": 1.0}, {"source": "api_production_list_reagents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L216", "weight": 1.0}, {"source": "api_production_list_all_reagents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L227", "weight": 1.0}, {"source": "api_production_list_all_reagents", "target": "api_production_list_reagents", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L228", "weight": 1.0}, {"source": "api_production_create_reagent", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L239", "weight": 1.0}, {"source": "api_production_list_sop_documents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L331", "weight": 1.0}, {"source": "api_production_list_all_sop_documents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L342", "weight": 1.0}, {"source": "api_production_list_all_sop_documents", "target": "api_production_list_sop_documents", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L343", "weight": 1.0}, {"source": "api_production_create_sop_document", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L354", "weight": 1.0}, {"source": "api_production_update_sop_document", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L394", "weight": 1.0}, {"source": "api_production_list_process_categories", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L445", "weight": 1.0}, {"source": "api_production_list_all_process_categories", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L456", "weight": 1.0}, {"source": "api_production_list_all_process_categories", "target": "api_production_list_process_categories", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L457", "weight": 1.0}, {"source": "api_production_create_process_category", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L468", "weight": 1.0}, {"source": "api_production_list_output_types", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L548", "weight": 1.0}, {"source": "api_production_list_all_output_types", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L559", "weight": 1.0}, {"source": "api_production_list_all_output_types", "target": "api_production_list_output_types", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L560", "weight": 1.0}, {"source": "api_production_create_output_type", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L571", "weight": 1.0}, {"source": "api_production_list_consumable_packs", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L669", "weight": 1.0}, {"source": "api_production_list_all_consumable_packs", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L680", "weight": 1.0}, {"source": "api_production_create_consumable_pack", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L704", "weight": 1.0}, {"source": "api_production_list_processes", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L850", "weight": 1.0}, {"source": "api_production_list_all_processes", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L861", "weight": 1.0}, {"source": "api_production_create_process", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L885", "weight": 1.0}, {"source": "api_production_list_process_routes", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L991", "weight": 1.0}, {"source": "api_production_create_process_route", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1021", "weight": 1.0}, {"source": "api_production_set_current_process_route", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1067", "weight": 1.0}, {"source": "api_production_add_route_step", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1096", "weight": 1.0}, {"source": "api_production_copy_route_step", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1117", "weight": 1.0}, {"source": "api_production_update_step_reagents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1179", "weight": 1.0}, {"source": "api_production_update_step_consumables", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1194", "weight": 1.0}, {"source": "api_production_update_step_outputs", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1209", "weight": 1.0}, {"source": "api_production_update_step_data_collections", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1224", "weight": 1.0}, {"source": "api_production_list_production_work_orders", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1248", "weight": 1.0}, {"source": "api_production_get_production_work_order", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1270", "weight": 1.0}, {"source": "api_production_complete_production_work_order", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1285", "weight": 1.0}, {"source": "api_production_create_production_task", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1306", "weight": 1.0}, {"source": "api_production_list_production_tasks", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1328", "weight": 1.0}, {"source": "api_production_get_production_task_detail", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1344", "weight": 1.0}, {"source": "api_production_update_production_task", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1359", "weight": 1.0}, {"source": "api_production_update_production_task_status", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1377", "weight": 1.0}, {"source": "api_production_add_production_task_step", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1394", "weight": 1.0}, {"source": "api_production_update_production_task_step", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1413", "weight": 1.0}, {"source": "api_production_delete_production_task_step", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1431", "weight": 1.0}, {"source": "api_production_replace_task_step_reagents", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1447", "weight": 1.0}, {"source": "api_production_replace_task_step_consumables", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1476", "weight": 1.0}, {"source": "api_production_replace_task_step_data_collections", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1505", "weight": 1.0}, {"source": "api_production_set_production_task_inputs", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1521", "weight": 1.0}, {"source": "api_production_set_production_task_outputs", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1537", "weight": 1.0}, {"source": "api_production_get_next_cell_product_code", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1555", "weight": 1.0}, {"source": "api_production_list_cell_products", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1573", "weight": 1.0}, {"source": "api_production_get_cell_product_detail", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1594", "weight": 1.0}, {"source": "api_production_create_cell_product", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1608", "weight": 1.0}, {"source": "api_production_update_cell_product", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1628", "weight": 1.0}, {"source": "api_production_delete_cell_product", "target": "api_production_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1646", "weight": 1.0}, {"source": "api_production_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_api_production_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "api_production_get_tenant_no", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L53"}, {"caller_nid": "api_production_get_tenant_no", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L56"}, {"caller_nid": "api_production_get_tenant_no", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L56"}, {"caller_nid": "api_production_get_tenant_no", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L56"}, {"caller_nid": "api_production_list_consumables", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L99"}, {"caller_nid": "api_production_list_consumables", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L100"}, {"caller_nid": "api_production_list_all_consumables", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L110"}, {"caller_nid": "api_production_create_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L132"}, {"caller_nid": "api_production_create_consumable", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L134"}, {"caller_nid": "api_production_create_consumable", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L134"}, {"caller_nid": "api_production_create_consumable", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L136"}, {"caller_nid": "api_production_create_consumable", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L136"}, {"caller_nid": "api_production_update_consumable", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L147"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L151"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L152"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L153"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L154"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L155"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L156"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L157"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L158"}, {"caller_nid": "api_production_update_consumable", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L159"}, {"caller_nid": "api_production_update_consumable", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L161"}, {"caller_nid": "api_production_update_consumable", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L161"}, {"caller_nid": "api_production_update_consumable", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L163"}, {"caller_nid": "api_production_update_consumable", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L163"}, {"caller_nid": "api_production_delete_consumable", "callee": "soft_delete_consumable", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L173"}, {"caller_nid": "api_production_delete_consumable", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L174"}, {"caller_nid": "api_production_delete_consumable", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L176"}, {"caller_nid": "api_production_delete_consumable", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L176"}, {"caller_nid": "api_production_list_reagents", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L218"}, {"caller_nid": "api_production_list_reagents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L219"}, {"caller_nid": "api_production_list_all_reagents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L229"}, {"caller_nid": "api_production_create_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L251"}, {"caller_nid": "api_production_create_reagent", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L253"}, {"caller_nid": "api_production_create_reagent", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L253"}, {"caller_nid": "api_production_create_reagent", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L255"}, {"caller_nid": "api_production_create_reagent", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L255"}, {"caller_nid": "api_production_update_reagent", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L266"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L270"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L271"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L272"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L273"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L274"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L275"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L276"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L277"}, {"caller_nid": "api_production_update_reagent", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L278"}, {"caller_nid": "api_production_update_reagent", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L280"}, {"caller_nid": "api_production_update_reagent", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L280"}, {"caller_nid": "api_production_update_reagent", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L282"}, {"caller_nid": "api_production_update_reagent", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L282"}, {"caller_nid": "api_production_delete_reagent", "callee": "soft_delete_reagent", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L292"}, {"caller_nid": "api_production_delete_reagent", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L293"}, {"caller_nid": "api_production_delete_reagent", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L295"}, {"caller_nid": "api_production_delete_reagent", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L295"}, {"caller_nid": "api_production_list_sop_documents", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L333"}, {"caller_nid": "api_production_list_sop_documents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L334"}, {"caller_nid": "api_production_list_all_sop_documents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L344"}, {"caller_nid": "api_production_create_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L364"}, {"caller_nid": "api_production_create_sop_document", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L366"}, {"caller_nid": "api_production_create_sop_document", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L367"}, {"caller_nid": "api_production_create_sop_document", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L371"}, {"caller_nid": "api_production_create_sop_document", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L371"}, {"caller_nid": "api_production_update_sop_document", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L382"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L386"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L387"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L388"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L389"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L390"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L391"}, {"caller_nid": "api_production_update_sop_document", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L392"}, {"caller_nid": "api_production_update_sop_document", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L395"}, {"caller_nid": "api_production_update_sop_document", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L396"}, {"caller_nid": "api_production_update_sop_document", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L400"}, {"caller_nid": "api_production_update_sop_document", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L400"}, {"caller_nid": "api_production_delete_sop_document", "callee": "soft_delete_sop_document", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L410"}, {"caller_nid": "api_production_delete_sop_document", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L411"}, {"caller_nid": "api_production_delete_sop_document", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L413"}, {"caller_nid": "api_production_delete_sop_document", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L413"}, {"caller_nid": "api_production_list_process_categories", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L447"}, {"caller_nid": "api_production_list_process_categories", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L448"}, {"caller_nid": "api_production_list_all_process_categories", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L458"}, {"caller_nid": "api_production_create_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L476"}, {"caller_nid": "api_production_create_process_category", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L478"}, {"caller_nid": "api_production_create_process_category", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L478"}, {"caller_nid": "api_production_create_process_category", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L480"}, {"caller_nid": "api_production_create_process_category", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L480"}, {"caller_nid": "api_production_update_process_category", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L491"}, {"caller_nid": "api_production_update_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L495"}, {"caller_nid": "api_production_update_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L496"}, {"caller_nid": "api_production_update_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L497"}, {"caller_nid": "api_production_update_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L498"}, {"caller_nid": "api_production_update_process_category", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L499"}, {"caller_nid": "api_production_update_process_category", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L501"}, {"caller_nid": "api_production_update_process_category", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L501"}, {"caller_nid": "api_production_update_process_category", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L503"}, {"caller_nid": "api_production_update_process_category", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L503"}, {"caller_nid": "api_production_delete_process_category", "callee": "soft_delete_process_category", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L513"}, {"caller_nid": "api_production_delete_process_category", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L514"}, {"caller_nid": "api_production_delete_process_category", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L516"}, {"caller_nid": "api_production_delete_process_category", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L516"}, {"caller_nid": "api_production_list_output_types", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L550"}, {"caller_nid": "api_production_list_output_types", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L551"}, {"caller_nid": "api_production_list_all_output_types", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L561"}, {"caller_nid": "api_production_create_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L579"}, {"caller_nid": "api_production_create_output_type", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L581"}, {"caller_nid": "api_production_create_output_type", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L581"}, {"caller_nid": "api_production_create_output_type", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L583"}, {"caller_nid": "api_production_create_output_type", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L583"}, {"caller_nid": "api_production_update_output_type", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L594"}, {"caller_nid": "api_production_update_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L598"}, {"caller_nid": "api_production_update_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L599"}, {"caller_nid": "api_production_update_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L600"}, {"caller_nid": "api_production_update_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L601"}, {"caller_nid": "api_production_update_output_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L602"}, {"caller_nid": "api_production_update_output_type", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L604"}, {"caller_nid": "api_production_update_output_type", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L604"}, {"caller_nid": "api_production_update_output_type", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L606"}, {"caller_nid": "api_production_update_output_type", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L606"}, {"caller_nid": "api_production_delete_output_type", "callee": "soft_delete_output_type", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L616"}, {"caller_nid": "api_production_delete_output_type", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L617"}, {"caller_nid": "api_production_delete_output_type", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L619"}, {"caller_nid": "api_production_delete_output_type", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L619"}, {"caller_nid": "api_production_list_consumable_packs", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L671"}, {"caller_nid": "api_production_list_consumable_packs", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L672"}, {"caller_nid": "api_production_list_all_consumable_packs", "callee": "list_all_packs", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L681"}, {"caller_nid": "api_production_list_all_consumable_packs", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L682"}, {"caller_nid": "api_production_get_consumable_pack_detail", "callee": "get_pack_detail", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L691"}, {"caller_nid": "api_production_get_consumable_pack_detail", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L693"}, {"caller_nid": "api_production_get_consumable_pack_detail", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L694"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L705"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L717"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L719"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L719"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L721"}, {"caller_nid": "api_production_create_consumable_pack", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L721"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L732"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L733"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L737"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L738"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L739"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L740"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L741"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L743"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L744"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L745"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L747"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L747"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L749"}, {"caller_nid": "api_production_update_consumable_pack", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L749"}, {"caller_nid": "api_production_delete_consumable_pack", "callee": "soft_delete_consumable_pack", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L759"}, {"caller_nid": "api_production_delete_consumable_pack", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L760"}, {"caller_nid": "api_production_delete_consumable_pack", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L762"}, {"caller_nid": "api_production_delete_consumable_pack", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L762"}, {"caller_nid": "api_production_list_processes", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L852"}, {"caller_nid": "api_production_list_processes", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L853"}, {"caller_nid": "api_production_list_all_processes", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L863"}, {"caller_nid": "api_production_get_process_detail", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L874"}, {"caller_nid": "api_production_get_process_detail", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L875"}, {"caller_nid": "api_production_create_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L886"}, {"caller_nid": "api_production_create_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L887"}, {"caller_nid": "api_production_create_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L888"}, {"caller_nid": "api_production_create_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L889"}, {"caller_nid": "api_production_create_process", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L892"}, {"caller_nid": "api_production_create_process", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L893"}, {"caller_nid": "api_production_create_process", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L895"}, {"caller_nid": "api_production_create_process", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L896"}, {"caller_nid": "api_production_create_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L913"}, {"caller_nid": "api_production_create_process", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L915"}, {"caller_nid": "api_production_create_process", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L915"}, {"caller_nid": "api_production_create_process", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L917"}, {"caller_nid": "api_production_create_process", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L917"}, {"caller_nid": "api_production_update_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L928"}, {"caller_nid": "api_production_update_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L929"}, {"caller_nid": "api_production_update_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L930"}, {"caller_nid": "api_production_update_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L931"}, {"caller_nid": "api_production_update_process", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L932"}, {"caller_nid": "api_production_update_process", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L935"}, {"caller_nid": "api_production_update_process", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L936"}, {"caller_nid": "api_production_update_process", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L938"}, {"caller_nid": "api_production_update_process", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L939"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L943"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L944"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L945"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L946"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L947"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L948"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L949"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L954"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L955"}, {"caller_nid": "api_production_update_process", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L956"}, {"caller_nid": "api_production_update_process", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L958"}, {"caller_nid": "api_production_update_process", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L958"}, {"caller_nid": "api_production_update_process", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L960"}, {"caller_nid": "api_production_update_process", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L960"}, {"caller_nid": "api_production_delete_process", "callee": "soft_delete_process", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L970"}, {"caller_nid": "api_production_delete_process", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L971"}, {"caller_nid": "api_production_delete_process", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L973"}, {"caller_nid": "api_production_delete_process", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L973"}, {"caller_nid": "api_production_list_process_routes", "callee": "list_routes", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L992"}, {"caller_nid": "api_production_list_process_routes", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L998"}, {"caller_nid": "api_production_list_process_routes", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L999"}, {"caller_nid": "api_production_get_process_route_detail", "callee": "get_route_detail", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1008"}, {"caller_nid": "api_production_get_process_route_detail", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1010"}, {"caller_nid": "api_production_get_process_route_detail", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1011"}, {"caller_nid": "api_production_create_process_route", "callee": "create_route", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1022"}, {"caller_nid": "api_production_create_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1030"}, {"caller_nid": "api_production_create_process_route", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1032"}, {"caller_nid": "api_production_create_process_route", "callee": "_route_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1032"}, {"caller_nid": "api_production_create_process_route", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1034"}, {"caller_nid": "api_production_create_process_route", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1034"}, {"caller_nid": "api_production_update_process_route", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1045"}, {"caller_nid": "api_production_update_process_route", "callee": "update_route", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1046"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1048"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1049"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1050"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1051"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1052"}, {"caller_nid": "api_production_update_process_route", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1053"}, {"caller_nid": "api_production_update_process_route", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1055"}, {"caller_nid": "api_production_update_process_route", "callee": "_route_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1055"}, {"caller_nid": "api_production_update_process_route", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1057"}, {"caller_nid": "api_production_update_process_route", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1057"}, {"caller_nid": "api_production_set_current_process_route", "callee": "set_current_route", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1068"}, {"caller_nid": "api_production_set_current_process_route", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1069"}, {"caller_nid": "api_production_set_current_process_route", "callee": "_route_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1069"}, {"caller_nid": "api_production_set_current_process_route", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1071"}, {"caller_nid": "api_production_set_current_process_route", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1071"}, {"caller_nid": "api_production_delete_process_route", "callee": "soft_delete_route", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1081"}, {"caller_nid": "api_production_delete_process_route", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1082"}, {"caller_nid": "api_production_delete_process_route", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1084"}, {"caller_nid": "api_production_delete_process_route", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1084"}, {"caller_nid": "api_production_add_route_step", "callee": "add_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1097"}, {"caller_nid": "api_production_add_route_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1103"}, {"caller_nid": "api_production_add_route_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1105"}, {"caller_nid": "api_production_add_route_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1107"}, {"caller_nid": "api_production_add_route_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1107"}, {"caller_nid": "api_production_copy_route_step", "callee": "copy_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1118"}, {"caller_nid": "api_production_copy_route_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1122"}, {"caller_nid": "api_production_copy_route_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1124"}, {"caller_nid": "api_production_copy_route_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1126"}, {"caller_nid": "api_production_copy_route_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1126"}, {"caller_nid": "api_production_update_route_step", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1136"}, {"caller_nid": "api_production_update_route_step", "callee": "pop", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1137"}, {"caller_nid": "api_production_update_route_step", "callee": "update_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1138"}, {"caller_nid": "api_production_update_route_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1138"}, {"caller_nid": "api_production_update_route_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1139"}, {"caller_nid": "api_production_update_route_step", "callee": "_step_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1139"}, {"caller_nid": "api_production_update_route_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1141"}, {"caller_nid": "api_production_update_route_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1141"}, {"caller_nid": "api_production_reorder_route_steps", "callee": "reorder_steps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1151"}, {"caller_nid": "api_production_reorder_route_steps", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1152"}, {"caller_nid": "api_production_reorder_route_steps", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1154"}, {"caller_nid": "api_production_reorder_route_steps", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1154"}, {"caller_nid": "api_production_delete_route_step", "callee": "soft_delete_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1164"}, {"caller_nid": "api_production_delete_route_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1165"}, {"caller_nid": "api_production_delete_route_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1167"}, {"caller_nid": "api_production_delete_route_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1167"}, {"caller_nid": "api_production_update_step_reagents", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1180"}, {"caller_nid": "api_production_update_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1181"}, {"caller_nid": "api_production_update_step_reagents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1182"}, {"caller_nid": "api_production_update_step_reagents", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1184"}, {"caller_nid": "api_production_update_step_reagents", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1184"}, {"caller_nid": "api_production_update_step_consumables", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1195"}, {"caller_nid": "api_production_update_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1196"}, {"caller_nid": "api_production_update_step_consumables", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1197"}, {"caller_nid": "api_production_update_step_consumables", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1199"}, {"caller_nid": "api_production_update_step_consumables", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1199"}, {"caller_nid": "api_production_update_step_outputs", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1210"}, {"caller_nid": "api_production_update_step_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1211"}, {"caller_nid": "api_production_update_step_outputs", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1212"}, {"caller_nid": "api_production_update_step_outputs", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1214"}, {"caller_nid": "api_production_update_step_outputs", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1214"}, {"caller_nid": "api_production_update_step_data_collections", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1225"}, {"caller_nid": "api_production_update_step_data_collections", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1226"}, {"caller_nid": "api_production_update_step_data_collections", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1227"}, {"caller_nid": "api_production_update_step_data_collections", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1229"}, {"caller_nid": "api_production_update_step_data_collections", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1229"}, {"caller_nid": "api_production_list_production_work_orders", "callee": "ProductionWorkOrderListQuery", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1249"}, {"caller_nid": "api_production_list_production_work_orders", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1258"}, {"caller_nid": "api_production_list_production_work_orders", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1259"}, {"caller_nid": "api_production_list_production_work_orders", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1260"}, {"caller_nid": "api_production_list_production_work_orders", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1261"}, {"caller_nid": "api_production_get_production_work_order", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1273"}, {"caller_nid": "api_production_get_production_work_order", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1274"}, {"caller_nid": "api_production_get_production_work_order", "callee": "_wo_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1274"}, {"caller_nid": "api_production_complete_production_work_order", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1287"}, {"caller_nid": "api_production_complete_production_work_order", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1289"}, {"caller_nid": "api_production_complete_production_work_order", "callee": "_wo_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1289"}, {"caller_nid": "api_production_complete_production_work_order", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1291"}, {"caller_nid": "api_production_complete_production_work_order", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1291"}, {"caller_nid": "api_production_create_production_task", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1307"}, {"caller_nid": "api_production_create_production_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1309"}, {"caller_nid": "api_production_create_production_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1312"}, {"caller_nid": "api_production_create_production_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1313"}, {"caller_nid": "api_production_create_production_task", "callee": "_task_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1313"}, {"caller_nid": "api_production_create_production_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1315"}, {"caller_nid": "api_production_create_production_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1315"}, {"caller_nid": "api_production_list_production_tasks", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1334"}, {"caller_nid": "api_production_list_production_tasks", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1335"}, {"caller_nid": "api_production_get_production_task_detail", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1347"}, {"caller_nid": "api_production_get_production_task_detail", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1348"}, {"caller_nid": "api_production_update_production_task", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1360"}, {"caller_nid": "api_production_update_production_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1362"}, {"caller_nid": "api_production_update_production_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1364"}, {"caller_nid": "api_production_update_production_task", "callee": "_task_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1364"}, {"caller_nid": "api_production_update_production_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1366"}, {"caller_nid": "api_production_update_production_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1366"}, {"caller_nid": "api_production_update_production_task_status", "callee": "update_task_status", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1378"}, {"caller_nid": "api_production_update_production_task_status", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1379"}, {"caller_nid": "api_production_update_production_task_status", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1381"}, {"caller_nid": "api_production_update_production_task_status", "callee": "_task_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1381"}, {"caller_nid": "api_production_update_production_task_status", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1383"}, {"caller_nid": "api_production_update_production_task_status", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1383"}, {"caller_nid": "api_production_add_production_task_step", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1395"}, {"caller_nid": "api_production_add_production_task_step", "callee": "add_task_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1396"}, {"caller_nid": "api_production_add_production_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1397"}, {"caller_nid": "api_production_add_production_task_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1399"}, {"caller_nid": "api_production_add_production_task_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1401"}, {"caller_nid": "api_production_add_production_task_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1401"}, {"caller_nid": "api_production_update_production_task_step", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1414"}, {"caller_nid": "api_production_update_production_task_step", "callee": "update_task_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1415"}, {"caller_nid": "api_production_update_production_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1416"}, {"caller_nid": "api_production_update_production_task_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1418"}, {"caller_nid": "api_production_update_production_task_step", "callee": "_step_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1418"}, {"caller_nid": "api_production_update_production_task_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1420"}, {"caller_nid": "api_production_update_production_task_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1420"}, {"caller_nid": "api_production_delete_production_task_step", "callee": "delete_task_step", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1432"}, {"caller_nid": "api_production_delete_production_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1432"}, {"caller_nid": "api_production_delete_production_task_step", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1433"}, {"caller_nid": "api_production_delete_production_task_step", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1435"}, {"caller_nid": "api_production_delete_production_task_step", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1435"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1450"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1451"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1452"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1453"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1454"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1455"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1456"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1457"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1458"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1459"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "replace_step_reagents", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1461"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1461"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1462"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1464"}, {"caller_nid": "api_production_replace_task_step_reagents", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1464"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1479"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1480"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1481"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1482"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1483"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1484"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1485"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1486"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1487"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1488"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "replace_step_consumables", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1490"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1490"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1491"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1493"}, {"caller_nid": "api_production_replace_task_step_consumables", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1493"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1506"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "replace_step_data_collections", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1507"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1507"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1508"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1510"}, {"caller_nid": "api_production_replace_task_step_data_collections", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1510"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1522"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "set_task_inputs", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1523"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1523"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1524"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1526"}, {"caller_nid": "api_production_set_production_task_inputs", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1526"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1538"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "set_task_outputs", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1539"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1539"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1540"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1542"}, {"caller_nid": "api_production_set_production_task_outputs", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1542"}, {"caller_nid": "api_production_get_next_cell_product_code", "callee": "get_next_code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1556"}, {"caller_nid": "api_production_get_next_cell_product_code", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1557"}, {"caller_nid": "api_production_list_cell_products", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1582"}, {"caller_nid": "api_production_list_cell_products", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1583"}, {"caller_nid": "api_production_list_cell_products", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1584"}, {"caller_nid": "api_production_list_cell_products", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1585"}, {"caller_nid": "api_production_get_cell_product_detail", "callee": "get_cell_product", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1595"}, {"caller_nid": "api_production_get_cell_product_detail", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1597"}, {"caller_nid": "api_production_get_cell_product_detail", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1598"}, {"caller_nid": "api_production_get_cell_product_detail", "callee": "product_to_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1598"}, {"caller_nid": "api_production_create_cell_product", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1610"}, {"caller_nid": "api_production_create_cell_product", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1613"}, {"caller_nid": "api_production_create_cell_product", "callee": "product_to_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1614"}, {"caller_nid": "api_production_create_cell_product", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1617"}, {"caller_nid": "api_production_create_cell_product", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1617"}, {"caller_nid": "api_production_update_cell_product", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1630"}, {"caller_nid": "api_production_update_cell_product", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1632"}, {"caller_nid": "api_production_update_cell_product", "callee": "product_to_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1633"}, {"caller_nid": "api_production_update_cell_product", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1636"}, {"caller_nid": "api_production_update_cell_product", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1636"}, {"caller_nid": "api_production_delete_cell_product", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1647"}, {"caller_nid": "api_production_delete_cell_product", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1648"}, {"caller_nid": "api_production_delete_cell_product", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1650"}, {"caller_nid": "api_production_delete_cell_product", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/production.py", "source_location": "L1650"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/8f1f3f9405c02971e811f1a11815afa9586c667b10e1bd0fe02f1fc5cc07da1a.json b/backend/app/graphify-out/cache/ast/8f1f3f9405c02971e811f1a11815afa9586c667b10e1bd0fe02f1fc5cc07da1a.json new file mode 100644 index 00000000..e03ff4e1 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/8f1f3f9405c02971e811f1a11815afa9586c667b10e1bd0fe02f1fc5cc07da1a.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "label": "cell_product.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L1"}, {"id": "crud_cell_product_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L22"}, {"id": "crud_cell_product_build_facility_path_label", "label": "_build_facility_path_label()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L55"}, {"id": "crud_cell_product_enrich_product_dicts", "label": "_enrich_product_dicts()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L70"}, {"id": "crud_cell_product_product_to_response", "label": "product_to_response()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L143"}, {"id": "crud_cell_product_list_cell_products", "label": "list_cell_products()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L148"}, {"id": "crud_cell_product_get_cell_product", "label": "get_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L209"}, {"id": "crud_cell_product_create_cell_product", "label": "create_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L223"}, {"id": "crud_cell_product_update_cell_product", "label": "update_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L277"}, {"id": "crud_cell_product_delete_cell_product", "label": "delete_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L332"}, {"id": "crud_cell_product_next_code_start_seq", "label": "_next_code_start_seq()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L348"}, {"id": "crud_cell_product_get_next_code", "label": "get_next_code()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L368"}, {"id": "crud_cell_product_normalize_product_code_base", "label": "normalize_product_code_base()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L378"}, {"id": "crud_cell_product_build_split_product_codes", "label": "build_split_product_codes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L389"}, {"id": "crud_cell_product_reserve_next_codes", "label": "reserve_next_codes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L396"}, {"id": "crud_cell_product_validate_batch_items", "label": "_validate_batch_items()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L406"}, {"id": "crud_cell_product_create_cell_products_by_quantity", "label": "create_cell_products_by_quantity()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L449"}, {"id": "crud_cell_product_create_cell_products_batch", "label": "create_cell_products_batch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L481"}, {"id": "crud_cell_product_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L536"}, {"id": "crud_cell_product_rationale_1", "label": "\u7ec6\u80de\u4ea7\u54c1 CRUD\uff08biz_cell_product\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L1"}, {"id": "crud_cell_product_rationale_379", "label": "\u53bb\u6389\u672b\u5c3e -01/-02 \u7b49\u5e8f\u53f7\uff0c\u5f97\u5230\u591a\u4efd\u5165\u5e93\u65f6\u7684\u57fa\u7840\u7f16\u7801\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L379"}, {"id": "crud_cell_product_rationale_390", "label": "\u6309\u57fa\u7840\u7f16\u7801\u751f\u6210 \u57fa\u7840-01\u3001\u57fa\u7840-02 \u2026", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L390"}, {"id": "crud_cell_product_rationale_458", "label": "\u6309\u5165\u5e93\u4efd\u6570\u62c6\u5206\uff1a\u57fa\u7840\u7f16\u7801-01\u3001\u57fa\u7840\u7f16\u7801-02 \u2026", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L458"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "math", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "re", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_row_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_build_facility_path_label", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L55", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_enrich_product_dicts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L70", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_product_to_response", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L143", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_list_cell_products", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L148", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_get_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L209", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_create_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L223", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_update_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L277", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_delete_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L332", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_next_code_start_seq", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L348", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_get_next_code", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L368", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_normalize_product_code_base", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L378", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_build_split_product_codes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L389", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_reserve_next_codes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L396", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_validate_batch_items", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L406", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_create_cell_products_by_quantity", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L449", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_create_cell_products_batch", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L481", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_total_pages", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L536", "weight": 1.0}, {"source": "crud_cell_product_enrich_product_dicts", "target": "crud_cell_product_build_facility_path_label", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L126", "weight": 1.0}, {"source": "crud_cell_product_product_to_response", "target": "crud_cell_product_enrich_product_dicts", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L144", "weight": 1.0}, {"source": "crud_cell_product_product_to_response", "target": "crud_cell_product_row_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L144", "weight": 1.0}, {"source": "crud_cell_product_list_cell_products", "target": "crud_cell_product_enrich_product_dicts", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L203", "weight": 1.0}, {"source": "crud_cell_product_list_cell_products", "target": "crud_cell_product_row_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L204", "weight": 1.0}, {"source": "crud_cell_product_update_cell_product", "target": "crud_cell_product_get_cell_product", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L284", "weight": 1.0}, {"source": "crud_cell_product_delete_cell_product", "target": "crud_cell_product_get_cell_product", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L338", "weight": 1.0}, {"source": "crud_cell_product_get_next_code", "target": "crud_cell_product_next_code_start_seq", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L371", "weight": 1.0}, {"source": "crud_cell_product_reserve_next_codes", "target": "crud_cell_product_next_code_start_seq", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L402", "weight": 1.0}, {"source": "crud_cell_product_create_cell_products_by_quantity", "target": "crud_cell_product_normalize_product_code_base", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L460", "weight": 1.0}, {"source": "crud_cell_product_create_cell_products_by_quantity", "target": "crud_cell_product_build_split_product_codes", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L463", "weight": 1.0}, {"source": "crud_cell_product_create_cell_products_by_quantity", "target": "crud_cell_product_create_cell_products_batch", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L470", "weight": 1.0}, {"source": "crud_cell_product_create_cell_products_batch", "target": "crud_cell_product_validate_batch_items", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L491", "weight": 1.0}, {"source": "crud_cell_product_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L1", "weight": 1.0}, {"source": "crud_cell_product_rationale_379", "target": "crud_cell_product_normalize_product_code_base", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L379", "weight": 1.0}, {"source": "crud_cell_product_rationale_390", "target": "crud_cell_product_build_split_product_codes", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L390", "weight": 1.0}, {"source": "crud_cell_product_rationale_458", "target": "crud_cell_product_create_cell_products_by_quantity", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L458", "weight": 1.0}], "raw_calls": [{"caller_nid": "crud_cell_product_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L35"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L36"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L37"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L41"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L43"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L49"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L51"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L57"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L58"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L60"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L61"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L64"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L65"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "reverse", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L66"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L67"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L78"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L78"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L79"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L79"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L80"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L80"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L85"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L85"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L85"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L87"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L97"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L97"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L97"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L99"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L109"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L109"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L109"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L111"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L117"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L117"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L117"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L127"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L134"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L135"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L136"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L137"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L138"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L139"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "scalar", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L193"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "with_entities", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L193"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L193"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "_filtered", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L193"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L193"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L194"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "min", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L195"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L195"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L197"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "limit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L197"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "offset", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L197"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L197"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "_filtered", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L197"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L198"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L206"}, {"caller_nid": "crud_cell_product_get_cell_product", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L211"}, {"caller_nid": "crud_cell_product_get_cell_product", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L211"}, {"caller_nid": "crud_cell_product_get_cell_product", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L211"}, {"caller_nid": "crud_cell_product_get_cell_product", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L213"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L231"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L233"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L235"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L235"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L235"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L241"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "BizCellProduct", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L243"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L244"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L246"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L247"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L248"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L249"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L250"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L251"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L251"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L252"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L253"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L254"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L258"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L260"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L263"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L266"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L268"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L271"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L272"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L273"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L286"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L289"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L291"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L293"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L295"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L297"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L298"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L299"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L300"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L302"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L304"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L311"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L316"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L320"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L322"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L325"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L326"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L327"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L328"}, {"caller_nid": "crud_cell_product_delete_cell_product", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L340"}, {"caller_nid": "crud_cell_product_delete_cell_product", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L343"}, {"caller_nid": "crud_cell_product_delete_cell_product", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L344"}, {"caller_nid": "crud_cell_product_delete_cell_product", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L345"}, {"caller_nid": "crud_cell_product_next_code_start_seq", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L350"}, {"caller_nid": "crud_cell_product_next_code_start_seq", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L350"}, {"caller_nid": "crud_cell_product_next_code_start_seq", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L350"}, {"caller_nid": "crud_cell_product_next_code_start_seq", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L350"}, {"caller_nid": "crud_cell_product_next_code_start_seq", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L353"}, {"caller_nid": "crud_cell_product_next_code_start_seq", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L356"}, {"caller_nid": "crud_cell_product_next_code_start_seq", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L362"}, {"caller_nid": "crud_cell_product_get_next_code", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L369"}, {"caller_nid": "crud_cell_product_get_next_code", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L369"}, {"caller_nid": "crud_cell_product_normalize_product_code_base", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L380"}, {"caller_nid": "crud_cell_product_normalize_product_code_base", "callee": "match", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L383"}, {"caller_nid": "crud_cell_product_normalize_product_code_base", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L385"}, {"caller_nid": "crud_cell_product_normalize_product_code_base", "callee": "group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L385"}, {"caller_nid": "crud_cell_product_build_split_product_codes", "callee": "range", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L393"}, {"caller_nid": "crud_cell_product_reserve_next_codes", "callee": "min", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L399"}, {"caller_nid": "crud_cell_product_reserve_next_codes", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L400"}, {"caller_nid": "crud_cell_product_reserve_next_codes", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L400"}, {"caller_nid": "crud_cell_product_reserve_next_codes", "callee": "range", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L403"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L414"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L415"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L416"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L421"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L421"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L423"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L425"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L426"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L428"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L428"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L430"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L431"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L434"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L434"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L434"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L437"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L444"}, {"caller_nid": "crud_cell_product_create_cell_products_by_quantity", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L459"}, {"caller_nid": "crud_cell_product_create_cell_products_by_quantity", "callee": "min", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L459"}, {"caller_nid": "crud_cell_product_create_cell_products_by_quantity", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L459"}, {"caller_nid": "crud_cell_product_create_cell_products_by_quantity", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L460"}, {"caller_nid": "crud_cell_product_create_cell_products_by_quantity", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L462"}, {"caller_nid": "crud_cell_product_create_cell_products_by_quantity", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L464"}, {"caller_nid": "crud_cell_product_create_cell_products_by_quantity", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L464"}, {"caller_nid": "crud_cell_product_create_cell_products_by_quantity", "callee": "SimpleNamespace", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L468"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L497"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "zip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L499"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "BizCellProduct", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L500"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L501"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L503"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L504"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L505"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L506"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L508"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L508"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L509"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L510"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L511"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L515"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L517"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L520"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L528"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L529"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L530"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L532"}, {"caller_nid": "crud_cell_product_total_pages", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L539"}, {"caller_nid": "crud_cell_product_total_pages", "callee": "ceil", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L539"}, {"caller_nid": "crud_cell_product_total_pages", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L539"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/ad6163c3f525bad21cd7e7d106902482b90bd0e57222d8449513e29325ed02ae.json b/backend/app/graphify-out/cache/ast/ad6163c3f525bad21cd7e7d106902482b90bd0e57222d8449513e29325ed02ae.json new file mode 100644 index 00000000..838cab9e --- /dev/null +++ b/backend/app/graphify-out/cache/ast/ad6163c3f525bad21cd7e7d106902482b90bd0e57222d8449513e29325ed02ae.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "label": "cell_product.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L1"}, {"id": "schemas_cell_product_cellproductcreate", "label": "CellProductCreate", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L7"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "schemas_cell_product_validate_viability", "label": "validate_viability()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L30"}, {"id": "schemas_cell_product_validate_passage", "label": "validate_passage()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L37"}, {"id": "schemas_cell_product_cellproductupdate", "label": "CellProductUpdate", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L46"}, {"id": "schemas_cell_product_validate_status", "label": "validate_status()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L84"}, {"id": "schemas_cell_product_cellproductlistquery", "label": "CellProductListQuery", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L90"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "pydantic", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_cellproductcreate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L7", "weight": 1.0}, {"source": "schemas_cell_product_cellproductcreate", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_validate_viability", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L30", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_validate_passage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L37", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_cellproductupdate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L46", "weight": 1.0}, {"source": "schemas_cell_product_cellproductupdate", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L46", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_validate_viability", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L67", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_validate_passage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L74", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_validate_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L84", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_cell_product_py", "target": "schemas_cell_product_cellproductlistquery", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L90", "weight": 1.0}, {"source": "schemas_cell_product_cellproductlistquery", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L90", "weight": 1.0}], "raw_calls": [{"caller_nid": "schemas_cell_product_validate_viability", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L32"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "range", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L39"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L40"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L41"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L42"}, {"caller_nid": "schemas_cell_product_validate_viability", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L69"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "range", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L76"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L77"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L78"}, {"caller_nid": "schemas_cell_product_validate_passage", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L79"}, {"caller_nid": "schemas_cell_product_validate_status", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/cell_product.py", "source_location": "L86"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/f5eb8bc04f46baa87186005019d7965b20311e96f7fc58c8d7496645d98cd174.json b/backend/app/graphify-out/cache/ast/f5eb8bc04f46baa87186005019d7965b20311e96f7fc58c8d7496645d98cd174.json new file mode 100644 index 00000000..af772c4d --- /dev/null +++ b/backend/app/graphify-out/cache/ast/f5eb8bc04f46baa87186005019d7965b20311e96f7fc58c8d7496645d98cd174.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "label": "cell_product.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L1"}, {"id": "crud_cell_product_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L21"}, {"id": "crud_cell_product_build_facility_path_label", "label": "_build_facility_path_label()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L54"}, {"id": "crud_cell_product_enrich_product_dicts", "label": "_enrich_product_dicts()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L69"}, {"id": "crud_cell_product_product_to_response", "label": "product_to_response()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L142"}, {"id": "crud_cell_product_list_cell_products", "label": "list_cell_products()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L147"}, {"id": "crud_cell_product_get_cell_product", "label": "get_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L208"}, {"id": "crud_cell_product_create_cell_product", "label": "create_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L222"}, {"id": "crud_cell_product_update_cell_product", "label": "update_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L276"}, {"id": "crud_cell_product_delete_cell_product", "label": "delete_cell_product()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L331"}, {"id": "crud_cell_product_next_code_start_seq", "label": "_next_code_start_seq()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L347"}, {"id": "crud_cell_product_get_next_code", "label": "get_next_code()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L367"}, {"id": "crud_cell_product_reserve_next_codes", "label": "reserve_next_codes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L374"}, {"id": "crud_cell_product_validate_batch_items", "label": "_validate_batch_items()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L384"}, {"id": "crud_cell_product_create_cell_products_batch", "label": "create_cell_products_batch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L438"}, {"id": "crud_cell_product_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L487"}, {"id": "crud_cell_product_rationale_1", "label": "\u7ec6\u80de\u4ea7\u54c1 CRUD\uff08biz_cell_product\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "math", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_row_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_build_facility_path_label", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L54", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_enrich_product_dicts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L69", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_product_to_response", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L142", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_list_cell_products", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L147", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_get_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L208", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_create_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L222", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_update_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L276", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_delete_cell_product", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L331", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_next_code_start_seq", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L347", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_get_next_code", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L367", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_reserve_next_codes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L374", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_validate_batch_items", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L384", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_create_cell_products_batch", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L438", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "target": "crud_cell_product_total_pages", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L487", "weight": 1.0}, {"source": "crud_cell_product_enrich_product_dicts", "target": "crud_cell_product_build_facility_path_label", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L125", "weight": 1.0}, {"source": "crud_cell_product_product_to_response", "target": "crud_cell_product_enrich_product_dicts", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L143", "weight": 1.0}, {"source": "crud_cell_product_product_to_response", "target": "crud_cell_product_row_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L143", "weight": 1.0}, {"source": "crud_cell_product_list_cell_products", "target": "crud_cell_product_enrich_product_dicts", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L202", "weight": 1.0}, {"source": "crud_cell_product_list_cell_products", "target": "crud_cell_product_row_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L203", "weight": 1.0}, {"source": "crud_cell_product_update_cell_product", "target": "crud_cell_product_get_cell_product", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L283", "weight": 1.0}, {"source": "crud_cell_product_delete_cell_product", "target": "crud_cell_product_get_cell_product", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L337", "weight": 1.0}, {"source": "crud_cell_product_get_next_code", "target": "crud_cell_product_next_code_start_seq", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L370", "weight": 1.0}, {"source": "crud_cell_product_reserve_next_codes", "target": "crud_cell_product_next_code_start_seq", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L380", "weight": 1.0}, {"source": "crud_cell_product_create_cell_products_batch", "target": "crud_cell_product_validate_batch_items", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L447", "weight": 1.0}, {"source": "crud_cell_product_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_crud_cell_product_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "crud_cell_product_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L34"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L35"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L36"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L40"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L42"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L48"}, {"caller_nid": "crud_cell_product_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L50"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L56"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L57"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L59"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L60"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L63"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L64"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "reverse", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L65"}, {"caller_nid": "crud_cell_product_build_facility_path_label", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L66"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L77"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L77"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L78"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L78"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L79"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L79"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L84"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L84"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L84"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L86"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L96"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L96"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L96"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L98"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L108"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L108"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L108"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L110"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L116"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L116"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L116"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L126"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L133"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L134"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L135"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L136"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L137"}, {"caller_nid": "crud_cell_product_enrich_product_dicts", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L138"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "scalar", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L192"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "with_entities", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L192"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L192"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "_filtered", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L192"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L192"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L193"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "min", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L194"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L194"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L196"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "limit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L196"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "offset", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L196"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L196"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "_filtered", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L196"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L197"}, {"caller_nid": "crud_cell_product_list_cell_products", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L205"}, {"caller_nid": "crud_cell_product_get_cell_product", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L210"}, {"caller_nid": "crud_cell_product_get_cell_product", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L210"}, {"caller_nid": "crud_cell_product_get_cell_product", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L210"}, {"caller_nid": "crud_cell_product_get_cell_product", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L212"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L230"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L232"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L234"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L234"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L234"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L240"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "BizCellProduct", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L242"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L243"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L245"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L246"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L247"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L248"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L249"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L250"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L250"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L251"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L252"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L253"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L257"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L259"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L262"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L265"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L267"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L270"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L271"}, {"caller_nid": "crud_cell_product_create_cell_product", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L272"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L285"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L288"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L290"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L292"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L294"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L296"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L297"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L298"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L299"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L301"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L303"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L310"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L315"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L319"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L321"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L324"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L325"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L326"}, {"caller_nid": "crud_cell_product_update_cell_product", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L327"}, {"caller_nid": "crud_cell_product_delete_cell_product", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L339"}, {"caller_nid": "crud_cell_product_delete_cell_product", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L342"}, {"caller_nid": "crud_cell_product_delete_cell_product", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L343"}, {"caller_nid": "crud_cell_product_delete_cell_product", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L344"}, {"caller_nid": "crud_cell_product_next_code_start_seq", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L349"}, {"caller_nid": "crud_cell_product_next_code_start_seq", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L349"}, {"caller_nid": "crud_cell_product_next_code_start_seq", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L349"}, {"caller_nid": "crud_cell_product_next_code_start_seq", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L349"}, {"caller_nid": "crud_cell_product_next_code_start_seq", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L352"}, {"caller_nid": "crud_cell_product_next_code_start_seq", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L355"}, {"caller_nid": "crud_cell_product_next_code_start_seq", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L361"}, {"caller_nid": "crud_cell_product_get_next_code", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L368"}, {"caller_nid": "crud_cell_product_get_next_code", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L368"}, {"caller_nid": "crud_cell_product_reserve_next_codes", "callee": "min", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L377"}, {"caller_nid": "crud_cell_product_reserve_next_codes", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L378"}, {"caller_nid": "crud_cell_product_reserve_next_codes", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L378"}, {"caller_nid": "crud_cell_product_reserve_next_codes", "callee": "range", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L381"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L390"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L391"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L392"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L397"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L397"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L399"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L401"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L402"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L404"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L404"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L406"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L408"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L409"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L412"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L412"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L412"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L415"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L422"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L425"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L425"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L425"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L428"}, {"caller_nid": "crud_cell_product_validate_batch_items", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L434"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L448"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "zip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L450"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "BizCellProduct", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L451"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L452"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L454"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L455"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L456"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L457"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L459"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L459"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L460"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L461"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L462"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L466"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L468"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L471"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L479"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L480"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L481"}, {"caller_nid": "crud_cell_product_create_cell_products_batch", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L483"}, {"caller_nid": "crud_cell_product_total_pages", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L490"}, {"caller_nid": "crud_cell_product_total_pages", "callee": "ceil", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L490"}, {"caller_nid": "crud_cell_product_total_pages", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/cell_product.py", "source_location": "L490"}]} \ No newline at end of file diff --git a/backend/app/schemas/cell_product.py b/backend/app/schemas/cell_product.py index 2d5e1234..d2a30b89 100644 --- a/backend/app/schemas/cell_product.py +++ b/backend/app/schemas/cell_product.py @@ -1,13 +1,38 @@ from datetime import datetime -from typing import Optional +from typing import Any, List, Optional from pydantic import BaseModel, ConfigDict, Field, field_validator +from app.core.utils import parse_datetime + + +def _coerce_optional_datetime(value: Any) -> Optional[datetime]: + """兼容前端 date-picker 的 YYYY-MM-DD 与完整日期时间字符串。""" + if value is None or value == "": + return None + if isinstance(value, datetime): + return value + if isinstance(value, str): + parsed = parse_datetime(value.strip()) + if parsed is not None: + return parsed + raise ValueError("无效的日期格式") + return value + + +class CellProductBatchItem(BaseModel): + """批量入库时每一份产品的编码与储物格。""" + + model_config = ConfigDict(populate_by_name=True) + + product_code: str = Field(..., alias="productCode") + storage_slot_id: Optional[str] = Field(None, alias="storageSlotId") + class CellProductCreate(BaseModel): model_config = ConfigDict(populate_by_name=True) - product_code: str = Field(..., alias="productCode") + product_code: Optional[str] = Field(None, alias="productCode") product_name: str = Field(..., alias="productName") product_type_id: Optional[str] = Field(None, alias="productTypeId") spec_id: Optional[str] = Field(None, alias="specId") @@ -24,6 +49,12 @@ class CellProductCreate(BaseModel): expiry_date: Optional[datetime] = Field(None, alias="expiryDate") product_images: Optional[str] = Field(None, alias="productImages") remark: Optional[str] = None + items: Optional[List[CellProductBatchItem]] = Field(None, alias="items") + + @field_validator("freeze_date", "expiry_date", mode="before") + @classmethod + def coerce_date_fields(cls, v): + return _coerce_optional_datetime(v) @field_validator("viability") @classmethod @@ -62,6 +93,11 @@ class CellProductUpdate(BaseModel): product_images: Optional[str] = Field(None, alias="productImages") remark: Optional[str] = None + @field_validator("freeze_date", "expiry_date", mode="before") + @classmethod + def coerce_date_fields(cls, v): + return _coerce_optional_datetime(v) + @field_validator("viability") @classmethod def validate_viability(cls, v): diff --git a/backend/graphify-out/.graphify_analysis.json b/backend/graphify-out/.graphify_analysis.json index c93ea6cb..a5854d76 100644 --- a/backend/graphify-out/.graphify_analysis.json +++ b/backend/graphify-out/.graphify_analysis.json @@ -1,6 +1,7 @@ { "communities": { "0": [ + "api_admin_attachment_download_url", "api_admin_create_dept", "api_admin_create_dict_data", "api_admin_create_dict_type", @@ -23,18 +24,27 @@ "api_admin_delete_site", "api_admin_delete_tenant", "api_admin_delete_user", + "api_admin_dict_data_options", + "api_admin_format_file_size", + "api_admin_get_role_data_scope", + "api_admin_get_role_menus", "api_admin_get_tenant_no", "api_admin_get_user_by_id", + "api_admin_list_depts", "api_admin_list_dict_data", "api_admin_list_dict_types", "api_admin_list_express_companies", "api_admin_list_item_units", + "api_admin_list_menus", "api_admin_list_post_bound_users", "api_admin_list_posts", "api_admin_list_role_management", + "api_admin_list_roles_for_designer", "api_admin_list_sites", "api_admin_list_tenants", "api_admin_list_users", + "api_admin_list_users_for_select", + "api_admin_py", "api_admin_reset_user_password", "api_admin_update_dept", "api_admin_update_dict_data", @@ -50,6 +60,7 @@ "api_admin_update_site", "api_admin_update_tenant", "api_admin_update_user", + "api_admin_upload_attachment", "api_basic_info_batch_generate_protocol_nos", "api_basic_info_batch_generate_sample_codes", "api_basic_info_batch_issue_protocol_nos", @@ -84,7 +95,6 @@ "api_basic_info_update_sample_code", "api_collection_protocol_create_collection_protocol", "api_collection_protocol_delete_collection_protocol", - "api_collection_protocol_ensure_customer_for_mother", "api_collection_protocol_get_collection_protocol_detail", "api_collection_protocol_get_current_user_id", "api_collection_protocol_get_tenant_no", @@ -109,27 +119,6 @@ "api_collection_protocol_submit_collection_protocol_audit", "api_collection_protocol_update_collection_protocol", "api_collection_protocol_update_fullmoon_todo_insurance", - "api_insurance_company_create_insurance_company", - "api_insurance_company_create_insurance_company_invoice", - "api_insurance_company_create_insurance_project_price", - "api_insurance_company_delete_insurance_company", - "api_insurance_company_delete_insurance_company_invoice", - "api_insurance_company_delete_insurance_project_price", - "api_insurance_company_fmt_dt", - "api_insurance_company_generate_uuid", - "api_insurance_company_get_tenant_no", - "api_insurance_company_list_insurance_company_invoices", - "api_insurance_company_list_insurance_project_prices", - "api_insurance_company_py", - "api_insurance_company_row_to_dict_company", - "api_insurance_company_row_to_dict_invoice", - "api_insurance_company_row_to_dict_project_price", - "api_insurance_company_soft_delete_insurance_company", - "api_insurance_company_soft_delete_insurance_company_invoice", - "api_insurance_company_soft_delete_insurance_project_price", - "api_insurance_company_update_insurance_company", - "api_insurance_company_update_insurance_company_invoice", - "api_insurance_company_update_insurance_project_price", "api_leave_create_leave", "api_leave_delete_leave", "api_leave_get_leave", @@ -163,16 +152,44 @@ "api_operations_delete_storage_slot", "api_operations_get_tenant_no", "api_operations_insert_storage_slot_row", + "api_operations_list_access_logs", "api_operations_list_clean_rooms", "api_operations_list_exhibition_appointments", "api_operations_list_storage_facilities", + "api_operations_list_storage_slots", "api_operations_parse_optional_dt", + "api_operations_py", "api_operations_update_access_log", "api_operations_update_clean_room", "api_operations_update_exhibition_appointment", "api_operations_update_storage_facility", "api_operations_update_storage_slot", "api_pilot_service_activate_channel_agreement", + "api_pilot_service_cellproductpricecreatebody", + "api_pilot_service_cellproductpriceupdatebody", + "api_pilot_service_cellproductspeccreatebody", + "api_pilot_service_cellproductspecupdatebody", + "api_pilot_service_cellproducttypecreatebody", + "api_pilot_service_cellproducttypeupdatebody", + "api_pilot_service_channelagreementcreatebody", + "api_pilot_service_channelagreementpricecreatebody", + "api_pilot_service_channelagreementpriceupdatebody", + "api_pilot_service_channelagreementupdatebody", + "api_pilot_service_channelcreatebody", + "api_pilot_service_channelinvoicecreatebody", + "api_pilot_service_channelinvoiceupdatebody", + "api_pilot_service_channelmailaddresscreatebody", + "api_pilot_service_channelmailaddressupdatebody", + "api_pilot_service_channelupdatebody", + "api_pilot_service_checkupinstitutioncreatebody", + "api_pilot_service_checkupinstitutioninvoicecreatebody", + "api_pilot_service_checkupinstitutioninvoiceupdatebody", + "api_pilot_service_checkupinstitutionpackagecreatebody", + "api_pilot_service_checkupinstitutionpackageupdatebody", + "api_pilot_service_checkupinstitutionprojectcreatebody", + "api_pilot_service_checkupinstitutionprojectupdatebody", + "api_pilot_service_checkupinstitutionupdatebody", + "api_pilot_service_checkuppackageitembody", "api_pilot_service_create_cell_product_price", "api_pilot_service_create_cell_product_spec", "api_pilot_service_create_cell_product_type", @@ -218,7 +235,12 @@ "api_pilot_service_list_project_system_items", "api_pilot_service_list_project_systems", "api_pilot_service_package_items_to_crud", + "api_pilot_service_projectsystemcreatebody", + "api_pilot_service_projectsystemitemcreatebody", + "api_pilot_service_projectsystemitemupdatebody", + "api_pilot_service_projectsystemupdatebody", "api_pilot_service_py", + "api_pilot_service_rationale_1", "api_pilot_service_update_cell_product_price", "api_pilot_service_update_cell_product_spec", "api_pilot_service_update_cell_product_type", @@ -261,7 +283,6 @@ "api_production_delete_sop_document", "api_production_get_cell_product_detail", "api_production_get_consumable_pack_detail", - "api_production_get_next_cell_product_code", "api_production_get_process_detail", "api_production_get_process_route_detail", "api_production_get_production_task_detail", @@ -311,7 +332,6 @@ "api_production_update_step_outputs", "api_production_update_step_reagents", "api_public_get_current_user_profile", - "api_public_get_web_auth_menu_codes", "api_qc_batch_stock_in_qc_material", "api_qc_batch_stock_out_qc_material", "api_qc_complete_qc_task", @@ -381,51 +401,23 @@ "api_sample_reception_py", "api_sample_reception_update_check_item", "api_workflow_approve_task", - "api_workflow_business_type_label", "api_workflow_create_process_def", "api_workflow_delete_process_def", - "api_workflow_enrich_task_list", - "api_workflow_get_business_all_tasks", - "api_workflow_get_business_form_fields", - "api_workflow_get_instance_detail", "api_workflow_leave_form_fields", - "api_workflow_list_completed_tasks", - "api_workflow_list_my_instances", - "api_workflow_list_pending_tasks", "api_workflow_list_process_defs", "api_workflow_list_versions", "api_workflow_publish_version", - "api_workflow_py", "api_workflow_reject_task", "api_workflow_start_instance", "api_workflow_update_process_def", - "core_admin_request_json_parse_admin_request_json", - "core_admin_request_json_py", - "core_admin_request_json_rationale_1", - "core_admin_request_json_rationale_25", - "core_request_payload_py", - "core_request_payload_rationale_1", - "core_request_payload_rationale_18", - "core_request_payload_resolve_request_payload", "core_response_error_response", "core_response_success_response", "core_utils_parse_datetime", - "core_wechat_message_py", - "core_wechat_message_rationale_1", - "core_wechat_message_rationale_86", - "core_wechat_message_send_delivery_notice", - "core_wechat_message_send_delivery_warning", - "core_wechat_message_send_order_status", - "core_wechat_message_send_payment_success", - "core_wechat_message_send_refund_result", - "core_wechat_message_send_urge_notification", - "core_wechat_message_wechatmessageservice", - "core_wechat_message_wechatmessageservice_get_access_token", - "core_wechat_message_wechatmessageservice_init", - "core_wechat_message_wechatmessageservice_send_template_message", "crud_base_crudbase_get", + "crud_cell_product_product_to_response", "crud_collection_protocol_no_enrich_issued_user_names", "crud_collection_region_region_to_dict", + "crud_exhibition_appointment_format_visit_date", "crud_exhibition_appointment_row_to_dict", "crud_exhibition_appointment_total_pages", "crud_leave_update_leave_status", @@ -435,74 +427,17 @@ "crud_production_task_update_task_step", "crud_qc_material_batch_stock_in", "crud_qc_material_batch_stock_out", - "crud_qc_material_is_enabled_status", "crud_qc_material_rationale_345", "crud_qc_material_rationale_492", - "crud_qc_material_stock_in", - "crud_qc_material_stock_out", + "crud_qc_task_update_task_attachments", "crud_research_donation_change_status", + "crud_research_donation_donation_to_dict", "schemas_order_adjust_adjuststatus", "schemas_order_adjust_adjusttype", "schemas_order_adjust_py", "str" ], "1": [ - "api_admin_attachment_download_url", - "api_admin_attachmentdownloadurlbody", - "api_admin_deptcreatebody", - "api_admin_deptupdatebody", - "api_admin_dictdatacreatebody", - "api_admin_dictdataupdatebody", - "api_admin_dicttypecreatebody", - "api_admin_dicttypeupdatebody", - "api_admin_expresscompanycreatebody", - "api_admin_expresscompanyupdatebody", - "api_admin_format_file_size", - "api_admin_itemunitcreatebody", - "api_admin_itemunitupdatebody", - "api_admin_list_roles_for_designer", - "api_admin_list_roles_for_select", - "api_admin_list_users_for_select", - "api_admin_menucreatebody", - "api_admin_menuupdatebody", - "api_admin_postcreatebody", - "api_admin_postupdatebody", - "api_admin_postusersupdatebody", - "api_admin_py", - "api_admin_rationale_1537", - "api_admin_rationale_45", - "api_admin_rationale_77", - "api_admin_rationale_92", - "api_admin_rolecreatebody", - "api_admin_roledatascopebody", - "api_admin_rolemenubody", - "api_admin_roleupdatebody", - "api_admin_sitecreatebody", - "api_admin_siteupdatebody", - "api_admin_tenantcreatebody", - "api_admin_tenantupdatebody", - "api_admin_upload_attachment", - "api_admin_usercreatebody", - "api_admin_userupdatebody", - "api_basic_info_cellsampletypecreatebody", - "api_basic_info_cellsampletypeupdatebody", - "api_basic_info_collectionregioncreatebody", - "api_basic_info_collectionregionupdatebody", - "api_basic_info_customercreatebody", - "api_basic_info_customerupdatebody", - "api_basic_info_hospitalcreatebody", - "api_basic_info_hospitalupdatebody", - "api_basic_info_protocolnobatchgeneratebody", - "api_basic_info_protocolnobatchissuebody", - "api_basic_info_protocolnobatchrevokebody", - "api_basic_info_protocolnocreatebody", - "api_basic_info_protocolnoupdatebody", - "api_basic_info_rationale_1", - "api_basic_info_samplecodebatchgeneratebody", - "api_basic_info_samplecodebatchissuebody", - "api_basic_info_samplecodebatchrevokebody", - "api_basic_info_samplecodecreatebody", - "api_basic_info_samplecodeupdatebody", "api_material_batchstockinbody", "api_material_batchstockinitem", "api_material_batchstockoutbody", @@ -512,38 +447,26 @@ "api_material_py", "api_material_stockinbody", "api_material_stockoutbody", - "api_pilot_service_cellproductpricecreatebody", - "api_pilot_service_cellproductpriceupdatebody", - "api_pilot_service_cellproductspeccreatebody", - "api_pilot_service_cellproductspecupdatebody", - "api_pilot_service_cellproducttypecreatebody", - "api_pilot_service_cellproducttypeupdatebody", - "api_pilot_service_channelagreementcreatebody", - "api_pilot_service_channelagreementpricecreatebody", - "api_pilot_service_channelagreementpriceupdatebody", - "api_pilot_service_channelagreementupdatebody", - "api_pilot_service_channelcreatebody", - "api_pilot_service_channelinvoicecreatebody", - "api_pilot_service_channelinvoiceupdatebody", - "api_pilot_service_channelmailaddresscreatebody", - "api_pilot_service_channelmailaddressupdatebody", - "api_pilot_service_channelupdatebody", - "api_pilot_service_checkupinstitutioncreatebody", - "api_pilot_service_checkupinstitutioninvoicecreatebody", - "api_pilot_service_checkupinstitutioninvoiceupdatebody", - "api_pilot_service_checkupinstitutionpackagecreatebody", - "api_pilot_service_checkupinstitutionpackageupdatebody", - "api_pilot_service_checkupinstitutionprojectcreatebody", - "api_pilot_service_checkupinstitutionprojectupdatebody", - "api_pilot_service_checkupinstitutionupdatebody", - "api_pilot_service_checkuppackageitembody", - "api_pilot_service_projectsystemcreatebody", - "api_pilot_service_projectsystemitemcreatebody", - "api_pilot_service_projectsystemitemupdatebody", - "api_pilot_service_projectsystemupdatebody", - "api_pilot_service_rationale_1", - "api_public_rationale_216", - "api_public_rationale_249", + "api_production_consumablecreatebody", + "api_production_consumablepackcreatebody", + "api_production_consumablepackupdatebody", + "api_production_consumableupdatebody", + "api_production_outputtypecreatebody", + "api_production_outputtypeupdatebody", + "api_production_packiteminput", + "api_production_processcategorycreatebody", + "api_production_processcategoryupdatebody", + "api_production_processconsumableinput", + "api_production_processcreatebody", + "api_production_processdatacollectioninput", + "api_production_processoutputinput", + "api_production_processreagentinput", + "api_production_processupdatebody", + "api_production_rationale_1", + "api_production_reagentcreatebody", + "api_production_reagentupdatebody", + "api_production_sopdocumentcreatebody", + "api_production_sopdocumentupdatebody", "api_qc_batchstockinbody", "api_qc_batchstockinitem", "api_qc_batchstockoutbody", @@ -568,7 +491,6 @@ "api_research_donation_convertfromstoragebody", "api_research_donation_donationcreatebody", "api_research_donation_donationupdatebody", - "api_research_donation_rationale_1", "api_research_donation_statuschangebody", "api_sample_reception_checkitembody", "api_sample_reception_checkitemupdatebody", @@ -576,30 +498,10 @@ "api_sample_reception_samplereceptioncreatebody", "api_sample_reception_samplereceptionupdatebody", "basemodel", - "core_data_scope_rationale_1", - "core_data_scope_rationale_113", - "core_data_scope_rationale_28", - "core_data_scope_rationale_38", - "core_data_scope_rationale_65", "core_response_config", "core_response_pageresult", "core_response_py", "core_response_responsemodel", - "crud_collection_protocol_no_batch_generate_protocol_nos", - "crud_collection_protocol_no_rationale_1", - "crud_collection_protocol_no_rationale_20", - "crud_collection_protocol_no_rationale_256", - "crud_collection_protocol_no_rationale_34", - "crud_sample_code_batch_generate_sample_codes", - "crud_sample_code_rationale_1", - "crud_sample_code_rationale_240", - "models_models_bizattachment", - "models_models_bizcollectionprotocolno", - "models_models_bizcustomer", - "models_models_bizsamplecode", - "models_models_sysdept", - "models_models_sysrole", - "models_models_sysuser", "schemas_attachment_attachmentuploadresponse", "schemas_attachment_py", "schemas_auth_changepasswordrequest", @@ -631,6 +533,17 @@ "schemas_category_parameter_rationale_1", "schemas_category_parameter_rationale_19", "schemas_category_py", + "schemas_cell_product_cellproductbatchitem", + "schemas_cell_product_cellproductcreate", + "schemas_cell_product_cellproductlistquery", + "schemas_cell_product_cellproductupdate", + "schemas_cell_product_coerce_date_fields", + "schemas_cell_product_coerce_optional_datetime", + "schemas_cell_product_py", + "schemas_cell_product_rationale_10", + "schemas_cell_product_validate_passage", + "schemas_cell_product_validate_status", + "schemas_cell_product_validate_viability", "schemas_common_deleteinput", "schemas_common_idinput", "schemas_common_paginationparams", @@ -748,6 +661,23 @@ "schemas_price_list_productpriceresponse", "schemas_price_list_py", "schemas_price_list_rationale_1", + "schemas_process_route_processroutecreatebody", + "schemas_process_route_processrouteupdatebody", + "schemas_process_route_py", + "schemas_process_route_rationale_1", + "schemas_process_route_setcurrentbody", + "schemas_process_route_stepaddbody", + "schemas_process_route_stepconsumableitem", + "schemas_process_route_stepconsumableupdatebody", + "schemas_process_route_stepcopybody", + "schemas_process_route_stepdatacollectionitem", + "schemas_process_route_stepdatacollectionupdatebody", + "schemas_process_route_stepoutputitem", + "schemas_process_route_stepoutputupdatebody", + "schemas_process_route_stepreagentitem", + "schemas_process_route_stepreagentupdatebody", + "schemas_process_route_stepreorderbody", + "schemas_process_route_stepupdatebody", "schemas_product_banner_productbannerbase", "schemas_product_banner_productbannercreate", "schemas_product_banner_productbannercreatebatch", @@ -811,6 +741,22 @@ "schemas_product_review_productreviewupdate", "schemas_product_review_py", "schemas_product_review_rationale_1", + "schemas_production_task_productiontaskcreate", + "schemas_production_task_productiontasklistquery", + "schemas_production_task_productiontaskstatusupdate", + "schemas_production_task_productiontaskupdate", + "schemas_production_task_py", + "schemas_production_task_taskinputitem", + "schemas_production_task_taskoutputitem", + "schemas_production_task_taskstepadd", + "schemas_production_task_taskstepdatacollectionitem", + "schemas_production_task_taskstepmaterialitem", + "schemas_production_task_taskstepoutputitem", + "schemas_production_task_taskstepupdate", + "schemas_production_work_order_productionworkorderbase", + "schemas_production_work_order_productionworkordercomplete", + "schemas_production_work_order_productionworkorderlistquery", + "schemas_production_work_order_py", "schemas_quotation_config", "schemas_quotation_py", "schemas_quotation_quotationbase", @@ -874,16 +820,30 @@ "api_insurance_company_insuranceprojectpricecreatebody", "api_insurance_company_insuranceprojectpriceupdatebody", "api_insurance_company_rationale_1", - "api_workflow_processdefcreatebody", - "api_workflow_processdefupdatebody", - "api_workflow_publishversionbody", - "api_workflow_rationale_135", - "api_workflow_startinstancebody", - "api_workflow_taskactionbody", + "api_operations_accesslogcreatebody", + "api_operations_accesslogupdatebody", + "api_operations_cleanroomcreatebody", + "api_operations_cleanroomupdatebody", + "api_operations_exhibitionappointmentcreatebody", + "api_operations_exhibitionappointmentupdatebody", + "api_operations_rationale_1", + "api_operations_storagefacilitycreatebody", + "api_operations_storagefacilityupdatebody", + "api_operations_storageslotbatchcreatebody", + "api_operations_storageslotclearbody", + "api_operations_storageslotcreatebody", + "api_operations_storageslotinsertrowbody", + "api_operations_storageslotupdatebody", "base", "crud_api_request_log_apirequestlogcrud", + "crud_cell_product_rationale_1", + "crud_cell_product_rationale_379", + "crud_cell_product_rationale_390", + "crud_cell_product_rationale_458", + "crud_clean_room_rationale_1", "crud_consumable_pack_rationale_1", "crud_dict_type_rationale_1", + "crud_exhibition_appointment_rationale_16", "crud_material_batch_stock_in", "crud_material_batch_stock_out", "crud_material_rationale_328", @@ -895,21 +855,19 @@ "crud_process_route_rationale_1", "crud_process_route_rationale_449", "crud_production_task_rationale_1", - "crud_qc_material_usage_deduct_for_task", "crud_qc_material_usage_rationale_155", "crud_qc_material_usage_rationale_177", "crud_qc_material_usage_rationale_18", "crud_qc_material_usage_rationale_227", "crud_qc_material_usage_rationale_40", - "crud_qc_material_usage_revert_task_material_usages", "crud_qc_task_result_rationale_43", "crud_qc_task_result_rationale_96", "crud_role_rationale_1", - "crud_sample_reception_check_result_rationale_108", - "crud_sample_reception_check_result_rationale_133", - "crud_sample_reception_check_result_rationale_171", - "crud_workflow_publish_version", - "crud_workflow_rationale_1", + "crud_storage_facility_rationale_1", + "crud_storage_facility_rationale_165", + "crud_storage_facility_rationale_41", + "crud_storage_facility_rationale_63", + "crud_storage_facility_rationale_79", "models_material_bizmaterial", "models_material_bizmaterialstocklog", "models_material_py", @@ -929,9 +887,12 @@ "models_models_bizcheckupinstitutionpackage", "models_models_bizcheckupinstitutionpackageitem", "models_models_bizcheckupinstitutionproject", + "models_models_bizcleanroom", + "models_models_bizcleanroomaccesslog", "models_models_bizconsumable", "models_models_bizconsumablepack", "models_models_bizconsumablepackitem", + "models_models_bizexhibitionappointment", "models_models_bizexpresscompany", "models_models_bizinsurancecompany", "models_models_bizinsurancecompanyinvoice", @@ -968,8 +929,9 @@ "models_models_bizqcworkorderthirditem", "models_models_bizreagent", "models_models_bizsamplereceptioncheckitem", - "models_models_bizsamplereceptioncheckresult", "models_models_bizsopdocument", + "models_models_bizstoragefacility", + "models_models_bizstoragefacilityslot", "models_models_py", "models_models_rationale_1", "models_models_rationale_1007", @@ -1064,44 +1026,246 @@ "models_models_syssite", "models_models_systenant", "models_models_sysuserpost", - "models_models_sysuserrole", "models_models_userrole", - "models_models_wfnode", - "models_models_wfprocessdef", "models_models_wfprocessinstance", "models_models_wfprocessversion", - "models_models_wftask", "models_models_wftransition", "models_qc_material_bizqcmaterial", "models_qc_material_bizqcmaterialusage", "models_qc_material_py", "models_qc_param_bizqcitemparam", "models_qc_param_bizqctaskresult", - "models_qc_param_py", + "models_qc_param_py" + ], + "3": [ + "api_admin_attachmentdownloadurlbody", + "api_admin_deptcreatebody", + "api_admin_deptupdatebody", + "api_admin_dictdatacreatebody", + "api_admin_dictdataupdatebody", + "api_admin_dicttypecreatebody", + "api_admin_dicttypeupdatebody", + "api_admin_expresscompanycreatebody", + "api_admin_expresscompanyupdatebody", + "api_admin_itemunitcreatebody", + "api_admin_itemunitupdatebody", + "api_admin_list_roles_for_select", + "api_admin_menucreatebody", + "api_admin_menuupdatebody", + "api_admin_postcreatebody", + "api_admin_postupdatebody", + "api_admin_postusersupdatebody", + "api_admin_rationale_1537", + "api_admin_rationale_45", + "api_admin_rationale_77", + "api_admin_rationale_92", + "api_admin_rolecreatebody", + "api_admin_roledatascopebody", + "api_admin_rolemenubody", + "api_admin_roleupdatebody", + "api_admin_sitecreatebody", + "api_admin_siteupdatebody", + "api_admin_tenantcreatebody", + "api_admin_tenantupdatebody", + "api_admin_usercreatebody", + "api_admin_userupdatebody", + "api_basic_info_cellsampletypecreatebody", + "api_basic_info_cellsampletypeupdatebody", + "api_basic_info_collectionregioncreatebody", + "api_basic_info_collectionregionupdatebody", + "api_basic_info_customercreatebody", + "api_basic_info_customerupdatebody", + "api_basic_info_hospitalcreatebody", + "api_basic_info_hospitalupdatebody", + "api_basic_info_protocolnobatchgeneratebody", + "api_basic_info_protocolnobatchissuebody", + "api_basic_info_protocolnobatchrevokebody", + "api_basic_info_protocolnocreatebody", + "api_basic_info_protocolnoupdatebody", + "api_basic_info_rationale_1", + "api_basic_info_samplecodebatchgeneratebody", + "api_basic_info_samplecodebatchissuebody", + "api_basic_info_samplecodebatchrevokebody", + "api_basic_info_samplecodecreatebody", + "api_basic_info_samplecodeupdatebody", + "api_collection_protocol_auditcreatebody", + "api_collection_protocol_batchdetailidsbody", + "api_collection_protocol_batchrefundfinancesubmitbody", + "api_collection_protocol_financeconfirmbody", + "api_collection_protocol_fullmoontodoinsurancebody", + "api_collection_protocol_protocolcreatebody", + "api_collection_protocol_protocolupdatebody", + "api_collection_protocol_rationale_1", + "api_collection_protocol_rationale_68", + "api_collection_protocol_refundfinanceconfirmbody", + "api_collection_protocol_refundfinancesubmitbody", + "api_public_get_web_auth_menu_codes", + "api_public_rationale_216", + "api_public_rationale_249", + "api_research_donation_rationale_1", + "core_data_scope_rationale_1", + "core_data_scope_rationale_113", + "core_data_scope_rationale_28", + "core_data_scope_rationale_38", + "core_data_scope_rationale_65", + "crud_collection_protocol_no_batch_generate_protocol_nos", + "crud_collection_protocol_no_rationale_256", + "crud_collection_protocol_no_rationale_34", + "crud_collection_protocol_rationale_1", + "crud_collection_protocol_rationale_1126", + "crud_collection_protocol_rationale_125", + "crud_collection_protocol_rationale_1589", + "crud_collection_protocol_rationale_179", + "crud_collection_protocol_rationale_1962", + "crud_collection_protocol_rationale_198", + "crud_collection_protocol_rationale_209", + "crud_collection_protocol_rationale_220", + "crud_collection_protocol_rationale_2537", + "crud_collection_protocol_rationale_284", + "crud_collection_protocol_rationale_55", + "crud_collection_protocol_rationale_89", + "crud_production_work_order_rationale_88", + "crud_production_work_order_rationale_99", + "crud_protocol_donation_convert_active_link_query", + "crud_protocol_donation_convert_create_convert_link", + "crud_protocol_donation_convert_get_convert_partner", + "crud_protocol_donation_convert_get_partner_sample_codes", + "crud_protocol_donation_convert_has_active_convert_link", + "crud_protocol_donation_convert_py", + "crud_protocol_donation_convert_rationale_1", + "crud_protocol_donation_convert_rationale_132", + "crud_protocol_donation_convert_rationale_198", + "crud_protocol_donation_convert_rationale_273", + "crud_protocol_donation_convert_rationale_35", + "crud_protocol_donation_convert_rationale_84", + "crud_protocol_donation_convert_upsert_convert_link_for_to_storage", + "crud_qc_task_rationale_421", + "crud_qc_work_order_create_work_order_from_reception", + "crud_qc_work_order_rationale_231", + "crud_qc_work_order_rationale_466", + "crud_qc_work_order_rationale_575", + "crud_research_donation_convert_from_storage", + "crud_research_donation_convert_to_storage", + "crud_research_donation_merge_comma_separated_urls", + "crud_research_donation_rationale_1", + "crud_research_donation_rationale_109", + "crud_research_donation_rationale_1322", + "crud_research_donation_rationale_637", + "crud_research_donation_rationale_706", + "crud_research_donation_rationale_82", + "crud_research_donation_rationale_93", + "crud_research_donation_rationale_939", + "crud_research_donation_submit_audit", + "crud_sample_code_batch_generate_sample_codes", + "crud_sample_code_rationale_240", + "crud_sample_reception_check_result_rationale_108", + "crud_sample_reception_check_result_rationale_133", + "crud_sample_reception_check_result_rationale_171", + "crud_sample_reception_check_result_save_reception_check_results", + "crud_sample_reception_check_result_soft_delete_reception_check_results", + "crud_sample_reception_check_result_sync_legacy_columns_from_results", + "crud_sample_reception_create_sample_reception", + "crud_sample_reception_rationale_108", + "crud_sample_reception_rationale_179", + "crud_sample_reception_rationale_254", + "crud_sample_reception_rationale_35", + "crud_sample_reception_rationale_74", + "crud_sample_reception_rationale_825", + "crud_sample_reception_rationale_929", + "crud_sample_reception_rationale_973", + "crud_sample_reception_update_sample_reception", + "crud_user_rationale_1", + "crud_user_rationale_134", + "crud_user_rationale_181", + "crud_user_usercrudcompat", + "models_models_bizattachment", + "models_models_bizcellsampletype", + "models_models_bizcollectionhospital", + "models_models_bizcollectionprotocol", + "models_models_bizcollectionprotocolno", + "models_models_bizcollectionregion", + "models_models_bizcustomer", + "models_models_bizprotocolaudit", + "models_models_bizprotocolcollectioninfo", + "models_models_bizprotocolfullmoontodo", + "models_models_bizprotocolpartycustomer", + "models_models_bizprotocolpayment", + "models_models_bizprotocolpaymentdetail", + "models_models_bizprotocolsample", + "models_models_bizprotocolsampletransport", + "models_models_bizprotocolstoragecert", + "models_models_bizqcworkorder", + "models_models_bizsamplecode", + "models_models_bizsamplereception", + "models_models_bizsamplereceptioncheckresult", + "models_models_sysdept", + "models_models_sysrole", + "models_models_sysuser", + "models_models_sysuserrole", + "models_research_donation_bizprotocoldonationconvert", + "models_research_donation_bizresearchdonation", + "models_research_donation_bizresearchdonationaudit", + "models_research_donation_bizresearchdonationcollection", + "models_research_donation_bizresearchdonationparty", + "models_research_donation_bizresearchdonationsample", + "models_research_donation_bizresearchdonationsampletransport", + "models_research_donation_py", + "models_research_donation_rationale_10", + "models_research_donation_rationale_102", + "models_research_donation_rationale_126", + "models_research_donation_rationale_155", + "models_research_donation_rationale_183", + "models_research_donation_rationale_43", + "models_research_donation_rationale_64", + "services_web_auth_roles_iter_user_menu_perm_codes", + "services_web_auth_roles_map_role_name_to_web", + "services_web_auth_roles_py", "services_web_auth_roles_rationale_1", "services_web_auth_roles_rationale_14", "services_web_auth_roles_rationale_26", "services_web_auth_roles_rationale_54", - "services_workflow_engine_rationale_1", - "services_workflow_engine_workflowengine", - "services_workflow_engine_workflowengine_init" + "services_web_auth_roles_resolve_web_role_for_user" ], - "3": [ - "core_storage_localstorage_delete_file", - "core_utils_generate_uuid", - "crud_base_crudbase_exists", - "crud_consumable_pack_create_consumable_pack", - "crud_consumable_pack_get_consumable_pack", - "crud_consumable_pack_get_pack_detail", - "crud_consumable_pack_item_row_to_dict", - "crud_consumable_pack_list_all_packs", - "crud_consumable_pack_list_consumable_packs", - "crud_consumable_pack_pack_code_exists", - "crud_consumable_pack_py", - "crud_consumable_pack_row_to_dict", - "crud_consumable_pack_soft_delete_consumable_pack", - "crud_consumable_pack_total_pages", - "crud_consumable_pack_update_consumable_pack", + "4": [ + "api_ethnic_list_ethnics_for_select", + "api_ethnic_py", + "core_data_scope_apply_data_scope", + "core_data_scope_get_child_dept_ids", + "core_data_scope_get_user_dept_id", + "core_data_scope_py", + "core_data_scope_resolve_user_role_scopes", + "crud_api_request_log_delete", + "crud_api_request_log_get", + "crud_api_request_log_get_multi_with_filters", + "crud_api_request_log_py", + "crud_base_crudbase_count", + "crud_collection_protocol_detail_query_with_protocol", + "crud_collection_protocol_list_audits", + "crud_collection_protocol_list_payment_details_page", + "crud_collection_protocol_list_receipt_confirm_details", + "crud_collection_protocol_list_receipt_confirmed_details", + "crud_collection_protocol_list_refund_confirm_details", + "crud_collection_protocol_list_refund_confirmed_details", + "crud_collection_protocol_party_customer_map_by_protocol_ids", + "crud_collection_protocol_rows_to_payment_detail_dicts", + "crud_ethnic_list_ethnics", + "crud_ethnic_py", + "crud_ethnic_rationale_1", + "crud_ethnic_row_to_dict", + "crud_leave_create_leave", + "crud_leave_get_leave", + "crud_leave_list_leaves", + "crud_leave_py", + "crud_leave_row_to_dict", + "crud_leave_soft_delete_leave", + "crud_leave_total_pages", + "crud_leave_update_leave", + "crud_material_stock_log_dec", + "crud_material_stock_log_fmt_dt", + "crud_material_stock_log_list_stock_logs", + "crud_material_stock_log_py", + "crud_material_stock_log_row_to_dict", + "crud_material_stock_log_user_nick_name_map", "crud_pilot_service_activate_channel_agreement", "crud_pilot_service_cell_product_price_code_exists", "crud_pilot_service_cell_product_spec_code_exists", @@ -1198,6 +1362,83 @@ "crud_pilot_service_update_project_system_item", "crud_pilot_service_validate_package_items_for_save", "crud_pilot_service_void_channel_agreement", + "crud_production_task_list_production_tasks", + "crud_qc_lab_test_item_create_lab_item", + "crud_qc_lab_test_item_get_lab_item", + "crud_qc_lab_test_item_item_code_exists", + "crud_qc_lab_test_item_list_active_lab_items", + "crud_qc_lab_test_item_list_lab_items", + "crud_qc_lab_test_item_py", + "crud_qc_lab_test_item_row_to_dict", + "crud_qc_lab_test_item_soft_delete_lab_item", + "crud_qc_lab_test_item_update_lab_item", + "crud_qc_material_usage_deduct_for_task", + "crud_qc_material_usage_display_remark", + "crud_qc_material_usage_list_usages", + "crud_qc_material_usage_list_usages_by_task", + "crud_qc_material_usage_parse_receiver_purpose_from_remark", + "crud_qc_material_usage_py", + "crud_qc_material_usage_resolve_receiver_purpose", + "crud_qc_material_usage_revert_task_material_usages", + "crud_qc_material_usage_row_to_dict", + "crud_qc_material_usage_user_nick_name_map", + "crud_workflow_list_completed_tasks", + "crud_workflow_list_my_instances", + "crud_workflow_list_pending_tasks", + "crud_workflow_task_row_to_dict" + ], + "5": [ + "core_utils_generate_uuid", + "crud_consumable_pack_create_consumable_pack", + "crud_consumable_pack_get_consumable_pack", + "crud_consumable_pack_get_pack_detail", + "crud_consumable_pack_item_row_to_dict", + "crud_consumable_pack_list_all_packs", + "crud_consumable_pack_list_consumable_packs", + "crud_consumable_pack_pack_code_exists", + "crud_consumable_pack_py", + "crud_consumable_pack_row_to_dict", + "crud_consumable_pack_soft_delete_consumable_pack", + "crud_consumable_pack_total_pages", + "crud_consumable_pack_update_consumable_pack", + "crud_exhibition_appointment_appointment_no_exists", + "crud_exhibition_appointment_create_exhibition_appointment", + "crud_exhibition_appointment_generate_appointment_no", + "crud_exhibition_appointment_get_exhibition_appointment", + "crud_exhibition_appointment_list_exhibition_appointments", + "crud_exhibition_appointment_py", + "crud_exhibition_appointment_rationale_1", + "crud_exhibition_appointment_rationale_100", + "crud_exhibition_appointment_soft_delete_exhibition_appointment", + "crud_exhibition_appointment_update_exhibition_appointment", + "crud_material_code_exists", + "crud_material_create_material", + "crud_material_dec", + "crud_material_fmt_dt", + "crud_material_get_material", + "crud_material_list_materials", + "crud_material_options_list", + "crud_material_py", + "crud_material_row_to_dict", + "crud_material_soft_delete_material", + "crud_material_stock_in", + "crud_material_stock_out", + "crud_material_update_material", + "crud_process_consumable_row_to_dict", + "crud_process_create_process", + "crud_process_create_sub_consumable", + "crud_process_create_sub_data_collection", + "crud_process_create_sub_output", + "crud_process_create_sub_reagent", + "crud_process_data_collection_row_to_dict", + "crud_process_get_process", + "crud_process_get_process_detail", + "crud_process_list_all_processes", + "crud_process_list_processes", + "crud_process_output_row_to_dict", + "crud_process_process_code_exists", + "crud_process_py", + "crud_process_reagent_row_to_dict", "crud_process_route_add_step", "crud_process_route_copy_step", "crud_process_route_create_route", @@ -1226,6 +1467,12 @@ "crud_process_route_update_step_data_collections", "crud_process_route_update_step_outputs", "crud_process_route_update_step_reagents", + "crud_process_row_to_dict", + "crud_process_soft_delete_process", + "crud_process_soft_delete_sub_records", + "crud_process_sub_item_with_order", + "crud_process_total_pages", + "crud_process_update_process", "crud_production_task_add_task_step", "crud_production_task_clone_route_to_task", "crud_production_task_clone_step_consumables", @@ -1237,7 +1484,6 @@ "crud_production_task_fmt_dt", "crud_production_task_generate_task_no", "crud_production_task_get_production_task_detail", - "crud_production_task_list_production_tasks", "crud_production_task_py", "crud_production_task_replace_step_consumables", "crud_production_task_replace_step_data_collections", @@ -1255,384 +1501,138 @@ "crud_production_task_task_output_to_dict", "crud_production_task_total_pages", "crud_production_task_update_production_task", - "crud_production_task_update_task_status" - ], - "4": [ - "api_collection_protocol_persist_protocol_sub_resources", - "api_ethnic_list_ethnics_for_select", - "api_ethnic_py", - "api_insurance_company_list_insurance_companies", - "api_insurance_company_total_pages", - "api_operations_list_access_logs", - "core_data_scope_apply_data_scope", - "core_data_scope_get_child_dept_ids", - "core_data_scope_get_user_dept_id", - "core_data_scope_py", - "core_data_scope_resolve_user_role_scopes", - "crud_api_request_log_delete", - "crud_api_request_log_get", - "crud_api_request_log_get_multi_with_filters", - "crud_api_request_log_py", - "crud_base_crudbase_count", - "crud_collection_protocol_add_months_yyyymmdd", - "crud_collection_protocol_align_fq_payment_details_payload", - "crud_collection_protocol_apply_submit_receipt_finance", - "crud_collection_protocol_apply_submit_refund_finance", - "crud_collection_protocol_attachments_to_urls", - "crud_collection_protocol_audit_to_dict", - "crud_collection_protocol_batch_submit_receipt_finance", - "crud_collection_protocol_batch_submit_refund_finance", - "crud_collection_protocol_calc_installment_due_amounts", - "crud_collection_protocol_classify_installment_warning", - "crud_collection_protocol_collection_info_to_dict", - "crud_collection_protocol_confirm_receipt", - "crud_collection_protocol_confirm_refund", - "crud_collection_protocol_create_audit", - "crud_collection_protocol_dec", - "crud_collection_protocol_detail_query_with_protocol", - "crud_collection_protocol_detail_to_dict", - "crud_collection_protocol_fmt_dt", - "crud_collection_protocol_format_newborn_info", - "crud_collection_protocol_format_storage_cert_sample_info", - "crud_collection_protocol_fullmoon_todo_detail_dict", - "crud_collection_protocol_fullmoon_todo_empty_dict", - "crud_collection_protocol_fullmoon_todo_to_dict", - "crud_collection_protocol_get_collection_info", - "crud_collection_protocol_get_collection_protocol", - "crud_collection_protocol_get_fullmoon_todo", - "crud_collection_protocol_get_party_customer", - "crud_collection_protocol_get_payment_by_protocol_id", - "crud_collection_protocol_get_payment_detail_or_raise", - "crud_collection_protocol_get_protocol_detail_bundle", - "crud_collection_protocol_get_sample_codes_used_in_protocol_samples", - "crud_collection_protocol_get_storage_cert", - "crud_collection_protocol_list_audits", - "crud_collection_protocol_list_collection_protocols", - "crud_collection_protocol_list_installment_warning", - "crud_collection_protocol_list_payment_details", - "crud_collection_protocol_list_payment_details_page", - "crud_collection_protocol_list_receipt_confirm_details", - "crud_collection_protocol_list_receipt_confirmed_details", - "crud_collection_protocol_list_refund_confirm_details", - "crud_collection_protocol_list_refund_confirmed_details", - "crud_collection_protocol_list_sample_transports", - "crud_collection_protocol_list_samples", - "crud_collection_protocol_list_storage_certs", - "crud_collection_protocol_load_sample_type_name_map", - "crud_collection_protocol_lookup_attachment_by_url", - "crud_collection_protocol_migrate_sample_child_refs_on_replace", - "crud_collection_protocol_normalize_attachment_url_key", - "crud_collection_protocol_normalize_fields", - "crud_collection_protocol_normalize_yyyymmdd_date", - "crud_collection_protocol_optional_decimal", - "crud_collection_protocol_party_customer_map_by_protocol_ids", - "crud_collection_protocol_party_customer_to_dict", - "crud_collection_protocol_payment_to_dict", - "crud_collection_protocol_pick_storage_in_date", - "crud_collection_protocol_pop_attachment_urls", - "crud_collection_protocol_protocol_to_dict", - "crud_collection_protocol_py", - "crud_collection_protocol_rows_to_payment_detail_dicts", - "crud_collection_protocol_sample_to_dict", - "crud_collection_protocol_save_payment_details", - "crud_collection_protocol_save_sample_transports", - "crud_collection_protocol_save_samples", - "crud_collection_protocol_soft_delete_collection_protocol", - "crud_collection_protocol_soft_delete_transports_for_protocol", - "crud_collection_protocol_storage_cert_to_dict", - "crud_collection_protocol_submit_receipt_finance", - "crud_collection_protocol_submit_refund_finance", - "crud_collection_protocol_today_yyyymmdd", - "crud_collection_protocol_total_pages", - "crud_collection_protocol_transport_to_dict", - "crud_collection_protocol_update_collection_protocol", - "crud_collection_protocol_upsert_collection_info", - "crud_collection_protocol_upsert_fullmoon_todo", - "crud_collection_protocol_upsert_party_customer", - "crud_collection_protocol_upsert_payment", - "crud_collection_protocol_upsert_storage_cert", - "crud_collection_protocol_user_nick_name_map", - "crud_collection_protocol_validate_sample_codes_not_used", - "crud_ethnic_list_ethnics", - "crud_ethnic_py", - "crud_ethnic_rationale_1", - "crud_ethnic_row_to_dict", - "crud_leave_create_leave", - "crud_leave_get_leave", - "crud_leave_list_leaves", - "crud_leave_py", - "crud_leave_row_to_dict", - "crud_leave_soft_delete_leave", - "crud_leave_total_pages", - "crud_leave_update_leave", - "crud_material_stock_log_dec", - "crud_material_stock_log_fmt_dt", - "crud_material_stock_log_list_stock_logs", - "crud_material_stock_log_py", - "crud_material_stock_log_row_to_dict", - "crud_material_stock_log_user_nick_name_map", - "crud_qc_lab_test_item_create_lab_item", - "crud_qc_lab_test_item_get_lab_item", - "crud_qc_lab_test_item_item_code_exists", - "crud_qc_lab_test_item_list_active_lab_items", - "crud_qc_lab_test_item_list_lab_items", - "crud_qc_lab_test_item_py", - "crud_qc_lab_test_item_row_to_dict", - "crud_qc_lab_test_item_soft_delete_lab_item", - "crud_qc_lab_test_item_update_lab_item", - "crud_qc_material_usage_display_remark", - "crud_qc_material_usage_list_usages", - "crud_qc_material_usage_list_usages_by_task", - "crud_qc_material_usage_parse_receiver_purpose_from_remark", - "crud_qc_material_usage_py", - "crud_qc_material_usage_resolve_receiver_purpose", - "crud_qc_material_usage_row_to_dict", - "crud_qc_material_usage_user_nick_name_map", - "crud_workflow_list_completed_tasks", - "crud_workflow_list_my_instances", - "crud_workflow_list_pending_tasks", - "crud_workflow_task_row_to_dict" - ], - "5": [ - "api_collection_protocol_auditcreatebody", - "api_collection_protocol_batchdetailidsbody", - "api_collection_protocol_batchrefundfinancesubmitbody", - "api_collection_protocol_financeconfirmbody", - "api_collection_protocol_fullmoontodoinsurancebody", - "api_collection_protocol_protocolcreatebody", - "api_collection_protocol_protocolupdatebody", - "api_collection_protocol_rationale_1", - "api_collection_protocol_rationale_68", - "api_collection_protocol_refundfinanceconfirmbody", - "api_collection_protocol_refundfinancesubmitbody", - "crud_collection_protocol_create_collection_protocol", - "crud_collection_protocol_rationale_1", - "crud_collection_protocol_rationale_1126", - "crud_collection_protocol_rationale_125", - "crud_collection_protocol_rationale_1589", - "crud_collection_protocol_rationale_179", - "crud_collection_protocol_rationale_1962", - "crud_collection_protocol_rationale_198", - "crud_collection_protocol_rationale_209", - "crud_collection_protocol_rationale_220", - "crud_collection_protocol_rationale_2537", - "crud_collection_protocol_rationale_284", - "crud_collection_protocol_rationale_55", - "crud_collection_protocol_rationale_89", - "crud_collection_region_rationale_29", - "crud_production_work_order_rationale_85", - "crud_protocol_donation_convert_active_link_query", - "crud_protocol_donation_convert_assert_biz_no_available", - "crud_protocol_donation_convert_create_convert_link", - "crud_protocol_donation_convert_get_convert_partner", - "crud_protocol_donation_convert_get_partner_sample_codes", - "crud_protocol_donation_convert_has_active_convert_link", - "crud_protocol_donation_convert_py", - "crud_protocol_donation_convert_rationale_1", - "crud_protocol_donation_convert_rationale_132", - "crud_protocol_donation_convert_rationale_198", - "crud_protocol_donation_convert_rationale_273", - "crud_protocol_donation_convert_rationale_35", - "crud_protocol_donation_convert_rationale_84", - "crud_protocol_donation_convert_upsert_convert_link_for_to_storage", - "crud_qc_task_rationale_421", - "crud_qc_work_order_rationale_231", - "crud_qc_work_order_rationale_466", - "crud_qc_work_order_rationale_575", - "crud_research_donation_audit_to_dict", - "crud_research_donation_batch_delete_donations", - "crud_research_donation_collection_to_dict", - "crud_research_donation_convert_from_storage", - "crud_research_donation_convert_to_storage", - "crud_research_donation_create_collection", - "crud_research_donation_create_donation", - "crud_research_donation_create_party", - "crud_research_donation_create_samples", - "crud_research_donation_create_transport", - "crud_research_donation_dec", - "crud_research_donation_delete_donation", - "crud_research_donation_donation_to_dict", - "crud_research_donation_fmt_dt", - "crud_research_donation_get_collection", - "crud_research_donation_get_donation_detail", - "crud_research_donation_get_party", - "crud_research_donation_list_audits", - "crud_research_donation_list_donations", - "crud_research_donation_list_sample_transports", - "crud_research_donation_list_samples", - "crud_research_donation_merge_comma_separated_urls", - "crud_research_donation_normalize_fields", - "crud_research_donation_optional_decimal", - "crud_research_donation_party_to_dict", - "crud_research_donation_py", - "crud_research_donation_rationale_1", - "crud_research_donation_rationale_109", - "crud_research_donation_rationale_1322", - "crud_research_donation_rationale_637", - "crud_research_donation_rationale_706", - "crud_research_donation_rationale_82", - "crud_research_donation_rationale_93", - "crud_research_donation_rationale_939", - "crud_research_donation_resolve_donation_payload", - "crud_research_donation_sample_to_dict", - "crud_research_donation_soft_delete_all", - "crud_research_donation_soft_delete_collection", - "crud_research_donation_soft_delete_party", - "crud_research_donation_soft_delete_samples", - "crud_research_donation_soft_delete_transports", - "crud_research_donation_submit_audit", - "crud_research_donation_total_pages", - "crud_research_donation_transport_to_dict", - "crud_research_donation_update_donation", - "crud_research_donation_user_nick_name_map", - "crud_sample_reception_rationale_108", - "crud_sample_reception_rationale_179", - "crud_sample_reception_rationale_254", - "crud_sample_reception_rationale_35", - "crud_sample_reception_rationale_74", - "crud_sample_reception_rationale_825", - "crud_sample_reception_rationale_929", - "crud_sample_reception_rationale_973", - "models_models_bizcellsampletype", - "models_models_bizcollectionhospital", - "models_models_bizcollectionprotocol", - "models_models_bizcollectionregion", - "models_models_bizprotocolaudit", - "models_models_bizprotocolcollectioninfo", - "models_models_bizprotocolfullmoontodo", - "models_models_bizprotocolpartycustomer", - "models_models_bizprotocolpayment", - "models_models_bizprotocolpaymentdetail", - "models_models_bizprotocolsample", - "models_models_bizprotocolsampletransport", - "models_models_bizprotocolstoragecert", - "models_models_bizqcworkorder", - "models_models_bizsamplereception", - "models_research_donation_bizprotocoldonationconvert", - "models_research_donation_bizresearchdonation", - "models_research_donation_bizresearchdonationaudit", - "models_research_donation_bizresearchdonationcollection", - "models_research_donation_bizresearchdonationparty", - "models_research_donation_bizresearchdonationsample", - "models_research_donation_bizresearchdonationsampletransport", - "models_research_donation_py", - "models_research_donation_rationale_10", - "models_research_donation_rationale_102", - "models_research_donation_rationale_126", - "models_research_donation_rationale_155", - "models_research_donation_rationale_183", - "models_research_donation_rationale_43", - "models_research_donation_rationale_64" + "crud_production_task_update_task_status", + "crud_qc_material_build_manual_out_remark", + "crud_qc_material_code_exists", + "crud_qc_material_create_material", + "crud_qc_material_dec", + "crud_qc_material_fmt_dt", + "crud_qc_material_get_material", + "crud_qc_material_is_enabled_status", + "crud_qc_material_list_materials", + "crud_qc_material_norm_status", + "crud_qc_material_options_list", + "crud_qc_material_py", + "crud_qc_material_rationale_26", + "crud_qc_material_row_to_dict", + "crud_qc_material_soft_delete_material", + "crud_qc_material_stock_in", + "crud_qc_material_stock_out", + "crud_qc_material_total_pages", + "crud_qc_material_update_material" ], "6": [ - "api_admin_get_role_data_scope", - "api_admin_get_role_menus", - "crud_base_crudbase_update", - "crud_collection_protocol_format_attachment_file_size", - "crud_collection_protocol_get_protocol_nos_used_in_protocols", - "crud_collection_protocol_urls_to_attachment_list", - "crud_dict_type_create_dict_type", - "crud_dict_type_dict_type_code_exists", - "crud_dict_type_get_dict_type", - "crud_dict_type_list_dict_types", - "crud_dict_type_py", - "crud_dict_type_row_to_dict", - "crud_dict_type_soft_delete_dict_type", - "crud_dict_type_total_pages", - "crud_dict_type_update_dict_type", - "crud_production_work_order_complete_production_work_order", - "crud_production_work_order_create_production_work_order_from_reception", - "crud_production_work_order_fmt_dt", - "crud_production_work_order_generate_work_order_no", - "crud_production_work_order_get_production_work_order", - "crud_production_work_order_list_production_work_orders", - "crud_production_work_order_py", - "crud_production_work_order_wo_to_dict", - "crud_qc_task_apply_task_result", - "crud_qc_task_complete_task", - "crud_qc_task_conclusion_label", - "crud_qc_task_create_task_for_line", - "crud_qc_task_dec", - "crud_qc_task_enrich_tasks_reception_fields", - "crud_qc_task_fmt_dt", - "crud_qc_task_gen_task_no", - "crud_qc_task_get_task", - "crud_qc_task_get_task_detail", - "crud_qc_task_list_tasks", - "crud_qc_task_list_tasks_by_work_order", - "crud_qc_task_py", - "crud_qc_task_set_task_remark", - "crud_qc_task_start_task", - "crud_qc_task_task_row_to_dict", - "crud_qc_task_task_to_dict", - "crud_qc_task_task_work_order_context", - "crud_qc_task_update_task_attachments", - "crud_qc_work_order_accept_conclusion_label", - "crud_qc_work_order_configure_work_order", - "crud_qc_work_order_create_work_order_from_reception", - "crud_qc_work_order_dec", - "crud_qc_work_order_enrich_work_order_list_items", - "crud_qc_work_order_fmt_dt", - "crud_qc_work_order_gen_daily_no", - "crud_qc_work_order_get_qc_info_map_for_samples", - "crud_qc_work_order_get_work_order", - "crud_qc_work_order_get_work_order_detail", - "crud_qc_work_order_lab_lines", - "crud_qc_work_order_list_work_orders", - "crud_qc_work_order_load_sample_type_name_map", - "crud_qc_work_order_py", - "crud_qc_work_order_qc_biz_type_label", - "crud_qc_work_order_qc_info_item", - "crud_qc_work_order_reception_source_label", - "crud_qc_work_order_sample_type_name_for_reception", - "crud_qc_work_order_soft_delete_pending_work_order_tasks", - "crud_qc_work_order_third_lines", - "crud_qc_work_order_try_complete_work_order", - "crud_qc_work_order_wo_to_dict", - "crud_qc_work_order_work_order_qc_biz_type", - "crud_role_create_role", - "crud_role_get_role", - "crud_role_get_role_data_scope", - "crud_role_get_role_menu_ids", - "crud_role_list_roles", - "crud_role_py", - "crud_role_role_name_exists", - "crud_role_row_to_dict", - "crud_role_soft_delete_role", - "crud_role_total_pages", - "crud_role_update_role", - "crud_role_update_role_data_scope", - "crud_sample_reception_check_result_get_check_results_for_reception", - "crud_sample_reception_check_result_legacy_results_from_reception", - "crud_sample_reception_check_result_list_results_by_reception_ids", - "crud_sample_reception_check_result_py", - "crud_sample_reception_check_result_result_to_dict", - "crud_sample_reception_check_result_save_reception_check_results", - "crud_sample_reception_check_result_soft_delete_reception_check_results", - "crud_sample_reception_check_result_sync_legacy_columns_from_results", - "crud_sample_reception_create_sample_reception", - "crud_sample_reception_dec", - "crud_sample_reception_donation_rows_to_sample_list_items", - "crud_sample_reception_donation_sample_detail_rows_query", - "crud_sample_reception_donation_sample_id_col", - "crud_sample_reception_donation_sample_pending_query", - "crud_sample_reception_fmt_dt", - "crud_sample_reception_get_reception_by_id", - "crud_sample_reception_get_receptions_map_for_donation_samples", - "crud_sample_reception_get_receptions_map_for_samples", - "crud_sample_reception_list_pending_protocol_samples", - "crud_sample_reception_list_received_protocol_samples", - "crud_sample_reception_py", - "crud_sample_reception_reception_detail_item", - "crud_sample_reception_reception_sample_code", - "crud_sample_reception_reception_to_dict", - "crud_sample_reception_rows_to_sample_list_items", - "crud_sample_reception_sample_detail_rows_query", - "crud_sample_reception_sample_pending_query", - "crud_sample_reception_update_sample_reception" + "api_public_avatar_url_field", + "api_public_build_user_info_payload", + "api_public_jwt_user_payload", + "api_public_logout", + "api_public_py", + "api_public_rationale_1", + "api_public_rationale_197", + "api_public_rationale_43", + "api_public_rationale_70", + "api_public_rationale_81", + "api_public_refresh_token", + "api_public_web_login", + "api_public_web_login_rsa_public_key", + "app_main_health_check", + "app_main_lifespan", + "app_main_mask_secret", + "app_main_root", + "core_api_request_log_middleware_apirequestlogmiddleware", + "core_api_request_log_middleware_apirequestlogmiddleware_dispatch", + "core_api_request_log_middleware_claims_from_auth", + "core_api_request_log_middleware_format_body_bytes", + "core_api_request_log_middleware_persist_log", + "core_api_request_log_middleware_py", + "core_api_request_log_middleware_rationale_1", + "core_api_request_log_middleware_redact_obj", + "core_api_request_log_middleware_schedule_persist_log", + "core_api_request_log_middleware_should_skip", + "core_api_request_log_middleware_truncate", + "core_auth_create_access_token", + "core_auth_create_refresh_token", + "core_auth_decode_token", + "core_auth_extend_session", + "core_auth_get_client_ip", + "core_auth_get_current_user", + "core_auth_get_current_user_by_token", + "core_auth_get_current_user_simple", + "core_auth_get_redis_client", + "core_auth_is_refresh_token_valid", + "core_auth_is_session_valid", + "core_auth_py", + "core_auth_rationale_107", + "core_auth_rationale_190", + "core_auth_rationale_76", + "core_auth_redis_session_enabled", + "core_auth_refresh_key", + "core_auth_revoke_refresh_token", + "core_auth_revoke_session", + "core_auth_session_key", + "core_auth_store_refresh_token", + "core_auth_store_session", + "core_login_crypto_decrypt_login_payload", + "core_login_crypto_ensure_initialized", + "core_login_crypto_extract_login_credentials", + "core_login_crypto_get_public_pem", + "core_login_crypto_py", + "core_login_crypto_rationale_1", + "core_login_crypto_rationale_63", + "core_login_crypto_rationale_84", + "core_login_crypto_validate_ts", + "core_security_get_password_hash", + "core_security_py", + "core_security_rationale_5", + "core_security_verify_password", + "core_utils_format_datetime", + "core_utils_generate_id", + "core_utils_generate_random_password", + "core_utils_get_current_time", + "core_utils_get_file_size_display", + "core_utils_py", + "crud_base_camel_to_snake", + "crud_base_crudbase", + "crud_base_crudbase_create", + "crud_base_crudbase_delete", + "crud_base_crudbase_exists", + "crud_base_crudbase_get_all", + "crud_base_crudbase_get_multi", + "crud_base_crudbase_hard_delete", + "crud_base_crudbase_init", + "crud_base_get_model_attr", + "crud_base_historycrud", + "crud_base_historycrud_create_history", + "crud_base_py", + "crud_role_update_role_menus", + "crud_user_usercrudcompat_get_by_user_no", + "main_py", + "tasks_init_init_scheduled_tasks", + "tasks_init_py", + "tasks_init_shutdown_scheduler" ], "7": [ - "api_workflow_get_designer_data", + "core_exceptions_businessexception", + "core_exceptions_businessexception_init", + "core_exceptions_invalidstatustransitionexception", + "core_exceptions_invalidstatustransitionexception_init", + "core_exceptions_log_api_request", + "core_exceptions_log_delivery_operation", + "core_exceptions_log_operation", + "core_exceptions_log_order_operation", + "core_exceptions_log_settlement_operation", + "core_exceptions_log_user_operation", + "core_exceptions_orderlockedexception", + "core_exceptions_orderlockedexception_init", + "core_exceptions_permissionexception", + "core_exceptions_permissionexception_init", + "core_exceptions_py", + "core_exceptions_resourceconflictexception", + "core_exceptions_resourceconflictexception_init", + "core_exceptions_resourcenotfoundexception", + "core_exceptions_resourcenotfoundexception_init", + "core_exceptions_validationexception", + "core_exceptions_validationexception_init", "core_storage_basestorage", "core_storage_basestorage_delete_file", "core_storage_basestorage_get_url", @@ -1642,6 +1642,7 @@ "core_storage_convert_heic_to_jpeg", "core_storage_get_storage", "core_storage_localstorage", + "core_storage_localstorage_delete_file", "core_storage_localstorage_ensure_dir", "core_storage_localstorage_generate_filename", "core_storage_localstorage_get_url", @@ -1678,6 +1679,178 @@ "core_storage_rationale_38", "core_storage_rationale_53", "core_storage_rationale_83", + "exception", + "services_workflow_callback_dispatch_local", + "services_workflow_callback_py", + "services_workflow_callback_rationale_1", + "services_workflow_callback_rationale_24", + "services_workflow_callback_rationale_29", + "services_workflow_callback_rationale_61", + "services_workflow_callback_register_local_callback", + "services_workflow_callback_trigger_callback" + ], + "8": [ + "crud_collection_protocol_format_attachment_file_size", + "crud_collection_protocol_urls_to_attachment_list", + "crud_qc_task_apply_task_result", + "crud_qc_task_complete_task", + "crud_qc_task_conclusion_label", + "crud_qc_task_create_task_for_line", + "crud_qc_task_dec", + "crud_qc_task_enrich_tasks_reception_fields", + "crud_qc_task_fmt_dt", + "crud_qc_task_gen_task_no", + "crud_qc_task_get_task", + "crud_qc_task_get_task_detail", + "crud_qc_task_list_tasks", + "crud_qc_task_list_tasks_by_work_order", + "crud_qc_task_py", + "crud_qc_task_set_task_remark", + "crud_qc_task_start_task", + "crud_qc_task_task_row_to_dict", + "crud_qc_task_task_to_dict", + "crud_qc_task_task_work_order_context", + "crud_qc_work_order_accept_conclusion_label", + "crud_qc_work_order_configure_work_order", + "crud_qc_work_order_dec", + "crud_qc_work_order_enrich_work_order_list_items", + "crud_qc_work_order_fmt_dt", + "crud_qc_work_order_gen_daily_no", + "crud_qc_work_order_get_qc_info_map_for_samples", + "crud_qc_work_order_get_work_order", + "crud_qc_work_order_get_work_order_detail", + "crud_qc_work_order_lab_lines", + "crud_qc_work_order_list_work_orders", + "crud_qc_work_order_load_sample_type_name_map", + "crud_qc_work_order_py", + "crud_qc_work_order_qc_biz_type_label", + "crud_qc_work_order_qc_info_item", + "crud_qc_work_order_reception_source_label", + "crud_qc_work_order_sample_type_name_for_reception", + "crud_qc_work_order_soft_delete_pending_work_order_tasks", + "crud_qc_work_order_third_lines", + "crud_qc_work_order_try_complete_work_order", + "crud_qc_work_order_wo_to_dict", + "crud_qc_work_order_work_order_qc_biz_type", + "crud_sample_reception_check_result_get_check_results_for_reception", + "crud_sample_reception_check_result_legacy_results_from_reception", + "crud_sample_reception_check_result_list_results_by_reception_ids", + "crud_sample_reception_check_result_py", + "crud_sample_reception_check_result_result_to_dict", + "crud_sample_reception_dec", + "crud_sample_reception_donation_rows_to_sample_list_items", + "crud_sample_reception_donation_sample_detail_rows_query", + "crud_sample_reception_donation_sample_id_col", + "crud_sample_reception_donation_sample_pending_query", + "crud_sample_reception_fmt_dt", + "crud_sample_reception_get_reception_by_id", + "crud_sample_reception_get_receptions_map_for_donation_samples", + "crud_sample_reception_get_receptions_map_for_samples", + "crud_sample_reception_list_pending_protocol_samples", + "crud_sample_reception_list_received_protocol_samples", + "crud_sample_reception_py", + "crud_sample_reception_reception_detail_item", + "crud_sample_reception_reception_sample_code", + "crud_sample_reception_reception_to_dict", + "crud_sample_reception_rows_to_sample_list_items", + "crud_sample_reception_sample_detail_rows_query", + "crud_sample_reception_sample_pending_query", + "crud_sop_document_create_sop_document", + "crud_sop_document_get_sop_document", + "crud_sop_document_list_sop_documents", + "crud_sop_document_py", + "crud_sop_document_rationale_1", + "crud_sop_document_row_to_dict", + "crud_sop_document_soft_delete_sop_document", + "crud_sop_document_sop_code_exists", + "crud_sop_document_total_pages", + "crud_sop_document_update_sop_document" + ], + "9": [ + "api_collection_protocol_persist_protocol_sub_resources", + "crud_collection_protocol_add_months_yyyymmdd", + "crud_collection_protocol_align_fq_payment_details_payload", + "crud_collection_protocol_apply_submit_receipt_finance", + "crud_collection_protocol_apply_submit_refund_finance", + "crud_collection_protocol_attachments_to_urls", + "crud_collection_protocol_audit_to_dict", + "crud_collection_protocol_batch_submit_receipt_finance", + "crud_collection_protocol_batch_submit_refund_finance", + "crud_collection_protocol_calc_installment_due_amounts", + "crud_collection_protocol_classify_installment_warning", + "crud_collection_protocol_collection_info_to_dict", + "crud_collection_protocol_confirm_receipt", + "crud_collection_protocol_confirm_refund", + "crud_collection_protocol_create_audit", + "crud_collection_protocol_dec", + "crud_collection_protocol_detail_to_dict", + "crud_collection_protocol_fmt_dt", + "crud_collection_protocol_format_newborn_info", + "crud_collection_protocol_format_storage_cert_sample_info", + "crud_collection_protocol_fullmoon_todo_detail_dict", + "crud_collection_protocol_fullmoon_todo_empty_dict", + "crud_collection_protocol_fullmoon_todo_to_dict", + "crud_collection_protocol_get_collection_info", + "crud_collection_protocol_get_collection_protocol", + "crud_collection_protocol_get_fullmoon_todo", + "crud_collection_protocol_get_party_customer", + "crud_collection_protocol_get_payment_by_protocol_id", + "crud_collection_protocol_get_payment_detail_or_raise", + "crud_collection_protocol_get_protocol_detail_bundle", + "crud_collection_protocol_get_sample_codes_used_in_protocol_samples", + "crud_collection_protocol_get_storage_cert", + "crud_collection_protocol_list_collection_protocols", + "crud_collection_protocol_list_installment_warning", + "crud_collection_protocol_list_payment_details", + "crud_collection_protocol_list_sample_transports", + "crud_collection_protocol_list_samples", + "crud_collection_protocol_list_storage_certs", + "crud_collection_protocol_load_sample_type_name_map", + "crud_collection_protocol_lookup_attachment_by_url", + "crud_collection_protocol_migrate_sample_child_refs_on_replace", + "crud_collection_protocol_normalize_attachment_url_key", + "crud_collection_protocol_normalize_fields", + "crud_collection_protocol_normalize_yyyymmdd_date", + "crud_collection_protocol_optional_decimal", + "crud_collection_protocol_party_customer_to_dict", + "crud_collection_protocol_payment_to_dict", + "crud_collection_protocol_pick_storage_in_date", + "crud_collection_protocol_pop_attachment_urls", + "crud_collection_protocol_protocol_to_dict", + "crud_collection_protocol_py", + "crud_collection_protocol_sample_to_dict", + "crud_collection_protocol_save_payment_details", + "crud_collection_protocol_save_sample_transports", + "crud_collection_protocol_save_samples", + "crud_collection_protocol_soft_delete_collection_protocol", + "crud_collection_protocol_soft_delete_transports_for_protocol", + "crud_collection_protocol_storage_cert_to_dict", + "crud_collection_protocol_submit_receipt_finance", + "crud_collection_protocol_submit_refund_finance", + "crud_collection_protocol_today_yyyymmdd", + "crud_collection_protocol_total_pages", + "crud_collection_protocol_transport_to_dict", + "crud_collection_protocol_update_collection_protocol", + "crud_collection_protocol_upsert_collection_info", + "crud_collection_protocol_upsert_fullmoon_todo", + "crud_collection_protocol_upsert_party_customer", + "crud_collection_protocol_upsert_payment", + "crud_collection_protocol_upsert_storage_cert", + "crud_collection_protocol_user_nick_name_map", + "crud_collection_protocol_validate_sample_codes_not_used" + ], + "10": [ + "crud_base_crudbase_update", + "crud_collection_protocol_get_protocol_nos_used_in_protocols", + "crud_dict_type_create_dict_type", + "crud_dict_type_dict_type_code_exists", + "crud_dict_type_get_dict_type", + "crud_dict_type_list_dict_types", + "crud_dict_type_py", + "crud_dict_type_row_to_dict", + "crud_dict_type_soft_delete_dict_type", + "crud_dict_type_total_pages", + "crud_dict_type_update_dict_type", "crud_qc_item_param_list_params_by_item", "crud_qc_item_param_py", "crud_qc_item_param_row_to_dict", @@ -1689,6 +1862,71 @@ "crud_qc_task_result_resolve_task_item_ref", "crud_qc_task_result_row_to_dict", "crud_qc_task_result_save_results_for_task", + "crud_role_create_role", + "crud_role_get_role", + "crud_role_get_role_data_scope", + "crud_role_get_role_menu_ids", + "crud_role_list_roles", + "crud_role_py", + "crud_role_role_name_exists", + "crud_role_row_to_dict", + "crud_role_soft_delete_role", + "crud_role_total_pages", + "crud_role_update_role", + "crud_role_update_role_data_scope", + "crud_storage_facility_batch_create_slots", + "crud_storage_facility_clear_slots_by_facility_node", + "crud_storage_facility_collect_descendant_ids", + "crud_storage_facility_create_facility", + "crud_storage_facility_create_slot", + "crud_storage_facility_get_children", + "crud_storage_facility_get_facility", + "crud_storage_facility_get_slot", + "crud_storage_facility_insert_row_and_shift_slots", + "crud_storage_facility_list_all_facilities", + "crud_storage_facility_list_slots", + "crud_storage_facility_py", + "crud_storage_facility_row_to_dict", + "crud_storage_facility_slot_to_dict", + "crud_storage_facility_soft_delete_facility", + "crud_storage_facility_soft_delete_slot", + "crud_storage_facility_update_facility", + "crud_storage_facility_update_slot", + "crud_user_create_user", + "crud_user_get_user", + "crud_user_get_user_with_relations", + "crud_user_hash_password", + "crud_user_list_post_ids_for_user", + "crud_user_list_user_ids_bound_to_post", + "crud_user_list_users", + "crud_user_py", + "crud_user_replace_associations", + "crud_user_reset_password", + "crud_user_row_to_dict", + "crud_user_set_user_post_ids_only", + "crud_user_soft_delete_user", + "crud_user_sync_post_user_bindings", + "crud_user_total_pages", + "crud_user_update_user", + "crud_user_user_no_exists" + ], + "11": [ + "api_workflow_business_type_label", + "api_workflow_enrich_task_list", + "api_workflow_get_business_all_tasks", + "api_workflow_get_business_form_fields", + "api_workflow_get_designer_data", + "api_workflow_get_instance_detail", + "api_workflow_list_completed_tasks", + "api_workflow_list_my_instances", + "api_workflow_list_pending_tasks", + "api_workflow_processdefcreatebody", + "api_workflow_processdefupdatebody", + "api_workflow_publishversionbody", + "api_workflow_py", + "api_workflow_rationale_135", + "api_workflow_startinstancebody", + "api_workflow_taskactionbody", "crud_workflow_create_instance", "crud_workflow_create_process_def", "crud_workflow_create_task", @@ -1703,320 +1941,73 @@ "crud_workflow_list_process_defs", "crud_workflow_list_versions", "crud_workflow_process_code_exists", + "crud_workflow_publish_version", "crud_workflow_py", + "crud_workflow_rationale_1", "crud_workflow_row_to_dict", "crud_workflow_soft_delete_process_def", "crud_workflow_total_pages", "crud_workflow_update_instance_status", "crud_workflow_update_process_def", "crud_workflow_version_to_dict", - "exception", - "services_workflow_callback_dispatch_local", - "services_workflow_callback_py", - "services_workflow_callback_rationale_1", - "services_workflow_callback_rationale_24", - "services_workflow_callback_rationale_29", - "services_workflow_callback_rationale_61", - "services_workflow_callback_register_local_callback", - "services_workflow_callback_trigger_callback", + "models_models_wfnode", + "models_models_wfprocessdef", + "models_models_wftask", "services_workflow_engine_compare", "services_workflow_engine_get_variable", "services_workflow_engine_parse_node_config", "services_workflow_engine_parse_variables", "services_workflow_engine_py", + "services_workflow_engine_rationale_1", + "services_workflow_engine_workflowengine", "services_workflow_engine_workflowengine_advance", "services_workflow_engine_workflowengine_approve_task", "services_workflow_engine_workflowengine_check_rules", "services_workflow_engine_workflowengine_evaluate_condition", "services_workflow_engine_workflowengine_execute_node", + "services_workflow_engine_workflowengine_init", "services_workflow_engine_workflowengine_reject_task", "services_workflow_engine_workflowengine_resolve_approvers", "services_workflow_engine_workflowengine_start_process" ], - "8": [ - "api_public_avatar_url_field", - "api_public_build_user_info_payload", - "api_public_jwt_user_payload", - "api_public_logout", - "api_public_py", - "api_public_rationale_1", - "api_public_rationale_197", - "api_public_rationale_43", - "api_public_rationale_70", - "api_public_rationale_81", - "api_public_refresh_token", - "api_public_web_login", - "api_public_web_login_rsa_public_key", - "app_main_health_check", - "app_main_lifespan", - "app_main_mask_secret", - "app_main_root", - "core_auth_create_access_token", - "core_auth_create_refresh_token", - "core_auth_decode_token", - "core_auth_extend_session", - "core_auth_get_client_ip", - "core_auth_get_current_user", - "core_auth_get_current_user_by_token", - "core_auth_get_current_user_simple", - "core_auth_get_redis_client", - "core_auth_is_refresh_token_valid", - "core_auth_is_session_valid", - "core_auth_py", - "core_auth_rationale_107", - "core_auth_rationale_190", - "core_auth_rationale_76", - "core_auth_redis_session_enabled", - "core_auth_refresh_key", - "core_auth_revoke_refresh_token", - "core_auth_revoke_session", - "core_auth_session_key", - "core_auth_store_refresh_token", - "core_auth_store_session", - "core_login_crypto_decrypt_login_payload", - "core_login_crypto_ensure_initialized", - "core_login_crypto_extract_login_credentials", - "core_login_crypto_get_public_pem", - "core_login_crypto_py", - "core_login_crypto_rationale_1", - "core_login_crypto_rationale_63", - "core_login_crypto_rationale_84", - "core_login_crypto_validate_ts", - "core_menu_guard_get_user_menu_codes", - "core_menu_guard_py", - "core_menu_guard_rationale_1", - "core_menu_guard_rationale_16", - "core_menu_guard_rationale_24", - "core_menu_guard_rationale_29", - "core_menu_guard_require_admin_or_super_admin", - "core_menu_guard_require_menu_code", - "core_security_get_password_hash", - "core_security_py", - "core_security_rationale_5", - "core_security_verify_password", - "crud_base_crudbase", - "crud_base_crudbase_delete", - "crud_base_crudbase_get_all", - "crud_base_crudbase_get_multi", - "crud_base_crudbase_hard_delete", - "crud_base_crudbase_init", - "crud_role_update_role_menus", - "crud_user_create_user", - "crud_user_get_user", - "crud_user_get_user_with_relations", - "crud_user_hash_password", - "crud_user_list_post_ids_for_user", - "crud_user_list_user_ids_bound_to_post", - "crud_user_list_users", - "crud_user_py", - "crud_user_rationale_1", - "crud_user_rationale_134", - "crud_user_rationale_181", - "crud_user_replace_associations", - "crud_user_reset_password", - "crud_user_row_to_dict", - "crud_user_set_user_post_ids_only", - "crud_user_soft_delete_user", - "crud_user_sync_post_user_bindings", - "crud_user_total_pages", - "crud_user_update_user", - "crud_user_user_no_exists", - "crud_user_usercrudcompat", - "crud_user_usercrudcompat_get_by_user_no", - "main_py", - "services_web_auth_roles_iter_user_menu_perm_codes", - "services_web_auth_roles_map_role_name_to_web", - "services_web_auth_roles_py", - "services_web_auth_roles_resolve_web_role_for_user", - "tasks_init_init_scheduled_tasks", - "tasks_init_py", - "tasks_init_shutdown_scheduler" - ], - "9": [ - "api_operations_accesslogcreatebody", - "api_operations_accesslogupdatebody", - "api_operations_cleanroomcreatebody", - "api_operations_cleanroomupdatebody", - "api_operations_exhibitionappointmentcreatebody", - "api_operations_exhibitionappointmentupdatebody", - "api_operations_list_storage_slots", - "api_operations_py", - "api_operations_rationale_1", - "api_operations_storagefacilitycreatebody", - "api_operations_storagefacilityupdatebody", - "api_operations_storageslotbatchcreatebody", - "api_operations_storageslotclearbody", - "api_operations_storageslotcreatebody", - "api_operations_storageslotinsertrowbody", - "api_operations_storageslotupdatebody", - "crud_clean_room_access_log_to_dict", - "crud_clean_room_create_access_log", - "crud_clean_room_create_clean_room", - "crud_clean_room_get_access_log", - "crud_clean_room_get_clean_room", - "crud_clean_room_list_access_logs", - "crud_clean_room_list_clean_rooms", - "crud_clean_room_py", - "crud_clean_room_rationale_1", - "crud_clean_room_room_code_exists", - "crud_clean_room_row_to_dict", - "crud_clean_room_soft_delete_access_log", - "crud_clean_room_soft_delete_clean_room", - "crud_clean_room_total_pages", - "crud_clean_room_update_access_log", - "crud_clean_room_update_clean_room", - "crud_exhibition_appointment_appointment_no_exists", - "crud_exhibition_appointment_create_exhibition_appointment", - "crud_exhibition_appointment_format_visit_date", - "crud_exhibition_appointment_generate_appointment_no", - "crud_exhibition_appointment_get_exhibition_appointment", - "crud_exhibition_appointment_list_exhibition_appointments", - "crud_exhibition_appointment_py", - "crud_exhibition_appointment_rationale_1", - "crud_exhibition_appointment_rationale_100", - "crud_exhibition_appointment_rationale_16", - "crud_exhibition_appointment_soft_delete_exhibition_appointment", - "crud_exhibition_appointment_update_exhibition_appointment", - "crud_storage_facility_batch_create_slots", - "crud_storage_facility_clear_slots_by_facility_node", - "crud_storage_facility_collect_descendant_ids", - "crud_storage_facility_create_facility", - "crud_storage_facility_create_slot", - "crud_storage_facility_get_children", - "crud_storage_facility_get_facility", - "crud_storage_facility_get_slot", - "crud_storage_facility_insert_row_and_shift_slots", - "crud_storage_facility_list_all_facilities", - "crud_storage_facility_list_slots", - "crud_storage_facility_py", - "crud_storage_facility_rationale_1", - "crud_storage_facility_rationale_165", - "crud_storage_facility_rationale_41", - "crud_storage_facility_rationale_63", - "crud_storage_facility_rationale_79", - "crud_storage_facility_row_to_dict", - "crud_storage_facility_slot_to_dict", - "crud_storage_facility_soft_delete_facility", - "crud_storage_facility_soft_delete_slot", - "crud_storage_facility_update_facility", - "crud_storage_facility_update_slot", - "models_models_bizcleanroom", - "models_models_bizcleanroomaccesslog", - "models_models_bizexhibitionappointment", - "models_models_bizstoragefacility", - "models_models_bizstoragefacilityslot" - ], - "10": [ - "api_production_consumablecreatebody", - "api_production_consumablepackcreatebody", - "api_production_consumablepackupdatebody", - "api_production_consumableupdatebody", - "api_production_outputtypecreatebody", - "api_production_outputtypeupdatebody", - "api_production_packiteminput", - "api_production_processcategorycreatebody", - "api_production_processcategoryupdatebody", - "api_production_processconsumableinput", - "api_production_processcreatebody", - "api_production_processdatacollectioninput", - "api_production_processoutputinput", - "api_production_processreagentinput", - "api_production_processupdatebody", - "api_production_rationale_1", - "api_production_reagentcreatebody", - "api_production_reagentupdatebody", - "api_production_sopdocumentcreatebody", - "api_production_sopdocumentupdatebody", - "schemas_cell_product_cellproductcreate", - "schemas_cell_product_cellproductlistquery", - "schemas_cell_product_cellproductupdate", - "schemas_cell_product_py", - "schemas_cell_product_validate_passage", - "schemas_cell_product_validate_status", - "schemas_cell_product_validate_viability", - "schemas_process_route_processroutecreatebody", - "schemas_process_route_processrouteupdatebody", - "schemas_process_route_py", - "schemas_process_route_rationale_1", - "schemas_process_route_setcurrentbody", - "schemas_process_route_stepaddbody", - "schemas_process_route_stepconsumableitem", - "schemas_process_route_stepconsumableupdatebody", - "schemas_process_route_stepcopybody", - "schemas_process_route_stepdatacollectionitem", - "schemas_process_route_stepdatacollectionupdatebody", - "schemas_process_route_stepoutputitem", - "schemas_process_route_stepoutputupdatebody", - "schemas_process_route_stepreagentitem", - "schemas_process_route_stepreagentupdatebody", - "schemas_process_route_stepreorderbody", - "schemas_process_route_stepupdatebody", - "schemas_production_task_productiontaskcreate", - "schemas_production_task_productiontasklistquery", - "schemas_production_task_productiontaskstatusupdate", - "schemas_production_task_productiontaskupdate", - "schemas_production_task_py", - "schemas_production_task_taskinputitem", - "schemas_production_task_taskoutputitem", - "schemas_production_task_taskstepadd", - "schemas_production_task_taskstepdatacollectionitem", - "schemas_production_task_taskstepmaterialitem", - "schemas_production_task_taskstepoutputitem", - "schemas_production_task_taskstepupdate", - "schemas_production_work_order_productionworkorderbase", - "schemas_production_work_order_productionworkordercomplete", - "schemas_production_work_order_productionworkorderlistquery", - "schemas_production_work_order_py" - ], - "11": [ - "basehttpmiddleware", - "core_api_crypto_apicryptoerror", - "core_api_crypto_b64url_decode", - "core_api_crypto_b64url_encode", - "core_api_crypto_decrypt_json", - "core_api_crypto_derive_key", - "core_api_crypto_encrypt_json", - "core_api_crypto_gen_nonce_hex", - "core_api_crypto_is_ts_in_window", - "core_api_crypto_middleware_apicryptomiddleware", - "core_api_crypto_middleware_apicryptomiddleware_dispatch", - "core_api_crypto_middleware_claims_from_auth", - "core_api_crypto_middleware_coerce_post_method_override_to_get", - "core_api_crypto_middleware_get_redis_client", - "core_api_crypto_middleware_is_crypto_api", - "core_api_crypto_middleware_json_error_response", - "core_api_crypto_middleware_mark_nonce_once", - "core_api_crypto_middleware_nonce_key", - "core_api_crypto_middleware_py", - "core_api_crypto_middleware_rationale_106", - "core_api_crypto_middleware_rationale_38", - "core_api_crypto_middleware_should_skip_path", - "core_api_crypto_py", - "core_api_request_log_middleware_apirequestlogmiddleware", - "core_api_request_log_middleware_apirequestlogmiddleware_dispatch", - "core_api_request_log_middleware_claims_from_auth", - "core_api_request_log_middleware_format_body_bytes", - "core_api_request_log_middleware_persist_log", - "core_api_request_log_middleware_py", - "core_api_request_log_middleware_rationale_1", - "core_api_request_log_middleware_redact_obj", - "core_api_request_log_middleware_schedule_persist_log", - "core_api_request_log_middleware_should_skip", - "core_api_request_log_middleware_truncate", - "core_utils_format_datetime", - "core_utils_generate_id", - "core_utils_generate_random_password", - "core_utils_get_current_time", - "core_utils_get_file_size_display", - "core_utils_py", - "crud_base_camel_to_snake", - "crud_base_crudbase_create", - "crud_base_get_model_attr", - "crud_base_historycrud", - "crud_base_historycrud_create_history", - "crud_base_py" - ], "12": [ + "crud_collection_protocol_create_collection_protocol", + "crud_protocol_donation_convert_assert_biz_no_available", + "crud_research_donation_audit_to_dict", + "crud_research_donation_batch_delete_donations", + "crud_research_donation_collection_to_dict", + "crud_research_donation_create_collection", + "crud_research_donation_create_donation", + "crud_research_donation_create_party", + "crud_research_donation_create_samples", + "crud_research_donation_create_transport", + "crud_research_donation_dec", + "crud_research_donation_delete_donation", + "crud_research_donation_fmt_dt", + "crud_research_donation_get_collection", + "crud_research_donation_get_donation_detail", + "crud_research_donation_get_party", + "crud_research_donation_list_audits", + "crud_research_donation_list_donations", + "crud_research_donation_list_sample_transports", + "crud_research_donation_list_samples", + "crud_research_donation_normalize_fields", + "crud_research_donation_optional_decimal", + "crud_research_donation_party_to_dict", + "crud_research_donation_py", + "crud_research_donation_resolve_donation_payload", + "crud_research_donation_sample_to_dict", + "crud_research_donation_soft_delete_all", + "crud_research_donation_soft_delete_collection", + "crud_research_donation_soft_delete_party", + "crud_research_donation_soft_delete_samples", + "crud_research_donation_soft_delete_transports", + "crud_research_donation_total_pages", + "crud_research_donation_transport_to_dict", + "crud_research_donation_update_donation", + "crud_research_donation_user_nick_name_map" + ], + "13": [ "core_wechat_pay_get_wechat_pay_client", "core_wechat_pay_get_wechat_pay_v2", "core_wechat_pay_py", @@ -2049,53 +2040,65 @@ "core_wechat_pay_wechatpayv2client_unified_order", "core_wechat_pay_wechatpayv2client_xml_to_dict" ], - "13": [ - "core_exceptions_businessexception", - "core_exceptions_businessexception_init", - "core_exceptions_invalidstatustransitionexception", - "core_exceptions_invalidstatustransitionexception_init", - "core_exceptions_log_api_request", - "core_exceptions_log_delivery_operation", - "core_exceptions_log_operation", - "core_exceptions_log_order_operation", - "core_exceptions_log_settlement_operation", - "core_exceptions_log_user_operation", - "core_exceptions_orderlockedexception", - "core_exceptions_orderlockedexception_init", - "core_exceptions_permissionexception", - "core_exceptions_permissionexception_init", - "core_exceptions_py", - "core_exceptions_resourceconflictexception", - "core_exceptions_resourceconflictexception_init", - "core_exceptions_resourcenotfoundexception", - "core_exceptions_resourcenotfoundexception_init", - "core_exceptions_validationexception", - "core_exceptions_validationexception_init" - ], "14": [ - "crud_process_consumable_row_to_dict", - "crud_process_create_process", - "crud_process_create_sub_consumable", - "crud_process_create_sub_data_collection", - "crud_process_create_sub_output", - "crud_process_create_sub_reagent", - "crud_process_data_collection_row_to_dict", - "crud_process_get_process", - "crud_process_get_process_detail", - "crud_process_list_all_processes", - "crud_process_list_processes", - "crud_process_output_row_to_dict", - "crud_process_process_code_exists", - "crud_process_py", - "crud_process_reagent_row_to_dict", - "crud_process_row_to_dict", - "crud_process_soft_delete_process", - "crud_process_soft_delete_sub_records", - "crud_process_sub_item_with_order", - "crud_process_total_pages", - "crud_process_update_process" + "basehttpmiddleware", + "core_admin_request_json_parse_admin_request_json", + "core_admin_request_json_py", + "core_admin_request_json_rationale_1", + "core_admin_request_json_rationale_25", + "core_api_crypto_apicryptoerror", + "core_api_crypto_b64url_decode", + "core_api_crypto_b64url_encode", + "core_api_crypto_decrypt_json", + "core_api_crypto_derive_key", + "core_api_crypto_encrypt_json", + "core_api_crypto_gen_nonce_hex", + "core_api_crypto_is_ts_in_window", + "core_api_crypto_middleware_apicryptomiddleware", + "core_api_crypto_middleware_apicryptomiddleware_dispatch", + "core_api_crypto_middleware_claims_from_auth", + "core_api_crypto_middleware_coerce_post_method_override_to_get", + "core_api_crypto_middleware_get_redis_client", + "core_api_crypto_middleware_is_crypto_api", + "core_api_crypto_middleware_json_error_response", + "core_api_crypto_middleware_mark_nonce_once", + "core_api_crypto_middleware_nonce_key", + "core_api_crypto_middleware_py", + "core_api_crypto_middleware_rationale_106", + "core_api_crypto_middleware_rationale_38", + "core_api_crypto_middleware_should_skip_path", + "core_api_crypto_py", + "core_request_payload_py", + "core_request_payload_rationale_1", + "core_request_payload_rationale_18", + "core_request_payload_resolve_request_payload" ], "15": [ + "api_insurance_company_create_insurance_company", + "api_insurance_company_create_insurance_company_invoice", + "api_insurance_company_create_insurance_project_price", + "api_insurance_company_delete_insurance_company", + "api_insurance_company_delete_insurance_company_invoice", + "api_insurance_company_delete_insurance_project_price", + "api_insurance_company_fmt_dt", + "api_insurance_company_generate_uuid", + "api_insurance_company_get_tenant_no", + "api_insurance_company_list_insurance_companies", + "api_insurance_company_list_insurance_company_invoices", + "api_insurance_company_list_insurance_project_prices", + "api_insurance_company_py", + "api_insurance_company_row_to_dict_company", + "api_insurance_company_row_to_dict_invoice", + "api_insurance_company_row_to_dict_project_price", + "api_insurance_company_soft_delete_insurance_company", + "api_insurance_company_soft_delete_insurance_company_invoice", + "api_insurance_company_soft_delete_insurance_project_price", + "api_insurance_company_total_pages", + "api_insurance_company_update_insurance_company", + "api_insurance_company_update_insurance_company_invoice", + "api_insurance_company_update_insurance_project_price" + ], + "16": [ "crud_qc_third_party_company_company_code_exists", "crud_qc_third_party_company_create_company", "crud_qc_third_party_company_get_company", @@ -2117,24 +2120,45 @@ "crud_qc_third_party_item_soft_delete_item", "crud_qc_third_party_item_update_item" ], - "16": [ - "crud_qc_material_build_manual_out_remark", - "crud_qc_material_code_exists", - "crud_qc_material_create_material", - "crud_qc_material_dec", - "crud_qc_material_fmt_dt", - "crud_qc_material_get_material", - "crud_qc_material_list_materials", - "crud_qc_material_norm_status", - "crud_qc_material_options_list", - "crud_qc_material_py", - "crud_qc_material_rationale_26", - "crud_qc_material_row_to_dict", - "crud_qc_material_soft_delete_material", - "crud_qc_material_total_pages", - "crud_qc_material_update_material" - ], "17": [ + "api_production_get_next_cell_product_code", + "crud_cell_product_build_facility_path_label", + "crud_cell_product_build_split_product_codes", + "crud_cell_product_create_cell_product", + "crud_cell_product_create_cell_products_batch", + "crud_cell_product_create_cell_products_by_quantity", + "crud_cell_product_delete_cell_product", + "crud_cell_product_enrich_product_dicts", + "crud_cell_product_get_cell_product", + "crud_cell_product_get_next_code", + "crud_cell_product_list_cell_products", + "crud_cell_product_next_code_start_seq", + "crud_cell_product_normalize_product_code_base", + "crud_cell_product_py", + "crud_cell_product_reserve_next_codes", + "crud_cell_product_row_to_dict", + "crud_cell_product_total_pages", + "crud_cell_product_update_cell_product", + "crud_cell_product_validate_batch_items" + ], + "18": [ + "crud_clean_room_access_log_to_dict", + "crud_clean_room_create_access_log", + "crud_clean_room_create_clean_room", + "crud_clean_room_get_access_log", + "crud_clean_room_get_clean_room", + "crud_clean_room_list_access_logs", + "crud_clean_room_list_clean_rooms", + "crud_clean_room_py", + "crud_clean_room_room_code_exists", + "crud_clean_room_row_to_dict", + "crud_clean_room_soft_delete_access_log", + "crud_clean_room_soft_delete_clean_room", + "crud_clean_room_total_pages", + "crud_clean_room_update_access_log", + "crud_clean_room_update_clean_room" + ], + "19": [ "crud_collection_region_create_collection_region", "crud_collection_region_create_hospital", "crud_collection_region_get_collection_region", @@ -2144,13 +2168,62 @@ "crud_collection_region_list_collection_regions", "crud_collection_region_list_hospitals", "crud_collection_region_py", + "crud_collection_region_rationale_29", "crud_collection_region_soft_delete_collection_region", "crud_collection_region_soft_delete_hospital", "crud_collection_region_total_pages", "crud_collection_region_update_collection_region", "crud_collection_region_update_hospital" ], - "18": [ + "20": [ + "crud_collection_protocol_no_batch_issue_protocol_nos", + "crud_collection_protocol_no_batch_revoke_protocol_nos", + "crud_collection_protocol_no_create_protocol_no", + "crud_collection_protocol_no_get_protocol_no", + "crud_collection_protocol_no_list_protocol_nos", + "crud_collection_protocol_no_parse_issued_time", + "crud_collection_protocol_no_protocol_no_exists", + "crud_collection_protocol_no_py", + "crud_collection_protocol_no_rationale_1", + "crud_collection_protocol_no_rationale_20", + "crud_collection_protocol_no_resolve_issued_user_display_name", + "crud_collection_protocol_no_row_to_dict", + "crud_collection_protocol_no_soft_delete_protocol_no", + "crud_collection_protocol_no_total_pages", + "crud_collection_protocol_no_update_protocol_no" + ], + "21": [ + "crud_sample_code_batch_issue_sample_codes", + "crud_sample_code_batch_revoke_sample_codes", + "crud_sample_code_create_sample_code", + "crud_sample_code_get_sample_code", + "crud_sample_code_list_sample_codes", + "crud_sample_code_parse_issued_time", + "crud_sample_code_py", + "crud_sample_code_rationale_1", + "crud_sample_code_resolve_issued_user_display_name", + "crud_sample_code_row_to_dict", + "crud_sample_code_sample_code_exists", + "crud_sample_code_soft_delete_sample_code", + "crud_sample_code_total_pages", + "crud_sample_code_update_sample_code" + ], + "22": [ + "core_wechat_message_py", + "core_wechat_message_rationale_1", + "core_wechat_message_rationale_86", + "core_wechat_message_send_delivery_notice", + "core_wechat_message_send_delivery_warning", + "core_wechat_message_send_order_status", + "core_wechat_message_send_payment_success", + "core_wechat_message_send_refund_result", + "core_wechat_message_send_urge_notification", + "core_wechat_message_wechatmessageservice", + "core_wechat_message_wechatmessageservice_get_access_token", + "core_wechat_message_wechatmessageservice_init", + "core_wechat_message_wechatmessageservice_send_template_message" + ], + "23": [ "schemas_product_config", "schemas_product_productbase", "schemas_product_productcategorybase", @@ -2165,53 +2238,7 @@ "schemas_product_py", "schemas_product_rationale_1" ], - "19": [ - "crud_sample_code_batch_issue_sample_codes", - "crud_sample_code_batch_revoke_sample_codes", - "crud_sample_code_create_sample_code", - "crud_sample_code_get_sample_code", - "crud_sample_code_list_sample_codes", - "crud_sample_code_parse_issued_time", - "crud_sample_code_py", - "crud_sample_code_resolve_issued_user_display_name", - "crud_sample_code_row_to_dict", - "crud_sample_code_sample_code_exists", - "crud_sample_code_soft_delete_sample_code", - "crud_sample_code_total_pages", - "crud_sample_code_update_sample_code" - ], - "20": [ - "crud_material_code_exists", - "crud_material_create_material", - "crud_material_dec", - "crud_material_fmt_dt", - "crud_material_get_material", - "crud_material_list_materials", - "crud_material_options_list", - "crud_material_py", - "crud_material_row_to_dict", - "crud_material_soft_delete_material", - "crud_material_stock_in", - "crud_material_stock_out", - "crud_material_update_material" - ], - "21": [ - "crud_collection_protocol_no_batch_issue_protocol_nos", - "crud_collection_protocol_no_batch_revoke_protocol_nos", - "crud_collection_protocol_no_create_protocol_no", - "crud_collection_protocol_no_get_protocol_no", - "crud_collection_protocol_no_list_protocol_nos", - "crud_collection_protocol_no_parse_issued_time", - "crud_collection_protocol_no_protocol_no_exists", - "crud_collection_protocol_no_py", - "crud_collection_protocol_no_resolve_issued_user_display_name", - "crud_collection_protocol_no_row_to_dict", - "crud_collection_protocol_no_soft_delete_protocol_no", - "crud_collection_protocol_no_total_pages", - "crud_collection_protocol_no_update_protocol_no" - ], - "22": [ - "api_admin_list_depts", + "24": [ "crud_dept_build_tree", "crud_dept_cascade_soft_delete", "crud_dept_collect_with_ancestors", @@ -2225,8 +2252,7 @@ "crud_dept_soft_delete_dept", "crud_dept_update_dept" ], - "23": [ - "api_admin_list_menus", + "25": [ "crud_menu_build_tree", "crud_menu_cascade_soft_delete", "crud_menu_create_menu", @@ -2239,104 +2265,8 @@ "crud_menu_soft_delete_menu", "crud_menu_update_menu" ], - "24": [ - "api_admin_dict_data_options", - "crud_dict_data_create_dict_data", - "crud_dict_data_get_dict_data", - "crud_dict_data_list_dict_data", - "crud_dict_data_list_dict_data_options", - "crud_dict_data_py", - "crud_dict_data_rationale_1", - "crud_dict_data_row_to_dict", - "crud_dict_data_soft_delete_dict_data", - "crud_dict_data_total_pages", - "crud_dict_data_update_dict_data" - ], - "25": [ - "crud_consumable_consumable_code_exists", - "crud_consumable_create_consumable", - "crud_consumable_get_consumable", - "crud_consumable_list_consumables", - "crud_consumable_py", - "crud_consumable_rationale_1", - "crud_consumable_row_to_dict", - "crud_consumable_soft_delete_consumable", - "crud_consumable_total_pages", - "crud_consumable_update_consumable" - ], "26": [ - "crud_sop_document_create_sop_document", - "crud_sop_document_get_sop_document", - "crud_sop_document_list_sop_documents", - "crud_sop_document_py", - "crud_sop_document_rationale_1", - "crud_sop_document_row_to_dict", - "crud_sop_document_soft_delete_sop_document", - "crud_sop_document_sop_code_exists", - "crud_sop_document_total_pages", - "crud_sop_document_update_sop_document" - ], - "27": [ - "crud_express_company_create_express_company", - "crud_express_company_express_code_exists", - "crud_express_company_get_express_company", - "crud_express_company_list_express_companies", - "crud_express_company_py", - "crud_express_company_rationale_1", - "crud_express_company_row_to_dict", - "crud_express_company_soft_delete_express_company", - "crud_express_company_total_pages", - "crud_express_company_update_express_company" - ], - "28": [ - "crud_cell_product_create_cell_product", - "crud_cell_product_delete_cell_product", - "crud_cell_product_get_cell_product", - "crud_cell_product_get_next_code", - "crud_cell_product_list_cell_products", - "crud_cell_product_py", - "crud_cell_product_rationale_1", - "crud_cell_product_row_to_dict", - "crud_cell_product_total_pages", - "crud_cell_product_update_cell_product" - ], - "29": [ - "crud_sample_reception_check_item_create_check_item", - "crud_sample_reception_check_item_get_check_item", - "crud_sample_reception_check_item_item_code_exists", - "crud_sample_reception_check_item_list_active_check_items", - "crud_sample_reception_check_item_list_check_items", - "crud_sample_reception_check_item_order_query", - "crud_sample_reception_check_item_py", - "crud_sample_reception_check_item_row_to_dict", - "crud_sample_reception_check_item_soft_delete_check_item", - "crud_sample_reception_check_item_update_check_item" - ], - "30": [ - "crud_process_category_category_code_exists", - "crud_process_category_create_process_category", - "crud_process_category_get_process_category", - "crud_process_category_list_process_categories", - "crud_process_category_py", - "crud_process_category_rationale_1", - "crud_process_category_row_to_dict", - "crud_process_category_soft_delete_process_category", - "crud_process_category_total_pages", - "crud_process_category_update_process_category" - ], - "31": [ - "crud_item_unit_create_item_unit", - "crud_item_unit_get_item_unit", - "crud_item_unit_list_item_units", - "crud_item_unit_py", - "crud_item_unit_rationale_1", - "crud_item_unit_row_to_dict", - "crud_item_unit_soft_delete_item_unit", - "crud_item_unit_total_pages", - "crud_item_unit_unit_code_exists", - "crud_item_unit_update_item_unit" - ], - "32": [ + "api_collection_protocol_ensure_customer_for_mother", "crud_customer_create_customer", "crud_customer_get_customer", "crud_customer_id_card_taken", @@ -2348,7 +2278,91 @@ "crud_customer_total_pages", "crud_customer_update_customer" ], + "27": [ + "crud_production_work_order_complete_production_work_order", + "crud_production_work_order_create_production_work_order_from_reception", + "crud_production_work_order_enrich_wo_items", + "crud_production_work_order_fmt_dt", + "crud_production_work_order_generate_work_order_no", + "crud_production_work_order_get_production_work_order", + "crud_production_work_order_list_production_work_orders", + "crud_production_work_order_py", + "crud_production_work_order_wo_to_dict", + "crud_production_work_order_wo_to_response_dict" + ], + "28": [ + "crud_consumable_consumable_code_exists", + "crud_consumable_create_consumable", + "crud_consumable_get_consumable", + "crud_consumable_list_consumables", + "crud_consumable_py", + "crud_consumable_rationale_1", + "crud_consumable_row_to_dict", + "crud_consumable_soft_delete_consumable", + "crud_consumable_total_pages", + "crud_consumable_update_consumable" + ], + "29": [ + "crud_express_company_create_express_company", + "crud_express_company_express_code_exists", + "crud_express_company_get_express_company", + "crud_express_company_list_express_companies", + "crud_express_company_py", + "crud_express_company_rationale_1", + "crud_express_company_row_to_dict", + "crud_express_company_soft_delete_express_company", + "crud_express_company_total_pages", + "crud_express_company_update_express_company" + ], + "30": [ + "crud_sample_reception_check_item_create_check_item", + "crud_sample_reception_check_item_get_check_item", + "crud_sample_reception_check_item_item_code_exists", + "crud_sample_reception_check_item_list_active_check_items", + "crud_sample_reception_check_item_list_check_items", + "crud_sample_reception_check_item_order_query", + "crud_sample_reception_check_item_py", + "crud_sample_reception_check_item_row_to_dict", + "crud_sample_reception_check_item_soft_delete_check_item", + "crud_sample_reception_check_item_update_check_item" + ], + "31": [ + "crud_dict_data_create_dict_data", + "crud_dict_data_get_dict_data", + "crud_dict_data_list_dict_data", + "crud_dict_data_list_dict_data_options", + "crud_dict_data_py", + "crud_dict_data_rationale_1", + "crud_dict_data_row_to_dict", + "crud_dict_data_soft_delete_dict_data", + "crud_dict_data_total_pages", + "crud_dict_data_update_dict_data" + ], + "32": [ + "crud_process_category_category_code_exists", + "crud_process_category_create_process_category", + "crud_process_category_get_process_category", + "crud_process_category_list_process_categories", + "crud_process_category_py", + "crud_process_category_rationale_1", + "crud_process_category_row_to_dict", + "crud_process_category_soft_delete_process_category", + "crud_process_category_total_pages", + "crud_process_category_update_process_category" + ], "33": [ + "crud_item_unit_create_item_unit", + "crud_item_unit_get_item_unit", + "crud_item_unit_list_item_units", + "crud_item_unit_py", + "crud_item_unit_rationale_1", + "crud_item_unit_row_to_dict", + "crud_item_unit_soft_delete_item_unit", + "crud_item_unit_total_pages", + "crud_item_unit_unit_code_exists", + "crud_item_unit_update_item_unit" + ], + "34": [ "crud_cell_sample_type_create_cell_sample_type", "crud_cell_sample_type_get_cell_sample_type", "crud_cell_sample_type_list_cell_sample_types", @@ -2360,7 +2374,7 @@ "crud_cell_sample_type_type_code_exists", "crud_cell_sample_type_update_cell_sample_type" ], - "34": [ + "35": [ "crud_output_type_create_output_type", "crud_output_type_get_output_type", "crud_output_type_list_output_types", @@ -2372,7 +2386,7 @@ "crud_output_type_type_code_exists", "crud_output_type_update_output_type" ], - "35": [ + "36": [ "crud_post_create_post", "crud_post_get_post", "crud_post_list_posts", @@ -2383,7 +2397,7 @@ "crud_post_total_pages", "crud_post_update_post" ], - "36": [ + "37": [ "crud_tenant_create_tenant", "crud_tenant_get_tenant", "crud_tenant_list_tenants", @@ -2394,7 +2408,7 @@ "crud_tenant_total_pages", "crud_tenant_update_tenant" ], - "37": [ + "38": [ "crud_reagent_create_reagent", "crud_reagent_get_reagent", "crud_reagent_list_reagents", @@ -2405,7 +2419,7 @@ "crud_reagent_total_pages", "crud_reagent_update_reagent" ], - "38": [ + "39": [ "crud_site_create_site", "crud_site_get_site", "crud_site_list_sites", @@ -2416,7 +2430,17 @@ "crud_site_total_pages", "crud_site_update_site" ], - "39": [ + "40": [ + "core_menu_guard_get_user_menu_codes", + "core_menu_guard_py", + "core_menu_guard_rationale_1", + "core_menu_guard_rationale_16", + "core_menu_guard_rationale_24", + "core_menu_guard_rationale_29", + "core_menu_guard_require_admin_or_super_admin", + "core_menu_guard_require_menu_code" + ], + "41": [ "models_base_basemodel", "models_base_basemodel_to_dict", "models_base_get_active", @@ -2426,7 +2450,7 @@ "models_base_softdeletemodel_soft_delete", "models_base_tablename" ], - "40": [ + "42": [ "core_order_status_compat_derive_legacy_status_from_three", "core_order_status_compat_derive_three_status_from_legacy", "core_order_status_compat_py", @@ -2435,115 +2459,115 @@ "core_order_status_compat_threestatus", "core_order_status_compat_to_decimal" ], - "41": [ + "43": [ "basesettings", "core_config_config", "core_config_py", "core_config_settings" ], - "42": [ + "44": [ "core_database_auto_fill_create_dept_id", "core_database_get_db", "core_database_py", "core_database_rationale_31" ], - "43": [ + "45": [ "api_menu_get_menu_list", "api_menu_py", "api_menu_rationale_1" ], - "44": [ + "46": [ "core_context_py", "core_context_rationale_1" ], - "45": [ + "47": [ "api_init_py", "api_init_rationale_1" ], - "46": [ + "48": [ "init_py" ], - "47": [ + "49": [ "core_init_py" ], - "48": [ + "50": [ "core_wechat_message_rationale_143" ], - "49": [ + "51": [ "core_wechat_message_rationale_179" ], - "50": [ + "52": [ "core_wechat_message_rationale_215" ], - "51": [ + "53": [ "core_wechat_message_rationale_251" ], - "52": [ + "54": [ "core_wechat_message_rationale_289" ], - "53": [ + "55": [ "core_wechat_message_rationale_325" ], - "54": [ + "56": [ "models_init_py" ], - "55": [ + "57": [ "schemas_init_py" ], - "56": [ + "58": [ "crud_init_py" ], - "57": [ + "59": [ "ws_init_py" ] }, "cohesion": { "0": 0.02, - "1": 0.01, + "1": 0.02, "2": 0.06, - "3": 0.02, - "4": 0.03, - "5": 0.08, + "3": 0.06, + "4": 0.02, + "5": 0.03, "6": 0.04, - "7": 0.03, - "8": 0.04, + "7": 0.04, + "8": 0.07, "9": 0.07, - "10": 0.29, - "11": 0.07, - "12": 0.12, - "13": 0.17, - "14": 0.21, - "15": 0.18, - "16": 0.25, - "17": 0.23, - "18": 0.23, - "19": 0.29, - "20": 0.31, - "21": 0.31, + "10": 0.05, + "11": 0.08, + "12": 0.14, + "13": 0.12, + "14": 0.1, + "15": 0.21, + "16": 0.18, + "17": 0.18, + "18": 0.21, + "19": 0.21, + "20": 0.25, + "21": 0.26, "22": 0.24, - "23": 0.26, - "24": 0.24, - "25": 0.31, - "26": 0.31, - "27": 0.31, - "28": 0.27, - "29": 0.38, - "30": 0.31, - "31": 0.31, + "23": 0.23, + "24": 0.27, + "25": 0.29, + "26": 0.27, + "27": 0.36, + "28": 0.31, + "29": 0.31, + "30": 0.38, + "31": 0.27, "32": 0.31, "33": 0.31, "34": 0.31, - "35": 0.36, + "35": 0.31, "36": 0.36, "37": 0.36, "38": 0.36, - "39": 0.29, - "40": 0.38, - "41": 0.5, - "42": 0.5, - "43": 0.67, - "44": 1.0, - "45": 1.0, + "39": 0.36, + "40": 0.25, + "41": 0.29, + "42": 0.38, + "43": 0.5, + "44": 0.5, + "45": 0.67, "46": 1.0, "47": 1.0, "48": 1.0, @@ -2555,7 +2579,9 @@ "54": 1.0, "55": 1.0, "56": 1.0, - "57": 1.0 + "57": 1.0, + "58": 1.0, + "59": 1.0 }, "gods": [ { @@ -2606,7 +2632,7 @@ { "id": "core_utils_generate_uuid", "label": "generate_uuid()", - "degree": 129 + "degree": 130 } ], "surprises": [ diff --git a/backend/graphify-out/.graphify_extract.json b/backend/graphify-out/.graphify_extract.json index faa4d6ea..74537ed2 100644 --- a/backend/graphify-out/.graphify_extract.json +++ b/backend/graphify-out/.graphify_extract.json @@ -5104,11 +5104,18 @@ "source_location": "L1" }, { - "id": "schemas_cell_product_cellproductcreate", - "label": "CellProductCreate", + "id": "schemas_cell_product_coerce_optional_datetime", + "label": "_coerce_optional_datetime()", "file_type": "code", "source_file": "schemas/cell_product.py", - "source_location": "L6" + "source_location": "L9" + }, + { + "id": "schemas_cell_product_cellproductbatchitem", + "label": "CellProductBatchItem", + "file_type": "code", + "source_file": "schemas/cell_product.py", + "source_location": "L23" }, { "id": "basemodel", @@ -5117,40 +5124,61 @@ "source_file": "", "source_location": "" }, + { + "id": "schemas_cell_product_cellproductcreate", + "label": "CellProductCreate", + "file_type": "code", + "source_file": "schemas/cell_product.py", + "source_location": "L32" + }, + { + "id": "schemas_cell_product_coerce_date_fields", + "label": "coerce_date_fields()", + "file_type": "code", + "source_file": "schemas/cell_product.py", + "source_location": "L56" + }, { "id": "schemas_cell_product_validate_viability", "label": "validate_viability()", "file_type": "code", "source_file": "schemas/cell_product.py", - "source_location": "L27" + "source_location": "L61" }, { "id": "schemas_cell_product_validate_passage", "label": "validate_passage()", "file_type": "code", "source_file": "schemas/cell_product.py", - "source_location": "L34" + "source_location": "L68" }, { "id": "schemas_cell_product_cellproductupdate", "label": "CellProductUpdate", "file_type": "code", "source_file": "schemas/cell_product.py", - "source_location": "L43" + "source_location": "L77" }, { "id": "schemas_cell_product_validate_status", "label": "validate_status()", "file_type": "code", "source_file": "schemas/cell_product.py", - "source_location": "L79" + "source_location": "L120" }, { "id": "schemas_cell_product_cellproductlistquery", "label": "CellProductListQuery", "file_type": "code", "source_file": "schemas/cell_product.py", - "source_location": "L85" + "source_location": "L126" + }, + { + "id": "schemas_cell_product_rationale_10", + "label": "\u517c\u5bb9\u524d\u7aef date-picker \u7684 YYYY-MM-DD \u4e0e\u5b8c\u6574\u65e5\u671f\u65f6\u95f4\u5b57\u7b26\u4e32\u3002", + "file_type": "rationale", + "source_file": "schemas/cell_product.py", + "source_location": "L10" }, { "id": "schemas_menu_py", @@ -6685,40 +6713,61 @@ "source_file": "crud/production_work_order.py", "source_location": "L56" }, + { + "id": "crud_production_work_order_enrich_wo_items", + "label": "_enrich_wo_items()", + "file_type": "code", + "source_file": "crud/production_work_order.py", + "source_location": "L81" + }, + { + "id": "crud_production_work_order_wo_to_response_dict", + "label": "_wo_to_response_dict()", + "file_type": "code", + "source_file": "crud/production_work_order.py", + "source_location": "L87" + }, { "id": "crud_production_work_order_create_production_work_order_from_reception", "label": "create_production_work_order_from_reception()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L78" + "source_location": "L92" }, { "id": "crud_production_work_order_list_production_work_orders", "label": "list_production_work_orders()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L189" + "source_location": "L203" }, { "id": "crud_production_work_order_get_production_work_order", "label": "get_production_work_order()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L236" + "source_location": "L250" }, { "id": "crud_production_work_order_complete_production_work_order", "label": "complete_production_work_order()", "file_type": "code", "source_file": "crud/production_work_order.py", - "source_location": "L250" + "source_location": "L264" }, { - "id": "crud_production_work_order_rationale_85", + "id": "crud_production_work_order_rationale_88", + "label": "\u5de5\u5355\u54cd\u5e94\uff08\u542b\u63a5\u6536\u8bb0\u5f55\u5173\u8054\u7684\u6837\u672c\u7c7b\u578b\u3001\u63a5\u6536\u4eba\u3001\u63a5\u6536\u65f6\u95f4\uff09\u3002", + "file_type": "rationale", + "source_file": "crud/production_work_order.py", + "source_location": "L88" + }, + { + "id": "crud_production_work_order_rationale_99", "label": "\u63a5\u6536\u7ed3\u8bba\u4e3a js \u65f6\u521b\u5efa\u5f85\u914d\u7f6e\u5165\u5e93\u751f\u4ea7\u5de5\u5355\uff08flush\uff0c\u4e0d commit\uff09\u3002", "file_type": "rationale", "source_file": "crud/production_work_order.py", - "source_location": "L85" + "source_location": "L99" }, { "id": "crud_material_py", @@ -8727,56 +8776,126 @@ "label": "_row_to_dict()", "file_type": "code", "source_file": "crud/cell_product.py", - "source_location": "L15" + "source_location": "L22" + }, + { + "id": "crud_cell_product_build_facility_path_label", + "label": "_build_facility_path_label()", + "file_type": "code", + "source_file": "crud/cell_product.py", + "source_location": "L55" + }, + { + "id": "crud_cell_product_enrich_product_dicts", + "label": "_enrich_product_dicts()", + "file_type": "code", + "source_file": "crud/cell_product.py", + "source_location": "L70" + }, + { + "id": "crud_cell_product_product_to_response", + "label": "product_to_response()", + "file_type": "code", + "source_file": "crud/cell_product.py", + "source_location": "L143" }, { "id": "crud_cell_product_list_cell_products", "label": "list_cell_products()", "file_type": "code", "source_file": "crud/cell_product.py", - "source_location": "L45" + "source_location": "L148" }, { "id": "crud_cell_product_get_cell_product", "label": "get_cell_product()", "file_type": "code", "source_file": "crud/cell_product.py", - "source_location": "L93" + "source_location": "L209" }, { "id": "crud_cell_product_create_cell_product", "label": "create_cell_product()", "file_type": "code", "source_file": "crud/cell_product.py", - "source_location": "L107" + "source_location": "L223" }, { "id": "crud_cell_product_update_cell_product", "label": "update_cell_product()", "file_type": "code", "source_file": "crud/cell_product.py", - "source_location": "L161" + "source_location": "L277" }, { "id": "crud_cell_product_delete_cell_product", "label": "delete_cell_product()", "file_type": "code", "source_file": "crud/cell_product.py", - "source_location": "L216" + "source_location": "L332" + }, + { + "id": "crud_cell_product_next_code_start_seq", + "label": "_next_code_start_seq()", + "file_type": "code", + "source_file": "crud/cell_product.py", + "source_location": "L348" }, { "id": "crud_cell_product_get_next_code", "label": "get_next_code()", "file_type": "code", "source_file": "crud/cell_product.py", - "source_location": "L232" + "source_location": "L368" + }, + { + "id": "crud_cell_product_normalize_product_code_base", + "label": "normalize_product_code_base()", + "file_type": "code", + "source_file": "crud/cell_product.py", + "source_location": "L378" + }, + { + "id": "crud_cell_product_build_split_product_codes", + "label": "build_split_product_codes()", + "file_type": "code", + "source_file": "crud/cell_product.py", + "source_location": "L389" + }, + { + "id": "crud_cell_product_reserve_next_codes", + "label": "reserve_next_codes()", + "file_type": "code", + "source_file": "crud/cell_product.py", + "source_location": "L396" + }, + { + "id": "crud_cell_product_validate_batch_items", + "label": "_validate_batch_items()", + "file_type": "code", + "source_file": "crud/cell_product.py", + "source_location": "L406" + }, + { + "id": "crud_cell_product_create_cell_products_by_quantity", + "label": "create_cell_products_by_quantity()", + "file_type": "code", + "source_file": "crud/cell_product.py", + "source_location": "L449" + }, + { + "id": "crud_cell_product_create_cell_products_batch", + "label": "create_cell_products_batch()", + "file_type": "code", + "source_file": "crud/cell_product.py", + "source_location": "L481" }, { "id": "crud_cell_product_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "crud/cell_product.py", - "source_location": "L254" + "source_location": "L536" }, { "id": "crud_cell_product_rationale_1", @@ -8785,6 +8904,27 @@ "source_file": "crud/cell_product.py", "source_location": "L1" }, + { + "id": "crud_cell_product_rationale_379", + "label": "\u53bb\u6389\u672b\u5c3e -01/-02 \u7b49\u5e8f\u53f7\uff0c\u5f97\u5230\u591a\u4efd\u5165\u5e93\u65f6\u7684\u57fa\u7840\u7f16\u7801\u3002", + "file_type": "rationale", + "source_file": "crud/cell_product.py", + "source_location": "L379" + }, + { + "id": "crud_cell_product_rationale_390", + "label": "\u6309\u57fa\u7840\u7f16\u7801\u751f\u6210 \u57fa\u7840-01\u3001\u57fa\u7840-02 \u2026", + "file_type": "rationale", + "source_file": "crud/cell_product.py", + "source_location": "L390" + }, + { + "id": "crud_cell_product_rationale_458", + "label": "\u6309\u5165\u5e93\u4efd\u6570\u62c6\u5206\uff1a\u57fa\u7840\u7f16\u7801-01\u3001\u57fa\u7840\u7f16\u7801-02 \u2026", + "file_type": "rationale", + "source_file": "crud/cell_product.py", + "source_location": "L458" + }, { "id": "crud_menu_py", "label": "menu.py", @@ -16658,35 +16798,35 @@ "label": "list_cell_products()", "file_type": "code", "source_file": "api/production.py", - "source_location": "L1561" + "source_location": "L1565" }, { "id": "api_production_get_cell_product_detail", "label": "get_cell_product_detail()", "file_type": "code", "source_file": "api/production.py", - "source_location": "L1587" + "source_location": "L1593" }, { "id": "api_production_create_cell_product", "label": "create_cell_product()", "file_type": "code", "source_file": "api/production.py", - "source_location": "L1600" + "source_location": "L1606" }, { "id": "api_production_update_cell_product", "label": "update_cell_product()", "file_type": "code", "source_file": "api/production.py", - "source_location": "L1617" + "source_location": "L1655" }, { "id": "api_production_delete_cell_product", "label": "delete_cell_product()", "file_type": "code", "source_file": "api/production.py", - "source_location": "L1634" + "source_location": "L1674" }, { "id": "api_production_rationale_1", @@ -29053,7 +29193,7 @@ }, { "source": "schemas_cell_product_py", - "target": "pydantic", + "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "schemas/cell_product.py", @@ -29071,11 +29211,47 @@ }, { "source": "schemas_cell_product_py", - "target": "datetime", + "target": "pydantic", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "schemas/cell_product.py", - "source_location": "L3", + "source_location": "L4", + "weight": 1.0 + }, + { + "source": "schemas_cell_product_py", + "target": "app_core_utils", + "relation": "imports_from", + "confidence": "EXTRACTED", + "source_file": "schemas/cell_product.py", + "source_location": "L6", + "weight": 1.0 + }, + { + "source": "schemas_cell_product_py", + "target": "schemas_cell_product_coerce_optional_datetime", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "schemas/cell_product.py", + "source_location": "L9", + "weight": 1.0 + }, + { + "source": "schemas_cell_product_py", + "target": "schemas_cell_product_cellproductbatchitem", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "schemas/cell_product.py", + "source_location": "L23", + "weight": 1.0 + }, + { + "source": "schemas_cell_product_cellproductbatchitem", + "target": "basemodel", + "relation": "inherits", + "confidence": "EXTRACTED", + "source_file": "schemas/cell_product.py", + "source_location": "L23", "weight": 1.0 }, { @@ -29084,7 +29260,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "schemas/cell_product.py", - "source_location": "L6", + "source_location": "L32", "weight": 1.0 }, { @@ -29093,7 +29269,16 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "schemas/cell_product.py", - "source_location": "L6", + "source_location": "L32", + "weight": 1.0 + }, + { + "source": "schemas_cell_product_py", + "target": "schemas_cell_product_coerce_date_fields", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "schemas/cell_product.py", + "source_location": "L56", "weight": 1.0 }, { @@ -29102,7 +29287,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "schemas/cell_product.py", - "source_location": "L27", + "source_location": "L61", "weight": 1.0 }, { @@ -29111,7 +29296,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "schemas/cell_product.py", - "source_location": "L34", + "source_location": "L68", "weight": 1.0 }, { @@ -29120,7 +29305,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "schemas/cell_product.py", - "source_location": "L43", + "source_location": "L77", "weight": 1.0 }, { @@ -29129,7 +29314,16 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "schemas/cell_product.py", - "source_location": "L43", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "schemas_cell_product_py", + "target": "schemas_cell_product_coerce_date_fields", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "schemas/cell_product.py", + "source_location": "L98", "weight": 1.0 }, { @@ -29138,7 +29332,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "schemas/cell_product.py", - "source_location": "L62", + "source_location": "L103", "weight": 1.0 }, { @@ -29147,7 +29341,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "schemas/cell_product.py", - "source_location": "L69", + "source_location": "L110", "weight": 1.0 }, { @@ -29156,7 +29350,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "schemas/cell_product.py", - "source_location": "L79", + "source_location": "L120", "weight": 1.0 }, { @@ -29165,7 +29359,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "schemas/cell_product.py", - "source_location": "L85", + "source_location": "L126", "weight": 1.0 }, { @@ -29174,7 +29368,25 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "schemas/cell_product.py", - "source_location": "L85", + "source_location": "L126", + "weight": 1.0 + }, + { + "source": "schemas_cell_product_coerce_date_fields", + "target": "schemas_cell_product_coerce_optional_datetime", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "schemas/cell_product.py", + "source_location": "L57", + "weight": 1.0 + }, + { + "source": "schemas_cell_product_rationale_10", + "target": "schemas_cell_product_coerce_optional_datetime", + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "schemas/cell_product.py", + "source_location": "L10", "weight": 1.0 }, { @@ -33173,13 +33385,31 @@ "source_location": "L56", "weight": 1.0 }, + { + "source": "crud_production_work_order_py", + "target": "crud_production_work_order_enrich_wo_items", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "crud/production_work_order.py", + "source_location": "L81", + "weight": 1.0 + }, + { + "source": "crud_production_work_order_py", + "target": "crud_production_work_order_wo_to_response_dict", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "crud/production_work_order.py", + "source_location": "L87", + "weight": 1.0 + }, { "source": "crud_production_work_order_py", "target": "crud_production_work_order_create_production_work_order_from_reception", "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L78", + "source_location": "L92", "weight": 1.0 }, { @@ -33188,7 +33418,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L189", + "source_location": "L203", "weight": 1.0 }, { @@ -33197,7 +33427,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L236", + "source_location": "L250", "weight": 1.0 }, { @@ -33206,7 +33436,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L250", + "source_location": "L264", "weight": 1.0 }, { @@ -33215,7 +33445,25 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L73", + "source_location": "L76", + "weight": 1.0 + }, + { + "source": "crud_production_work_order_wo_to_response_dict", + "target": "crud_production_work_order_enrich_wo_items", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/production_work_order.py", + "source_location": "L89", + "weight": 1.0 + }, + { + "source": "crud_production_work_order_wo_to_response_dict", + "target": "crud_production_work_order_wo_to_dict", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/production_work_order.py", + "source_location": "L89", "weight": 1.0 }, { @@ -33224,7 +33472,16 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L127", + "source_location": "L141", + "weight": 1.0 + }, + { + "source": "crud_production_work_order_list_production_work_orders", + "target": "crud_production_work_order_enrich_wo_items", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/production_work_order.py", + "source_location": "L246", "weight": 1.0 }, { @@ -33233,7 +33490,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L232", + "source_location": "L246", "weight": 1.0 }, { @@ -33242,16 +33499,25 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L257", + "source_location": "L271", "weight": 1.0 }, { - "source": "crud_production_work_order_rationale_85", + "source": "crud_production_work_order_rationale_88", + "target": "crud_production_work_order_wo_to_response_dict", + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "crud/production_work_order.py", + "source_location": "L88", + "weight": 1.0 + }, + { + "source": "crud_production_work_order_rationale_99", "target": "crud_production_work_order_create_production_work_order_from_reception", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "crud/production_work_order.py", - "source_location": "L85", + "source_location": "L99", "weight": 1.0 }, { @@ -38764,8 +39030,8 @@ }, { "source": "crud_cell_product_py", - "target": "datetime", - "relation": "imports_from", + "target": "re", + "relation": "imports", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", "source_location": "L5", @@ -38773,7 +39039,7 @@ }, { "source": "crud_cell_product_py", - "target": "typing", + "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", @@ -38782,16 +39048,16 @@ }, { "source": "crud_cell_product_py", - "target": "sqlalchemy", + "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", - "source_location": "L8", + "source_location": "L7", "weight": 1.0 }, { "source": "crud_cell_product_py", - "target": "sqlalchemy_orm", + "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", @@ -38800,29 +39066,65 @@ }, { "source": "crud_cell_product_py", - "target": "app_core_utils", + "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", - "source_location": "L11", + "source_location": "L10", "weight": 1.0 }, { "source": "crud_cell_product_py", - "target": "app_models_models", + "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", "source_location": "L12", "weight": 1.0 }, + { + "source": "crud_cell_product_py", + "target": "app_models_models", + "relation": "imports_from", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 1.0 + }, { "source": "crud_cell_product_py", "target": "crud_cell_product_row_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", - "source_location": "L15", + "source_location": "L22", + "weight": 1.0 + }, + { + "source": "crud_cell_product_py", + "target": "crud_cell_product_build_facility_path_label", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L55", + "weight": 1.0 + }, + { + "source": "crud_cell_product_py", + "target": "crud_cell_product_enrich_product_dicts", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L70", + "weight": 1.0 + }, + { + "source": "crud_cell_product_py", + "target": "crud_cell_product_product_to_response", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L143", "weight": 1.0 }, { @@ -38831,7 +39133,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", - "source_location": "L45", + "source_location": "L148", "weight": 1.0 }, { @@ -38840,7 +39142,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", - "source_location": "L93", + "source_location": "L209", "weight": 1.0 }, { @@ -38849,7 +39151,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", - "source_location": "L107", + "source_location": "L223", "weight": 1.0 }, { @@ -38858,7 +39160,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", - "source_location": "L161", + "source_location": "L277", "weight": 1.0 }, { @@ -38867,7 +39169,16 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", - "source_location": "L216", + "source_location": "L332", + "weight": 1.0 + }, + { + "source": "crud_cell_product_py", + "target": "crud_cell_product_next_code_start_seq", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L348", "weight": 1.0 }, { @@ -38876,7 +39187,61 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", - "source_location": "L232", + "source_location": "L368", + "weight": 1.0 + }, + { + "source": "crud_cell_product_py", + "target": "crud_cell_product_normalize_product_code_base", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L378", + "weight": 1.0 + }, + { + "source": "crud_cell_product_py", + "target": "crud_cell_product_build_split_product_codes", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L389", + "weight": 1.0 + }, + { + "source": "crud_cell_product_py", + "target": "crud_cell_product_reserve_next_codes", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L396", + "weight": 1.0 + }, + { + "source": "crud_cell_product_py", + "target": "crud_cell_product_validate_batch_items", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L406", + "weight": 1.0 + }, + { + "source": "crud_cell_product_py", + "target": "crud_cell_product_create_cell_products_by_quantity", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L449", + "weight": 1.0 + }, + { + "source": "crud_cell_product_py", + "target": "crud_cell_product_create_cell_products_batch", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L481", "weight": 1.0 }, { @@ -38885,7 +39250,43 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", - "source_location": "L254", + "source_location": "L536", + "weight": 1.0 + }, + { + "source": "crud_cell_product_enrich_product_dicts", + "target": "crud_cell_product_build_facility_path_label", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L126", + "weight": 1.0 + }, + { + "source": "crud_cell_product_product_to_response", + "target": "crud_cell_product_enrich_product_dicts", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L144", + "weight": 1.0 + }, + { + "source": "crud_cell_product_product_to_response", + "target": "crud_cell_product_row_to_dict", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L144", + "weight": 1.0 + }, + { + "source": "crud_cell_product_list_cell_products", + "target": "crud_cell_product_enrich_product_dicts", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L203", "weight": 1.0 }, { @@ -38894,7 +39295,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", - "source_location": "L90", + "source_location": "L204", "weight": 1.0 }, { @@ -38903,7 +39304,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", - "source_location": "L168", + "source_location": "L284", "weight": 1.0 }, { @@ -38912,7 +39313,61 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/cell_product.py", - "source_location": "L222", + "source_location": "L338", + "weight": 1.0 + }, + { + "source": "crud_cell_product_get_next_code", + "target": "crud_cell_product_next_code_start_seq", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L371", + "weight": 1.0 + }, + { + "source": "crud_cell_product_reserve_next_codes", + "target": "crud_cell_product_next_code_start_seq", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L402", + "weight": 1.0 + }, + { + "source": "crud_cell_product_create_cell_products_by_quantity", + "target": "crud_cell_product_normalize_product_code_base", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L460", + "weight": 1.0 + }, + { + "source": "crud_cell_product_create_cell_products_by_quantity", + "target": "crud_cell_product_build_split_product_codes", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L463", + "weight": 1.0 + }, + { + "source": "crud_cell_product_create_cell_products_by_quantity", + "target": "crud_cell_product_create_cell_products_batch", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L470", + "weight": 1.0 + }, + { + "source": "crud_cell_product_create_cell_products_batch", + "target": "crud_cell_product_validate_batch_items", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L491", "weight": 1.0 }, { @@ -38924,6 +39379,33 @@ "source_location": "L1", "weight": 1.0 }, + { + "source": "crud_cell_product_rationale_379", + "target": "crud_cell_product_normalize_product_code_base", + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L379", + "weight": 1.0 + }, + { + "source": "crud_cell_product_rationale_390", + "target": "crud_cell_product_build_split_product_codes", + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L390", + "weight": 1.0 + }, + { + "source": "crud_cell_product_rationale_458", + "target": "crud_cell_product_create_cell_products_by_quantity", + "relation": "rationale_for", + "confidence": "EXTRACTED", + "source_file": "crud/cell_product.py", + "source_location": "L458", + "weight": 1.0 + }, { "source": "crud_menu_py", "target": "datetime", @@ -59360,7 +59842,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "api/production.py", - "source_location": "L1561", + "source_location": "L1565", "weight": 1.0 }, { @@ -59369,7 +59851,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "api/production.py", - "source_location": "L1587", + "source_location": "L1593", "weight": 1.0 }, { @@ -59378,7 +59860,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "api/production.py", - "source_location": "L1600", + "source_location": "L1606", "weight": 1.0 }, { @@ -59387,7 +59869,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "api/production.py", - "source_location": "L1617", + "source_location": "L1655", "weight": 1.0 }, { @@ -59396,7 +59878,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "api/production.py", - "source_location": "L1634", + "source_location": "L1674", "weight": 1.0 }, { @@ -59873,7 +60355,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "api/production.py", - "source_location": "L1555", + "source_location": "L1556", "weight": 1.0 }, { @@ -59882,7 +60364,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "api/production.py", - "source_location": "L1572", + "source_location": "L1577", "weight": 1.0 }, { @@ -59891,7 +60373,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "api/production.py", - "source_location": "L1592", + "source_location": "L1598", "weight": 1.0 }, { @@ -59900,7 +60382,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "api/production.py", - "source_location": "L1606", + "source_location": "L1612", "weight": 1.0 }, { @@ -59909,7 +60391,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "api/production.py", - "source_location": "L1624", + "source_location": "L1662", "weight": 1.0 }, { @@ -59918,7 +60400,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "api/production.py", - "source_location": "L1640", + "source_location": "L1680", "weight": 1.0 }, { @@ -71640,7 +72122,7 @@ "weight": 0.8 }, { - "source": "crud_production_work_order_rationale_85", + "source": "crud_production_work_order_rationale_88", "target": "models_models_bizcollectionprotocol", "relation": "uses", "confidence": "INFERRED", @@ -71649,7 +72131,16 @@ "weight": 0.8 }, { - "source": "crud_production_work_order_rationale_85", + "source": "crud_production_work_order_rationale_99", + "target": "models_models_bizcollectionprotocol", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_work_order.py", + "source_location": "L11", + "weight": 0.8 + }, + { + "source": "crud_production_work_order_rationale_88", "target": "models_models_bizproductionworkorder", "relation": "uses", "confidence": "INFERRED", @@ -71658,7 +72149,16 @@ "weight": 0.8 }, { - "source": "crud_production_work_order_rationale_85", + "source": "crud_production_work_order_rationale_99", + "target": "models_models_bizproductionworkorder", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_work_order.py", + "source_location": "L11", + "weight": 0.8 + }, + { + "source": "crud_production_work_order_rationale_88", "target": "models_models_bizprotocolsample", "relation": "uses", "confidence": "INFERRED", @@ -71667,7 +72167,16 @@ "weight": 0.8 }, { - "source": "crud_production_work_order_rationale_85", + "source": "crud_production_work_order_rationale_99", + "target": "models_models_bizprotocolsample", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_work_order.py", + "source_location": "L11", + "weight": 0.8 + }, + { + "source": "crud_production_work_order_rationale_88", "target": "models_models_bizsamplereception", "relation": "uses", "confidence": "INFERRED", @@ -71676,7 +72185,16 @@ "weight": 0.8 }, { - "source": "crud_production_work_order_rationale_85", + "source": "crud_production_work_order_rationale_99", + "target": "models_models_bizsamplereception", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_work_order.py", + "source_location": "L11", + "weight": 0.8 + }, + { + "source": "crud_production_work_order_rationale_88", "target": "models_research_donation_bizresearchdonation", "relation": "uses", "confidence": "INFERRED", @@ -71685,7 +72203,16 @@ "weight": 0.8 }, { - "source": "crud_production_work_order_rationale_85", + "source": "crud_production_work_order_rationale_99", + "target": "models_research_donation_bizresearchdonation", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_work_order.py", + "source_location": "L17", + "weight": 0.8 + }, + { + "source": "crud_production_work_order_rationale_88", "target": "models_research_donation_bizresearchdonationsample", "relation": "uses", "confidence": "INFERRED", @@ -71694,7 +72221,16 @@ "weight": 0.8 }, { - "source": "crud_production_work_order_rationale_85", + "source": "crud_production_work_order_rationale_99", + "target": "models_research_donation_bizresearchdonationsample", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_work_order.py", + "source_location": "L17", + "weight": 0.8 + }, + { + "source": "crud_production_work_order_rationale_88", "target": "schemas_production_work_order_productionworkordercomplete", "relation": "uses", "confidence": "INFERRED", @@ -71703,7 +72239,25 @@ "weight": 0.8 }, { - "source": "crud_production_work_order_rationale_85", + "source": "crud_production_work_order_rationale_99", + "target": "schemas_production_work_order_productionworkordercomplete", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_work_order.py", + "source_location": "L18", + "weight": 0.8 + }, + { + "source": "crud_production_work_order_rationale_88", + "target": "schemas_production_work_order_productionworkorderlistquery", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_work_order.py", + "source_location": "L18", + "weight": 0.8 + }, + { + "source": "crud_production_work_order_rationale_99", "target": "schemas_production_work_order_productionworkorderlistquery", "relation": "uses", "confidence": "INFERRED", @@ -74318,7 +74872,178 @@ "relation": "uses", "confidence": "INFERRED", "source_file": "crud/cell_product.py", - "source_location": "L12", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_379", + "target": "models_models_bizcellproduct", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_390", + "target": "models_models_bizcellproduct", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_458", + "target": "models_models_bizcellproduct", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_1", + "target": "models_models_bizcellproductspec", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_379", + "target": "models_models_bizcellproductspec", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_390", + "target": "models_models_bizcellproductspec", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_458", + "target": "models_models_bizcellproductspec", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_1", + "target": "models_models_bizcellproducttype", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_379", + "target": "models_models_bizcellproducttype", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_390", + "target": "models_models_bizcellproducttype", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_458", + "target": "models_models_bizcellproducttype", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_1", + "target": "models_models_bizstoragefacility", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_379", + "target": "models_models_bizstoragefacility", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_390", + "target": "models_models_bizstoragefacility", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_458", + "target": "models_models_bizstoragefacility", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_1", + "target": "models_models_bizstoragefacilityslot", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_379", + "target": "models_models_bizstoragefacilityslot", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_390", + "target": "models_models_bizstoragefacilityslot", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", + "weight": 0.8 + }, + { + "source": "crud_cell_product_rationale_458", + "target": "models_models_bizstoragefacilityslot", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/cell_product.py", + "source_location": "L13", "weight": 0.8 }, { @@ -88009,6 +88734,16 @@ "source_location": "L333", "weight": 1.0 }, + { + "source": "schemas_cell_product_coerce_optional_datetime", + "target": "core_utils_parse_datetime", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "schemas/cell_product.py", + "source_location": "L16", + "weight": 1.0 + }, { "source": "crud_qc_task_conclusion_label", "target": "crud_base_crudbase_get", @@ -88739,6 +89474,16 @@ "source_location": "L66", "weight": 1.0 }, + { + "source": "crud_production_work_order_enrich_wo_items", + "target": "crud_qc_work_order_enrich_work_order_list_items", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "crud/production_work_order.py", + "source_location": "L84", + "weight": 1.0 + }, { "source": "crud_production_work_order_create_production_work_order_from_reception", "target": "models_models_bizproductionworkorder", @@ -88746,7 +89491,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_work_order.py", - "source_location": "L125", + "source_location": "L139", "weight": 1.0 }, { @@ -88756,7 +89501,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_work_order.py", - "source_location": "L126", + "source_location": "L140", "weight": 1.0 }, { @@ -88766,7 +89511,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_work_order.py", - "source_location": "L222", + "source_location": "L236", "weight": 1.0 }, { @@ -90749,6 +91494,26 @@ "source_location": "L279", "weight": 1.0 }, + { + "source": "crud_cell_product_build_facility_path_label", + "target": "crud_base_crudbase_get", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "crud/cell_product.py", + "source_location": "L61", + "weight": 1.0 + }, + { + "source": "crud_cell_product_enrich_product_dicts", + "target": "crud_base_crudbase_get", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "crud/cell_product.py", + "source_location": "L78", + "weight": 1.0 + }, { "source": "crud_cell_product_list_cell_products", "target": "crud_base_crudbase_count", @@ -90756,7 +91521,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/cell_product.py", - "source_location": "L80", + "source_location": "L193", "weight": 1.0 }, { @@ -90766,7 +91531,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/cell_product.py", - "source_location": "L127", + "source_location": "L243", "weight": 1.0 }, { @@ -90776,7 +91541,27 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/cell_product.py", - "source_location": "L128", + "source_location": "L244", + "weight": 1.0 + }, + { + "source": "crud_cell_product_create_cell_products_batch", + "target": "models_models_bizcellproduct", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "crud/cell_product.py", + "source_location": "L500", + "weight": 1.0 + }, + { + "source": "crud_cell_product_create_cell_products_batch", + "target": "core_utils_generate_uuid", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "crud/cell_product.py", + "source_location": "L501", "weight": 1.0 }, { @@ -110011,7 +110796,7 @@ }, { "source": "api_production_get_production_work_order", - "target": "crud_qc_work_order_wo_to_dict", + "target": "crud_production_work_order_wo_to_response_dict", "relation": "calls", "confidence": "INFERRED", "confidence_score": 0.8, @@ -110041,7 +110826,7 @@ }, { "source": "api_production_complete_production_work_order", - "target": "crud_qc_work_order_wo_to_dict", + "target": "crud_production_work_order_wo_to_response_dict", "relation": "calls", "confidence": "INFERRED", "confidence_score": 0.8, @@ -110686,7 +111471,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1556", + "source_location": "L1558", "weight": 1.0 }, { @@ -110696,7 +111481,17 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1557", + "source_location": "L1559", + "weight": 1.0 + }, + { + "source": "api_production_get_next_cell_product_code", + "target": "crud_cell_product_reserve_next_codes", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "api/production.py", + "source_location": "L1560", "weight": 1.0 }, { @@ -110706,7 +111501,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1580", + "source_location": "L1586", "weight": 1.0 }, { @@ -110716,7 +111511,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1582", + "source_location": "L1588", "weight": 1.0 }, { @@ -110726,7 +111521,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1583", + "source_location": "L1589", "weight": 1.0 }, { @@ -110736,7 +111531,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1593", + "source_location": "L1599", "weight": 1.0 }, { @@ -110746,7 +111541,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1595", + "source_location": "L1601", "weight": 1.0 }, { @@ -110756,17 +111551,27 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1596", + "source_location": "L1602", "weight": 1.0 }, { "source": "api_production_get_cell_product_detail", - "target": "crud_exhibition_appointment_row_to_dict", + "target": "crud_cell_product_product_to_response", "relation": "calls", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1596", + "source_location": "L1602", + "weight": 1.0 + }, + { + "source": "api_production_create_cell_product", + "target": "crud_cell_product_create_cell_products_batch", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "api/production.py", + "source_location": "L1617", "weight": 1.0 }, { @@ -110776,52 +111581,12 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1608", + "source_location": "L1620", "weight": 1.0 }, { "source": "api_production_create_cell_product", - "target": "core_response_success_response", - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "api/production.py", - "source_location": "L1611", - "weight": 1.0 - }, - { - "source": "api_production_create_cell_product", - "target": "crud_exhibition_appointment_row_to_dict", - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "api/production.py", - "source_location": "L1611", - "weight": 1.0 - }, - { - "source": "api_production_create_cell_product", - "target": "core_response_error_response", - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "api/production.py", - "source_location": "L1613", - "weight": 1.0 - }, - { - "source": "api_production_create_cell_product", - "target": "str", - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "api/production.py", - "source_location": "L1613", - "weight": 1.0 - }, - { - "source": "api_production_update_cell_product", - "target": "crud_base_crudbase_get", + "target": "crud_cell_product_create_cell_products_by_quantity", "relation": "calls", "confidence": "INFERRED", "confidence_score": 0.8, @@ -110829,6 +111594,56 @@ "source_location": "L1626", "weight": 1.0 }, + { + "source": "api_production_create_cell_product", + "target": "core_response_success_response", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "api/production.py", + "source_location": "L1639", + "weight": 1.0 + }, + { + "source": "api_production_create_cell_product", + "target": "crud_cell_product_product_to_response", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "api/production.py", + "source_location": "L1640", + "weight": 1.0 + }, + { + "source": "api_production_create_cell_product", + "target": "core_response_error_response", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "api/production.py", + "source_location": "L1651", + "weight": 1.0 + }, + { + "source": "api_production_create_cell_product", + "target": "str", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "api/production.py", + "source_location": "L1651", + "weight": 1.0 + }, + { + "source": "api_production_update_cell_product", + "target": "crud_base_crudbase_get", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "api/production.py", + "source_location": "L1664", + "weight": 1.0 + }, { "source": "api_production_update_cell_product", "target": "core_response_success_response", @@ -110836,17 +111651,17 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1628", + "source_location": "L1666", "weight": 1.0 }, { "source": "api_production_update_cell_product", - "target": "crud_exhibition_appointment_row_to_dict", + "target": "crud_cell_product_product_to_response", "relation": "calls", "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1628", + "source_location": "L1667", "weight": 1.0 }, { @@ -110856,7 +111671,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1630", + "source_location": "L1670", "weight": 1.0 }, { @@ -110866,7 +111681,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1630", + "source_location": "L1670", "weight": 1.0 }, { @@ -110876,7 +111691,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1641", + "source_location": "L1681", "weight": 1.0 }, { @@ -110886,7 +111701,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1642", + "source_location": "L1682", "weight": 1.0 }, { @@ -110896,7 +111711,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1644", + "source_location": "L1684", "weight": 1.0 }, { @@ -110906,7 +111721,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "api/production.py", - "source_location": "L1644", + "source_location": "L1684", "weight": 1.0 }, { diff --git a/backend/graphify-out/GRAPH_REPORT.md b/backend/graphify-out/GRAPH_REPORT.md index 03f03d3a..267b1fd4 100644 --- a/backend/graphify-out/GRAPH_REPORT.md +++ b/backend/graphify-out/GRAPH_REPORT.md @@ -1,12 +1,12 @@ # Graph Report - app (2026-05-21) ## Corpus Check -- 135 files · ~118,210 words +- 135 files · ~119,275 words - Verdict: corpus is large enough that graph structure adds value. ## Summary -- 2380 nodes · 9268 edges · 52 communities detected -- Extraction: 42% EXTRACTED · 58% INFERRED · 0% AMBIGUOUS · INFERRED: 5366 edges (avg confidence: 0.64) +- 2400 nodes · 9339 edges · 54 communities detected +- Extraction: 42% EXTRACTED · 58% INFERRED · 0% AMBIGUOUS · INFERRED: 5402 edges (avg confidence: 0.64) - Token cost: 0 input · 0 output ## Community Hubs (Navigation) @@ -56,12 +56,14 @@ - [[_COMMUNITY_Community 43|Community 43]] - [[_COMMUNITY_Community 44|Community 44]] - [[_COMMUNITY_Community 45|Community 45]] -- [[_COMMUNITY_Community 48|Community 48]] -- [[_COMMUNITY_Community 49|Community 49]] +- [[_COMMUNITY_Community 46|Community 46]] +- [[_COMMUNITY_Community 47|Community 47]] - [[_COMMUNITY_Community 50|Community 50]] - [[_COMMUNITY_Community 51|Community 51]] - [[_COMMUNITY_Community 52|Community 52]] - [[_COMMUNITY_Community 53|Community 53]] +- [[_COMMUNITY_Community 54|Community 54]] +- [[_COMMUNITY_Community 55|Community 55]] ## God Nodes (most connected - your core abstractions) 1. `success_response()` - 377 edges @@ -73,7 +75,7 @@ 7. `BizQcMaterial` - 193 edges 8. `BizMaterial` - 190 edges 9. `BizQcItemParam` - 188 edges -10. `generate_uuid()` - 129 edges +10. `generate_uuid()` - 130 edges ## Surprising Connections (you probably didn't know these) - `统一记录 API 请求/响应出入参的中间件` --uses--> `SysApiRequestLog` [INFERRED] @@ -91,247 +93,255 @@ ### Community 0 - "Community 0" Cohesion: 0.02 -Nodes (426): create_dept(), create_dict_data(), create_dict_type(), create_express_company(), create_item_unit(), create_menu(), create_post(), create_role_management() (+418 more) +Nodes (423): attachment_download_url(), create_dept(), create_dict_data(), create_dict_type(), create_express_company(), create_item_unit(), create_menu(), create_post() (+415 more) ### Community 1 - "Community 1" -Cohesion: 0.01 -Nodes (393): attachment_download_url(), AttachmentDownloadUrlBody, DeptCreateBody, DeptUpdateBody, DictDataCreateBody, DictDataUpdateBody, DictTypeCreateBody, DictTypeUpdateBody (+385 more) +Cohesion: 0.02 +Nodes (342): BatchStockInBody, BatchStockInItem, BatchStockOutBody, BatchStockOutItem, MaterialBody, MaterialUpdateBody, StockInBody, StockOutBody (+334 more) ### Community 2 - "Community 2" Cohesion: 0.06 -Nodes (213): InsuranceCompanyCreateBody, InsuranceCompanyInvoiceCreateBody, InsuranceCompanyInvoiceUpdateBody, InsuranceCompanyUpdateBody, InsuranceProjectPriceCreateBody, InsuranceProjectPriceUpdateBody, 保险公司及险种价格管理 API(保险公司 + 开票信息 + 险种价格), ProcessDefCreateBody (+205 more) +Nodes (219): InsuranceCompanyCreateBody, InsuranceCompanyInvoiceCreateBody, InsuranceCompanyInvoiceUpdateBody, InsuranceCompanyUpdateBody, InsuranceProjectPriceCreateBody, InsuranceProjectPriceUpdateBody, 保险公司及险种价格管理 API(保险公司 + 开票信息 + 险种价格), AccessLogCreateBody (+211 more) ### Community 3 - "Community 3" -Cohesion: 0.02 -Nodes (153): generate_uuid(), create_consumable_pack(), get_consumable_pack(), get_pack_detail(), _item_row_to_dict(), list_all_packs(), list_consumable_packs(), pack_code_exists() (+145 more) +Cohesion: 0.06 +Nodes (184): AttachmentDownloadUrlBody, DeptCreateBody, DeptUpdateBody, DictDataCreateBody, DictDataUpdateBody, DictTypeCreateBody, DictTypeUpdateBody, ExpressCompanyCreateBody (+176 more) ### Community 4 - "Community 4" -Cohesion: 0.03 -Nodes (120): _persist_protocol_sub_resources(), list_ethnics_for_select(), _list_insurance_companies(), _total_pages(), list_access_logs(), apply_data_scope(), _get_child_dept_ids(), get_user_dept_id() (+112 more) +Cohesion: 0.02 +Nodes (139): list_ethnics_for_select(), apply_data_scope(), _get_child_dept_ids(), get_user_dept_id(), _resolve_user_role_scopes(), delete(), get_multi_with_filters(), _detail_query_with_protocol() (+131 more) ### Community 5 - "Community 5" -Cohesion: 0.08 -Nodes (126): AuditCreateBody, BatchDetailIdsBody, BatchRefundFinanceSubmitBody, FinanceConfirmBody, FullmoonTodoInsuranceBody, ProtocolCreateBody, ProtocolUpdateBody, 细胞存储 — 采集协议单 / 审核 / 财务确认 / 分期预警 API (+118 more) +Cohesion: 0.03 +Nodes (120): generate_uuid(), create_consumable_pack(), get_consumable_pack(), get_pack_detail(), _item_row_to_dict(), list_all_packs(), list_consumable_packs(), pack_code_exists() (+112 more) ### Community 6 - "Community 6" Cohesion: 0.04 -Nodes (94): get_role_data_scope(), get_role_menus(), _format_attachment_file_size(), get_protocol_nos_used_in_protocols(), urls_to_attachment_list(), create_dict_type(), dict_type_code_exists(), get_dict_type() (+86 more) +Nodes (61): _avatar_url_field(), _build_user_info_payload(), _jwt_user_payload(), logout(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/zkxw.sql 基线), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。, 与 web-admin `userInfo` 字段约定一致。, Web 端登录用 RSA 公钥(PKCS#1 v1.5,与 JSEncrypt 一致) (+53 more) ### Community 7 - "Community 7" -Cohesion: 0.03 -Nodes (54): get_designer_data(), BaseStorage, convert_heic_to_jpeg(), get_storage(), LocalStorage, MinIOStorage, OSSStorage, process_image_content() (+46 more) +Cohesion: 0.04 +Nodes (33): BusinessException, InvalidStatusTransitionException, log_delivery_operation(), log_operation(), log_order_operation(), log_settlement_operation(), log_user_operation(), OrderLockedException (+25 more) ### Community 8 - "Community 8" -Cohesion: 0.04 -Nodes (77): _avatar_url_field(), _build_user_info_payload(), _jwt_user_payload(), logout(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/zkxw.sql 基线), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。, 与 web-admin `userInfo` 字段约定一致。, Web 端登录用 RSA 公钥(PKCS#1 v1.5,与 JSEncrypt 一致) (+69 more) +Cohesion: 0.07 +Nodes (69): _format_attachment_file_size(), urls_to_attachment_list(), apply_task_result(), complete_task(), _conclusion_label(), create_task_for_line(), _dec(), _enrich_tasks_reception_fields() (+61 more) ### Community 9 - "Community 9" Cohesion: 0.07 -Nodes (67): AccessLogCreateBody, AccessLogUpdateBody, CleanRoomCreateBody, CleanRoomUpdateBody, ExhibitionAppointmentCreateBody, ExhibitionAppointmentUpdateBody, list_storage_slots(), 运营支撑 API(洁净室、进出记录、仓储设施、储位、展厅预约) (+59 more) +Nodes (69): _persist_protocol_sub_resources(), _add_months_yyyymmdd(), align_fq_payment_details_payload(), _apply_submit_receipt_finance(), _apply_submit_refund_finance(), attachments_to_urls(), _audit_to_dict(), batch_submit_receipt_finance() (+61 more) ### Community 10 - "Community 10" -Cohesion: 0.29 -Nodes (53): ConsumableCreateBody, ConsumablePackCreateBody, ConsumablePackUpdateBody, ConsumableUpdateBody, OutputTypeCreateBody, OutputTypeUpdateBody, PackItemInput, ProcessCategoryCreateBody (+45 more) +Cohesion: 0.05 +Nodes (58): get_protocol_nos_used_in_protocols(), create_dict_type(), dict_type_code_exists(), get_dict_type(), list_dict_types(), _row_to_dict(), soft_delete_dict_type(), update_dict_type() (+50 more) ### Community 11 - "Community 11" -Cohesion: 0.07 -Nodes (33): BaseHTTPMiddleware, ApiCryptoError, _b64url_decode(), _b64url_encode(), decrypt_json(), derive_key(), encrypt_json(), gen_nonce_hex() (+25 more) +Cohesion: 0.08 +Nodes (45): _business_type_label(), _enrich_task_list(), get_business_all_tasks(), _get_business_form_fields(), get_designer_data(), get_instance_detail(), list_completed_tasks(), list_my_instances() (+37 more) ### Community 12 - "Community 12" +Cohesion: 0.14 +Nodes (34): create_collection_protocol(), assert_biz_no_available(), _audit_to_dict(), batch_delete_donations(), _collection_to_dict(), _create_collection(), create_donation(), _create_party() (+26 more) + +### Community 13 - "Community 13" Cohesion: 0.12 Nodes (11): get_wechat_pay_client(), get_wechat_pay_v2(), 微信支付工具模块 支持微信支付 V3 API 文档参考: https://pay.weixin.qq.com/docs/v3/apis/index.ht, 统一下单接口 (V3) Args: out_trade_no: 商户订单号 total, 申请退款 Args: out_trade_no: 商户订单号 total_amount, 小程序调起支付的二次签名参数(与公众号 JSAPI 规则一致), 统一下单 (V2 API) Args: out_trade_no: 商户订单号 tot, 生成签名 V3 (SHA256 with RSA) (+3 more) -### Community 13 - "Community 13" -Cohesion: 0.17 -Nodes (12): BusinessException, InvalidStatusTransitionException, log_delivery_operation(), log_operation(), log_order_operation(), log_settlement_operation(), log_user_operation(), OrderLockedException (+4 more) - ### Community 14 - "Community 14" -Cohesion: 0.21 -Nodes (19): _consumable_row_to_dict(), create_process(), _create_sub_consumable(), _create_sub_data_collection(), _create_sub_output(), _create_sub_reagent(), _data_collection_row_to_dict(), get_process() (+11 more) +Cohesion: 0.1 +Nodes (26): BaseHTTPMiddleware, parse_admin_request_json(), 运营 Web(/web/admin)JSON 请求体解析。 与 ApiCryptoMiddleware 配合:中间件未改写 body 时,在路由内解密 `, 读取 JSON body;dict 时走 resolve_request_payload(明文 / 密文 / data 包装)。 Returns:, ApiCryptoError, _b64url_decode(), _b64url_encode(), decrypt_json() (+18 more) ### Community 15 - "Community 15" +Cohesion: 0.21 +Nodes (22): _create_insurance_company(), _create_insurance_company_invoice(), _create_insurance_project_price(), delete_insurance_company(), delete_insurance_company_invoice(), delete_insurance_project_price(), _fmt_dt(), _generate_uuid() (+14 more) + +### Community 16 - "Community 16" Cohesion: 0.18 Nodes (18): company_code_exists(), create_company(), get_company(), list_companies(), list_company_options(), _row_to_dict(), soft_delete_company(), update_company() (+10 more) -### Community 16 - "Community 16" -Cohesion: 0.25 -Nodes (13): code_exists(), create_material(), _dec(), _fmt_dt(), get_material(), list_materials(), _norm_status(), options_list() (+5 more) - ### Community 17 - "Community 17" -Cohesion: 0.23 -Nodes (12): create_collection_region(), create_hospital(), get_collection_region(), get_hospital(), _hospital_names_by_region_ids(), _hospital_to_dict(), list_collection_regions(), list_hospitals() (+4 more) +Cohesion: 0.18 +Nodes (17): get_next_cell_product_code(), _build_facility_path_label(), build_split_product_codes(), create_cell_product(), create_cell_products_batch(), create_cell_products_by_quantity(), delete_cell_product(), _enrich_product_dicts() (+9 more) ### Community 18 - "Community 18" -Cohesion: 0.23 -Nodes (12): Config, ProductBase, ProductCategoryBase, ProductCategoryCreate, ProductCategoryResponse, ProductCreate, ProductResponse, ProductUnitBase (+4 more) +Cohesion: 0.21 +Nodes (13): _access_log_to_dict(), create_access_log(), create_clean_room(), get_access_log(), get_clean_room(), list_access_logs(), list_clean_rooms(), room_code_exists() (+5 more) ### Community 19 - "Community 19" -Cohesion: 0.29 -Nodes (11): batch_issue_sample_codes(), batch_revoke_sample_codes(), create_sample_code(), get_sample_code(), list_sample_codes(), _parse_issued_time(), _resolve_issued_user_display_name(), _row_to_dict() (+3 more) +Cohesion: 0.21 +Nodes (13): create_collection_region(), create_hospital(), get_collection_region(), get_hospital(), _hospital_names_by_region_ids(), _hospital_to_dict(), list_collection_regions(), list_hospitals() (+5 more) ### Community 20 - "Community 20" -Cohesion: 0.31 -Nodes (12): _code_exists(), create_material(), _dec(), _fmt_dt(), get_material(), list_materials(), options_list(), _row_to_dict() (+4 more) +Cohesion: 0.25 +Nodes (13): batch_issue_protocol_nos(), batch_revoke_protocol_nos(), create_protocol_no(), get_protocol_no(), list_protocol_nos(), _parse_issued_time(), protocol_no_exists(), 采集协议号池 CRUD(biz_collection_protocol_no) (+5 more) ### Community 21 - "Community 21" -Cohesion: 0.31 -Nodes (11): batch_issue_protocol_nos(), batch_revoke_protocol_nos(), create_protocol_no(), get_protocol_no(), list_protocol_nos(), _parse_issued_time(), protocol_no_exists(), _resolve_issued_user_display_name() (+3 more) +Cohesion: 0.26 +Nodes (12): batch_issue_sample_codes(), batch_revoke_sample_codes(), create_sample_code(), get_sample_code(), list_sample_codes(), _parse_issued_time(), 样本编码池 CRUD(biz_sample_code), _resolve_issued_user_display_name() (+4 more) ### Community 22 - "Community 22" Cohesion: 0.24 -Nodes (12): list_depts(), _build_tree(), _cascade_soft_delete(), _collect_with_ancestors(), create_dept(), get_dept(), list_depts(), list_depts_tree() (+4 more) +Nodes (9): 微信消息通知服务 支持微信小程序模板消息推送 使用方式: from app.core.wechat_message import Wech, 发送模板消息 Args: openid: 用户openid templ, send_delivery_notice(), send_delivery_warning(), send_order_status(), send_payment_success(), send_refund_result(), send_urge_notification() (+1 more) ### Community 23 - "Community 23" -Cohesion: 0.26 -Nodes (10): list_menus(), _build_tree(), _cascade_soft_delete(), create_menu(), get_menu(), list_menus(), list_menus_tree(), _row_to_dict() (+2 more) +Cohesion: 0.23 +Nodes (12): Config, ProductBase, ProductCategoryBase, ProductCategoryCreate, ProductCategoryResponse, ProductCreate, ProductResponse, ProductUnitBase (+4 more) ### Community 24 - "Community 24" -Cohesion: 0.24 -Nodes (9): dict_data_options(), create_dict_data(), get_dict_data(), list_dict_data(), list_dict_data_options(), 字典数据 CRUD(sys_dict_data), _row_to_dict(), soft_delete_dict_data() (+1 more) +Cohesion: 0.27 +Nodes (11): _build_tree(), _cascade_soft_delete(), _collect_with_ancestors(), create_dept(), get_dept(), list_depts(), list_depts_tree(), 保留匹配节点及其全部上级,供关键词检索后仍能正确组树。 (+3 more) ### Community 25 - "Community 25" +Cohesion: 0.29 +Nodes (9): _build_tree(), _cascade_soft_delete(), create_menu(), get_menu(), list_menus(), list_menus_tree(), _row_to_dict(), soft_delete_menu() (+1 more) + +### Community 26 - "Community 26" +Cohesion: 0.27 +Nodes (9): _ensure_customer_for_mother(), create_customer(), get_customer(), id_card_taken(), list_customers(), 客户 CRUD(biz_customer), _row_to_dict(), soft_delete_customer() (+1 more) + +### Community 27 - "Community 27" +Cohesion: 0.36 +Nodes (9): complete_production_work_order(), create_production_work_order_from_reception(), _enrich_wo_items(), _fmt_dt(), _generate_work_order_no(), get_production_work_order(), list_production_work_orders(), _wo_to_dict() (+1 more) + +### Community 28 - "Community 28" Cohesion: 0.31 Nodes (8): consumable_code_exists(), create_consumable(), get_consumable(), list_consumables(), 耗材 CRUD(biz_consumable), _row_to_dict(), soft_delete_consumable(), update_consumable() -### Community 26 - "Community 26" -Cohesion: 0.31 -Nodes (8): create_sop_document(), get_sop_document(), list_sop_documents(), SOP文档 CRUD(biz_sop_document), _row_to_dict(), soft_delete_sop_document(), sop_code_exists(), update_sop_document() - -### Community 27 - "Community 27" +### Community 29 - "Community 29" Cohesion: 0.31 Nodes (8): create_express_company(), express_code_exists(), get_express_company(), list_express_companies(), 快递公司 CRUD(biz_express_company), _row_to_dict(), soft_delete_express_company(), update_express_company() -### Community 28 - "Community 28" -Cohesion: 0.27 -Nodes (8): create_cell_product(), delete_cell_product(), get_cell_product(), get_next_code(), list_cell_products(), 细胞产品 CRUD(biz_cell_product), _row_to_dict(), update_cell_product() - -### Community 29 - "Community 29" +### Community 30 - "Community 30" Cohesion: 0.38 Nodes (9): create_check_item(), get_check_item(), item_code_exists(), list_active_check_items(), list_check_items(), _order_query(), _row_to_dict(), soft_delete_check_item() (+1 more) -### Community 30 - "Community 30" -Cohesion: 0.31 -Nodes (8): category_code_exists(), create_process_category(), get_process_category(), list_process_categories(), 工艺工序分类 CRUD(biz_process_category), _row_to_dict(), soft_delete_process_category(), update_process_category() - ### Community 31 - "Community 31" -Cohesion: 0.31 -Nodes (8): create_item_unit(), get_item_unit(), list_item_units(), 物品单位 CRUD(biz_item_unit), _row_to_dict(), soft_delete_item_unit(), unit_code_exists(), update_item_unit() +Cohesion: 0.27 +Nodes (8): create_dict_data(), get_dict_data(), list_dict_data(), list_dict_data_options(), 字典数据 CRUD(sys_dict_data), _row_to_dict(), soft_delete_dict_data(), update_dict_data() ### Community 32 - "Community 32" Cohesion: 0.31 -Nodes (8): create_customer(), get_customer(), id_card_taken(), list_customers(), 客户 CRUD(biz_customer), _row_to_dict(), soft_delete_customer(), update_customer() +Nodes (8): category_code_exists(), create_process_category(), get_process_category(), list_process_categories(), 工艺工序分类 CRUD(biz_process_category), _row_to_dict(), soft_delete_process_category(), update_process_category() ### Community 33 - "Community 33" Cohesion: 0.31 -Nodes (8): create_cell_sample_type(), get_cell_sample_type(), list_cell_sample_types(), 细胞样本类型 CRUD(biz_cell_sample_type), _row_to_dict(), soft_delete_cell_sample_type(), type_code_exists(), update_cell_sample_type() +Nodes (8): create_item_unit(), get_item_unit(), list_item_units(), 物品单位 CRUD(biz_item_unit), _row_to_dict(), soft_delete_item_unit(), unit_code_exists(), update_item_unit() ### Community 34 - "Community 34" Cohesion: 0.31 -Nodes (8): create_output_type(), get_output_type(), list_output_types(), 工艺产出物类型 CRUD(biz_output_type), _row_to_dict(), soft_delete_output_type(), type_code_exists(), update_output_type() +Nodes (8): create_cell_sample_type(), get_cell_sample_type(), list_cell_sample_types(), 细胞样本类型 CRUD(biz_cell_sample_type), _row_to_dict(), soft_delete_cell_sample_type(), type_code_exists(), update_cell_sample_type() ### Community 35 - "Community 35" -Cohesion: 0.36 -Nodes (7): create_post(), get_post(), list_posts(), post_code_exists(), _row_to_dict(), soft_delete_post(), update_post() +Cohesion: 0.31 +Nodes (8): create_output_type(), get_output_type(), list_output_types(), 工艺产出物类型 CRUD(biz_output_type), _row_to_dict(), soft_delete_output_type(), type_code_exists(), update_output_type() ### Community 36 - "Community 36" Cohesion: 0.36 -Nodes (7): create_tenant(), get_tenant(), list_tenants(), _row_to_dict(), soft_delete_tenant(), tenant_no_exists(), update_tenant() +Nodes (7): create_post(), get_post(), list_posts(), post_code_exists(), _row_to_dict(), soft_delete_post(), update_post() ### Community 37 - "Community 37" Cohesion: 0.36 -Nodes (7): create_reagent(), get_reagent(), list_reagents(), reagent_code_exists(), _row_to_dict(), soft_delete_reagent(), update_reagent() +Nodes (7): create_tenant(), get_tenant(), list_tenants(), _row_to_dict(), soft_delete_tenant(), tenant_no_exists(), update_tenant() ### Community 38 - "Community 38" Cohesion: 0.36 -Nodes (7): create_site(), get_site(), list_sites(), _row_to_dict(), site_code_exists(), soft_delete_site(), update_site() +Nodes (7): create_reagent(), get_reagent(), list_reagents(), reagent_code_exists(), _row_to_dict(), soft_delete_reagent(), update_reagent() ### Community 39 - "Community 39" +Cohesion: 0.36 +Nodes (7): create_site(), get_site(), list_sites(), _row_to_dict(), site_code_exists(), soft_delete_site(), update_site() + +### Community 40 - "Community 40" +Cohesion: 0.25 +Nodes (7): get_user_menu_codes(), 菜单 code 权限守卫(V0.3:通过 sys_user_role → sys_role_menu → sys_menu.perms), 运营端角色守卫:admin / super_admin 可访问。, 读取用户授权的菜单权限标识集合(与前端 meta.menuCode / perms 对齐)。, 接口菜单权限守卫。super_admin 直接放行。, require_admin_or_super_admin(), require_menu_code() + +### Community 41 - "Community 41" Cohesion: 0.29 Nodes (2): BaseModel, SoftDeleteModel -### Community 40 - "Community 40" +### Community 42 - "Community 42" Cohesion: 0.38 Nodes (6): derive_legacy_status_from_three(), derive_three_status_from_legacy(), 阶段A兼容:从旧 status 推导三字段。 约束:旧 status 本身混合了支付/配送/订单生命周期,因此只能尽力推断; 若业务侧已有更精确, 阶段A兼容:从三字段反推旧 status(用于旧前端/旧筛选参数兼容)。, ThreeStatus, _to_decimal() -### Community 41 - "Community 41" +### Community 43 - "Community 43" Cohesion: 0.5 Nodes (3): BaseSettings, Config, Settings -### Community 42 - "Community 42" +### Community 44 - "Community 44" Cohesion: 0.5 Nodes (2): _auto_fill_create_dept_id(), ORM before_insert 钩子:当 create_dept_id 为空时,自动从请求上下文填充当前用户部门 ID -### Community 43 - "Community 43" +### Community 45 - "Community 45" Cohesion: 0.67 Nodes (2): get_menu_list(), 运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,供后端菜单模式联调) -### Community 44 - "Community 44" +### Community 46 - "Community 46" Cohesion: 1.0 Nodes (1): 请求级别的用户上下文变量 通过 contextvars 在请求处理链路中传递当前用户信息, 供 SQLAlchemy 事件监听器等底层机制使用,避免逐层手动传 -### Community 45 - "Community 45" +### Community 47 - "Community 47" Cohesion: 1.0 Nodes (1): API 路由包(骨架:公共鉴权 + 静态菜单 + 运营端占位) -### Community 48 - "Community 48" +### Community 50 - "Community 50" Cohesion: 1.0 Nodes (1): 发送订单状态通知 Args: openid: 用户openid ord -### Community 49 - "Community 49" +### Community 51 - "Community 51" Cohesion: 1.0 Nodes (1): 发送支付成功通知 Args: openid: 用户openid ord -### Community 50 - "Community 50" +### Community 52 - "Community 52" Cohesion: 1.0 Nodes (1): 发送配送通知 Args: openid: 配送员openid task -### Community 51 - "Community 51" +### Community 53 - "Community 53" Cohesion: 1.0 Nodes (1): 发送配送时效预警 Args: openid: 配送员openid ta -### Community 52 - "Community 52" +### Community 54 - "Community 54" Cohesion: 1.0 Nodes (1): 发送退款结果通知 Args: openid: 用户openid ord -### Community 53 - "Community 53" +### Community 55 - "Community 55" Cohesion: 1.0 Nodes (1): 发送催单通知给配送员 Args: deliver_openid: 配送员openid ## Knowledge Gaps -- **89 isolated node(s):** `刷新会话 TTL(refreshToken 续期;已登录用户每次 API 校验通过后滑动续期)`, `写入 refreshToken(用于 one-time 使用/吊销)`, `根据 token 获取当前用户(包含 Redis 会话校验;会话滑动续期)`, `登录凭据 RSA 解密(与前端 JSEncrypt PKCS#1 v1.5 兼容)。`, `Base64 密文 -> JSON 对象(须含 username、password、ts 毫秒时间戳)。` (+84 more) +- **90 isolated node(s):** `刷新会话 TTL(refreshToken 续期;已登录用户每次 API 校验通过后滑动续期)`, `写入 refreshToken(用于 one-time 使用/吊销)`, `根据 token 获取当前用户(包含 Redis 会话校验;会话滑动续期)`, `登录凭据 RSA 解密(与前端 JSEncrypt PKCS#1 v1.5 兼容)。`, `Base64 密文 -> JSON 对象(须含 username、password、ts 毫秒时间戳)。` (+85 more) These have ≤1 connection - possible missing edges or undocumented components. -- **Thin community `Community 39`** (8 nodes): `BaseModel`, `.to_dict()`, `get_active()`, `base.py`, `SoftDeleteModel`, `.restore()`, `.soft_delete()`, `__tablename__()` +- **Thin community `Community 41`** (8 nodes): `BaseModel`, `.to_dict()`, `get_active()`, `base.py`, `SoftDeleteModel`, `.restore()`, `.soft_delete()`, `__tablename__()` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 42`** (4 nodes): `_auto_fill_create_dept_id()`, `get_db()`, `database.py`, `ORM before_insert 钩子:当 create_dept_id 为空时,自动从请求上下文填充当前用户部门 ID` +- **Thin community `Community 44`** (4 nodes): `_auto_fill_create_dept_id()`, `get_db()`, `database.py`, `ORM before_insert 钩子:当 create_dept_id 为空时,自动从请求上下文填充当前用户部门 ID` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 43`** (3 nodes): `get_menu_list()`, `menu.py`, `运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,供后端菜单模式联调)` +- **Thin community `Community 45`** (3 nodes): `get_menu_list()`, `menu.py`, `运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,供后端菜单模式联调)` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 44`** (2 nodes): `context.py`, `请求级别的用户上下文变量 通过 contextvars 在请求处理链路中传递当前用户信息, 供 SQLAlchemy 事件监听器等底层机制使用,避免逐层手动传` +- **Thin community `Community 46`** (2 nodes): `context.py`, `请求级别的用户上下文变量 通过 contextvars 在请求处理链路中传递当前用户信息, 供 SQLAlchemy 事件监听器等底层机制使用,避免逐层手动传` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 45`** (2 nodes): `__init__.py`, `API 路由包(骨架:公共鉴权 + 静态菜单 + 运营端占位)` +- **Thin community `Community 47`** (2 nodes): `__init__.py`, `API 路由包(骨架:公共鉴权 + 静态菜单 + 运营端占位)` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 48`** (1 nodes): `发送订单状态通知 Args: openid: 用户openid ord` +- **Thin community `Community 50`** (1 nodes): `发送订单状态通知 Args: openid: 用户openid ord` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 49`** (1 nodes): `发送支付成功通知 Args: openid: 用户openid ord` +- **Thin community `Community 51`** (1 nodes): `发送支付成功通知 Args: openid: 用户openid ord` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 50`** (1 nodes): `发送配送通知 Args: openid: 配送员openid task` +- **Thin community `Community 52`** (1 nodes): `发送配送通知 Args: openid: 配送员openid task` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 51`** (1 nodes): `发送配送时效预警 Args: openid: 配送员openid ta` +- **Thin community `Community 53`** (1 nodes): `发送配送时效预警 Args: openid: 配送员openid ta` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 52`** (1 nodes): `发送退款结果通知 Args: openid: 用户openid ord` +- **Thin community `Community 54`** (1 nodes): `发送退款结果通知 Args: openid: 用户openid ord` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 53`** (1 nodes): `发送催单通知给配送员 Args: deliver_openid: 配送员openid` +- **Thin community `Community 55`** (1 nodes): `发送催单通知给配送员 Args: deliver_openid: 配送员openid` Too small to be a meaningful cluster - may be noise or needs more connections extracted. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ -- **Why does `SysUser` connect `Community 1` to `Community 2`, `Community 5`, `Community 8`, `Community 9`, `Community 10`?** - _High betweenness centrality (0.098) - this node is a cross-community bridge._ -- **Why does `generate_uuid()` connect `Community 3` to `Community 0`, `Community 1`, `Community 2`, `Community 4`, `Community 5`, `Community 6`, `Community 7`, `Community 8`, `Community 9`, `Community 11`, `Community 14`, `Community 15`, `Community 16`, `Community 17`, `Community 19`, `Community 20`, `Community 21`, `Community 22`, `Community 23`, `Community 24`, `Community 25`, `Community 26`, `Community 27`, `Community 28`, `Community 29`, `Community 30`, `Community 31`, `Community 32`, `Community 33`, `Community 34`, `Community 35`, `Community 36`, `Community 37`, `Community 38`?** - _High betweenness centrality (0.097) - this node is a cross-community bridge._ -- **Why does `success_response()` connect `Community 0` to `Community 1`, `Community 4`, `Community 6`, `Community 7`, `Community 8`, `Community 9`, `Community 43`, `Community 22`, `Community 23`, `Community 24`?** - _High betweenness centrality (0.065) - this node is a cross-community bridge._ +- **Why does `generate_uuid()` connect `Community 5` to `Community 0`, `Community 2`, `Community 3`, `Community 4`, `Community 6`, `Community 8`, `Community 9`, `Community 10`, `Community 11`, `Community 12`, `Community 16`, `Community 17`, `Community 18`, `Community 19`, `Community 20`, `Community 21`, `Community 24`, `Community 25`, `Community 26`, `Community 27`, `Community 28`, `Community 29`, `Community 30`, `Community 31`, `Community 32`, `Community 33`, `Community 34`, `Community 35`, `Community 36`, `Community 37`, `Community 38`, `Community 39`?** + _High betweenness centrality (0.108) - this node is a cross-community bridge._ +- **Why does `SysUser` connect `Community 3` to `Community 0`, `Community 1`, `Community 2`, `Community 6`, `Community 10`, `Community 11`, `Community 20`, `Community 21`?** + _High betweenness centrality (0.103) - this node is a cross-community bridge._ +- **Why does `success_response()` connect `Community 0` to `Community 1`, `Community 3`, `Community 4`, `Community 6`, `Community 11`, `Community 45`, `Community 15`, `Community 17`?** + _High betweenness centrality (0.064) - this node is a cross-community bridge._ - **Are the 376 inferred relationships involving `success_response()` (e.g. with `web_login_rsa_public_key()` and `web_login()`) actually correct?** _`success_response()` has 376 INFERRED edges - model-reasoned connections that need verification._ - **Are the 348 inferred relationships involving `str` (e.g. with `extract_login_credentials()` and `._make_request()`) actually correct?** diff --git a/backend/graphify-out/graph.html b/backend/graphify-out/graph.html index 40d9392d..be9b2c8e 100644 --- a/backend/graphify-out/graph.html +++ b/backend/graphify-out/graph.html @@ -57,12 +57,12 @@
-