From 320f7e75f057f5bbe32b7414953b81a3922e5ac4 Mon Sep 17 00:00:00 2001 From: zlwu <704541015@qq.com> Date: Fri, 22 May 2026 11:43:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app.pid | 2 +- backend/app/api/operations.py | 111 + backend/app/crud/cell_product.py | 65 +- backend/app/crud/production_task.py | 86 +- backend/app/crud/storage_occupancy.py | 302 ++ ...2ea0f11a275234b6efc614abb0574e742eb79.json | 1 + ...b9dcf4dbe9664b3687d239952ed424ccec395.json | 1 + backend/app/models/__init__.py | 2 + backend/app/models/models.py | 30 + backend/app/schemas/production_task.py | 23 +- backend/app/schemas/storage_occupancy.py | 41 + backend/graphify-out/.graphify_analysis.json | 1777 ++++--- backend/graphify-out/.graphify_extract.json | 518 +- backend/graphify-out/GRAPH_REPORT.md | 193 +- backend/graphify-out/graph.html | 8 +- backend/graphify-out/graph.json | 4230 +++++++++-------- backend/graphify-out/manifest.json | 4 +- .../sql/2026-05-22-storage-slot-occupancy.sql | 37 + docs/sql/production_task_add_task_type.sql | 5 + .../2026-05-22-storage-slot-occupancy.md | 1251 +++++ ...026-05-22-storage-slot-occupancy-design.md | 236 + .../graphify-out/.graphify_analysis.json | 1349 +++--- web-admin/graphify-out/.graphify_extract.json | 580 +-- web-admin/graphify-out/GRAPH_REPORT.md | 160 +- web-admin/graphify-out/graph.html | 8 +- web-admin/graphify-out/manifest.json | 50 +- web-admin/mockup-execution-dialog.html | 328 ++ web-admin/src/api/admin.ts | 41 + web-admin/src/api/production-task.ts | 4 +- ...1ab9b2f24797bcb44e37a9c26bd4329b736d7.json | 1 + ...062450c2b22274f8e2d3f7d571b4f2ac18b84.json | 1 + ...943a9cb25fd50ec1d862f5c9612e37033ee63.json | 1 + ...1be54b6c148d53cccc478fc19a9e6160ab003.json | 1 + ...529d97ace2a87265f3ec08397fe5f7a869c15.json | 1 + ...38f7f8a6382f571fc258156c727231b5c8272.json | 1 + ...43fc3bfdf5c91c2ba2dd341e31f7d300735bf.json | 1 + ...640798930a1f5f4edbf2b01c0fd92fb78cbe4.json | 1 + ...a1af312d3d2edab9d78840a92dd78ff4a37e3.json | 1 + ...f00aa1f1d28e24f1cba0fc336b4f0ec37ece3.json | 1 + ...5f4bb034374a1524b41c7f654ef272dab115e.json | 1 + ...826e06a80dbabeeae4b278d63b0a9b12bcf70.json | 1 + ...3a8832e84769a1ca331f41cc016dffeb88621.json | 1 + ...928e0715fc21885f4588ad336d87dbdaa8c44.json | 1 + ...a282694c444def165b7ac667efb9c7e5ebdd5.json | 1 + ...0a53529367322e100dcbf2f181acb620529f5.json | 1 + ...600b1bec356f31855256bf7be9681e54c2af1.json | 1 + ...8e966e54ed1c7299c4f334be84e6d7f450ed3.json | 1 + ...d0f412819b07752b2a49811d6678b6e0db08d.json | 1 + ...510b44fd36ad9e6faa9baf29220db3d1fe4d6.json | 1 + ...f2830aca6a73301661c5ec778f29cf4dae9a7.json | 1 + ...9209778e311fbacf6000f489c792c94ad98b4.json | 1 + ...11290720bb9d1f217611018ba4e788c162f38.json | 1 + ...0bf2212bbef5e7260ab9361a34e27db824bea.json | 1 + web-admin/src/styles/_route-config.scss | 3 + .../operations/storage-facility/index.vue | 382 +- .../views/production/process-route/index.vue | 18 +- .../production/production-task/index.vue | 32 + .../DispatchTaskDialog.vue | 1 + .../production-work-order/StepDetailPanel.vue | 52 +- .../TaskExecutionDialog.vue | 562 ++- .../useTaskStepEditor.ts | 100 +- 61 files changed, 8022 insertions(+), 4595 deletions(-) create mode 100644 backend/app/crud/storage_occupancy.py create mode 100644 backend/app/graphify-out/cache/ast/b47200174bbd463f61e4a5b3f852ea0f11a275234b6efc614abb0574e742eb79.json create mode 100644 backend/app/graphify-out/cache/ast/bbfa2a915372735a9b0395d3d3db9dcf4dbe9664b3687d239952ed424ccec395.json create mode 100644 backend/app/schemas/storage_occupancy.py create mode 100644 docs/sql/2026-05-22-storage-slot-occupancy.sql create mode 100644 docs/sql/production_task_add_task_type.sql create mode 100644 docs/superpowers/plans/2026-05-22-storage-slot-occupancy.md create mode 100644 docs/superpowers/specs/2026-05-22-storage-slot-occupancy-design.md create mode 100644 web-admin/mockup-execution-dialog.html create mode 100644 web-admin/src/graphify-out/cache/ast/0270a86e00fb2d03735edbc82311ab9b2f24797bcb44e37a9c26bd4329b736d7.json create mode 100644 web-admin/src/graphify-out/cache/ast/027b8d8fc27ffaa986fabf1fac7062450c2b22274f8e2d3f7d571b4f2ac18b84.json create mode 100644 web-admin/src/graphify-out/cache/ast/03d8d52a2e39384ef92fdd1223e943a9cb25fd50ec1d862f5c9612e37033ee63.json create mode 100644 web-admin/src/graphify-out/cache/ast/10a8d9ee86620942102b2a18f321be54b6c148d53cccc478fc19a9e6160ab003.json create mode 100644 web-admin/src/graphify-out/cache/ast/12d66314ead0cdc2586d13e556f529d97ace2a87265f3ec08397fe5f7a869c15.json create mode 100644 web-admin/src/graphify-out/cache/ast/286c7f5cb5dfd9b96a42d27822638f7f8a6382f571fc258156c727231b5c8272.json create mode 100644 web-admin/src/graphify-out/cache/ast/2fedac0f4e8095b7688afe6499a43fc3bfdf5c91c2ba2dd341e31f7d300735bf.json create mode 100644 web-admin/src/graphify-out/cache/ast/318b84714c5fcbea1417d5b94ca640798930a1f5f4edbf2b01c0fd92fb78cbe4.json create mode 100644 web-admin/src/graphify-out/cache/ast/582fa79ca3b6b2de10a5923504ba1af312d3d2edab9d78840a92dd78ff4a37e3.json create mode 100644 web-admin/src/graphify-out/cache/ast/5874bcb3a0814d0003228122afff00aa1f1d28e24f1cba0fc336b4f0ec37ece3.json create mode 100644 web-admin/src/graphify-out/cache/ast/6141fa236d8c03d9be0fc9c8cd55f4bb034374a1524b41c7f654ef272dab115e.json create mode 100644 web-admin/src/graphify-out/cache/ast/6332b49387277ffab36847b88a8826e06a80dbabeeae4b278d63b0a9b12bcf70.json create mode 100644 web-admin/src/graphify-out/cache/ast/65296d2c824789b0a9ad88e08113a8832e84769a1ca331f41cc016dffeb88621.json create mode 100644 web-admin/src/graphify-out/cache/ast/657d55449547de2486d3343fc83928e0715fc21885f4588ad336d87dbdaa8c44.json create mode 100644 web-admin/src/graphify-out/cache/ast/9dcc71c3ce46820f0f575a5a4fca282694c444def165b7ac667efb9c7e5ebdd5.json create mode 100644 web-admin/src/graphify-out/cache/ast/a760b18e336769cd455aa5140d30a53529367322e100dcbf2f181acb620529f5.json create mode 100644 web-admin/src/graphify-out/cache/ast/a86137fb4bca464bdb8c825795c600b1bec356f31855256bf7be9681e54c2af1.json create mode 100644 web-admin/src/graphify-out/cache/ast/b3954803eb25a6e8cf1ace8e52c8e966e54ed1c7299c4f334be84e6d7f450ed3.json create mode 100644 web-admin/src/graphify-out/cache/ast/cb706f31e29d0bee0a8a1cb672dd0f412819b07752b2a49811d6678b6e0db08d.json create mode 100644 web-admin/src/graphify-out/cache/ast/cbad878c95ca3b0ca71336fe66a510b44fd36ad9e6faa9baf29220db3d1fe4d6.json create mode 100644 web-admin/src/graphify-out/cache/ast/cdf1201b96832ec9724e9ce7f50f2830aca6a73301661c5ec778f29cf4dae9a7.json create mode 100644 web-admin/src/graphify-out/cache/ast/d0d14b943c73211ccababf0686d9209778e311fbacf6000f489c792c94ad98b4.json create mode 100644 web-admin/src/graphify-out/cache/ast/fb97c0bd015f9c5bfa03763c36811290720bb9d1f217611018ba4e788c162f38.json create mode 100644 web-admin/src/graphify-out/cache/ast/fe324eeb511b1c7154e38444b690bf2212bbef5e7260ab9361a34e27db824bea.json diff --git a/backend/app.pid b/backend/app.pid index ab9e64c31..c3351a78e 100644 --- a/backend/app.pid +++ b/backend/app.pid @@ -1 +1 @@ -52296 +77442 diff --git a/backend/app/api/operations.py b/backend/app/api/operations.py index 7fad4ec94..a4d1aba31 100644 --- a/backend/app/api/operations.py +++ b/backend/app/api/operations.py @@ -14,6 +14,8 @@ from app.core.response import error_response, success_response from app.crud import clean_room as clean_room_svc from app.crud import exhibition_appointment as exhibition_svc from app.crud import storage_facility as storage_facility_svc +from app.crud import storage_occupancy as occupancy_svc +from app.core.utils import generate_uuid from app.models.models import BizCleanRoom, BizCleanRoomAccessLog, BizExhibitionAppointment, BizStorageFacility, BizStorageFacilitySlot, SysUser router = APIRouter(prefix="/web/admin", tags=["运营支撑"]) @@ -587,6 +589,115 @@ async def delete_storage_slot( return error_response(400, str(e)) +# --------------------------------------------------------------------------- +# 库位占用记录 +# --------------------------------------------------------------------------- + + +class OccupancyCreateBody(BaseModel): + model_config = ConfigDict(populate_by_name=True) + + slot_id: str = Field(..., alias="slotId") + item_type: str = Field("other", alias="itemType") + item_code: str = Field(..., alias="itemCode") + item_name: str = Field(..., alias="itemName") + item_source: str = Field("manual", alias="itemSource") + remark: Optional[str] = None + + +@router.get("/storage-slot-occupancies") +async def list_occupancies( + slotId: str = Query(..., alias="slotId"), + occupancyStatus: Optional[str] = Query("stored", alias="occupancyStatus"), + itemType: Optional[str] = Query(None, alias="itemType"), + page: int = Query(1), + pageSize: int = Query(20, alias="pageSize"), + user: dict = Depends(require_admin_or_super_admin), + db: Session = Depends(get_db), +): + tenant_no = _get_tenant_no(db, user) + result = occupancy_svc.list_occupancies( + db, + slot_id=slotId, + occupancy_status=occupancyStatus, + item_type=itemType, + tenant_no=tenant_no, + page=page, + page_size=pageSize, + ) + return success_response(result) + + +@router.get("/storage-slot-occupancies/history") +async def list_occupancy_history( + slotId: Optional[str] = Query(None, alias="slotId"), + facilityNodeId: Optional[str] = Query(None, alias="facilityNodeId"), + itemType: Optional[str] = Query(None, alias="itemType"), + startDate: Optional[str] = Query(None, alias="startDate"), + endDate: Optional[str] = Query(None, alias="endDate"), + page: int = Query(1), + pageSize: int = Query(20, alias="pageSize"), + user: dict = Depends(require_admin_or_super_admin), + db: Session = Depends(get_db), +): + tenant_no = _get_tenant_no(db, user) + result = occupancy_svc.list_occupancy_history( + db, + slot_id=slotId, + facility_node_id=facilityNodeId, + item_type=itemType, + start_date=startDate, + end_date=endDate, + tenant_no=tenant_no, + page=page, + page_size=pageSize, + ) + return success_response(result) + + +@router.post("/storage-slot-occupancies") +async def create_occupancy( + body: OccupancyCreateBody, + user: dict = Depends(require_admin_or_super_admin), + db: Session = Depends(get_db), +): + try: + tenant_no = _get_tenant_no(db, user) + item_id = generate_uuid() + obj = occupancy_svc.create_occupancy( + db, + slot_id=body.slot_id, + item_type=body.item_type, + item_id=item_id, + item_code=body.item_code, + item_name=body.item_name, + item_source=body.item_source, + tenant_no=tenant_no, + user_id=user.get("user_id"), + remark=body.remark, + ) + return success_response(occupancy_svc._row_to_dict(obj), message="入库成功") + except ValueError as e: + return error_response(400, str(e)) + + +@router.put("/storage-slot-occupancies/{occupancy_id}/remove") +async def remove_occupancy( + occupancy_id: str, + user: dict = Depends(require_admin_or_super_admin), + db: Session = Depends(get_db), +): + try: + obj = occupancy_svc.remove_occupancy( + db, + occupancy_id, + user_id=user.get("user_id"), + ) + return success_response(occupancy_svc._row_to_dict(obj), message="出库成功") + 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 8c7106053..75bded2cf 100644 --- a/backend/app/crud/cell_product.py +++ b/backend/app/crud/cell_product.py @@ -10,6 +10,8 @@ from sqlalchemy import and_, func, or_ from sqlalchemy.orm import Session from app.core.utils import generate_uuid +from app.crud import storage_occupancy as occupancy_svc +from app.models.models import BizStorageSlotOccupancy from app.models.models import ( BizCellProduct, BizCellProductSpec, @@ -269,6 +271,32 @@ def create_cell_product( del_flag=0, ) db.add(obj) + db.flush() + + if obj.storage_slot_id: + occ = BizStorageSlotOccupancy( + id=generate_uuid(), + slot_id=obj.storage_slot_id, + item_type="cell_product", + item_id=obj.id, + item_code=obj.product_code, + item_name=obj.product_name, + item_source=obj.source_type or "manual", + stored_at=datetime.now(), + occupancy_status="stored", + tenant_no=tenant_no, + order_num=0, + create_by=user_id, + create_dept_id=create_dept_id or "", + create_time=datetime.now(), + update_by=user_id, + update_time=datetime.now(), + del_flag=0, + ) + db.add(occ) + db.flush() + occupancy_svc._refresh_slot_cache(db, obj.storage_slot_id) + db.commit() db.refresh(obj) return obj @@ -310,6 +338,13 @@ def update_cell_product( if from_status not in allowed or to_status not in allowed[from_status]: raise ValueError(f"不允许从状态 {from_status} 变更为 {to_status}") obj.product_status = data.product_status + if obj.storage_slot_id: + try: + occupancy_svc.remove_by_item( + db, "cell_product", obj.id, user_id=user_id, + ) + except Exception: + pass if data.quantity is not None: obj.quantity = data.quantity if data.unit is not None: @@ -359,7 +394,8 @@ def _next_code_start_seq(db: Session, tenant_no: str, prefix: str) -> int: seq = 1 if last and last.product_code: try: - seq = int(last.product_code[-6:]) + 1 + base = normalize_product_code_base(last.product_code) + seq = int(base[-6:]) + 1 except (ValueError, IndexError): seq = 1 return seq @@ -527,6 +563,33 @@ def create_cell_products_batch( ) db.add(obj) created.append(obj) + for obj in created: + if obj.storage_slot_id: + occ = BizStorageSlotOccupancy( + id=generate_uuid(), + slot_id=obj.storage_slot_id, + item_type="cell_product", + item_id=obj.id, + item_code=obj.product_code, + item_name=obj.product_name, + item_source=obj.source_type or "manual", + stored_at=now, + occupancy_status="stored", + tenant_no=tenant_no, + order_num=0, + 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(occ) + db.flush() + slot_ids_seen = {obj.storage_slot_id for obj in created if obj.storage_slot_id} + for sid in slot_ids_seen: + occupancy_svc._refresh_slot_cache(db, sid) + db.commit() for obj in created: db.refresh(obj) diff --git a/backend/app/crud/production_task.py b/backend/app/crud/production_task.py index 139fe7867..535cdf133 100644 --- a/backend/app/crud/production_task.py +++ b/backend/app/crud/production_task.py @@ -10,6 +10,7 @@ from sqlalchemy.orm import Session from app.core.utils import generate_uuid from app.models.models import ( + BizCellSampleType, BizProcess, BizProcessConsumable, BizProcessDataCollection, @@ -29,6 +30,9 @@ from app.models.models import ( BizProductionTaskStepDataCollection, BizProductionTaskStepOutput, BizProductionTaskStepReagent, + BizProductionWorkOrder, + BizProtocolSample, + BizSampleReception, ) @@ -50,11 +54,13 @@ def _generate_task_no(db: Session, tenant_no: str) -> str: return f"RW{day}{(cnt or 0) + 1:04d}" -def _task_to_dict(t: BizProductionTask) -> Dict[str, Any]: +def _task_to_dict(t: BizProductionTask, *, work_order_no: str = "") -> Dict[str, Any]: return { "id": t.id, "taskNo": t.task_no, "workOrderId": t.work_order_id, + "workOrderNo": work_order_no, + "taskType": t.task_type or "cell_storage", "taskName": t.task_name or "", "description": t.description or "", "routeId": t.route_id or "", @@ -294,6 +300,7 @@ def create_production_task( id=generate_uuid(), task_no=task_no, work_order_id=data.get("work_order_id", ""), + task_type=data.get("task_type") or "cell_storage", task_name=(data.get("task_name") or "").strip() or None, description=(data.get("description") or "").strip() or None, route_id=data.get("route_id") or None, @@ -366,6 +373,77 @@ def list_production_tasks( } for item, row in zip(items, rows): item["routeName"] = route_map.get(row.route_id, "") + # 批量补充工单号 + 协议号 + 样本编码 + wo_ids = [x.work_order_id for x in rows if x.work_order_id] + wo_map: Dict[str, Any] = {} + if wo_ids: + wo_rows = ( + db.query( + BizProductionWorkOrder.id, + BizProductionWorkOrder.work_order_no, + BizProductionWorkOrder.protocol_no, + BizProductionWorkOrder.sample_code, + BizProductionWorkOrder.reception_id, + BizProductionWorkOrder.protocol_sample_id, + ) + .filter(BizProductionWorkOrder.id.in_(wo_ids)) + .all() + ) + for w in wo_rows: + wo_map[w.id] = w + for item, row in zip(items, rows): + wo = wo_map.get(row.work_order_id) + if wo: + item["workOrderNo"] = wo.work_order_no or "" + item["protocolNo"] = wo.protocol_no or "" + item["sampleCode"] = wo.sample_code or "" + # 批量补充接收人、接收时间 + reception_ids = [wo.reception_id for wo in wo_map.values() if getattr(wo, "reception_id", None)] + reception_map: Dict[str, Any] = {} + if reception_ids: + for r in ( + db.query( + BizSampleReception.id, + BizSampleReception.handler_name, + BizSampleReception.reception_time, + ) + .filter(BizSampleReception.id.in_(reception_ids)) + .all() + ): + reception_map[r.id] = r + # 批量补充样本类型名称 + protocol_sample_ids = [ + wo.protocol_sample_id for wo in wo_map.values() if getattr(wo, "protocol_sample_id", None) + ] + sample_type_map: Dict[str, str] = {} + if protocol_sample_ids: + ps_rows = ( + db.query(BizProtocolSample.id, BizProtocolSample.sample_type_id) + .filter(BizProtocolSample.id.in_(protocol_sample_ids)) + .all() + ) + st_ids = [ps.sample_type_id for ps in ps_rows if ps.sample_type_id] + if st_ids: + st_name_map = { + st.id: st.type_name + for st in db.query(BizCellSampleType.id, BizCellSampleType.type_name) + .filter(BizCellSampleType.id.in_(st_ids)) + .all() + } + for ps in ps_rows: + sample_type_map[ps.id] = st_name_map.get(ps.sample_type_id, "") if ps.sample_type_id else "" + # 将补充字段写入 items + for item, row in zip(items, rows): + wo = wo_map.get(row.work_order_id) + if wo: + item["protocolNo"] = wo.protocol_no or "" + item["sampleCode"] = wo.sample_code or "" + # 接收人、接收时间 + reception = reception_map.get(wo.reception_id) if wo.reception_id else None + item["receiverName"] = reception.handler_name or "" if reception else "" + item["receptionTime"] = _fmt_dt(reception.reception_time) if reception else "" + # 样本类型 + item["sampleTypeName"] = sample_type_map.get(wo.protocol_sample_id, "") if wo.protocol_sample_id else "" return items, int(total) @@ -380,7 +458,11 @@ def get_production_task_detail(db: Session, task_id: str, tenant_no: str) -> Opt if not task: return None - result = _task_to_dict(task) + wo = db.query(BizProductionWorkOrder).filter(BizProductionWorkOrder.id == task.work_order_id).first() + result = _task_to_dict(task, work_order_no=wo.work_order_no if wo else "") + if wo: + result["sampleCode"] = wo.sample_code or "" + result["protocolNo"] = wo.protocol_no or "" steps = ( db.query(BizProductionTaskStep) diff --git a/backend/app/crud/storage_occupancy.py b/backend/app/crud/storage_occupancy.py new file mode 100644 index 000000000..dbe0d7b95 --- /dev/null +++ b/backend/app/crud/storage_occupancy.py @@ -0,0 +1,302 @@ +"""库位占用记录 CRUD(biz_storage_slot_occupancy)""" +from __future__ import annotations + +from datetime import datetime +from typing import Any, Dict, List, Optional + +from sqlalchemy import and_, func +from sqlalchemy.orm import Session + +from app.core.utils import generate_uuid +from app.models.models import BizStorageFacilitySlot, BizStorageSlotOccupancy + + +def _row_to_dict(c: BizStorageSlotOccupancy) -> Dict[str, Any]: + return { + "id": c.id, + "slotId": c.slot_id, + "itemType": c.item_type or "", + "itemId": c.item_id or "", + "itemCode": c.item_code or "", + "itemName": c.item_name or "", + "itemSource": c.item_source or "", + "storedAt": c.stored_at.strftime("%Y-%m-%d %H:%M:%S") if c.stored_at else "", + "removedAt": c.removed_at.strftime("%Y-%m-%d %H:%M:%S") if c.removed_at else "", + "occupancyStatus": c.occupancy_status or "", + "tenantNo": c.tenant_no, + "remark": c.remark or "", + "createBy": c.create_by or "", + "createTime": c.create_time.strftime("%Y-%m-%d %H:%M:%S") if c.create_time else "", + } + + +def _refresh_slot_cache(db: Session, slot_id: str) -> None: + """刷新 slot 的 occupied_count / last_item_type / last_stored_at / slot_status""" + slot = db.query(BizStorageFacilitySlot).filter( + BizStorageFacilitySlot.id == slot_id, + BizStorageFacilitySlot.del_flag == 0, + ).first() + if not slot: + return + + count = db.query(func.count(BizStorageSlotOccupancy.id)).filter( + BizStorageSlotOccupancy.slot_id == slot_id, + BizStorageSlotOccupancy.occupancy_status == "stored", + BizStorageSlotOccupancy.del_flag == 0, + ).scalar() or 0 + + slot.occupied_count = count + if count > 0: + slot.slot_status = "占用" + latest = db.query(BizStorageSlotOccupancy).filter( + BizStorageSlotOccupancy.slot_id == slot_id, + BizStorageSlotOccupancy.occupancy_status == "stored", + BizStorageSlotOccupancy.del_flag == 0, + ).order_by(BizStorageSlotOccupancy.stored_at.desc()).first() + if latest: + slot.last_item_type = latest.item_type + slot.last_stored_at = latest.stored_at + else: + slot.slot_status = "空" + slot.last_item_type = None + slot.last_stored_at = None + slot.update_time = datetime.now() + db.add(slot) + db.flush() + + +def create_occupancy( + db: Session, + *, + slot_id: str, + item_type: str, + item_id: str, + item_code: str, + item_name: str, + item_source: str = "manual", + tenant_no: str = "", + user_id: Optional[str] = None, + remark: Optional[str] = None, +) -> BizStorageSlotOccupancy: + """创建入库记录 + 刷新 slot 缓存""" + now = datetime.now() + obj = BizStorageSlotOccupancy( + id=generate_uuid(), + slot_id=slot_id, + item_type=item_type, + item_id=item_id, + item_code=(item_code or "").strip() or None, + item_name=(item_name or "").strip() or None, + item_source=(item_source or "manual").strip(), + stored_at=now, + removed_at=None, + occupancy_status="stored", + tenant_no=tenant_no, + order_num=0, + remark=(remark or "").strip() or None, + create_by=user_id, + create_dept_id="", + create_time=now, + update_by=user_id, + update_time=now, + del_flag=0, + ) + db.add(obj) + db.flush() + _refresh_slot_cache(db, slot_id) + db.commit() + db.refresh(obj) + return obj + + +def batch_create_occupancies( + db: Session, + *, + items: List[Dict[str, Any]], + tenant_no: str = "", + user_id: Optional[str] = None, +) -> List[BizStorageSlotOccupancy]: + """批量入库""" + now = datetime.now() + created: List[BizStorageSlotOccupancy] = [] + slot_ids_seen: set = set() + for it in items: + obj = BizStorageSlotOccupancy( + id=generate_uuid(), + slot_id=it["slot_id"], + item_type=it.get("item_type", "cell_product"), + item_id=it["item_id"], + item_code=(it.get("item_code") or "").strip() or None, + item_name=(it.get("item_name") or "").strip() or None, + item_source=(it.get("item_source") or "production").strip(), + stored_at=now, + removed_at=None, + occupancy_status="stored", + tenant_no=tenant_no, + order_num=0, + remark=(it.get("remark") or "").strip() or None, + create_by=user_id, + create_dept_id="", + create_time=now, + update_by=user_id, + update_time=now, + del_flag=0, + ) + db.add(obj) + created.append(obj) + slot_ids_seen.add(it["slot_id"]) + db.flush() + for sid in slot_ids_seen: + _refresh_slot_cache(db, sid) + db.commit() + for obj in created: + db.refresh(obj) + return created + + +def remove_occupancy( + db: Session, + occupancy_id: str, + *, + user_id: Optional[str] = None, +) -> BizStorageSlotOccupancy: + """手动出库""" + obj = db.query(BizStorageSlotOccupancy).filter( + BizStorageSlotOccupancy.id == occupancy_id, + BizStorageSlotOccupancy.del_flag == 0, + ).first() + if not obj: + raise ValueError("占用记录不存在") + if obj.occupancy_status == "removed": + raise ValueError("该物品已出库") + now = datetime.now() + obj.occupancy_status = "removed" + obj.removed_at = now + obj.update_by = user_id + obj.update_time = now + db.add(obj) + db.flush() + _refresh_slot_cache(db, obj.slot_id) + db.commit() + db.refresh(obj) + return obj + + +def remove_by_item( + db: Session, + item_type: str, + item_id: str, + *, + user_id: Optional[str] = None, +) -> None: + """按物品类型+ID出库(细胞产品状态变更时调用)""" + obj = db.query(BizStorageSlotOccupancy).filter( + BizStorageSlotOccupancy.item_type == item_type, + BizStorageSlotOccupancy.item_id == item_id, + BizStorageSlotOccupancy.occupancy_status == "stored", + BizStorageSlotOccupancy.del_flag == 0, + ).first() + if not obj: + return + now = datetime.now() + obj.occupancy_status = "removed" + obj.removed_at = now + obj.update_by = user_id + obj.update_time = now + db.add(obj) + db.flush() + _refresh_slot_cache(db, obj.slot_id) + db.commit() + + +def list_occupancies( + db: Session, + *, + slot_id: str, + occupancy_status: Optional[str] = "stored", + item_type: Optional[str] = None, + tenant_no: str = "", + page: int = 1, + page_size: int = 20, +) -> Dict[str, Any]: + """分页查询占用记录""" + q = db.query(BizStorageSlotOccupancy).filter( + BizStorageSlotOccupancy.slot_id == slot_id, + BizStorageSlotOccupancy.del_flag == 0, + ) + if tenant_no: + q = q.filter(BizStorageSlotOccupancy.tenant_no == tenant_no) + if occupancy_status: + q = q.filter(BizStorageSlotOccupancy.occupancy_status == occupancy_status) + if item_type: + q = q.filter(BizStorageSlotOccupancy.item_type == item_type) + + total = q.order_by(None).with_entities(func.count(BizStorageSlotOccupancy.id)).scalar() or 0 + page = max(1, page) + page_size = min(max(1, page_size), 100) + rows = ( + q.order_by(BizStorageSlotOccupancy.stored_at.desc()) + .offset((page - 1) * page_size) + .limit(page_size) + .all() + ) + return {"items": [_row_to_dict(r) for r in rows], "total": int(total)} + + +def list_occupancy_history( + db: Session, + *, + slot_id: Optional[str] = None, + facility_node_id: Optional[str] = None, + item_type: Optional[str] = None, + start_date: Optional[str] = None, + end_date: Optional[str] = None, + tenant_no: str = "", + page: int = 1, + page_size: int = 20, +) -> Dict[str, Any]: + """出入库历史""" + q = db.query(BizStorageSlotOccupancy).filter( + BizStorageSlotOccupancy.del_flag == 0, + ) + if tenant_no: + q = q.filter(BizStorageSlotOccupancy.tenant_no == tenant_no) + if slot_id: + q = q.filter(BizStorageSlotOccupancy.slot_id == slot_id) + if item_type: + q = q.filter(BizStorageSlotOccupancy.item_type == item_type) + if start_date: + try: + sd = datetime.strptime(start_date, "%Y-%m-%d") + q = q.filter(BizStorageSlotOccupancy.stored_at >= sd) + except ValueError: + pass + if end_date: + try: + ed = datetime.strptime(end_date, "%Y-%m-%d") + ed = ed.replace(hour=23, minute=59, second=59) + q = q.filter(BizStorageSlotOccupancy.stored_at <= ed) + except ValueError: + pass + if facility_node_id: + slot_ids = [ + r[0] for r in db.query(BizStorageFacilitySlot.id).filter( + BizStorageFacilitySlot.facility_node_id == facility_node_id, + BizStorageFacilitySlot.del_flag == 0, + ).all() + ] + if slot_ids: + q = q.filter(BizStorageSlotOccupancy.slot_id.in_(slot_ids)) + else: + return {"items": [], "total": 0} + + total = q.order_by(None).with_entities(func.count(BizStorageSlotOccupancy.id)).scalar() or 0 + page = max(1, page) + page_size = min(max(1, page_size), 100) + rows = ( + q.order_by(BizStorageSlotOccupancy.create_time.desc()) + .offset((page - 1) * page_size) + .limit(page_size) + .all() + ) + return {"items": [_row_to_dict(r) for r in rows], "total": int(total)} diff --git a/backend/app/graphify-out/cache/ast/b47200174bbd463f61e4a5b3f852ea0f11a275234b6efc614abb0574e742eb79.json b/backend/app/graphify-out/cache/ast/b47200174bbd463f61e4a5b3f852ea0f11a275234b6efc614abb0574e742eb79.json new file mode 100644 index 000000000..46209a3d3 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/b47200174bbd463f61e4a5b3f852ea0f11a275234b6efc614abb0574e742eb79.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "label": "production_task.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L1"}, {"id": "crud_production_task_fmt_dt", "label": "_fmt_dt()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L35"}, {"id": "crud_production_task_generate_task_no", "label": "_generate_task_no()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L39"}, {"id": "crud_production_task_task_to_dict", "label": "_task_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L53"}, {"id": "crud_production_task_step_to_dict", "label": "_step_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L73"}, {"id": "crud_production_task_step_reagent_to_dict", "label": "_step_reagent_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L93"}, {"id": "crud_production_task_step_consumable_to_dict", "label": "_step_consumable_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L108"}, {"id": "crud_production_task_step_output_to_dict", "label": "_step_output_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L123"}, {"id": "crud_production_task_step_data_collection_to_dict", "label": "_step_data_collection_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L134"}, {"id": "crud_production_task_task_input_to_dict", "label": "_task_input_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L145"}, {"id": "crud_production_task_task_output_to_dict", "label": "_task_output_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L157"}, {"id": "crud_production_task_soft_delete_sub", "label": "_soft_delete_sub()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L172"}, {"id": "crud_production_task_clone_step_reagents", "label": "_clone_step_reagents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L185"}, {"id": "crud_production_task_clone_step_consumables", "label": "_clone_step_consumables()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L203"}, {"id": "crud_production_task_clone_step_outputs", "label": "_clone_step_outputs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L221"}, {"id": "crud_production_task_clone_step_data_collections", "label": "_clone_step_data_collections()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L238"}, {"id": "crud_production_task_clone_route_to_task", "label": "_clone_route_to_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L254"}, {"id": "crud_production_task_create_production_task", "label": "create_production_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L287"}, {"id": "crud_production_task_list_production_tasks", "label": "list_production_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L323"}, {"id": "crud_production_task_get_production_task_detail", "label": "get_production_task_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L372"}, {"id": "crud_production_task_update_production_task", "label": "update_production_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L427"}, {"id": "crud_production_task_update_task_status", "label": "update_task_status()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L452"}, {"id": "crud_production_task_add_task_step", "label": "add_task_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L479"}, {"id": "crud_production_task_update_task_step", "label": "update_task_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L624"}, {"id": "crud_production_task_delete_task_step", "label": "delete_task_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L662"}, {"id": "crud_production_task_replace_step_reagents", "label": "replace_step_reagents()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L684"}, {"id": "crud_production_task_replace_step_consumables", "label": "replace_step_consumables()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L707"}, {"id": "crud_production_task_replace_step_outputs", "label": "replace_step_outputs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L730"}, {"id": "crud_production_task_replace_step_data_collections", "label": "replace_step_data_collections()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L749"}, {"id": "crud_production_task_set_task_inputs", "label": "set_task_inputs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L768"}, {"id": "crud_production_task_set_task_outputs", "label": "set_task_outputs()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L788"}, {"id": "crud_production_task_reorder_task_steps", "label": "reorder_task_steps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L812"}, {"id": "crud_production_task_copy_task_step", "label": "copy_task_step()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L826"}, {"id": "crud_production_task_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L930"}, {"id": "crud_production_task_rationale_1", "label": "\u751f\u4ea7\u4efb\u52a1 CRUD\uff08biz_production_task + \u6b65\u9aa4 + \u5b50\u8868 + \u6295\u5165/\u4ea7\u51fa\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L1"}, {"id": "crud_production_task_rationale_828", "label": "\u590d\u5236\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4\uff0c\u63d2\u5165\u5230\u539f\u6b65\u9aa4\u4e4b\u540e\uff0c\u540d\u79f0\u8ffd\u52a0\uff08\u590d\u5236\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L828"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "math", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_fmt_dt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L35", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_generate_task_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L39", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_task_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L53", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_step_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L73", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_step_reagent_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L93", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_step_consumable_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L108", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_step_output_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L123", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_step_data_collection_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L134", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_task_input_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L145", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_task_output_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L157", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_soft_delete_sub", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L172", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_clone_step_reagents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L185", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_clone_step_consumables", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L203", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_clone_step_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L221", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_clone_step_data_collections", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L238", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_clone_route_to_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L254", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_create_production_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L287", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_list_production_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L323", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_get_production_task_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L372", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_update_production_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L427", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_update_task_status", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L452", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_add_task_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L479", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_update_task_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L624", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_delete_task_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L662", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_replace_step_reagents", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L684", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_replace_step_consumables", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L707", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_replace_step_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L730", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_replace_step_data_collections", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L749", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_set_task_inputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L768", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_set_task_outputs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L788", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_reorder_task_steps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L812", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_copy_task_step", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L826", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "target": "crud_production_task_total_pages", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L930", "weight": 1.0}, {"source": "crud_production_task_task_to_dict", "target": "crud_production_task_fmt_dt", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L62", "weight": 1.0}, {"source": "crud_production_task_step_to_dict", "target": "crud_production_task_fmt_dt", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L87", "weight": 1.0}, {"source": "crud_production_task_clone_route_to_task", "target": "crud_production_task_clone_step_reagents", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L281", "weight": 1.0}, {"source": "crud_production_task_clone_route_to_task", "target": "crud_production_task_clone_step_consumables", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L282", "weight": 1.0}, {"source": "crud_production_task_clone_route_to_task", "target": "crud_production_task_clone_step_outputs", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L283", "weight": 1.0}, {"source": "crud_production_task_clone_route_to_task", "target": "crud_production_task_clone_step_data_collections", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L284", "weight": 1.0}, {"source": "crud_production_task_create_production_task", "target": "crud_production_task_generate_task_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L291", "weight": 1.0}, {"source": "crud_production_task_create_production_task", "target": "crud_production_task_clone_route_to_task", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L317", "weight": 1.0}, {"source": "crud_production_task_list_production_tasks", "target": "crud_production_task_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L357", "weight": 1.0}, {"source": "crud_production_task_get_production_task_detail", "target": "crud_production_task_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L383", "weight": 1.0}, {"source": "crud_production_task_get_production_task_detail", "target": "crud_production_task_step_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L393", "weight": 1.0}, {"source": "crud_production_task_get_production_task_detail", "target": "crud_production_task_step_reagent_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L407", "weight": 1.0}, {"source": "crud_production_task_get_production_task_detail", "target": "crud_production_task_step_consumable_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L408", "weight": 1.0}, {"source": "crud_production_task_get_production_task_detail", "target": "crud_production_task_step_output_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L409", "weight": 1.0}, {"source": "crud_production_task_get_production_task_detail", "target": "crud_production_task_step_data_collection_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L410", "weight": 1.0}, {"source": "crud_production_task_get_production_task_detail", "target": "crud_production_task_task_input_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L422", "weight": 1.0}, {"source": "crud_production_task_get_production_task_detail", "target": "crud_production_task_task_output_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L423", "weight": 1.0}, {"source": "crud_production_task_add_task_step", "target": "crud_production_task_step_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L603", "weight": 1.0}, {"source": "crud_production_task_add_task_step", "target": "crud_production_task_step_reagent_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L617", "weight": 1.0}, {"source": "crud_production_task_add_task_step", "target": "crud_production_task_step_consumable_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L618", "weight": 1.0}, {"source": "crud_production_task_add_task_step", "target": "crud_production_task_step_output_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L619", "weight": 1.0}, {"source": "crud_production_task_add_task_step", "target": "crud_production_task_step_data_collection_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L620", "weight": 1.0}, {"source": "crud_production_task_delete_task_step", "target": "crud_production_task_soft_delete_sub", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L677", "weight": 1.0}, {"source": "crud_production_task_replace_step_reagents", "target": "crud_production_task_soft_delete_sub", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L689", "weight": 1.0}, {"source": "crud_production_task_replace_step_consumables", "target": "crud_production_task_soft_delete_sub", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L712", "weight": 1.0}, {"source": "crud_production_task_replace_step_outputs", "target": "crud_production_task_soft_delete_sub", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L735", "weight": 1.0}, {"source": "crud_production_task_replace_step_data_collections", "target": "crud_production_task_soft_delete_sub", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L754", "weight": 1.0}, {"source": "crud_production_task_set_task_inputs", "target": "crud_production_task_soft_delete_sub", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L773", "weight": 1.0}, {"source": "crud_production_task_set_task_outputs", "target": "crud_production_task_soft_delete_sub", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L793", "weight": 1.0}, {"source": "crud_production_task_copy_task_step", "target": "crud_production_task_step_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L927", "weight": 1.0}, {"source": "crud_production_task_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_crud_production_task_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L1", "weight": 1.0}, {"source": "crud_production_task_rationale_828", "target": "crud_production_task_copy_task_step", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L828", "weight": 1.0}], "raw_calls": [{"caller_nid": "crud_production_task_fmt_dt", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L36"}, {"caller_nid": "crud_production_task_generate_task_no", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L40"}, {"caller_nid": "crud_production_task_generate_task_no", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L40"}, {"caller_nid": "crud_production_task_generate_task_no", "callee": "scalar", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L43"}, {"caller_nid": "crud_production_task_generate_task_no", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L43"}, {"caller_nid": "crud_production_task_generate_task_no", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L43"}, {"caller_nid": "crud_production_task_generate_task_no", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L43"}, {"caller_nid": "crud_production_task_generate_task_no", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L46"}, {"caller_nid": "crud_production_task_task_output_to_dict", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L165"}, {"caller_nid": "crud_production_task_soft_delete_sub", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L173"}, {"caller_nid": "crud_production_task_soft_delete_sub", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L173"}, {"caller_nid": "crud_production_task_soft_delete_sub", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L173"}, {"caller_nid": "crud_production_task_soft_delete_sub", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L174"}, {"caller_nid": "crud_production_task_soft_delete_sub", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L175"}, {"caller_nid": "crud_production_task_soft_delete_sub", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L182"}, {"caller_nid": "crud_production_task_clone_step_reagents", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L189"}, {"caller_nid": "crud_production_task_clone_step_reagents", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L189"}, {"caller_nid": "crud_production_task_clone_step_reagents", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L189"}, {"caller_nid": "crud_production_task_clone_step_reagents", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L190"}, {"caller_nid": "crud_production_task_clone_step_reagents", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L192"}, {"caller_nid": "crud_production_task_clone_step_reagents", "callee": "BizProductionTaskStepReagent", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L192"}, {"caller_nid": "crud_production_task_clone_step_reagents", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L193"}, {"caller_nid": "crud_production_task_clone_step_consumables", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L207"}, {"caller_nid": "crud_production_task_clone_step_consumables", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L207"}, {"caller_nid": "crud_production_task_clone_step_consumables", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L207"}, {"caller_nid": "crud_production_task_clone_step_consumables", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L208"}, {"caller_nid": "crud_production_task_clone_step_consumables", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L210"}, {"caller_nid": "crud_production_task_clone_step_consumables", "callee": "BizProductionTaskStepConsumable", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L210"}, {"caller_nid": "crud_production_task_clone_step_consumables", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L211"}, {"caller_nid": "crud_production_task_clone_step_outputs", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L225"}, {"caller_nid": "crud_production_task_clone_step_outputs", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L225"}, {"caller_nid": "crud_production_task_clone_step_outputs", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L225"}, {"caller_nid": "crud_production_task_clone_step_outputs", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L226"}, {"caller_nid": "crud_production_task_clone_step_outputs", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L228"}, {"caller_nid": "crud_production_task_clone_step_outputs", "callee": "BizProductionTaskStepOutput", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L228"}, {"caller_nid": "crud_production_task_clone_step_outputs", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L229"}, {"caller_nid": "crud_production_task_clone_step_data_collections", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L242"}, {"caller_nid": "crud_production_task_clone_step_data_collections", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L242"}, {"caller_nid": "crud_production_task_clone_step_data_collections", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L242"}, {"caller_nid": "crud_production_task_clone_step_data_collections", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L243"}, {"caller_nid": "crud_production_task_clone_step_data_collections", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L245"}, {"caller_nid": "crud_production_task_clone_step_data_collections", "callee": "BizProductionTaskStepDataCollection", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L245"}, {"caller_nid": "crud_production_task_clone_step_data_collections", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L246"}, {"caller_nid": "crud_production_task_clone_route_to_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L259"}, {"caller_nid": "crud_production_task_clone_route_to_task", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L259"}, {"caller_nid": "crud_production_task_clone_route_to_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L259"}, {"caller_nid": "crud_production_task_clone_route_to_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L259"}, {"caller_nid": "crud_production_task_clone_route_to_task", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L260"}, {"caller_nid": "crud_production_task_clone_route_to_task", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L261"}, {"caller_nid": "crud_production_task_clone_route_to_task", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L261"}, {"caller_nid": "crud_production_task_clone_route_to_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L264"}, {"caller_nid": "crud_production_task_clone_route_to_task", "callee": "BizProductionTaskStep", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L266"}, {"caller_nid": "crud_production_task_clone_route_to_task", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L267"}, {"caller_nid": "crud_production_task_clone_route_to_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L278"}, {"caller_nid": "crud_production_task_clone_route_to_task", "callee": "flush", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L279"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L292"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "BizProductionTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L293"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L294"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L296"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L297"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L297"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L298"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L298"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L299"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L301"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L301"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L302"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L302"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L312"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "flush", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L313"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L315"}, {"caller_nid": "crud_production_task_create_production_task", "callee": "flush", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L319"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "scalar", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L347"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "with_entities", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L347"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L347"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "_filtered", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L347"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L347"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L348"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "min", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L349"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L349"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L351"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "limit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L351"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "offset", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L351"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L351"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "_filtered", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L351"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L352"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L363"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L363"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L363"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L364"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "zip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L367"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L368"}, {"caller_nid": "crud_production_task_list_production_tasks", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L369"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L373"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L373"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L373"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L374"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L386"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L386"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L386"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L386"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L387"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L388"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L388"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L394"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L394"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L394"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L394"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L395"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L396"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L396"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L397"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L397"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L397"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L397"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L398"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L399"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L399"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L400"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L400"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L400"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L400"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L401"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L402"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L402"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L403"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L403"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L403"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L403"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L404"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L405"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L405"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L411"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L413"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L413"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L413"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L413"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L414"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L415"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L417"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L417"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L417"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L417"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L418"}, {"caller_nid": "crud_production_task_get_production_task_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L419"}, {"caller_nid": "crud_production_task_update_production_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L431"}, {"caller_nid": "crud_production_task_update_production_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L431"}, {"caller_nid": "crud_production_task_update_production_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L431"}, {"caller_nid": "crud_production_task_update_production_task", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L432"}, {"caller_nid": "crud_production_task_update_production_task", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L439"}, {"caller_nid": "crud_production_task_update_production_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L441"}, {"caller_nid": "crud_production_task_update_production_task", "callee": "setattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L443"}, {"caller_nid": "crud_production_task_update_production_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L443"}, {"caller_nid": "crud_production_task_update_production_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L445"}, {"caller_nid": "crud_production_task_update_production_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L446"}, {"caller_nid": "crud_production_task_update_production_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L447"}, {"caller_nid": "crud_production_task_update_production_task", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L448"}, {"caller_nid": "crud_production_task_update_task_status", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L456"}, {"caller_nid": "crud_production_task_update_task_status", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L456"}, {"caller_nid": "crud_production_task_update_task_status", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L456"}, {"caller_nid": "crud_production_task_update_task_status", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L457"}, {"caller_nid": "crud_production_task_update_task_status", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L464"}, {"caller_nid": "crud_production_task_update_task_status", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L465"}, {"caller_nid": "crud_production_task_update_task_status", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L473"}, {"caller_nid": "crud_production_task_update_task_status", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L474"}, {"caller_nid": "crud_production_task_update_task_status", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L475"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L483"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L483"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L483"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L484"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L491"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L493"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L494"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "scalar", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L496"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L496"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L496"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L496"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L497"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L502"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L504"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L504"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L504"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L505"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L508"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "BizProductionTaskStep", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L510"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L511"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L526"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "flush", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L527"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L530"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L530"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L530"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L531"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L533"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "BizProductionTaskStepReagent", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L533"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L534"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L543"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L543"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L543"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L544"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L546"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "BizProductionTaskStepConsumable", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L546"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L547"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L556"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L556"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L556"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L557"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L559"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "BizProductionTaskStepOutput", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L559"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L560"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L568"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L568"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L568"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L569"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L571"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "BizProductionTaskStepDataCollection", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L571"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L572"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L579"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "BizProductionTaskStep", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L582"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L583"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L585"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L585"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L586"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L586"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L587"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L587"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L588"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L588"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L589"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L589"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L590"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L590"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L591"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L591"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L592"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L592"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L593"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L595"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L595"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L599"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L600"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L604"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L604"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L604"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L604"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L605"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L606"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L606"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L607"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L607"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L607"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L607"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L608"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L609"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L609"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L610"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L610"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L610"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L610"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L611"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L612"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L612"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L613"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L613"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L613"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L613"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L614"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L615"}, {"caller_nid": "crud_production_task_add_task_step", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L615"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L628"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L628"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L628"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L629"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L636"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L642"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "setattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L645"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L645"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "setattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L647"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L647"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L648"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "_parse_dt", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L650"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L651"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "_parse_dt", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L653"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L655"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L656"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L657"}, {"caller_nid": "crud_production_task_update_task_step", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L658"}, {"caller_nid": "crud_production_task_delete_task_step", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L663"}, {"caller_nid": "crud_production_task_delete_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L663"}, {"caller_nid": "crud_production_task_delete_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L663"}, {"caller_nid": "crud_production_task_delete_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L664"}, {"caller_nid": "crud_production_task_delete_task_step", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L671"}, {"caller_nid": "crud_production_task_delete_task_step", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L672"}, {"caller_nid": "crud_production_task_delete_task_step", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L676"}, {"caller_nid": "crud_production_task_delete_task_step", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L681"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L688"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "enumerate", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L690"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L691"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "BizProductionTaskStepReagent", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L691"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L692"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L693"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L693"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L694"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L694"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L695"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L695"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L696"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L696"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L697"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L697"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L698"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L698"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L699"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L700"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L700"}, {"caller_nid": "crud_production_task_replace_step_reagents", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L704"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L711"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "enumerate", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L713"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L714"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "BizProductionTaskStepConsumable", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L714"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L715"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L716"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L716"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L717"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L717"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L718"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L718"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L719"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L719"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L720"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L720"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L721"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L721"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L722"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L723"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L723"}, {"caller_nid": "crud_production_task_replace_step_consumables", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L727"}, {"caller_nid": "crud_production_task_replace_step_outputs", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L734"}, {"caller_nid": "crud_production_task_replace_step_outputs", "callee": "enumerate", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L736"}, {"caller_nid": "crud_production_task_replace_step_outputs", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L737"}, {"caller_nid": "crud_production_task_replace_step_outputs", "callee": "BizProductionTaskStepOutput", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L737"}, {"caller_nid": "crud_production_task_replace_step_outputs", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L738"}, {"caller_nid": "crud_production_task_replace_step_outputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L739"}, {"caller_nid": "crud_production_task_replace_step_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L739"}, {"caller_nid": "crud_production_task_replace_step_outputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L740"}, {"caller_nid": "crud_production_task_replace_step_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L740"}, {"caller_nid": "crud_production_task_replace_step_outputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L741"}, {"caller_nid": "crud_production_task_replace_step_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L741"}, {"caller_nid": "crud_production_task_replace_step_outputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L742"}, {"caller_nid": "crud_production_task_replace_step_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L742"}, {"caller_nid": "crud_production_task_replace_step_outputs", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L746"}, {"caller_nid": "crud_production_task_replace_step_data_collections", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L753"}, {"caller_nid": "crud_production_task_replace_step_data_collections", "callee": "enumerate", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L755"}, {"caller_nid": "crud_production_task_replace_step_data_collections", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L756"}, {"caller_nid": "crud_production_task_replace_step_data_collections", "callee": "BizProductionTaskStepDataCollection", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L756"}, {"caller_nid": "crud_production_task_replace_step_data_collections", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L757"}, {"caller_nid": "crud_production_task_replace_step_data_collections", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L758"}, {"caller_nid": "crud_production_task_replace_step_data_collections", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L758"}, {"caller_nid": "crud_production_task_replace_step_data_collections", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L759"}, {"caller_nid": "crud_production_task_replace_step_data_collections", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L759"}, {"caller_nid": "crud_production_task_replace_step_data_collections", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L760"}, {"caller_nid": "crud_production_task_replace_step_data_collections", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L760"}, {"caller_nid": "crud_production_task_replace_step_data_collections", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L761"}, {"caller_nid": "crud_production_task_replace_step_data_collections", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L761"}, {"caller_nid": "crud_production_task_replace_step_data_collections", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L765"}, {"caller_nid": "crud_production_task_set_task_inputs", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L772"}, {"caller_nid": "crud_production_task_set_task_inputs", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L775"}, {"caller_nid": "crud_production_task_set_task_inputs", "callee": "BizProductionTaskInput", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L775"}, {"caller_nid": "crud_production_task_set_task_inputs", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L776"}, {"caller_nid": "crud_production_task_set_task_inputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L777"}, {"caller_nid": "crud_production_task_set_task_inputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L777"}, {"caller_nid": "crud_production_task_set_task_inputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L778"}, {"caller_nid": "crud_production_task_set_task_inputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L778"}, {"caller_nid": "crud_production_task_set_task_inputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L779"}, {"caller_nid": "crud_production_task_set_task_inputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L779"}, {"caller_nid": "crud_production_task_set_task_inputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L780"}, {"caller_nid": "crud_production_task_set_task_inputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L780"}, {"caller_nid": "crud_production_task_set_task_inputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L781"}, {"caller_nid": "crud_production_task_set_task_inputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L781"}, {"caller_nid": "crud_production_task_set_task_inputs", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L785"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L792"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L795"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L796"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "BizProductionTaskOutput", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L796"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L797"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L798"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L798"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L799"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L799"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L800"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L800"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L801"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L801"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L803"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L803"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L804"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L804"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L805"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L805"}, {"caller_nid": "crud_production_task_set_task_outputs", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L809"}, {"caller_nid": "crud_production_task_reorder_task_steps", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L813"}, {"caller_nid": "crud_production_task_reorder_task_steps", "callee": "enumerate", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L814"}, {"caller_nid": "crud_production_task_reorder_task_steps", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L815"}, {"caller_nid": "crud_production_task_reorder_task_steps", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L815"}, {"caller_nid": "crud_production_task_reorder_task_steps", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L815"}, {"caller_nid": "crud_production_task_reorder_task_steps", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L816"}, {"caller_nid": "crud_production_task_reorder_task_steps", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L822"}, {"caller_nid": "crud_production_task_reorder_task_steps", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L823"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L829"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L829"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L829"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L830"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L833"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L835"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L839"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L839"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L839"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L839"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L840"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L845"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L849"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L852"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "endswith", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L853"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "BizProductionTaskStep", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L855"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L856"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L867"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "flush", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L868"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L871"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L871"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L871"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L872"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L874"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "BizProductionTaskStepReagent", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L874"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L875"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L886"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L886"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L886"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L887"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L889"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "BizProductionTaskStepConsumable", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L889"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L890"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L901"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L901"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L901"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L902"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L904"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "BizProductionTaskStepOutput", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L904"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L905"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L914"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L914"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L914"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L915"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L917"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "BizProductionTaskStepDataCollection", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L917"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L918"}, {"caller_nid": "crud_production_task_copy_task_step", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L926"}, {"caller_nid": "crud_production_task_total_pages", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L933"}, {"caller_nid": "crud_production_task_total_pages", "callee": "ceil", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L933"}, {"caller_nid": "crud_production_task_total_pages", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/production_task.py", "source_location": "L933"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/bbfa2a915372735a9b0395d3d3db9dcf4dbe9664b3687d239952ed424ccec395.json b/backend/app/graphify-out/cache/ast/bbfa2a915372735a9b0395d3d3db9dcf4dbe9664b3687d239952ed424ccec395.json new file mode 100644 index 000000000..c0b4a903d --- /dev/null +++ b/backend/app/graphify-out/cache/ast/bbfa2a915372735a9b0395d3d3db9dcf4dbe9664b3687d239952ed424ccec395.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "label": "production_task.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L1"}, {"id": "schemas_production_task_productiontaskcreate", "label": "ProductionTaskCreate", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L6"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "schemas_production_task_productiontasklistquery", "label": "ProductionTaskListQuery", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L14"}, {"id": "schemas_production_task_productiontaskupdate", "label": "ProductionTaskUpdate", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L22"}, {"id": "schemas_production_task_productiontaskstatusupdate", "label": "ProductionTaskStatusUpdate", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L29"}, {"id": "schemas_production_task_taskstepadd", "label": "TaskStepAdd", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L33"}, {"id": "schemas_production_task_taskstepupdate", "label": "TaskStepUpdate", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L44"}, {"id": "schemas_production_task_taskstepmaterialitem", "label": "TaskStepMaterialItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L54"}, {"id": "schemas_production_task_taskstepoutputitem", "label": "TaskStepOutputItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L67"}, {"id": "schemas_production_task_taskstepdatacollectionitem", "label": "TaskStepDataCollectionItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L74"}, {"id": "schemas_production_task_taskinputitem", "label": "TaskInputItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L81"}, {"id": "schemas_production_task_taskoutputitem", "label": "TaskOutputItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L88"}, {"id": "schemas_production_task_taskstepreorderbody", "label": "TaskStepReorderBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L99"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "target": "pydantic", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "target": "schemas_production_task_productiontaskcreate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L6", "weight": 1.0}, {"source": "schemas_production_task_productiontaskcreate", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "target": "schemas_production_task_productiontasklistquery", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L14", "weight": 1.0}, {"source": "schemas_production_task_productiontasklistquery", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "target": "schemas_production_task_productiontaskupdate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L22", "weight": 1.0}, {"source": "schemas_production_task_productiontaskupdate", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "target": "schemas_production_task_productiontaskstatusupdate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L29", "weight": 1.0}, {"source": "schemas_production_task_productiontaskstatusupdate", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L29", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "target": "schemas_production_task_taskstepadd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L33", "weight": 1.0}, {"source": "schemas_production_task_taskstepadd", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L33", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "target": "schemas_production_task_taskstepupdate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L44", "weight": 1.0}, {"source": "schemas_production_task_taskstepupdate", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L44", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "target": "schemas_production_task_taskstepmaterialitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L54", "weight": 1.0}, {"source": "schemas_production_task_taskstepmaterialitem", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L54", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "target": "schemas_production_task_taskstepoutputitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L67", "weight": 1.0}, {"source": "schemas_production_task_taskstepoutputitem", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L67", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "target": "schemas_production_task_taskstepdatacollectionitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L74", "weight": 1.0}, {"source": "schemas_production_task_taskstepdatacollectionitem", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L74", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "target": "schemas_production_task_taskinputitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L81", "weight": 1.0}, {"source": "schemas_production_task_taskinputitem", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L81", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "target": "schemas_production_task_taskoutputitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L88", "weight": 1.0}, {"source": "schemas_production_task_taskoutputitem", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L88", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_schemas_production_task_py", "target": "schemas_production_task_taskstepreorderbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L99", "weight": 1.0}, {"source": "schemas_production_task_taskstepreorderbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/schemas/production_task.py", "source_location": "L99", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/backend/app/models/__init__.py b/backend/app/models/__init__.py index 95cf5e99c..f0108365d 100644 --- a/backend/app/models/__init__.py +++ b/backend/app/models/__init__.py @@ -47,6 +47,7 @@ from app.models.models import ( BizProductionTaskStepOutput, BizProductionTaskStepDataCollection, BizProductionTaskOutput, + BizStorageSlotOccupancy, ) from app.models.research_donation import ( # noqa: F401 BizResearchDonation, @@ -112,4 +113,5 @@ __all__ = [ "BizProductionTaskStepOutput", "BizProductionTaskStepDataCollection", "BizProductionTaskOutput", + "BizStorageSlotOccupancy", ] diff --git a/backend/app/models/models.py b/backend/app/models/models.py index 28793a046..21bc91e62 100644 --- a/backend/app/models/models.py +++ b/backend/app/models/models.py @@ -1342,6 +1342,35 @@ class BizStorageFacilitySlot(Base): update_by = Column(String(64), nullable=True, comment="更新人id") update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间") del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记") + occupied_count = Column(Integer, nullable=True, default=0, comment="当前占用数量") + last_item_type = Column(String(32), nullable=True, comment="最近存储物品类型") + last_stored_at = Column(DateTime, nullable=True, comment="最近入库时间") + + +class BizStorageSlotOccupancy(Base): + """库位占用记录 biz_storage_slot_occupancy""" + + __tablename__ = "biz_storage_slot_occupancy" + + id = Column(String(64), primary_key=True, comment="主键ID") + slot_id = Column(String(64), nullable=False, comment="储物格ID") + item_type = Column(String(32), nullable=False, comment="物品类型: cell_product/other") + item_id = Column(String(64), nullable=False, comment="物品ID") + item_code = Column(String(64), nullable=True, comment="物品编码(冗余)") + item_name = Column(String(200), nullable=True, comment="物品名称(冗余)") + item_source = Column(String(32), nullable=True, comment="来源: production/manual/transfer") + stored_at = Column(DateTime, nullable=True, comment="入库时间") + removed_at = Column(DateTime, nullable=True, comment="出库时间") + occupancy_status = Column(String(16), nullable=False, default="stored", comment="stored=在库/removed=已出库") + tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号") + order_num = Column(Integer, nullable=True, comment="排序号") + remark = Column(String(500), nullable=True, comment="备注") + create_by = Column(String(64), nullable=True, comment="创建人id") + create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID") + create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间") + update_by = Column(String(64), nullable=True, comment="更新人id") + update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间") + del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记") class BizExhibitionAppointment(Base): @@ -2187,6 +2216,7 @@ class BizProductionTask(Base): id = Column(String(64), primary_key=True, comment="主键ID") task_no = Column(String(32), nullable=False, comment="任务号") work_order_id = Column(String(64), nullable=False, comment="工单ID") + task_type = Column(String(20), nullable=False, default="cell_storage", comment="任务类型 cell_storage入库生产单 outbound出库生产单") task_name = Column(String(200), nullable=True, comment="任务名称") description = Column(String(500), nullable=True, comment="描述") route_id = Column(String(64), nullable=True, comment="工艺路线ID") diff --git a/backend/app/schemas/production_task.py b/backend/app/schemas/production_task.py index 33418b079..c94a48f6e 100644 --- a/backend/app/schemas/production_task.py +++ b/backend/app/schemas/production_task.py @@ -5,6 +5,7 @@ from datetime import datetime class ProductionTaskCreate(BaseModel): work_order_id: str + task_type: Optional[str] = 'cell_storage' task_name: Optional[str] = None route_id: Optional[str] = None description: Optional[str] = None @@ -27,7 +28,8 @@ class ProductionTaskUpdate(BaseModel): class ProductionTaskStatusUpdate(BaseModel): - task_status: str + model_config = ConfigDict(populate_by_name=True) + task_status: str = Field(..., alias="taskStatus") class TaskStepAdd(BaseModel): @@ -79,17 +81,20 @@ class TaskStepDataCollectionItem(BaseModel): class TaskInputItem(BaseModel): - input_type: str - input_id: Optional[str] = None - input_code: Optional[str] = None - input_name: Optional[str] = None + model_config = ConfigDict(populate_by_name=True) + input_type: str = Field(..., alias="inputType") + input_id: Optional[str] = Field(None, alias="inputId") + input_code: Optional[str] = Field(None, alias="inputCode") + input_name: Optional[str] = Field(None, alias="inputName") + remark: Optional[str] = None class TaskOutputItem(BaseModel): - cell_product_id: Optional[str] = None - storage_slot_id: Optional[str] = None - output_name: Optional[str] = None - output_barcode: Optional[str] = None + model_config = ConfigDict(populate_by_name=True) + cell_product_id: Optional[str] = Field(None, alias="cellProductId") + storage_slot_id: Optional[str] = Field(None, alias="storageSlotId") + output_name: Optional[str] = Field(None, alias="outputName") + output_barcode: Optional[str] = Field(None, alias="outputBarcode") quantity: Optional[float] = None unit: Optional[str] = None remark: Optional[str] = None diff --git a/backend/app/schemas/storage_occupancy.py b/backend/app/schemas/storage_occupancy.py new file mode 100644 index 000000000..c62d9324f --- /dev/null +++ b/backend/app/schemas/storage_occupancy.py @@ -0,0 +1,41 @@ +"""库位占用记录 schemas""" +from datetime import datetime +from typing import Optional + +from pydantic import BaseModel, ConfigDict, Field + + +class OccupancyCreateBody(BaseModel): + """手动入库请求""" + model_config = ConfigDict(populate_by_name=True) + + slot_id: str = Field(..., alias="slotId") + item_type: str = Field("other", alias="itemType") + item_code: str = Field(..., alias="itemCode") + item_name: str = Field(..., alias="itemName") + item_source: str = Field("manual", alias="itemSource") + remark: Optional[str] = None + + +class OccupancyListQuery(BaseModel): + """占用记录查询""" + model_config = ConfigDict(populate_by_name=True) + + slot_id: str = Field(..., alias="slotId") + occupancy_status: Optional[str] = Field("stored", alias="occupancyStatus") + item_type: Optional[str] = Field(None, alias="itemType") + page: int = 1 + page_size: int = Field(20, alias="pageSize") + + +class OccupancyHistoryQuery(BaseModel): + """出入库历史查询""" + model_config = ConfigDict(populate_by_name=True) + + slot_id: Optional[str] = Field(None, alias="slotId") + facility_node_id: Optional[str] = Field(None, alias="facilityNodeId") + item_type: Optional[str] = Field(None, alias="itemType") + start_date: Optional[str] = Field(None, alias="startDate") + end_date: Optional[str] = Field(None, alias="endDate") + page: int = 1 + page_size: int = Field(20, alias="pageSize") diff --git a/backend/graphify-out/.graphify_analysis.json b/backend/graphify-out/.graphify_analysis.json index 9b492e6f6..650c98ab4 100644 --- a/backend/graphify-out/.graphify_analysis.json +++ b/backend/graphify-out/.graphify_analysis.json @@ -1,6 +1,435 @@ { "communities": { "0": [ + "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_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_list_collection_regions", + "api_basic_info_protocolnobatchgeneratebody", + "api_basic_info_protocolnobatchissuebody", + "api_basic_info_protocolnobatchrevokebody", + "api_basic_info_protocolnocreatebody", + "api_basic_info_protocolnoupdatebody", + "api_basic_info_py", + "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", + "api_material_batchstockoutitem", + "api_material_materialbody", + "api_material_materialupdatebody", + "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_qc_batchstockinbody", + "api_qc_batchstockinitem", + "api_qc_batchstockoutbody", + "api_qc_batchstockoutitem", + "api_qc_itemparambody", + "api_qc_labtestitembody", + "api_qc_labtestitemupdatebody", + "api_qc_qcmaterialbody", + "api_qc_qcmaterialupdatebody", + "api_qc_stockinbody", + "api_qc_stockoutbody", + "api_qc_taskattachmentsbody", + "api_qc_taskcompletewithresultbody", + "api_qc_taskresultbody", + "api_qc_thirdpartycompanybody", + "api_qc_thirdpartycompanyupdatebody", + "api_qc_thirdpartyitembody", + "api_qc_thirdpartyitemupdatebody", + "api_qc_workorderconfigurebody", + "api_research_donation_auditsubmitbody", + "api_research_donation_batchdeletebody", + "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", + "api_sample_reception_receptionchecksubmit", + "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_256", + "crud_collection_protocol_no_rationale_34", + "crud_collection_region_hospital_names_by_region_ids", + "crud_collection_region_list_collection_regions", + "crud_collection_region_region_to_dict", + "crud_sample_code_batch_generate_sample_codes", + "crud_sample_code_rationale_240", + "crud_user_rationale_1", + "crud_user_rationale_134", + "crud_user_rationale_181", + "crud_user_usercrudcompat", + "models_models_bizattachment", + "models_models_bizcollectionprotocolno", + "models_models_bizcustomer", + "models_models_bizsamplecode", + "models_models_sysdept", + "models_models_sysrole", + "models_models_sysuser", + "models_models_sysuserrole", + "schemas_attachment_attachmentuploadresponse", + "schemas_attachment_py", + "schemas_auth_changepasswordrequest", + "schemas_auth_config", + "schemas_auth_loginrequest", + "schemas_auth_loginresponse", + "schemas_auth_py", + "schemas_auth_rationale_1", + "schemas_auth_resetpasswordrequest", + "schemas_auth_usercreate", + "schemas_auth_userresponse", + "schemas_category_categorybase", + "schemas_category_categorycreate", + "schemas_category_categorylistresponse", + "schemas_category_categoryresponse", + "schemas_category_categorytreenode", + "schemas_category_categoryupdate", + "schemas_category_config", + "schemas_category_parameter_categoryparameterbase", + "schemas_category_parameter_categoryparameterbatchupdate", + "schemas_category_parameter_categoryparametercreate", + "schemas_category_parameter_categoryparameteritem", + "schemas_category_parameter_categoryparameterlistresponse", + "schemas_category_parameter_categoryparameterresponse", + "schemas_category_parameter_categoryparameterupdate", + "schemas_category_parameter_categoryparameterwithdetailresponse", + "schemas_category_parameter_config", + "schemas_category_parameter_py", + "schemas_category_parameter_rationale_1", + "schemas_category_parameter_rationale_19", + "schemas_category_py", + "schemas_common_deleteinput", + "schemas_common_idinput", + "schemas_common_paginationparams", + "schemas_common_paginationresult", + "schemas_common_py", + "schemas_common_statusinput", + "schemas_delivery_config", + "schemas_delivery_deliveryassignbatchrequest", + "schemas_delivery_deliveryassignrequest", + "schemas_delivery_deliveryattachmentresponse", + "schemas_delivery_deliverycancelrequest", + "schemas_delivery_deliverydeliveritem", + "schemas_delivery_deliverydeliverrequest", + "schemas_delivery_deliverypickuprequest", + "schemas_delivery_deliveryreassignrequest", + "schemas_delivery_deliverystatisticsresponse", + "schemas_delivery_deliverystatusresponse", + "schemas_delivery_deliverytaskassignrequest", + "schemas_delivery_deliverytaskcancelrequest", + "schemas_delivery_deliverytaskcreaterequest", + "schemas_delivery_deliverytaskdeliverrequest", + "schemas_delivery_deliverytaskdetailresponse", + "schemas_delivery_deliverytaskitemresponse", + "schemas_delivery_deliverytasklistresponse", + "schemas_delivery_deliverytaskpickuprequest", + "schemas_delivery_deliverytaskresponse", + "schemas_delivery_deliverytaskstatistics", + "schemas_delivery_deliverytaskstatusupdaterequest", + "schemas_delivery_deliverywarningitem", + "schemas_delivery_deliverywarninglistresponse", + "schemas_delivery_py", + "schemas_delivery_rationale_1", + "schemas_delivery_supplierconfirmpickuprequest", + "schemas_delivery_supplierconfirmpreparedrequest", + "schemas_delivery_suppliertasklistresponse", + "schemas_delivery_suppliertaskresponse", + "schemas_inquiry_config", + "schemas_inquiry_inquirybase", + "schemas_inquiry_inquirycreate", + "schemas_inquiry_inquirydetailresponse", + "schemas_inquiry_inquiryitembase", + "schemas_inquiry_inquiryitemcreate", + "schemas_inquiry_inquiryitemresponse", + "schemas_inquiry_inquirylistresponse", + "schemas_inquiry_inquiryresponse", + "schemas_inquiry_inquirystatusresponse", + "schemas_inquiry_inquiryupdate", + "schemas_inquiry_py", + "schemas_inquiry_rationale_1", + "schemas_leave_config", + "schemas_leave_leavecreate", + "schemas_leave_leaveresponse", + "schemas_leave_leaveupdate", + "schemas_leave_py", + "schemas_leave_rationale_1", + "schemas_menu_menuitem", + "schemas_menu_menulistresponse", + "schemas_menu_menumeta", + "schemas_menu_py", + "schemas_order_assigndelivererrequest", + "schemas_order_assigndelivererresponse", + "schemas_order_config", + "schemas_order_deliveryprogressresponse", + "schemas_order_deliverywarningresponse", + "schemas_order_deliverywarningstatistics", + "schemas_order_orderadjustitem", + "schemas_order_orderadjustrequest", + "schemas_order_orderadjustresponse", + "schemas_order_orderadjustresult", + "schemas_order_ordercancelrequest", + "schemas_order_orderconfirmpartialrequest", + "schemas_order_orderconfirmpartialresponse", + "schemas_order_ordercreate", + "schemas_order_orderdetailresponse", + "schemas_order_orderdirectcancelrequest", + "schemas_order_orderforcecompleterequest", + "schemas_order_orderforcecompleteresponse", + "schemas_order_orderitembase", + "schemas_order_orderitemcreate", + "schemas_order_orderitemresponse", + "schemas_order_orderlistresponse", + "schemas_order_orderlockrequest", + "schemas_order_orderlockresponse", + "schemas_order_orderpartialdeliveredrequest", + "schemas_order_orderpartialdeliveredresponse", + "schemas_order_orderpreviewrequest", + "schemas_order_orderpreviewresponse", + "schemas_order_orderresponse", + "schemas_order_orderreviewcancelrequest", + "schemas_order_orderstatuslogresponse", + "schemas_order_orderstatusresponse", + "schemas_order_orderunlockrequest", + "schemas_order_orderunlockresponse", + "schemas_order_py", + "schemas_order_rationale_1", + "schemas_order_reassigndeliveryrequest", + "schemas_order_reassigndeliveryresponse", + "schemas_price_list_config", + "schemas_price_list_pricelistbase", + "schemas_price_list_pricelistcreate", + "schemas_price_list_pricelistdetailresponse", + "schemas_price_list_pricelistgeneraterequest", + "schemas_price_list_pricelistinvalidaterequest", + "schemas_price_list_pricelistitembase", + "schemas_price_list_pricelistitemcreate", + "schemas_price_list_pricelistitemresponse", + "schemas_price_list_pricelistitemupdate", + "schemas_price_list_pricelistlistresponse", + "schemas_price_list_pricelistpublishrequest", + "schemas_price_list_pricelistresponse", + "schemas_price_list_priceliststatusresponse", + "schemas_price_list_pricelistupdate", + "schemas_price_list_productpricehistoryitem", + "schemas_price_list_productpricehistoryresponse", + "schemas_price_list_productpriceresponse", + "schemas_price_list_py", + "schemas_price_list_rationale_1", + "schemas_process_route_stepconsumableitem", + "schemas_process_route_stepdatacollectionitem", + "schemas_process_route_stepoutputitem", + "schemas_process_route_stepreagentitem", + "schemas_product_banner_productbannerbase", + "schemas_product_banner_productbannercreate", + "schemas_product_banner_productbannercreatebatch", + "schemas_product_banner_productbannerlistresponse", + "schemas_product_banner_productbannerresponse", + "schemas_product_banner_productbannersortitem", + "schemas_product_banner_productbannersortupdate", + "schemas_product_banner_productbannerupdate", + "schemas_product_banner_py", + "schemas_product_banner_rationale_1", + "schemas_product_detail_media_productdetailmediabase", + "schemas_product_detail_media_productdetailmediacreate", + "schemas_product_detail_media_productdetailmediacreatebatch", + "schemas_product_detail_media_productdetailmedialistresponse", + "schemas_product_detail_media_productdetailmediaresponse", + "schemas_product_detail_media_productdetailmediasortitem", + "schemas_product_detail_media_productdetailmediasortupdate", + "schemas_product_detail_media_productdetailmediaupdate", + "schemas_product_detail_media_py", + "schemas_product_detail_media_rationale_1", + "schemas_product_parameter_config", + "schemas_product_parameter_productparameterbase", + "schemas_product_parameter_productparametercreate", + "schemas_product_parameter_productparameterlistresponse", + "schemas_product_parameter_productparameterresponse", + "schemas_product_parameter_productparametersimpleresponse", + "schemas_product_parameter_productparameterupdate", + "schemas_product_parameter_py", + "schemas_product_parameter_rationale_1", + "schemas_product_parameter_value_config", + "schemas_product_parameter_value_productparametervaluebase", + "schemas_product_parameter_value_productparametervaluebatchsave", + "schemas_product_parameter_value_productparametervaluecreate", + "schemas_product_parameter_value_productparametervaluelistresponse", + "schemas_product_parameter_value_productparametervalueresponse", + "schemas_product_parameter_value_productparametervalueupdate", + "schemas_product_parameter_value_productparametervaluewithparameterresponse", + "schemas_product_parameter_value_py", + "schemas_product_parameter_value_rationale_1", + "schemas_product_review_config", + "schemas_product_review_media_config", + "schemas_product_review_media_productreviewmediabase", + "schemas_product_review_media_productreviewmediacreate", + "schemas_product_review_media_productreviewmediacreatebatch", + "schemas_product_review_media_productreviewmedialistresponse", + "schemas_product_review_media_productreviewmediaresponse", + "schemas_product_review_media_productreviewmediaupdate", + "schemas_product_review_media_py", + "schemas_product_review_media_rationale_1", + "schemas_product_review_minireviewlistrequest", + "schemas_product_review_productreviewadminlistrequest", + "schemas_product_review_productreviewbase", + "schemas_product_review_productreviewcreate", + "schemas_product_review_productreviewdetailresponse", + "schemas_product_review_productreviewlistresponse", + "schemas_product_review_productreviewrejectrequest", + "schemas_product_review_productreviewreplyrequest", + "schemas_product_review_productreviewresponse", + "schemas_product_review_productreviewstatisticsresponse", + "schemas_product_review_productreviewtoprequest", + "schemas_product_review_productreviewupdate", + "schemas_product_review_py", + "schemas_product_review_rationale_1", + "schemas_production_task_productiontasklistquery", + "schemas_production_work_order_productionworkorderbase", + "schemas_quotation_config", + "schemas_quotation_py", + "schemas_quotation_quotationbase", + "schemas_quotation_quotationcreate", + "schemas_quotation_quotationdetailresponse", + "schemas_quotation_quotationitembase", + "schemas_quotation_quotationitemcreate", + "schemas_quotation_quotationitemresponse", + "schemas_quotation_quotationitemupdate", + "schemas_quotation_quotationlistresponse", + "schemas_quotation_quotationresponse", + "schemas_quotation_quotationstatusresponse", + "schemas_quotation_quotationupdate", + "schemas_quotation_quotationwithitemsresponse", + "schemas_quotation_quotationwithsupplierresponse", + "schemas_quotation_rationale_1", + "schemas_region_py", + "schemas_region_regionbase", + "schemas_region_regioncreate", + "schemas_region_regionlistresponse", + "schemas_region_regionresponse", + "schemas_region_regionupdate", + "schemas_unit_config", + "schemas_unit_py", + "schemas_unit_unitbase", + "schemas_unit_unitcreate", + "schemas_unit_unitlistresponse", + "schemas_unit_unitresponse", + "schemas_unit_unitupdate", + "schemas_user_changepasswordrequest", + "schemas_user_config", + "schemas_user_loginrequest", + "schemas_user_loginresponse", + "schemas_user_py", + "schemas_user_resetpasswordrequest", + "schemas_user_userbase", + "schemas_user_usercreate", + "schemas_user_userlistresponse", + "schemas_user_userresponse", + "schemas_user_userupdate", + "schemas_workflow_approverequest", + "schemas_workflow_config", + "schemas_workflow_instanceresponse", + "schemas_workflow_nodedata", + "schemas_workflow_processdefcreate", + "schemas_workflow_processdefresponse", + "schemas_workflow_processdefupdate", + "schemas_workflow_publishversionrequest", + "schemas_workflow_py", + "schemas_workflow_rationale_1", + "schemas_workflow_startinstancerequest", + "schemas_workflow_taskresponse", + "schemas_workflow_transitiondata", + "schemas_workflow_versionresponse", + "services_web_auth_roles_rationale_1", + "services_web_auth_roles_rationale_14", + "services_web_auth_roles_rationale_26", + "services_web_auth_roles_rationale_54" + ], + "1": [ "api_admin_attachment_download_url", "api_admin_create_dept", "api_admin_create_dict_data", @@ -132,13 +561,10 @@ "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", @@ -377,13 +803,13 @@ "core_utils_parse_datetime", "crud_base_crudbase_get", "crud_cell_product_product_to_response", - "crud_exhibition_appointment_format_visit_date", - "crud_exhibition_appointment_rationale_16", + "crud_collection_protocol_no_enrich_issued_user_names", "crud_exhibition_appointment_row_to_dict", "crud_exhibition_appointment_total_pages", "crud_leave_update_leave_status", "crud_pilot_service_row_to_dict_channel_agreement", "crud_process_route_update_step", + "crud_production_task_list_production_tasks", "crud_production_task_task_to_dict", "crud_production_task_update_task_step", "crud_qc_material_batch_stock_in", @@ -400,419 +826,18 @@ "schemas_order_adjust_py", "str" ], - "1": [ - "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_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_material_batchstockinbody", - "api_material_batchstockinitem", - "api_material_batchstockoutbody", - "api_material_batchstockoutitem", - "api_material_materialbody", - "api_material_materialupdatebody", - "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_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_public_rationale_216", - "api_qc_batchstockinbody", - "api_qc_batchstockinitem", - "api_qc_batchstockoutbody", - "api_qc_batchstockoutitem", - "api_qc_itemparambody", - "api_qc_labtestitembody", - "api_qc_labtestitemupdatebody", - "api_qc_qcmaterialbody", - "api_qc_qcmaterialupdatebody", - "api_qc_stockinbody", - "api_qc_stockoutbody", - "api_qc_taskattachmentsbody", - "api_qc_taskcompletewithresultbody", - "api_qc_taskresultbody", - "api_qc_thirdpartycompanybody", - "api_qc_thirdpartycompanyupdatebody", - "api_qc_thirdpartyitembody", - "api_qc_thirdpartyitemupdatebody", - "api_qc_workorderconfigurebody", - "api_research_donation_auditsubmitbody", - "api_research_donation_batchdeletebody", - "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", - "api_sample_reception_receptionchecksubmit", - "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_user_rationale_1", - "crud_user_rationale_134", - "crud_user_rationale_181", - "crud_user_usercrudcompat", - "models_models_bizattachment", - "models_models_sysdept", - "models_models_sysrole", - "models_models_sysuser", - "schemas_attachment_attachmentuploadresponse", - "schemas_attachment_py", - "schemas_auth_changepasswordrequest", - "schemas_auth_config", - "schemas_auth_loginrequest", - "schemas_auth_loginresponse", - "schemas_auth_py", - "schemas_auth_rationale_1", - "schemas_auth_resetpasswordrequest", - "schemas_auth_usercreate", - "schemas_auth_userresponse", - "schemas_category_categorybase", - "schemas_category_categorycreate", - "schemas_category_categorylistresponse", - "schemas_category_categoryresponse", - "schemas_category_categorytreenode", - "schemas_category_categoryupdate", - "schemas_category_config", - "schemas_category_parameter_categoryparameterbase", - "schemas_category_parameter_categoryparameterbatchupdate", - "schemas_category_parameter_categoryparametercreate", - "schemas_category_parameter_categoryparameteritem", - "schemas_category_parameter_categoryparameterlistresponse", - "schemas_category_parameter_categoryparameterresponse", - "schemas_category_parameter_categoryparameterupdate", - "schemas_category_parameter_categoryparameterwithdetailresponse", - "schemas_category_parameter_config", - "schemas_category_parameter_py", - "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", - "schemas_common_paginationresult", - "schemas_common_py", - "schemas_common_statusinput", - "schemas_delivery_config", - "schemas_delivery_deliveryassignbatchrequest", - "schemas_delivery_deliveryassignrequest", - "schemas_delivery_deliveryattachmentresponse", - "schemas_delivery_deliverycancelrequest", - "schemas_delivery_deliverydeliveritem", - "schemas_delivery_deliverydeliverrequest", - "schemas_delivery_deliverypickuprequest", - "schemas_delivery_deliveryreassignrequest", - "schemas_delivery_deliverystatisticsresponse", - "schemas_delivery_deliverystatusresponse", - "schemas_delivery_deliverytaskassignrequest", - "schemas_delivery_deliverytaskcancelrequest", - "schemas_delivery_deliverytaskcreaterequest", - "schemas_delivery_deliverytaskdeliverrequest", - "schemas_delivery_deliverytaskdetailresponse", - "schemas_delivery_deliverytaskitemresponse", - "schemas_delivery_deliverytasklistresponse", - "schemas_delivery_deliverytaskpickuprequest", - "schemas_delivery_deliverytaskresponse", - "schemas_delivery_deliverytaskstatistics", - "schemas_delivery_deliverytaskstatusupdaterequest", - "schemas_delivery_deliverywarningitem", - "schemas_delivery_deliverywarninglistresponse", - "schemas_delivery_py", - "schemas_delivery_rationale_1", - "schemas_delivery_supplierconfirmpickuprequest", - "schemas_delivery_supplierconfirmpreparedrequest", - "schemas_delivery_suppliertasklistresponse", - "schemas_delivery_suppliertaskresponse", - "schemas_leave_config", - "schemas_leave_leavecreate", - "schemas_leave_leaveresponse", - "schemas_leave_leaveupdate", - "schemas_leave_py", - "schemas_leave_rationale_1", - "schemas_menu_menuitem", - "schemas_menu_menulistresponse", - "schemas_menu_menumeta", - "schemas_menu_py", - "schemas_order_assigndelivererrequest", - "schemas_order_assigndelivererresponse", - "schemas_order_config", - "schemas_order_deliveryprogressresponse", - "schemas_order_deliverywarningresponse", - "schemas_order_deliverywarningstatistics", - "schemas_order_orderadjustitem", - "schemas_order_orderadjustrequest", - "schemas_order_orderadjustresponse", - "schemas_order_orderadjustresult", - "schemas_order_ordercancelrequest", - "schemas_order_orderconfirmpartialrequest", - "schemas_order_orderconfirmpartialresponse", - "schemas_order_ordercreate", - "schemas_order_orderdetailresponse", - "schemas_order_orderdirectcancelrequest", - "schemas_order_orderforcecompleterequest", - "schemas_order_orderforcecompleteresponse", - "schemas_order_orderitembase", - "schemas_order_orderitemcreate", - "schemas_order_orderitemresponse", - "schemas_order_orderlistresponse", - "schemas_order_orderlockrequest", - "schemas_order_orderlockresponse", - "schemas_order_orderpartialdeliveredrequest", - "schemas_order_orderpartialdeliveredresponse", - "schemas_order_orderpreviewrequest", - "schemas_order_orderpreviewresponse", - "schemas_order_orderresponse", - "schemas_order_orderreviewcancelrequest", - "schemas_order_orderstatuslogresponse", - "schemas_order_orderstatusresponse", - "schemas_order_orderunlockrequest", - "schemas_order_orderunlockresponse", - "schemas_order_py", - "schemas_order_rationale_1", - "schemas_order_reassigndeliveryrequest", - "schemas_order_reassigndeliveryresponse", - "schemas_price_list_config", - "schemas_price_list_pricelistbase", - "schemas_price_list_pricelistcreate", - "schemas_price_list_pricelistdetailresponse", - "schemas_price_list_pricelistgeneraterequest", - "schemas_price_list_pricelistinvalidaterequest", - "schemas_price_list_pricelistitembase", - "schemas_price_list_pricelistitemcreate", - "schemas_price_list_pricelistitemresponse", - "schemas_price_list_pricelistitemupdate", - "schemas_price_list_pricelistlistresponse", - "schemas_price_list_pricelistpublishrequest", - "schemas_price_list_pricelistresponse", - "schemas_price_list_priceliststatusresponse", - "schemas_price_list_pricelistupdate", - "schemas_price_list_productpricehistoryitem", - "schemas_price_list_productpricehistoryresponse", - "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", - "schemas_product_banner_productbannerlistresponse", - "schemas_product_banner_productbannerresponse", - "schemas_product_banner_productbannersortitem", - "schemas_product_banner_productbannersortupdate", - "schemas_product_banner_productbannerupdate", - "schemas_product_banner_py", - "schemas_product_banner_rationale_1", - "schemas_product_detail_media_productdetailmediabase", - "schemas_product_detail_media_productdetailmediacreate", - "schemas_product_detail_media_productdetailmediacreatebatch", - "schemas_product_detail_media_productdetailmedialistresponse", - "schemas_product_detail_media_productdetailmediaresponse", - "schemas_product_detail_media_productdetailmediasortitem", - "schemas_product_detail_media_productdetailmediasortupdate", - "schemas_product_detail_media_productdetailmediaupdate", - "schemas_product_detail_media_py", - "schemas_product_detail_media_rationale_1", - "schemas_product_parameter_config", - "schemas_product_parameter_productparameterbase", - "schemas_product_parameter_productparametercreate", - "schemas_product_parameter_productparameterlistresponse", - "schemas_product_parameter_productparameterresponse", - "schemas_product_parameter_productparametersimpleresponse", - "schemas_product_parameter_productparameterupdate", - "schemas_product_parameter_py", - "schemas_product_parameter_rationale_1", - "schemas_product_parameter_value_config", - "schemas_product_parameter_value_productparametervaluebase", - "schemas_product_parameter_value_productparametervaluebatchsave", - "schemas_product_parameter_value_productparametervaluecreate", - "schemas_product_parameter_value_productparametervaluelistresponse", - "schemas_product_parameter_value_productparametervalueresponse", - "schemas_product_parameter_value_productparametervalueupdate", - "schemas_product_parameter_value_productparametervaluewithparameterresponse", - "schemas_product_parameter_value_py", - "schemas_product_parameter_value_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_taskstepreorderbody", - "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_region_py", - "schemas_region_regionbase", - "schemas_region_regioncreate", - "schemas_region_regionlistresponse", - "schemas_region_regionresponse", - "schemas_region_regionupdate", - "schemas_unit_config", - "schemas_unit_py", - "schemas_unit_unitbase", - "schemas_unit_unitcreate", - "schemas_unit_unitlistresponse", - "schemas_unit_unitresponse", - "schemas_unit_unitupdate", - "schemas_user_changepasswordrequest", - "schemas_user_config", - "schemas_user_loginrequest", - "schemas_user_loginresponse", - "schemas_user_py", - "schemas_user_resetpasswordrequest", - "schemas_user_userbase", - "schemas_user_usercreate", - "schemas_user_userlistresponse", - "schemas_user_userresponse", - "schemas_user_userupdate", - "schemas_workflow_approverequest", - "schemas_workflow_config", - "schemas_workflow_instanceresponse", - "schemas_workflow_nodedata", - "schemas_workflow_processdefcreate", - "schemas_workflow_processdefresponse", - "schemas_workflow_processdefupdate", - "schemas_workflow_publishversionrequest", - "schemas_workflow_py", - "schemas_workflow_rationale_1", - "schemas_workflow_startinstancerequest", - "schemas_workflow_taskresponse", - "schemas_workflow_transitiondata", - "schemas_workflow_versionresponse" - ], "2": [ - "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", + "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_workflow_processdefcreatebody", "api_workflow_processdefupdatebody", "api_workflow_publishversionbody", @@ -821,15 +846,22 @@ "api_workflow_taskactionbody", "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_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_consumable_pack_rationale_1", "crud_dict_type_rationale_1", - "crud_material_batch_stock_in", - "crud_material_batch_stock_out", "crud_material_rationale_328", "crud_material_rationale_475", "crud_pilot_service_rationale_1", @@ -840,23 +872,42 @@ "crud_process_route_rationale_455", "crud_production_task_copy_task_step", "crud_production_task_rationale_1", - "crud_production_task_rationale_722", - "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_production_task_rationale_828", + "crud_production_work_order_rationale_104", + "crud_production_work_order_rationale_132", + "crud_production_work_order_rationale_145", + "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_qc_task_rationale_421", "crud_qc_task_result_rationale_43", "crud_qc_task_result_rationale_96", - "crud_role_rationale_1", + "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_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_sample_reception_check_result_rationale_108", "crud_sample_reception_check_result_rationale_133", "crud_sample_reception_check_result_rationale_171", - "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_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_workflow_rationale_1", "models_material_bizmaterial", "models_material_bizmaterialstocklog", @@ -867,6 +918,7 @@ "models_models_bizcellproductprojectsystemitem", "models_models_bizcellproductspec", "models_models_bizcellproducttype", + "models_models_bizcellsampletype", "models_models_bizchannel", "models_models_bizchannelagreement", "models_models_bizchannelagreementproductprice", @@ -877,12 +929,13 @@ "models_models_bizcheckupinstitutionpackage", "models_models_bizcheckupinstitutionpackageitem", "models_models_bizcheckupinstitutionproject", - "models_models_bizcleanroom", - "models_models_bizcleanroomaccesslog", + "models_models_bizcollectionhospital", + "models_models_bizcollectionprotocol", + "models_models_bizcollectionregion", "models_models_bizconsumable", "models_models_bizconsumablepack", "models_models_bizconsumablepackitem", - "models_models_bizexhibitionappointment", + "models_models_bizexpresscompany", "models_models_bizitemunit", "models_models_bizleaverequest", "models_models_bizoutputtype", @@ -907,18 +960,27 @@ "models_models_bizproductiontaskstepoutput", "models_models_bizproductiontaskstepreagent", "models_models_bizproductionworkorder", + "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_bizqclabtestitem", "models_models_bizqctask", "models_models_bizqcthirdpartycompany", "models_models_bizqcthirdpartyitem", + "models_models_bizqcworkorder", "models_models_bizqcworkorderlabitem", "models_models_bizqcworkorderthirditem", "models_models_bizreagent", + "models_models_bizsamplereception", "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", @@ -1013,7 +1075,6 @@ "models_models_syssite", "models_models_systenant", "models_models_sysuserpost", - "models_models_sysuserrole", "models_models_userrole", "models_models_wfnode", "models_models_wfprocessdef", @@ -1027,14 +1088,27 @@ "models_qc_param_bizqcitemparam", "models_qc_param_bizqctaskresult", "models_qc_param_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", + "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_workflow_engine_rationale_1" ], "3": [ "core_utils_generate_uuid", + "crud_material_batch_stock_in", + "crud_material_batch_stock_out", "crud_material_code_exists", "crud_material_create_material", "crud_material_dec", @@ -1144,21 +1218,6 @@ "crud_pilot_service_update_project_system_item", "crud_pilot_service_validate_package_items_for_save", "crud_pilot_service_void_channel_agreement", - "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", @@ -1187,12 +1246,6 @@ "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", @@ -1204,7 +1257,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_reorder_task_steps", "crud_production_task_replace_step_consumables", @@ -1223,25 +1275,7 @@ "crud_production_task_task_output_to_dict", "crud_production_task_total_pages", "crud_production_task_update_production_task", - "crud_production_task_update_task_status", - "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_production_task_update_task_status" ], "4": [ "api_collection_protocol_create_collection_protocol", @@ -1266,6 +1300,7 @@ "api_collection_protocol_update_fullmoon_todo_insurance", "api_ethnic_list_ethnics_for_select", "api_ethnic_py", + "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", @@ -1383,16 +1418,15 @@ "crud_material_stock_log_py", "crud_material_stock_log_row_to_dict", "crud_material_stock_log_user_nick_name_map", - "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_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_research_donation_list_audits", "crud_workflow_list_completed_tasks", "crud_workflow_list_my_instances", @@ -1400,149 +1434,6 @@ "crud_workflow_task_row_to_dict" ], "5": [ - "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_list_collection_regions", - "api_basic_info_protocolnobatchgeneratebody", - "api_basic_info_protocolnobatchissuebody", - "api_basic_info_protocolnobatchrevokebody", - "api_basic_info_protocolnocreatebody", - "api_basic_info_protocolnoupdatebody", - "api_basic_info_py", - "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", - "crud_collection_protocol_create_collection_protocol", - "crud_collection_protocol_no_batch_generate_protocol_nos", - "crud_collection_protocol_no_rationale_256", - "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_create_collection_region", - "crud_collection_region_create_hospital", - "crud_collection_region_get_collection_region", - "crud_collection_region_get_hospital", - "crud_collection_region_hospital_names_by_region_ids", - "crud_collection_region_hospital_to_dict", - "crud_collection_region_list_collection_regions", - "crud_collection_region_list_hospitals", - "crud_collection_region_py", - "crud_collection_region_rationale_29", - "crud_collection_region_region_to_dict", - "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", - "crud_production_work_order_rationale_104", - "crud_production_work_order_rationale_132", - "crud_production_work_order_rationale_145", - "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_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_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_bizcollectionprotocolno", - "models_models_bizcollectionregion", - "models_models_bizcustomer", - "models_models_bizexpresscompany", - "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_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" - ], - "6": [ "crud_base_crudbase_update", "crud_collection_protocol_format_attachment_file_size", "crud_collection_protocol_get_protocol_nos_used_in_protocols", @@ -1608,6 +1499,7 @@ "crud_role_get_role_menu_ids", "crud_role_list_roles", "crud_role_py", + "crud_role_rationale_1", "crud_role_role_name_exists", "crud_role_row_to_dict", "crud_role_soft_delete_role", @@ -1660,7 +1552,7 @@ "crud_user_update_user", "crud_user_user_no_exists" ], - "7": [ + "6": [ "api_workflow_get_designer_data", "core_storage_basestorage", "core_storage_basestorage_delete_file", @@ -1765,6 +1657,103 @@ "services_workflow_engine_workflowengine_resolve_approvers", "services_workflow_engine_workflowengine_start_process" ], + "7": [ + "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", + "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_rationale_1", + "crud_cell_product_rationale_379", + "crud_cell_product_rationale_390", + "crud_cell_product_rationale_458", + "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", + "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" + ], "8": [ "api_admin_list_roles_for_select", "api_public_avatar_url_field", @@ -1860,6 +1849,113 @@ "tasks_init_shutdown_scheduler" ], "9": [ + "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_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_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_stepconsumableupdatebody", + "schemas_process_route_stepcopybody", + "schemas_process_route_stepdatacollectionupdatebody", + "schemas_process_route_stepoutputupdatebody", + "schemas_process_route_stepreagentupdatebody", + "schemas_process_route_stepreorderbody", + "schemas_process_route_stepupdatebody", + "schemas_production_task_productiontaskcreate", + "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_taskstepreorderbody", + "schemas_production_task_taskstepupdate", + "schemas_production_work_order_productionworkordercomplete", + "schemas_production_work_order_productionworkorderlistquery", + "schemas_production_work_order_py" + ], + "10": [ + "crud_collection_protocol_create_collection_protocol", + "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_upsert_convert_link_for_to_storage", + "crud_research_donation_audit_to_dict", + "crud_research_donation_batch_delete_donations", + "crud_research_donation_collection_to_dict", + "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_fmt_dt", + "crud_research_donation_get_collection", + "crud_research_donation_get_donation_detail", + "crud_research_donation_get_party", + "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_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" + ], + "11": [ "basehttpmiddleware", "core_admin_request_json_parse_admin_request_json", "core_admin_request_json_py", @@ -1904,7 +2000,7 @@ "core_request_payload_resolve_request_payload", "crud_workflow_create_task" ], - "10": [ + "12": [ "api_insurance_company_create_insurance_company", "api_insurance_company_create_insurance_company_invoice", "api_insurance_company_create_insurance_project_price", @@ -1939,41 +2035,7 @@ "models_models_bizinsurancecompanyinvoice", "models_models_bizinsuranceprojectprice" ], - "11": [ - "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_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" - ], - "12": [ + "13": [ "core_wechat_pay_get_wechat_pay_client", "core_wechat_pay_get_wechat_pay_v2", "core_wechat_pay_py", @@ -2006,33 +2068,30 @@ "core_wechat_pay_wechatpayv2client_unified_order", "core_wechat_pay_wechatpayv2client_xml_to_dict" ], - "13": [ - "schemas_product_review_config", - "schemas_product_review_media_config", - "schemas_product_review_media_productreviewmediabase", - "schemas_product_review_media_productreviewmediacreate", - "schemas_product_review_media_productreviewmediacreatebatch", - "schemas_product_review_media_productreviewmedialistresponse", - "schemas_product_review_media_productreviewmediaresponse", - "schemas_product_review_media_productreviewmediaupdate", - "schemas_product_review_media_py", - "schemas_product_review_media_rationale_1", - "schemas_product_review_minireviewlistrequest", - "schemas_product_review_productreviewadminlistrequest", - "schemas_product_review_productreviewbase", - "schemas_product_review_productreviewcreate", - "schemas_product_review_productreviewdetailresponse", - "schemas_product_review_productreviewlistresponse", - "schemas_product_review_productreviewrejectrequest", - "schemas_product_review_productreviewreplyrequest", - "schemas_product_review_productreviewresponse", - "schemas_product_review_productreviewstatisticsresponse", - "schemas_product_review_productreviewtoprequest", - "schemas_product_review_productreviewupdate", - "schemas_product_review_py", - "schemas_product_review_rationale_1" - ], "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" + ], + "15": [ "core_exceptions_businessexception", "core_exceptions_businessexception_init", "core_exceptions_invalidstatustransitionexception", @@ -2055,7 +2114,7 @@ "core_exceptions_validationexception", "core_exceptions_validationexception_init" ], - "15": [ + "16": [ "crud_qc_third_party_company_company_code_exists", "crud_qc_third_party_company_create_company", "crud_qc_third_party_company_get_company", @@ -2077,82 +2136,24 @@ "crud_qc_third_party_item_soft_delete_item", "crud_qc_third_party_item_update_item" ], - "16": [ - "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" - ], "17": [ - "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_enrich_issued_user_names", - "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_rationale_34", - "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" + "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_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_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" ], "18": [ - "schemas_quotation_config", - "schemas_quotation_py", - "schemas_quotation_quotationbase", - "schemas_quotation_quotationcreate", - "schemas_quotation_quotationdetailresponse", - "schemas_quotation_quotationitembase", - "schemas_quotation_quotationitemcreate", - "schemas_quotation_quotationitemresponse", - "schemas_quotation_quotationitemupdate", - "schemas_quotation_quotationlistresponse", - "schemas_quotation_quotationresponse", - "schemas_quotation_quotationstatusresponse", - "schemas_quotation_quotationupdate", - "schemas_quotation_quotationwithitemsresponse", - "schemas_quotation_quotationwithsupplierresponse", - "schemas_quotation_rationale_1" - ], - "19": [ - "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" - ], - "20": [ "crud_qc_material_build_manual_out_remark", "crud_qc_material_code_exists", "crud_qc_material_create_material", @@ -2169,7 +2170,24 @@ "crud_qc_material_total_pages", "crud_qc_material_update_material" ], - "21": [ + "19": [ + "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" + ], + "20": [ "crud_sample_code_batch_issue_sample_codes", "crud_sample_code_batch_revoke_sample_codes", "crud_sample_code_create_sample_code", @@ -2185,7 +2203,7 @@ "crud_sample_code_total_pages", "crud_sample_code_update_sample_code" ], - "22": [ + "21": [ "core_wechat_message_py", "core_wechat_message_rationale_1", "core_wechat_message_rationale_86", @@ -2200,22 +2218,7 @@ "core_wechat_message_wechatmessageservice_init", "core_wechat_message_wechatmessageservice_send_template_message" ], - "23": [ - "schemas_inquiry_config", - "schemas_inquiry_inquirybase", - "schemas_inquiry_inquirycreate", - "schemas_inquiry_inquirydetailresponse", - "schemas_inquiry_inquiryitembase", - "schemas_inquiry_inquiryitemcreate", - "schemas_inquiry_inquiryitemresponse", - "schemas_inquiry_inquirylistresponse", - "schemas_inquiry_inquiryresponse", - "schemas_inquiry_inquirystatusresponse", - "schemas_inquiry_inquiryupdate", - "schemas_inquiry_py", - "schemas_inquiry_rationale_1" - ], - "24": [ + "22": [ "schemas_product_config", "schemas_product_productbase", "schemas_product_productcategorybase", @@ -2230,7 +2233,21 @@ "schemas_product_py", "schemas_product_rationale_1" ], - "25": [ + "23": [ + "crud_collection_region_create_collection_region", + "crud_collection_region_create_hospital", + "crud_collection_region_get_collection_region", + "crud_collection_region_get_hospital", + "crud_collection_region_hospital_to_dict", + "crud_collection_region_list_hospitals", + "crud_collection_region_py", + "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" + ], + "24": [ "crud_consumable_pack_create_consumable_pack", "crud_consumable_pack_get_consumable_pack", "crud_consumable_pack_get_pack_detail", @@ -2244,7 +2261,7 @@ "crud_consumable_pack_total_pages", "crud_consumable_pack_update_consumable_pack" ], - "26": [ + "25": [ "crud_dept_build_tree", "crud_dept_cascade_soft_delete", "crud_dept_collect_with_ancestors", @@ -2258,7 +2275,7 @@ "crud_dept_soft_delete_dept", "crud_dept_update_dept" ], - "27": [ + "26": [ "crud_menu_build_tree", "crud_menu_cascade_soft_delete", "crud_menu_create_menu", @@ -2271,7 +2288,7 @@ "crud_menu_soft_delete_menu", "crud_menu_update_menu" ], - "28": [ + "27": [ "crud_consumable_consumable_code_exists", "crud_consumable_create_consumable", "crud_consumable_get_consumable", @@ -2283,7 +2300,7 @@ "crud_consumable_total_pages", "crud_consumable_update_consumable" ], - "29": [ + "28": [ "crud_sop_document_create_sop_document", "crud_sop_document_get_sop_document", "crud_sop_document_list_sop_documents", @@ -2295,7 +2312,7 @@ "crud_sop_document_total_pages", "crud_sop_document_update_sop_document" ], - "30": [ + "29": [ "crud_express_company_create_express_company", "crud_express_company_express_code_exists", "crud_express_company_get_express_company", @@ -2307,7 +2324,7 @@ "crud_express_company_total_pages", "crud_express_company_update_express_company" ], - "31": [ + "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", @@ -2319,7 +2336,7 @@ "crud_sample_reception_check_item_soft_delete_check_item", "crud_sample_reception_check_item_update_check_item" ], - "32": [ + "31": [ "crud_dict_data_create_dict_data", "crud_dict_data_get_dict_data", "crud_dict_data_list_dict_data", @@ -2331,7 +2348,7 @@ "crud_dict_data_total_pages", "crud_dict_data_update_dict_data" ], - "33": [ + "32": [ "crud_process_category_category_code_exists", "crud_process_category_create_process_category", "crud_process_category_get_process_category", @@ -2343,7 +2360,7 @@ "crud_process_category_total_pages", "crud_process_category_update_process_category" ], - "34": [ + "33": [ "crud_item_unit_create_item_unit", "crud_item_unit_get_item_unit", "crud_item_unit_list_item_units", @@ -2355,7 +2372,7 @@ "crud_item_unit_unit_code_exists", "crud_item_unit_update_item_unit" ], - "35": [ + "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", @@ -2367,7 +2384,7 @@ "crud_cell_sample_type_type_code_exists", "crud_cell_sample_type_update_cell_sample_type" ], - "36": [ + "35": [ "crud_output_type_create_output_type", "crud_output_type_get_output_type", "crud_output_type_list_output_types", @@ -2379,19 +2396,7 @@ "crud_output_type_type_code_exists", "crud_output_type_update_output_type" ], - "37": [ - "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" - ], - "38": [ + "36": [ "crud_post_create_post", "crud_post_get_post", "crud_post_list_posts", @@ -2402,7 +2407,7 @@ "crud_post_total_pages", "crud_post_update_post" ], - "39": [ + "37": [ "crud_dict_type_create_dict_type", "crud_dict_type_dict_type_code_exists", "crud_dict_type_get_dict_type", @@ -2413,7 +2418,7 @@ "crud_dict_type_total_pages", "crud_dict_type_update_dict_type" ], - "40": [ + "38": [ "crud_tenant_create_tenant", "crud_tenant_get_tenant", "crud_tenant_list_tenants", @@ -2424,7 +2429,7 @@ "crud_tenant_total_pages", "crud_tenant_update_tenant" ], - "41": [ + "39": [ "crud_reagent_create_reagent", "crud_reagent_get_reagent", "crud_reagent_list_reagents", @@ -2435,18 +2440,7 @@ "crud_reagent_total_pages", "crud_reagent_update_reagent" ], - "42": [ - "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" - ], - "43": [ + "40": [ "crud_site_create_site", "crud_site_get_site", "crud_site_list_sites", @@ -2457,7 +2451,7 @@ "crud_site_total_pages", "crud_site_update_site" ], - "44": [ + "41": [ "models_base_basemodel", "models_base_basemodel_to_dict", "models_base_get_active", @@ -2467,7 +2461,7 @@ "models_base_softdeletemodel_soft_delete", "models_base_tablename" ], - "45": [ + "42": [ "core_order_status_compat_derive_legacy_status_from_three", "core_order_status_compat_derive_three_status_from_legacy", "core_order_status_compat_py", @@ -2476,118 +2470,118 @@ "core_order_status_compat_threestatus", "core_order_status_compat_to_decimal" ], - "46": [ + "43": [ "basesettings", "core_config_config", "core_config_py", "core_config_settings" ], - "47": [ + "44": [ "core_database_auto_fill_create_dept_id", "core_database_get_db", "core_database_py", "core_database_rationale_31" ], - "48": [ + "45": [ "api_menu_get_menu_list", "api_menu_py", "api_menu_rationale_1" ], - "49": [ + "46": [ "core_context_py", "core_context_rationale_1" ], - "50": [ + "47": [ "api_init_py", "api_init_rationale_1" ], - "51": [ + "48": [ "init_py" ], - "52": [ + "49": [ "core_init_py" ], - "53": [ + "50": [ "core_wechat_message_rationale_143" ], - "54": [ + "51": [ "core_wechat_message_rationale_179" ], - "55": [ + "52": [ "core_wechat_message_rationale_215" ], - "56": [ + "53": [ "core_wechat_message_rationale_251" ], - "57": [ + "54": [ "core_wechat_message_rationale_289" ], - "58": [ + "55": [ "core_wechat_message_rationale_325" ], - "59": [ + "56": [ "models_init_py" ], - "60": [ + "57": [ "schemas_init_py" ], - "61": [ + "58": [ "crud_init_py" ], - "62": [ + "59": [ "ws_init_py" ] }, "cohesion": { - "0": 0.02, + "0": 0.01, "1": 0.02, "2": 0.05, "3": 0.02, "4": 0.03, - "5": 0.08, - "6": 0.04, - "7": 0.03, + "5": 0.04, + "6": 0.03, + "7": 0.05, "8": 0.04, - "9": 0.08, - "10": 0.16, - "11": 0.15, - "12": 0.12, - "13": 0.15, - "14": 0.17, - "15": 0.18, + "9": 0.32, + "10": 0.11, + "11": 0.08, + "12": 0.16, + "13": 0.12, + "14": 0.21, + "15": 0.17, "16": 0.18, - "17": 0.21, - "18": 0.17, - "19": 0.21, - "20": 0.25, - "21": 0.26, - "22": 0.24, - "23": 0.22, - "24": 0.23, - "25": 0.3, - "26": 0.27, - "27": 0.29, + "17": 0.2, + "18": 0.25, + "19": 0.25, + "20": 0.26, + "21": 0.24, + "22": 0.23, + "23": 0.27, + "24": 0.3, + "25": 0.27, + "26": 0.29, + "27": 0.31, "28": 0.31, "29": 0.31, - "30": 0.31, - "31": 0.38, - "32": 0.27, + "30": 0.38, + "31": 0.27, + "32": 0.31, "33": 0.31, "34": 0.31, "35": 0.31, - "36": 0.31, - "37": 0.31, + "36": 0.36, + "37": 0.36, "38": 0.36, "39": 0.36, "40": 0.36, - "41": 0.36, - "42": 0.39, - "43": 0.36, - "44": 0.29, - "45": 0.38, - "46": 0.5, - "47": 0.5, - "48": 0.67, + "41": 0.29, + "42": 0.38, + "43": 0.5, + "44": 0.5, + "45": 0.67, + "46": 1.0, + "47": 1.0, + "48": 1.0, "49": 1.0, "50": 1.0, "51": 1.0, @@ -2598,10 +2592,7 @@ "56": 1.0, "57": 1.0, "58": 1.0, - "59": 1.0, - "60": 1.0, - "61": 1.0, - "62": 1.0 + "59": 1.0 }, "gods": [ { diff --git a/backend/graphify-out/.graphify_extract.json b/backend/graphify-out/.graphify_extract.json index 30017c27c..a6a48c973 100644 --- a/backend/graphify-out/.graphify_extract.json +++ b/backend/graphify-out/.graphify_extract.json @@ -4450,49 +4450,49 @@ "label": "TaskStepUpdate", "file_type": "code", "source_file": "schemas/production_task.py", - "source_location": "L43" + "source_location": "L44" }, { "id": "schemas_production_task_taskstepmaterialitem", "label": "TaskStepMaterialItem", "file_type": "code", "source_file": "schemas/production_task.py", - "source_location": "L53" + "source_location": "L54" }, { "id": "schemas_production_task_taskstepoutputitem", "label": "TaskStepOutputItem", "file_type": "code", "source_file": "schemas/production_task.py", - "source_location": "L66" + "source_location": "L67" }, { "id": "schemas_production_task_taskstepdatacollectionitem", "label": "TaskStepDataCollectionItem", "file_type": "code", "source_file": "schemas/production_task.py", - "source_location": "L73" + "source_location": "L74" }, { "id": "schemas_production_task_taskinputitem", "label": "TaskInputItem", "file_type": "code", "source_file": "schemas/production_task.py", - "source_location": "L80" + "source_location": "L81" }, { "id": "schemas_production_task_taskoutputitem", "label": "TaskOutputItem", "file_type": "code", "source_file": "schemas/production_task.py", - "source_location": "L87" + "source_location": "L88" }, { "id": "schemas_production_task_taskstepreorderbody", "label": "TaskStepReorderBody", "file_type": "code", "source_file": "schemas/production_task.py", - "source_location": "L98" + "source_location": "L99" }, { "id": "schemas_product_detail_media_py", @@ -7313,231 +7313,231 @@ "label": "_fmt_dt()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L30" + "source_location": "L35" }, { "id": "crud_production_task_generate_task_no", "label": "_generate_task_no()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L34" + "source_location": "L39" }, { "id": "crud_production_task_task_to_dict", "label": "_task_to_dict()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L48" + "source_location": "L53" }, { "id": "crud_production_task_step_to_dict", "label": "_step_to_dict()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L68" + "source_location": "L73" }, { "id": "crud_production_task_step_reagent_to_dict", "label": "_step_reagent_to_dict()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L88" + "source_location": "L93" }, { "id": "crud_production_task_step_consumable_to_dict", "label": "_step_consumable_to_dict()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L103" + "source_location": "L108" }, { "id": "crud_production_task_step_output_to_dict", "label": "_step_output_to_dict()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L118" + "source_location": "L123" }, { "id": "crud_production_task_step_data_collection_to_dict", "label": "_step_data_collection_to_dict()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L129" + "source_location": "L134" }, { "id": "crud_production_task_task_input_to_dict", "label": "_task_input_to_dict()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L140" + "source_location": "L145" }, { "id": "crud_production_task_task_output_to_dict", "label": "_task_output_to_dict()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L152" + "source_location": "L157" }, { "id": "crud_production_task_soft_delete_sub", "label": "_soft_delete_sub()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L167" + "source_location": "L172" }, { "id": "crud_production_task_clone_step_reagents", "label": "_clone_step_reagents()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L180" + "source_location": "L185" }, { "id": "crud_production_task_clone_step_consumables", "label": "_clone_step_consumables()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L198" + "source_location": "L203" }, { "id": "crud_production_task_clone_step_outputs", "label": "_clone_step_outputs()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L216" + "source_location": "L221" }, { "id": "crud_production_task_clone_step_data_collections", "label": "_clone_step_data_collections()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L233" + "source_location": "L238" }, { "id": "crud_production_task_clone_route_to_task", "label": "_clone_route_to_task()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L249" + "source_location": "L254" }, { "id": "crud_production_task_create_production_task", "label": "create_production_task()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L282" + "source_location": "L287" }, { "id": "crud_production_task_list_production_tasks", "label": "list_production_tasks()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L318" + "source_location": "L323" }, { "id": "crud_production_task_get_production_task_detail", "label": "get_production_task_detail()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L367" + "source_location": "L372" }, { "id": "crud_production_task_update_production_task", "label": "update_production_task()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L422" + "source_location": "L427" }, { "id": "crud_production_task_update_task_status", "label": "update_task_status()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L447" + "source_location": "L452" }, { "id": "crud_production_task_add_task_step", "label": "add_task_step()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L474" + "source_location": "L479" }, { "id": "crud_production_task_update_task_step", "label": "update_task_step()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L518" + "source_location": "L624" }, { "id": "crud_production_task_delete_task_step", "label": "delete_task_step()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L556" + "source_location": "L662" }, { "id": "crud_production_task_replace_step_reagents", "label": "replace_step_reagents()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L578" + "source_location": "L684" }, { "id": "crud_production_task_replace_step_consumables", "label": "replace_step_consumables()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L601" + "source_location": "L707" }, { "id": "crud_production_task_replace_step_outputs", "label": "replace_step_outputs()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L624" + "source_location": "L730" }, { "id": "crud_production_task_replace_step_data_collections", "label": "replace_step_data_collections()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L643" + "source_location": "L749" }, { "id": "crud_production_task_set_task_inputs", "label": "set_task_inputs()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L662" + "source_location": "L768" }, { "id": "crud_production_task_set_task_outputs", "label": "set_task_outputs()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L682" + "source_location": "L788" }, { "id": "crud_production_task_reorder_task_steps", "label": "reorder_task_steps()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L706" + "source_location": "L812" }, { "id": "crud_production_task_copy_task_step", "label": "copy_task_step()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L720" + "source_location": "L826" }, { "id": "crud_production_task_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "crud/production_task.py", - "source_location": "L824" + "source_location": "L930" }, { "id": "crud_production_task_rationale_1", @@ -7547,11 +7547,11 @@ "source_location": "L1" }, { - "id": "crud_production_task_rationale_722", + "id": "crud_production_task_rationale_828", "label": "\u590d\u5236\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4\uff0c\u63d2\u5165\u5230\u539f\u6b65\u9aa4\u4e4b\u540e\uff0c\u540d\u79f0\u8ffd\u52a0\uff08\u590d\u5236\uff09", "file_type": "rationale", "source_file": "crud/production_task.py", - "source_location": "L722" + "source_location": "L828" }, { "id": "crud_qc_third_party_item_py", @@ -27528,7 +27528,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "schemas/production_task.py", - "source_location": "L43", + "source_location": "L44", "weight": 1.0 }, { @@ -27537,7 +27537,7 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "schemas/production_task.py", - "source_location": "L43", + "source_location": "L44", "weight": 1.0 }, { @@ -27546,7 +27546,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "schemas/production_task.py", - "source_location": "L53", + "source_location": "L54", "weight": 1.0 }, { @@ -27555,7 +27555,7 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "schemas/production_task.py", - "source_location": "L53", + "source_location": "L54", "weight": 1.0 }, { @@ -27564,7 +27564,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "schemas/production_task.py", - "source_location": "L66", + "source_location": "L67", "weight": 1.0 }, { @@ -27573,7 +27573,7 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "schemas/production_task.py", - "source_location": "L66", + "source_location": "L67", "weight": 1.0 }, { @@ -27582,7 +27582,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "schemas/production_task.py", - "source_location": "L73", + "source_location": "L74", "weight": 1.0 }, { @@ -27591,7 +27591,7 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "schemas/production_task.py", - "source_location": "L73", + "source_location": "L74", "weight": 1.0 }, { @@ -27600,7 +27600,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "schemas/production_task.py", - "source_location": "L80", + "source_location": "L81", "weight": 1.0 }, { @@ -27609,7 +27609,7 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "schemas/production_task.py", - "source_location": "L80", + "source_location": "L81", "weight": 1.0 }, { @@ -27618,7 +27618,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "schemas/production_task.py", - "source_location": "L87", + "source_location": "L88", "weight": 1.0 }, { @@ -27627,7 +27627,7 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "schemas/production_task.py", - "source_location": "L87", + "source_location": "L88", "weight": 1.0 }, { @@ -27636,7 +27636,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "schemas/production_task.py", - "source_location": "L98", + "source_location": "L99", "weight": 1.0 }, { @@ -27645,7 +27645,7 @@ "relation": "inherits", "confidence": "EXTRACTED", "source_file": "schemas/production_task.py", - "source_location": "L98", + "source_location": "L99", "weight": 1.0 }, { @@ -35169,7 +35169,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L30", + "source_location": "L35", "weight": 1.0 }, { @@ -35178,7 +35178,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L34", + "source_location": "L39", "weight": 1.0 }, { @@ -35187,7 +35187,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L48", + "source_location": "L53", "weight": 1.0 }, { @@ -35196,7 +35196,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L68", + "source_location": "L73", "weight": 1.0 }, { @@ -35205,7 +35205,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L88", + "source_location": "L93", "weight": 1.0 }, { @@ -35214,7 +35214,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L103", + "source_location": "L108", "weight": 1.0 }, { @@ -35223,7 +35223,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L118", + "source_location": "L123", "weight": 1.0 }, { @@ -35232,7 +35232,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L129", + "source_location": "L134", "weight": 1.0 }, { @@ -35241,7 +35241,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L140", + "source_location": "L145", "weight": 1.0 }, { @@ -35250,7 +35250,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L152", + "source_location": "L157", "weight": 1.0 }, { @@ -35259,7 +35259,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L167", + "source_location": "L172", "weight": 1.0 }, { @@ -35268,7 +35268,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L180", + "source_location": "L185", "weight": 1.0 }, { @@ -35277,7 +35277,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L198", + "source_location": "L203", "weight": 1.0 }, { @@ -35286,7 +35286,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L216", + "source_location": "L221", "weight": 1.0 }, { @@ -35295,7 +35295,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L233", + "source_location": "L238", "weight": 1.0 }, { @@ -35304,7 +35304,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L249", + "source_location": "L254", "weight": 1.0 }, { @@ -35313,7 +35313,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L282", + "source_location": "L287", "weight": 1.0 }, { @@ -35322,7 +35322,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L318", + "source_location": "L323", "weight": 1.0 }, { @@ -35331,7 +35331,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L367", + "source_location": "L372", "weight": 1.0 }, { @@ -35340,7 +35340,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L422", + "source_location": "L427", "weight": 1.0 }, { @@ -35349,7 +35349,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L447", + "source_location": "L452", "weight": 1.0 }, { @@ -35358,7 +35358,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L474", + "source_location": "L479", "weight": 1.0 }, { @@ -35367,7 +35367,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L518", + "source_location": "L624", "weight": 1.0 }, { @@ -35376,7 +35376,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L556", + "source_location": "L662", "weight": 1.0 }, { @@ -35385,7 +35385,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L578", + "source_location": "L684", "weight": 1.0 }, { @@ -35394,7 +35394,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L601", + "source_location": "L707", "weight": 1.0 }, { @@ -35403,7 +35403,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L624", + "source_location": "L730", "weight": 1.0 }, { @@ -35412,7 +35412,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L643", + "source_location": "L749", "weight": 1.0 }, { @@ -35421,7 +35421,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L662", + "source_location": "L768", "weight": 1.0 }, { @@ -35430,7 +35430,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L682", + "source_location": "L788", "weight": 1.0 }, { @@ -35439,7 +35439,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L706", + "source_location": "L812", "weight": 1.0 }, { @@ -35448,7 +35448,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L720", + "source_location": "L826", "weight": 1.0 }, { @@ -35457,7 +35457,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L824", + "source_location": "L930", "weight": 1.0 }, { @@ -35466,7 +35466,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L57", + "source_location": "L62", "weight": 1.0 }, { @@ -35475,7 +35475,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L82", + "source_location": "L87", "weight": 1.0 }, { @@ -35484,7 +35484,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L276", + "source_location": "L281", "weight": 1.0 }, { @@ -35493,7 +35493,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L277", + "source_location": "L282", "weight": 1.0 }, { @@ -35502,7 +35502,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L278", + "source_location": "L283", "weight": 1.0 }, { @@ -35511,7 +35511,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L279", + "source_location": "L284", "weight": 1.0 }, { @@ -35520,7 +35520,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L286", + "source_location": "L291", "weight": 1.0 }, { @@ -35529,7 +35529,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L312", + "source_location": "L317", "weight": 1.0 }, { @@ -35538,7 +35538,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L352", + "source_location": "L357", "weight": 1.0 }, { @@ -35547,7 +35547,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L378", + "source_location": "L383", "weight": 1.0 }, { @@ -35556,7 +35556,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L388", + "source_location": "L393", "weight": 1.0 }, { @@ -35565,7 +35565,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L402", + "source_location": "L407", "weight": 1.0 }, { @@ -35574,7 +35574,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L403", + "source_location": "L408", "weight": 1.0 }, { @@ -35583,7 +35583,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L404", + "source_location": "L409", "weight": 1.0 }, { @@ -35592,7 +35592,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L405", + "source_location": "L410", "weight": 1.0 }, { @@ -35601,7 +35601,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L417", + "source_location": "L422", "weight": 1.0 }, { @@ -35610,7 +35610,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L418", + "source_location": "L423", "weight": 1.0 }, { @@ -35619,7 +35619,43 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L515", + "source_location": "L603", + "weight": 1.0 + }, + { + "source": "crud_production_task_add_task_step", + "target": "crud_production_task_step_reagent_to_dict", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/production_task.py", + "source_location": "L617", + "weight": 1.0 + }, + { + "source": "crud_production_task_add_task_step", + "target": "crud_production_task_step_consumable_to_dict", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/production_task.py", + "source_location": "L618", + "weight": 1.0 + }, + { + "source": "crud_production_task_add_task_step", + "target": "crud_production_task_step_output_to_dict", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/production_task.py", + "source_location": "L619", + "weight": 1.0 + }, + { + "source": "crud_production_task_add_task_step", + "target": "crud_production_task_step_data_collection_to_dict", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "crud/production_task.py", + "source_location": "L620", "weight": 1.0 }, { @@ -35628,7 +35664,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L571", + "source_location": "L677", "weight": 1.0 }, { @@ -35637,7 +35673,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L583", + "source_location": "L689", "weight": 1.0 }, { @@ -35646,7 +35682,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L606", + "source_location": "L712", "weight": 1.0 }, { @@ -35655,7 +35691,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L629", + "source_location": "L735", "weight": 1.0 }, { @@ -35664,7 +35700,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L648", + "source_location": "L754", "weight": 1.0 }, { @@ -35673,7 +35709,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L667", + "source_location": "L773", "weight": 1.0 }, { @@ -35682,7 +35718,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L687", + "source_location": "L793", "weight": 1.0 }, { @@ -35691,7 +35727,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L821", + "source_location": "L927", "weight": 1.0 }, { @@ -35704,12 +35740,12 @@ "weight": 1.0 }, { - "source": "crud_production_task_rationale_722", + "source": "crud_production_task_rationale_828", "target": "crud_production_task_copy_task_step", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "crud/production_task.py", - "source_location": "L722", + "source_location": "L828", "weight": 1.0 }, { @@ -72684,6 +72720,96 @@ "source_location": "L13", "weight": 0.8 }, + { + "source": "crud_production_task_rationale_1", + "target": "models_models_bizprocess", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_task.py", + "source_location": "L12", + "weight": 0.8 + }, + { + "source": "crud_production_task_rationale_828", + "target": "models_models_bizprocess", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_task.py", + "source_location": "L12", + "weight": 0.8 + }, + { + "source": "crud_production_task_rationale_1", + "target": "models_models_bizprocessconsumable", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_task.py", + "source_location": "L12", + "weight": 0.8 + }, + { + "source": "crud_production_task_rationale_828", + "target": "models_models_bizprocessconsumable", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_task.py", + "source_location": "L12", + "weight": 0.8 + }, + { + "source": "crud_production_task_rationale_1", + "target": "models_models_bizprocessdatacollection", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_task.py", + "source_location": "L12", + "weight": 0.8 + }, + { + "source": "crud_production_task_rationale_828", + "target": "models_models_bizprocessdatacollection", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_task.py", + "source_location": "L12", + "weight": 0.8 + }, + { + "source": "crud_production_task_rationale_1", + "target": "models_models_bizprocessoutput", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_task.py", + "source_location": "L12", + "weight": 0.8 + }, + { + "source": "crud_production_task_rationale_828", + "target": "models_models_bizprocessoutput", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_task.py", + "source_location": "L12", + "weight": 0.8 + }, + { + "source": "crud_production_task_rationale_1", + "target": "models_models_bizprocessreagent", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_task.py", + "source_location": "L12", + "weight": 0.8 + }, + { + "source": "crud_production_task_rationale_828", + "target": "models_models_bizprocessreagent", + "relation": "uses", + "confidence": "INFERRED", + "source_file": "crud/production_task.py", + "source_location": "L12", + "weight": 0.8 + }, { "source": "crud_production_task_rationale_1", "target": "models_models_bizprocessroute", @@ -72694,7 +72820,7 @@ "weight": 0.8 }, { - "source": "crud_production_task_rationale_722", + "source": "crud_production_task_rationale_828", "target": "models_models_bizprocessroute", "relation": "uses", "confidence": "INFERRED", @@ -72712,7 +72838,7 @@ "weight": 0.8 }, { - "source": "crud_production_task_rationale_722", + "source": "crud_production_task_rationale_828", "target": "models_models_bizprocessroutestep", "relation": "uses", "confidence": "INFERRED", @@ -72730,7 +72856,7 @@ "weight": 0.8 }, { - "source": "crud_production_task_rationale_722", + "source": "crud_production_task_rationale_828", "target": "models_models_bizprocessroutestepconsumable", "relation": "uses", "confidence": "INFERRED", @@ -72748,7 +72874,7 @@ "weight": 0.8 }, { - "source": "crud_production_task_rationale_722", + "source": "crud_production_task_rationale_828", "target": "models_models_bizprocessroutestepdatacollection", "relation": "uses", "confidence": "INFERRED", @@ -72766,7 +72892,7 @@ "weight": 0.8 }, { - "source": "crud_production_task_rationale_722", + "source": "crud_production_task_rationale_828", "target": "models_models_bizprocessroutestepoutput", "relation": "uses", "confidence": "INFERRED", @@ -72784,7 +72910,7 @@ "weight": 0.8 }, { - "source": "crud_production_task_rationale_722", + "source": "crud_production_task_rationale_828", "target": "models_models_bizprocessroutestepreagent", "relation": "uses", "confidence": "INFERRED", @@ -72802,7 +72928,7 @@ "weight": 0.8 }, { - "source": "crud_production_task_rationale_722", + "source": "crud_production_task_rationale_828", "target": "models_models_bizproductiontask", "relation": "uses", "confidence": "INFERRED", @@ -72820,7 +72946,7 @@ "weight": 0.8 }, { - "source": "crud_production_task_rationale_722", + "source": "crud_production_task_rationale_828", "target": "models_models_bizproductiontaskinput", "relation": "uses", "confidence": "INFERRED", @@ -72838,7 +72964,7 @@ "weight": 0.8 }, { - "source": "crud_production_task_rationale_722", + "source": "crud_production_task_rationale_828", "target": "models_models_bizproductiontaskoutput", "relation": "uses", "confidence": "INFERRED", @@ -72856,7 +72982,7 @@ "weight": 0.8 }, { - "source": "crud_production_task_rationale_722", + "source": "crud_production_task_rationale_828", "target": "models_models_bizproductiontaskstep", "relation": "uses", "confidence": "INFERRED", @@ -72874,7 +73000,7 @@ "weight": 0.8 }, { - "source": "crud_production_task_rationale_722", + "source": "crud_production_task_rationale_828", "target": "models_models_bizproductiontaskstepconsumable", "relation": "uses", "confidence": "INFERRED", @@ -72892,7 +73018,7 @@ "weight": 0.8 }, { - "source": "crud_production_task_rationale_722", + "source": "crud_production_task_rationale_828", "target": "models_models_bizproductiontaskstepdatacollection", "relation": "uses", "confidence": "INFERRED", @@ -72910,7 +73036,7 @@ "weight": 0.8 }, { - "source": "crud_production_task_rationale_722", + "source": "crud_production_task_rationale_828", "target": "models_models_bizproductiontaskstepoutput", "relation": "uses", "confidence": "INFERRED", @@ -72928,7 +73054,7 @@ "weight": 0.8 }, { - "source": "crud_production_task_rationale_722", + "source": "crud_production_task_rationale_828", "target": "models_models_bizproductiontaskstepreagent", "relation": "uses", "confidence": "INFERRED", @@ -90813,7 +90939,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L38", + "source_location": "L43", "weight": 1.0 }, { @@ -90823,7 +90949,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L187", + "source_location": "L192", "weight": 1.0 }, { @@ -90833,7 +90959,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L188", + "source_location": "L193", "weight": 1.0 }, { @@ -90843,7 +90969,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L205", + "source_location": "L210", "weight": 1.0 }, { @@ -90853,7 +90979,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L206", + "source_location": "L211", "weight": 1.0 }, { @@ -90863,7 +90989,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L223", + "source_location": "L228", "weight": 1.0 }, { @@ -90873,7 +90999,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L224", + "source_location": "L229", "weight": 1.0 }, { @@ -90883,7 +91009,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L240", + "source_location": "L245", "weight": 1.0 }, { @@ -90893,7 +91019,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L241", + "source_location": "L246", "weight": 1.0 }, { @@ -90903,7 +91029,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L261", + "source_location": "L266", "weight": 1.0 }, { @@ -90913,7 +91039,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L262", + "source_location": "L267", "weight": 1.0 }, { @@ -90923,7 +91049,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L288", + "source_location": "L293", "weight": 1.0 }, { @@ -90933,7 +91059,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L289", + "source_location": "L294", "weight": 1.0 }, { @@ -90943,7 +91069,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L291", + "source_location": "L296", "weight": 1.0 }, { @@ -90953,7 +91079,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L342", + "source_location": "L347", "weight": 1.0 }, { @@ -90963,7 +91089,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L363", + "source_location": "L368", "weight": 1.0 }, { @@ -90973,7 +91099,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L436", + "source_location": "L441", "weight": 1.0 }, { @@ -90983,7 +91109,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L489", + "source_location": "L494", "weight": 1.0 }, { @@ -90993,7 +91119,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L496", + "source_location": "L510", "weight": 1.0 }, { @@ -91003,7 +91129,47 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L497", + "source_location": "L511", + "weight": 1.0 + }, + { + "source": "crud_production_task_add_task_step", + "target": "models_models_bizproductiontaskstepreagent", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "crud/production_task.py", + "source_location": "L533", + "weight": 1.0 + }, + { + "source": "crud_production_task_add_task_step", + "target": "models_models_bizproductiontaskstepconsumable", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "crud/production_task.py", + "source_location": "L546", + "weight": 1.0 + }, + { + "source": "crud_production_task_add_task_step", + "target": "models_models_bizproductiontaskstepoutput", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "crud/production_task.py", + "source_location": "L559", + "weight": 1.0 + }, + { + "source": "crud_production_task_add_task_step", + "target": "models_models_bizproductiontaskstepdatacollection", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "crud/production_task.py", + "source_location": "L571", "weight": 1.0 }, { @@ -91013,7 +91179,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L536", + "source_location": "L642", "weight": 1.0 }, { @@ -91023,7 +91189,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L585", + "source_location": "L691", "weight": 1.0 }, { @@ -91033,7 +91199,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L586", + "source_location": "L692", "weight": 1.0 }, { @@ -91043,7 +91209,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L587", + "source_location": "L693", "weight": 1.0 }, { @@ -91053,7 +91219,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L608", + "source_location": "L714", "weight": 1.0 }, { @@ -91063,7 +91229,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L609", + "source_location": "L715", "weight": 1.0 }, { @@ -91073,7 +91239,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L610", + "source_location": "L716", "weight": 1.0 }, { @@ -91083,7 +91249,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L631", + "source_location": "L737", "weight": 1.0 }, { @@ -91093,7 +91259,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L632", + "source_location": "L738", "weight": 1.0 }, { @@ -91103,7 +91269,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L633", + "source_location": "L739", "weight": 1.0 }, { @@ -91113,7 +91279,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L650", + "source_location": "L756", "weight": 1.0 }, { @@ -91123,7 +91289,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L651", + "source_location": "L757", "weight": 1.0 }, { @@ -91133,7 +91299,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L652", + "source_location": "L758", "weight": 1.0 }, { @@ -91143,7 +91309,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L669", + "source_location": "L775", "weight": 1.0 }, { @@ -91153,7 +91319,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L670", + "source_location": "L776", "weight": 1.0 }, { @@ -91163,7 +91329,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L671", + "source_location": "L777", "weight": 1.0 }, { @@ -91173,7 +91339,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L689", + "source_location": "L795", "weight": 1.0 }, { @@ -91183,7 +91349,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L690", + "source_location": "L796", "weight": 1.0 }, { @@ -91193,7 +91359,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L691", + "source_location": "L797", "weight": 1.0 }, { @@ -91203,7 +91369,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L749", + "source_location": "L855", "weight": 1.0 }, { @@ -91213,7 +91379,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L750", + "source_location": "L856", "weight": 1.0 }, { @@ -91223,7 +91389,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L768", + "source_location": "L874", "weight": 1.0 }, { @@ -91233,7 +91399,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L783", + "source_location": "L889", "weight": 1.0 }, { @@ -91243,7 +91409,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L798", + "source_location": "L904", "weight": 1.0 }, { @@ -91253,7 +91419,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "crud/production_task.py", - "source_location": "L811", + "source_location": "L917", "weight": 1.0 }, { diff --git a/backend/graphify-out/GRAPH_REPORT.md b/backend/graphify-out/GRAPH_REPORT.md index 982448caa..b592b439a 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) +# Graph Report - app (2026-05-22) ## Corpus Check -- 135 files · ~119,973 words +- 135 files · ~120,233 words - Verdict: corpus is large enough that graph structure adds value. ## Summary -- 2411 nodes · 9448 edges · 57 communities detected -- Extraction: 42% EXTRACTED · 58% INFERRED · 0% AMBIGUOUS · INFERRED: 5492 edges (avg confidence: 0.63) +- 2411 nodes · 9466 edges · 54 communities detected +- Extraction: 42% EXTRACTED · 58% INFERRED · 0% AMBIGUOUS · INFERRED: 5506 edges (avg confidence: 0.63) - Token cost: 0 input · 0 output ## Community Hubs (Navigation) @@ -58,15 +58,12 @@ - [[_COMMUNITY_Community 45|Community 45]] - [[_COMMUNITY_Community 46|Community 46]] - [[_COMMUNITY_Community 47|Community 47]] -- [[_COMMUNITY_Community 48|Community 48]] -- [[_COMMUNITY_Community 49|Community 49]] - [[_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]] -- [[_COMMUNITY_Community 56|Community 56]] -- [[_COMMUNITY_Community 57|Community 57]] -- [[_COMMUNITY_Community 58|Community 58]] ## God Nodes (most connected - your core abstractions) 1. `success_response()` - 380 edges @@ -95,267 +92,255 @@ ## Communities ### Community 0 - "Community 0" -Cohesion: 0.02 -Nodes (387): attachment_download_url(), create_dept(), create_dict_data(), create_dict_type(), create_express_company(), create_item_unit(), create_menu(), create_post() (+379 more) +Cohesion: 0.01 +Nodes (402): AttachmentDownloadUrlBody, DeptCreateBody, DeptUpdateBody, DictDataCreateBody, DictDataUpdateBody, DictTypeCreateBody, DictTypeUpdateBody, ExpressCompanyCreateBody (+394 more) ### Community 1 - "Community 1" Cohesion: 0.02 -Nodes (369): AttachmentDownloadUrlBody, DeptCreateBody, DeptUpdateBody, DictDataCreateBody, DictDataUpdateBody, DictTypeCreateBody, DictTypeUpdateBody, ExpressCompanyCreateBody (+361 more) +Nodes (385): attachment_download_url(), create_dept(), create_dict_data(), create_dict_type(), create_express_company(), create_item_unit(), create_menu(), create_post() (+377 more) ### Community 2 - "Community 2" Cohesion: 0.05 -Nodes (229): AccessLogCreateBody, AccessLogUpdateBody, CleanRoomCreateBody, CleanRoomUpdateBody, ExhibitionAppointmentCreateBody, ExhibitionAppointmentUpdateBody, 运营支撑 API(洁净室、进出记录、仓储设施、储位、展厅预约), StorageFacilityCreateBody (+221 more) +Nodes (272): AuditCreateBody, BatchDetailIdsBody, BatchRefundFinanceSubmitBody, FinanceConfirmBody, FullmoonTodoInsuranceBody, ProtocolCreateBody, ProtocolUpdateBody, 细胞存储 — 采集协议单 / 审核 / 财务确认 / 分期预警 API (+264 more) ### Community 3 - "Community 3" Cohesion: 0.02 -Nodes (192): generate_uuid(), _code_exists(), create_material(), _dec(), _fmt_dt(), get_material(), list_materials(), options_list() (+184 more) +Nodes (157): generate_uuid(), batch_stock_in(), batch_stock_out(), _code_exists(), create_material(), _dec(), _fmt_dt(), get_material() (+149 more) ### Community 4 - "Community 4" Cohesion: 0.03 Nodes (138): create_collection_protocol(), delete_collection_protocol(), _ensure_customer_for_mother(), get_collection_protocol_detail(), _get_current_user_id(), _get_tenant_no(), list_collection_protocol_audits(), list_collection_protocols() (+130 more) ### Community 5 - "Community 5" -Cohesion: 0.08 -Nodes (136): CellSampleTypeCreateBody, CellSampleTypeUpdateBody, CollectionRegionCreateBody, CollectionRegionUpdateBody, CustomerCreateBody, CustomerUpdateBody, HospitalCreateBody, HospitalUpdateBody (+128 more) +Cohesion: 0.04 +Nodes (106): _format_attachment_file_size(), get_protocol_nos_used_in_protocols(), urls_to_attachment_list(), _accept_conclusion_label(), _attach_reception_detail(), complete_production_work_order(), create_production_work_order_from_reception(), _enrich_wo_items() (+98 more) ### Community 6 - "Community 6" -Cohesion: 0.04 -Nodes (105): _format_attachment_file_size(), get_protocol_nos_used_in_protocols(), urls_to_attachment_list(), _accept_conclusion_label(), _attach_reception_detail(), complete_production_work_order(), create_production_work_order_from_reception(), _enrich_wo_items() (+97 more) - -### Community 7 - "Community 7" Cohesion: 0.03 Nodes (55): get_designer_data(), BaseStorage, convert_heic_to_jpeg(), get_storage(), LocalStorage, MinIOStorage, OSSStorage, process_image_content() (+47 more) +### Community 7 - "Community 7" +Cohesion: 0.05 +Nodes (88): AccessLogCreateBody, AccessLogUpdateBody, CleanRoomCreateBody, CleanRoomUpdateBody, ExhibitionAppointmentCreateBody, ExhibitionAppointmentUpdateBody, list_storage_slots(), 运营支撑 API(洁净室、进出记录、仓储设施、储位、展厅预约) (+80 more) + ### Community 8 - "Community 8" Cohesion: 0.04 Nodes (65): list_roles_for_select(), _avatar_url_field(), _build_user_info_payload(), get_web_auth_menu_codes(), _jwt_user_payload(), logout(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/zkxw.sql 基线), 登出:吊销 Redis 会话(若已配置 REDIS_HOST)。 (+57 more) ### Community 9 - "Community 9" +Cohesion: 0.32 +Nodes (52): ConsumableCreateBody, ConsumablePackCreateBody, ConsumablePackUpdateBody, ConsumableUpdateBody, OutputTypeCreateBody, OutputTypeUpdateBody, PackItemInput, ProcessCategoryCreateBody (+44 more) + +### Community 10 - "Community 10" +Cohesion: 0.11 +Nodes (42): create_collection_protocol(), _active_link_query(), assert_biz_no_available(), create_convert_link(), get_convert_partner(), get_partner_sample_codes(), has_active_convert_link(), upsert_convert_link_for_to_storage() (+34 more) + +### Community 11 - "Community 11" Cohesion: 0.08 Nodes (36): 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() (+28 more) -### Community 10 - "Community 10" +### Community 12 - "Community 12" Cohesion: 0.16 Nodes (32): _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() (+24 more) -### Community 11 - "Community 11" -Cohesion: 0.15 -Nodes (31): _audit_to_dict(), batch_delete_donations(), _collection_to_dict(), _create_collection(), create_donation(), _create_party(), _create_samples(), _create_transport() (+23 more) - -### Community 12 - "Community 12" +### 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.15 -Nodes (22): Config, Config, ProductReviewMediaBase, ProductReviewMediaCreate, ProductReviewMediaCreateBatch, ProductReviewMediaListResponse, ProductReviewMediaResponse, ProductReviewMediaUpdate (+14 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) + +### Community 15 - "Community 15" 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 15 - "Community 15" +### 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.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 17 - "Community 17" -Cohesion: 0.21 -Nodes (15): batch_issue_protocol_nos(), batch_revoke_protocol_nos(), create_protocol_no(), enrich_issued_user_names(), get_protocol_no(), list_protocol_nos(), _parse_issued_time(), protocol_no_exists() (+7 more) +Cohesion: 0.2 +Nodes (14): deduct_for_task(), _display_remark(), list_usages(), list_usages_by_task(), _parse_receiver_purpose_from_remark(), 查询质检任务关联的物料使用记录(task_complete)。, 撤销任务此前 task_complete 扣减,便于重新填报物料使用。, 兼容旧数据:领用人/用途曾拼接在 remark 中。 (+6 more) ### Community 18 - "Community 18" -Cohesion: 0.17 -Nodes (15): Config, QuotationBase, QuotationCreate, QuotationDetailResponse, QuotationItemBase, QuotationItemCreate, QuotationItemResponse, QuotationItemUpdate (+7 more) - -### Community 19 - "Community 19" -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 20 - "Community 20" Cohesion: 0.25 Nodes (13): code_exists(), create_material(), _dec(), _fmt_dt(), get_material(), list_materials(), _norm_status(), options_list() (+5 more) -### Community 21 - "Community 21" +### Community 19 - "Community 19" +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 20 - "Community 20" 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" +### Community 21 - "Community 21" Cohesion: 0.24 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.22 -Nodes (12): Config, InquiryBase, InquiryCreate, InquiryDetailResponse, InquiryItemBase, InquiryItemCreate, InquiryItemResponse, InquiryListResponse (+4 more) - -### Community 24 - "Community 24" +### Community 22 - "Community 22" Cohesion: 0.23 Nodes (12): Config, ProductBase, ProductCategoryBase, ProductCategoryCreate, ProductCategoryResponse, ProductCreate, ProductResponse, ProductUnitBase (+4 more) -### Community 25 - "Community 25" +### Community 23 - "Community 23" +Cohesion: 0.27 +Nodes (10): create_collection_region(), create_hospital(), get_collection_region(), get_hospital(), _hospital_to_dict(), list_hospitals(), soft_delete_collection_region(), soft_delete_hospital() (+2 more) + +### Community 24 - "Community 24" Cohesion: 0.3 Nodes (10): create_consumable_pack(), get_consumable_pack(), get_pack_detail(), _item_row_to_dict(), list_all_packs(), list_consumable_packs(), pack_code_exists(), _row_to_dict() (+2 more) -### Community 26 - "Community 26" +### Community 25 - "Community 25" 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 27 - "Community 27" +### Community 26 - "Community 26" 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 28 - "Community 28" +### Community 27 - "Community 27" 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 29 - "Community 29" +### Community 28 - "Community 28" 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 30 - "Community 30" +### 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 31 - "Community 31" +### 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 32 - "Community 32" +### Community 31 - "Community 31" 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 33 - "Community 33" +### Community 32 - "Community 32" 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 34 - "Community 34" +### Community 33 - "Community 33" 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() -### Community 35 - "Community 35" +### Community 34 - "Community 34" 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() -### Community 36 - "Community 36" +### Community 35 - "Community 35" 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 37 - "Community 37" -Cohesion: 0.31 -Nodes (9): appointment_no_exists(), create_exhibition_appointment(), _generate_appointment_no(), get_exhibition_appointment(), list_exhibition_appointments(), 展览预约 CRUD(biz_exhibition_appointment), 生成预约编号:YYYYMMDD + 6位序号(如 20260515000001), soft_delete_exhibition_appointment() (+1 more) - -### Community 38 - "Community 38" +### Community 36 - "Community 36" Cohesion: 0.36 Nodes (7): create_post(), get_post(), list_posts(), post_code_exists(), _row_to_dict(), soft_delete_post(), update_post() -### Community 39 - "Community 39" +### Community 37 - "Community 37" Cohesion: 0.36 Nodes (7): create_dict_type(), dict_type_code_exists(), get_dict_type(), list_dict_types(), _row_to_dict(), soft_delete_dict_type(), update_dict_type() -### Community 40 - "Community 40" +### Community 38 - "Community 38" Cohesion: 0.36 Nodes (7): create_tenant(), get_tenant(), list_tenants(), _row_to_dict(), soft_delete_tenant(), tenant_no_exists(), update_tenant() -### Community 41 - "Community 41" +### Community 39 - "Community 39" Cohesion: 0.36 Nodes (7): create_reagent(), get_reagent(), list_reagents(), reagent_code_exists(), _row_to_dict(), soft_delete_reagent(), update_reagent() -### Community 42 - "Community 42" -Cohesion: 0.39 -Nodes (8): create_lab_item(), get_lab_item(), item_code_exists(), list_active_lab_items(), list_lab_items(), _row_to_dict(), soft_delete_lab_item(), update_lab_item() - -### Community 43 - "Community 43" +### Community 40 - "Community 40" Cohesion: 0.36 Nodes (7): create_site(), get_site(), list_sites(), _row_to_dict(), site_code_exists(), soft_delete_site(), update_site() -### Community 44 - "Community 44" +### Community 41 - "Community 41" Cohesion: 0.29 Nodes (2): BaseModel, SoftDeleteModel -### Community 45 - "Community 45" +### 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 46 - "Community 46" +### Community 43 - "Community 43" Cohesion: 0.5 Nodes (3): BaseSettings, Config, Settings -### Community 47 - "Community 47" +### Community 44 - "Community 44" Cohesion: 0.5 Nodes (2): _auto_fill_create_dept_id(), ORM before_insert 钩子:当 create_dept_id 为空时,自动从请求上下文填充当前用户部门 ID -### Community 48 - "Community 48" +### Community 45 - "Community 45" Cohesion: 0.67 Nodes (2): get_menu_list(), 运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,供后端菜单模式联调) -### Community 49 - "Community 49" +### Community 46 - "Community 46" Cohesion: 1.0 Nodes (1): 请求级别的用户上下文变量 通过 contextvars 在请求处理链路中传递当前用户信息, 供 SQLAlchemy 事件监听器等底层机制使用,避免逐层手动传 -### Community 50 - "Community 50" +### Community 47 - "Community 47" Cohesion: 1.0 Nodes (1): API 路由包(骨架:公共鉴权 + 静态菜单 + 运营端占位) -### Community 53 - "Community 53" +### Community 50 - "Community 50" Cohesion: 1.0 Nodes (1): 发送订单状态通知 Args: openid: 用户openid ord -### Community 54 - "Community 54" +### Community 51 - "Community 51" Cohesion: 1.0 Nodes (1): 发送支付成功通知 Args: openid: 用户openid ord -### Community 55 - "Community 55" +### Community 52 - "Community 52" Cohesion: 1.0 Nodes (1): 发送配送通知 Args: openid: 配送员openid task -### Community 56 - "Community 56" +### Community 53 - "Community 53" Cohesion: 1.0 Nodes (1): 发送配送时效预警 Args: openid: 配送员openid ta -### Community 57 - "Community 57" +### Community 54 - "Community 54" Cohesion: 1.0 Nodes (1): 发送退款结果通知 Args: openid: 用户openid ord -### Community 58 - "Community 58" +### Community 55 - "Community 55" Cohesion: 1.0 Nodes (1): 发送催单通知给配送员 Args: deliver_openid: 配送员openid ## Knowledge Gaps - **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 44`** (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 47`** (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 48`** (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 49`** (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 50`** (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 53`** (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 54`** (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 55`** (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 56`** (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 57`** (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 58`** (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 `generate_uuid()` connect `Community 3` to `Community 0`, `Community 2`, `Community 4`, `Community 5`, `Community 6`, `Community 7`, `Community 8`, `Community 9`, `Community 11`, `Community 15`, `Community 16`, `Community 17`, `Community 19`, `Community 20`, `Community 21`, `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`, `Community 40`, `Community 41`, `Community 42`, `Community 43`?** +- **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 10`, `Community 11`, `Community 14`, `Community 16`, `Community 17`, `Community 18`, `Community 19`, `Community 20`, `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`, `Community 39`, `Community 40`?** _High betweenness centrality (0.124) - this node is a cross-community bridge._ -- **Why does `SysUser` connect `Community 1` to `Community 2`, `Community 5`, `Community 6`, `Community 7`, `Community 8`, `Community 10`, `Community 17`, `Community 21`?** +- **Why does `SysUser` connect `Community 0` to `Community 2`, `Community 5`, `Community 6`, `Community 7`, `Community 8`, `Community 9`, `Community 12`, `Community 17`, `Community 19`, `Community 20`?** _High betweenness centrality (0.083) - this node is a cross-community bridge._ -- **Why does `success_response()` connect `Community 0` to `Community 1`, `Community 4`, `Community 5`, `Community 7`, `Community 8`, `Community 10`, `Community 48`, `Community 16`?** +- **Why does `success_response()` connect `Community 1` to `Community 0`, `Community 4`, `Community 6`, `Community 7`, `Community 8`, `Community 12`, `Community 45`?** _High betweenness centrality (0.067) - this node is a cross-community bridge._ - **Are the 379 inferred relationships involving `success_response()` (e.g. with `web_login_rsa_public_key()` and `web_login()`) actually correct?** _`success_response()` has 379 INFERRED edges - model-reasoned connections that need verification._ diff --git a/backend/graphify-out/graph.html b/backend/graphify-out/graph.html index 8b0c6ca59..1415f7bb5 100644 --- a/backend/graphify-out/graph.html +++ b/backend/graphify-out/graph.html @@ -57,12 +57,12 @@
-
2411 nodes · 9448 edges · 63 communities
+
2411 nodes · 9466 edges · 60 communities
diff --git a/web-admin/src/views/production/production-work-order/TaskExecutionDialog.vue b/web-admin/src/views/production/production-work-order/TaskExecutionDialog.vue index 7b715c389..a3ef9d75a 100644 --- a/web-admin/src/views/production/production-work-order/TaskExecutionDialog.vue +++ b/web-admin/src/views/production/production-work-order/TaskExecutionDialog.vue @@ -1,8 +1,7 @@ -