diff --git a/backend/app.pid b/backend/app.pid new file mode 100644 index 00000000..92e114d3 --- /dev/null +++ b/backend/app.pid @@ -0,0 +1 @@ +40304 diff --git a/backend/app/api/__init__.py b/backend/app/api/__init__.py index 8c318f7d..72153387 100644 --- a/backend/app/api/__init__.py +++ b/backend/app/api/__init__.py @@ -33,6 +33,7 @@ from app.api.env_detect import router as env_detect_router from app.api.cleanroom_garment import router as cleanroom_garment_router from app.api.market import router as market_router from app.api.pre_transit_sample import router as pre_transit_sample_router +from app.api.oa_approval import router as oa_approval_router __all__ = [ "public_router", @@ -69,4 +70,5 @@ __all__ = [ "cleanroom_garment_router", "market_router", "pre_transit_sample_router", + "oa_approval_router", ] diff --git a/backend/app/api/admin.py b/backend/app/api/admin.py index 4b14f8fd..ec6ae0aa 100644 --- a/backend/app/api/admin.py +++ b/backend/app/api/admin.py @@ -250,6 +250,7 @@ class UserCreateBody(BaseModel): nick_name: str = Field(..., alias="nickName") password: str = Field(..., alias="password") dept_id: Optional[str] = Field(None, alias="deptId") + supervisor_user_id: Optional[str] = Field(None, alias="supervisorUserId") email: Optional[str] = Field("", alias="email") phone_no: Optional[str] = Field("", alias="phoneNo") sex: Optional[str] = Field("0", alias="sex") @@ -265,6 +266,7 @@ class UserUpdateBody(BaseModel): model_config = ConfigDict(populate_by_name=True) nick_name: Optional[str] = Field(None, alias="nickName") dept_id: Optional[str] = Field(None, alias="deptId") + supervisor_user_id: Optional[str] = Field(None, alias="supervisorUserId") email: Optional[str] = Field(None, alias="email") phone_no: Optional[str] = Field(None, alias="phoneNo") sex: Optional[str] = Field(None, alias="sex") @@ -373,6 +375,7 @@ async def create_user( nick_name=body.nick_name, password=body.password, dept_id=body.dept_id, + supervisor_user_id=body.supervisor_user_id, email=body.email, phone_no=body.phone_no, sex=body.sex, @@ -404,6 +407,7 @@ async def update_user( user_id, nick_name=payload.get("nick_name"), dept_id=payload.get("dept_id"), + supervisor_user_id=payload.get("supervisor_user_id"), email=payload.get("email"), phone_no=payload.get("phone_no"), sex=payload.get("sex"), @@ -670,6 +674,7 @@ class DeptCreateBody(BaseModel): status: Optional[str] = Field("1") leader: Optional[str] = None leader_phone: Optional[str] = Field(None, alias="leaderPhone") + leader_user_id: Optional[str] = Field(None, alias="leaderUserId") order_num: Optional[int] = Field(0, alias="orderNum") remark: Optional[str] = None @@ -682,6 +687,7 @@ class DeptUpdateBody(BaseModel): status: Optional[str] = None leader: Optional[str] = None leader_phone: Optional[str] = Field(None, alias="leaderPhone") + leader_user_id: Optional[str] = Field(None, alias="leaderUserId") order_num: Optional[int] = Field(None, alias="orderNum") remark: Optional[str] = None @@ -713,6 +719,7 @@ async def create_dept( status=body.status, leader=body.leader, leader_phone=body.leader_phone, + leader_user_id=body.leader_user_id, tenant_no=tenant_no, order_num=body.order_num, remark=body.remark, @@ -740,6 +747,7 @@ async def update_dept( status=payload.get("status"), leader=payload.get("leader"), leader_phone=payload.get("leader_phone"), + leader_user_id=payload.get("leader_user_id"), order_num=payload.get("order_num"), remark=payload.get("remark"), user_id=user.get("user_id"), diff --git a/backend/app/api/menu.py b/backend/app/api/menu.py index 82fa01ff..dfd8b65b 100644 --- a/backend/app/api/menu.py +++ b/backend/app/api/menu.py @@ -850,7 +850,95 @@ STATIC_MENU_TREE = [ }, ], }, - # 工作流管理 + # OA审批(钉钉交互) + { + "id": "OA000000000000000000000000000001", + "name": "OaApproval", + "path": "oa-approval", + "component": "", + "meta": { + "title": "OA审批", + "icon": "ri:auction-line", + "keepAlive": False, + "roles": ["admin"], + }, + "children": [ + { + "id": "OA000000000000000000000000000101", + "name": "OaApprovalApps", + "path": "apps", + "component": "/oa-approval/apps/index", + "meta": {"title": "审批管理", "keepAlive": True, "menuCode": "oa:apps:list"}, + }, + { + "id": "OA000000000000000000000000000102", + "name": "OaApprovalRoles", + "path": "roles", + "component": "/oa-approval/roles/index", + "meta": {"title": "工作流角色", "keepAlive": True, "menuCode": "oa:roles:list"}, + }, + { + "id": "OA000000000000000000000000000103", + "name": "OaApprovalStart", + "path": "start", + "component": "/oa-approval/start/index", + "meta": {"title": "发起审批", "keepAlive": True, "menuCode": "oa:start"}, + }, + { + "id": "OA000000000000000000000000000104", + "name": "OaApprovalPending", + "path": "pending", + "component": "/oa-approval/pending/index", + "meta": {"title": "待处理", "keepAlive": True, "menuCode": "oa:pending"}, + }, + { + "id": "OA000000000000000000000000000105", + "name": "OaApprovalDone", + "path": "done", + "component": "/oa-approval/done/index", + "meta": {"title": "已处理", "keepAlive": True, "menuCode": "oa:done"}, + }, + { + "id": "OA000000000000000000000000000106", + "name": "OaApprovalMine", + "path": "mine", + "component": "/oa-approval/mine/index", + "meta": {"title": "我发起的", "keepAlive": True, "menuCode": "oa:mine"}, + }, + { + "id": "OA000000000000000000000000000107", + "name": "OaApprovalCc", + "path": "cc", + "component": "/oa-approval/cc/index", + "meta": {"title": "抄送我的", "keepAlive": True, "menuCode": "oa:cc"}, + }, + { + "id": "OA000000000000000000000000000201", + "name": "OaApprovalDesigner", + "path": "designer/:id", + "component": "/oa-approval/designer/index", + "meta": { + "title": "审批设计", + "keepAlive": False, + "isHide": True, + "menuCode": "oa:designer", + }, + }, + { + "id": "OA000000000000000000000000000202", + "name": "OaApprovalInstanceDetail", + "path": "instances/:id", + "component": "/oa-approval/instances/detail", + "meta": { + "title": "审批详情", + "keepAlive": False, + "isHide": True, + "menuCode": "oa:instance:detail", + }, + }, + ], + }, + # 旧工作流管理(侧栏隐藏) { "id": "WKF00000000000000000000000000001", "name": "Workflow", @@ -860,6 +948,7 @@ STATIC_MENU_TREE = [ "title": "工作流管理", "icon": "workflow", "keepAlive": False, + "isHide": True, "roles": ["admin"], }, "children": [ @@ -868,35 +957,60 @@ STATIC_MENU_TREE = [ "name": "WorkflowProcess", "path": "process", "component": "/system/workflow/process/index", - "meta": {"title": "流程配置", "keepAlive": True, "menuCode": "workflow:process"}, + "meta": { + "title": "流程配置", + "keepAlive": True, + "isHide": True, + "menuCode": "workflow:process", + }, }, { "id": "10000000000000000000000000000wf02", "name": "WorkflowPending", "path": "pending", "component": "/system/workflow/task-pending/index", - "meta": {"title": "待办中心", "keepAlive": True, "menuCode": "workflow:pending"}, + "meta": { + "title": "待办中心", + "keepAlive": True, + "isHide": True, + "menuCode": "workflow:pending", + }, }, { "id": "10000000000000000000000000000wf03", "name": "WorkflowCompleted", "path": "completed", "component": "/system/workflow/task-completed/index", - "meta": {"title": "已办中心", "keepAlive": True, "menuCode": "workflow:completed"}, + "meta": { + "title": "已办中心", + "keepAlive": True, + "isHide": True, + "menuCode": "workflow:completed", + }, }, { "id": "10000000000000000000000000000wf05", "name": "WorkflowMyApplications", "path": "my-applications", "component": "/system/workflow/my-applications/index", - "meta": {"title": "我的申请", "keepAlive": True, "menuCode": "workflow:myApplications"}, + "meta": { + "title": "我的申请", + "keepAlive": True, + "isHide": True, + "menuCode": "workflow:myApplications", + }, }, { "id": "10000000000000000000000000000wf04", "name": "LeaveRequest", "path": "leave", "component": "/system/leave/index", - "meta": {"title": "请假申请", "keepAlive": True, "menuCode": "workflow:leave"}, + "meta": { + "title": "请假申请", + "keepAlive": True, + "isHide": True, + "menuCode": "workflow:leave", + }, }, ], }, diff --git a/backend/app/crud/dept.py b/backend/app/crud/dept.py index 49ca5aa3..0671d229 100644 --- a/backend/app/crud/dept.py +++ b/backend/app/crud/dept.py @@ -17,6 +17,7 @@ def _row_to_dict(d: SysDept) -> Dict[str, Any]: "deptName": d.dept_name, "deptCategoryCode": d.dept_category_code or "", "status": d.status, + "leaderUserId": d.leader_user_id or "", "leader": d.leader or "", "leaderPhone": d.leader_phone or "", "tenantNo": d.tenant_no, @@ -111,6 +112,7 @@ def create_dept( status: Optional[str] = "1", leader: Optional[str] = None, leader_phone: Optional[str] = None, + leader_user_id: Optional[str] = None, tenant_no: Optional[str] = None, order_num: Optional[int] = None, remark: Optional[str] = None, @@ -125,6 +127,7 @@ def create_dept( dept_name=name, dept_category_code=(dept_category_code or "").strip() or None, status=status or "1", + leader_user_id=(leader_user_id or "").strip() or None, leader=(leader or "").strip() or None, leader_phone=(leader_phone or "").strip() or None, tenant_no=tenant_no or "zkxw", @@ -152,6 +155,7 @@ def update_dept( status: Optional[str] = None, leader: Optional[str] = None, leader_phone: Optional[str] = None, + leader_user_id: Optional[str] = None, order_num: Optional[int] = None, remark: Optional[str] = None, user_id: Optional[str] = None, @@ -165,6 +169,8 @@ def update_dept( obj.dept_category_code = (dept_category_code or "").strip() or None if status is not None: obj.status = status + if leader_user_id is not None: + obj.leader_user_id = (leader_user_id or "").strip() or None if leader is not None: obj.leader = (leader or "").strip() or None if leader_phone is not None: diff --git a/backend/app/crud/user.py b/backend/app/crud/user.py index f1c0edd7..512a789e 100644 --- a/backend/app/crud/user.py +++ b/backend/app/crud/user.py @@ -39,6 +39,7 @@ def _row_to_dict(u: SysUser, dept_name: str = "") -> Dict[str, Any]: return { "id": u.id, "deptId": u.dept_id or "", + "supervisorUserId": getattr(u, "supervisor_user_id", None) or "", "userNo": u.user_no, "nickName": u.nick_name, "email": u.email or "", @@ -302,6 +303,7 @@ def create_user( user_id: Optional[str] = None, role_ids: Optional[List[str]] = None, post_ids: Optional[List[str]] = None, + supervisor_user_id: Optional[str] = None, ) -> SysUser: un = (user_no or "").strip() if not un: @@ -316,6 +318,7 @@ def create_user( obj = SysUser( id=generate_uuid(), dept_id=dept_id or None, + supervisor_user_id=(supervisor_user_id or "").strip() or None, user_no=un, nick_name=nn, email=(email or "").strip(), @@ -359,6 +362,7 @@ def update_user( user_id_updater: Optional[str] = None, role_ids: Optional[List[str]] = None, post_ids: Optional[List[str]] = None, + supervisor_user_id: Optional[str] = None, ) -> SysUser: obj = get_user(db, user_id) if not obj: @@ -368,6 +372,8 @@ def update_user( obj.nick_name = (nick_name or "").strip() or obj.nick_name if dept_id is not None: obj.dept_id = dept_id or None + if supervisor_user_id is not None: + obj.supervisor_user_id = (supervisor_user_id or "").strip() or None if email is not None: obj.email = (email or "").strip() if phone_no is not None: diff --git a/backend/app/graphify-out/cache/ast/02112249e7a9e618ba1cff6d4d0a1a772d15712f6072da2b19188849be0dc162.json b/backend/app/graphify-out/cache/ast/02112249e7a9e618ba1cff6d4d0a1a772d15712f6072da2b19188849be0dc162.json new file mode 100644 index 00000000..c94c533e --- /dev/null +++ b/backend/app/graphify-out/cache/ast/02112249e7a9e618ba1cff6d4d0a1a772d15712f6072da2b19188849be0dc162.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "label": "oa_publish.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L1"}, {"id": "services_oa_publish_extract_rules", "label": "_extract_rules()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L76"}, {"id": "services_oa_publish_walk_form_rules", "label": "_walk_form_rules()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L91"}, {"id": "services_oa_publish_count_fillable_fields", "label": "count_fillable_fields()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L99"}, {"id": "services_oa_publish_node_type", "label": "_node_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L113"}, {"id": "services_oa_publish_validate_flow_tree", "label": "validate_flow_tree()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L117"}, {"id": "services_oa_publish_validate_oa_roles_referenced", "label": "validate_oa_roles_referenced()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L204"}, {"id": "services_oa_publish_validate_control_types", "label": "validate_control_types()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L273"}, {"id": "services_oa_publish_validate_draft_for_publish", "label": "validate_draft_for_publish()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L289"}, {"id": "services_oa_publish_publish_app", "label": "publish_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L312"}, {"id": "services_oa_publish_rationale_319", "label": "\u6821\u9a8c\u5e76\u53d1\u5e03\u5f53\u524d\u8349\u7a3f\u3002 \u6210\u529f\u8fd4\u56de (draft_dict_like_published_info, [])\uff1b \u5931\u8d25\u8fd4\u56de ({}, errors)\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L319"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_extract_rules", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L76", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_walk_form_rules", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L91", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_count_fillable_fields", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L99", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_node_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L113", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_validate_flow_tree", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L117", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_validate_oa_roles_referenced", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L204", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_validate_control_types", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L273", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_validate_draft_for_publish", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L289", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_publish_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L312", "weight": 1.0}, {"source": "services_oa_publish_count_fillable_fields", "target": "services_oa_publish_walk_form_rules", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L101", "weight": 1.0}, {"source": "services_oa_publish_count_fillable_fields", "target": "services_oa_publish_extract_rules", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L101", "weight": 1.0}, {"source": "services_oa_publish_validate_flow_tree", "target": "services_oa_publish_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L127", "weight": 1.0}, {"source": "services_oa_publish_validate_control_types", "target": "services_oa_publish_walk_form_rules", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L275", "weight": 1.0}, {"source": "services_oa_publish_validate_control_types", "target": "services_oa_publish_extract_rules", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L275", "weight": 1.0}, {"source": "services_oa_publish_validate_draft_for_publish", "target": "services_oa_publish_count_fillable_fields", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L304", "weight": 1.0}, {"source": "services_oa_publish_validate_draft_for_publish", "target": "services_oa_publish_validate_control_types", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L306", "weight": 1.0}, {"source": "services_oa_publish_validate_draft_for_publish", "target": "services_oa_publish_validate_flow_tree", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L307", "weight": 1.0}, {"source": "services_oa_publish_validate_draft_for_publish", "target": "services_oa_publish_validate_oa_roles_referenced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L308", "weight": 1.0}, {"source": "services_oa_publish_publish_app", "target": "services_oa_publish_validate_draft_for_publish", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L333", "weight": 1.0}, {"source": "services_oa_publish_rationale_319", "target": "services_oa_publish_publish_app", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L319", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_publish_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L79"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L80"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L81"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L82"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L82"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L82"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L83"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L84"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L86"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L86"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L93"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L94"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L94"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L94"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L95"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L96"}, {"caller_nid": "services_oa_publish_count_fillable_fields", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L104"}, {"caller_nid": "services_oa_publish_count_fillable_fields", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L104"}, {"caller_nid": "services_oa_publish_count_fillable_fields", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L107"}, {"caller_nid": "services_oa_publish_count_fillable_fields", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L107"}, {"caller_nid": "services_oa_publish_node_type", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L114"}, {"caller_nid": "services_oa_publish_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L114"}, {"caller_nid": "services_oa_publish_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L114"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L119"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L124"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L128"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "walk", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L198"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L198"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L200"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L207"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L208"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L231"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L231"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L231"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "collect", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L233"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L233"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L238"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L238"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L238"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L240"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L240"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L248"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L250"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L252"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L255"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L255"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L255"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L257"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L257"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L263"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L265"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L267"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L269"}, {"caller_nid": "services_oa_publish_validate_control_types", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L277"}, {"caller_nid": "services_oa_publish_validate_control_types", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L279"}, {"caller_nid": "services_oa_publish_validate_control_types", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L279"}, {"caller_nid": "services_oa_publish_validate_control_types", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L283"}, {"caller_nid": "services_oa_publish_validate_control_types", "callee": "sorted", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L284"}, {"caller_nid": "services_oa_publish_validate_control_types", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L285"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L299"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L300"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L300"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L305"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "extend", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L306"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "extend", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L307"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "extend", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L308"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L324"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L327"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "get_or_create_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L330"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L331"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L332"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L338"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "_find_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L343"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L351"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L353"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L353"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L353"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L366"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L372"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L376"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L376"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L376"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L390"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L394"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L395"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L396"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/04ad0d56964c6cb8b2d608454e176597d7716144ebe2ceb560534b6f0e6514fb.json b/backend/app/graphify-out/cache/ast/04ad0d56964c6cb8b2d608454e176597d7716144ebe2ceb560534b6f0e6514fb.json new file mode 100644 index 00000000..0bc2af31 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/04ad0d56964c6cb8b2d608454e176597d7716144ebe2ceb560534b6f0e6514fb.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_formula_py", "label": "oa_formula.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L1"}, {"id": "services_oa_formula_formulaerror", "label": "FormulaError", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L32"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "services_oa_formula_to_number", "label": "_to_number()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L36"}, {"id": "services_oa_formula_truthy", "label": "_truthy()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L56"}, {"id": "services_oa_formula_preprocess_formula", "label": "preprocess_formula()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L68"}, {"id": "services_oa_formula_safeeval", "label": "_SafeEval", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L76"}, {"id": "services_oa_formula_safeeval_init", "label": ".__init__()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L77"}, {"id": "services_oa_formula_safeeval_visit", "label": ".visit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L80"}, {"id": "services_oa_formula_safeeval_visit_expression", "label": ".visit_Expression()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L87"}, {"id": "services_oa_formula_safeeval_visit_constant", "label": ".visit_Constant()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L90"}, {"id": "services_oa_formula_safeeval_visit_num", "label": ".visit_Num()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L96"}, {"id": "services_oa_formula_safeeval_visit_str", "label": ".visit_Str()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L99"}, {"id": "services_oa_formula_safeeval_visit_nameconstant", "label": ".visit_NameConstant()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L102"}, {"id": "services_oa_formula_safeeval_visit_name", "label": ".visit_Name()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L105"}, {"id": "services_oa_formula_safeeval_visit_unaryop", "label": ".visit_UnaryOp()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L114"}, {"id": "services_oa_formula_safeeval_visit_binop", "label": ".visit_BinOp()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L124"}, {"id": "services_oa_formula_safeeval_visit_compare", "label": ".visit_Compare()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L136"}, {"id": "services_oa_formula_safeeval_visit_boolop", "label": ".visit_BoolOp()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L154"}, {"id": "services_oa_formula_safeeval_visit_ifexp", "label": ".visit_IfExp()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L169"}, {"id": "services_oa_formula_safeeval_visit_call", "label": ".visit_Call()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L172"}, {"id": "services_oa_formula_safeeval_visit_list", "label": ".visit_List()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L198"}, {"id": "services_oa_formula_eval_formula", "label": "eval_formula()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L202"}, {"id": "services_oa_formula_extract_rules", "label": "_extract_rules()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L211"}, {"id": "services_oa_formula_walk_rules", "label": "_walk_rules()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L221"}, {"id": "services_oa_formula_apply_formulas_and_linkages", "label": "apply_formulas_and_linkages()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L229"}, {"id": "services_oa_formula_rationale_1", "label": "OA \u8868\u5355\u516c\u5f0f\u4e0e\u6570\u636e\u8054\u52a8\uff08\u7981\u6b62\u4efb\u610f eval\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L1"}, {"id": "services_oa_formula_rationale_69", "label": "\u5c06 {field} \u8f6c\u4e3a\u5408\u6cd5\u6807\u8bc6\u7b26\u5f15\u7528 field\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L69"}, {"id": "services_oa_formula_rationale_232", "label": "\u6309 schema \u4e2d\u5b57\u6bb5 props.formula / props.linkage \u56de\u586b form_data\u3002 linkage \u793a\u4f8b: { \"when", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L232"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_formula_py", "target": "ast", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_formula_py", "target": "operator", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_formula_py", "target": "re", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_formula_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_formula_py", "target": "services_oa_formula_formulaerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L32", "weight": 1.0}, {"source": "services_oa_formula_formulaerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_formula_py", "target": "services_oa_formula_to_number", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_formula_py", "target": "services_oa_formula_truthy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L56", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_formula_py", "target": "services_oa_formula_preprocess_formula", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L68", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_formula_py", "target": "services_oa_formula_safeeval", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L76", "weight": 1.0}, {"source": "services_oa_formula_safeeval", "target": "services_oa_formula_safeeval_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L77", "weight": 1.0}, {"source": "services_oa_formula_safeeval", "target": "services_oa_formula_safeeval_visit", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L80", "weight": 1.0}, {"source": "services_oa_formula_safeeval", "target": "services_oa_formula_safeeval_visit_expression", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L87", "weight": 1.0}, {"source": "services_oa_formula_safeeval", "target": "services_oa_formula_safeeval_visit_constant", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L90", "weight": 1.0}, {"source": "services_oa_formula_safeeval", "target": "services_oa_formula_safeeval_visit_num", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L96", "weight": 1.0}, {"source": "services_oa_formula_safeeval", "target": "services_oa_formula_safeeval_visit_str", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L99", "weight": 1.0}, {"source": "services_oa_formula_safeeval", "target": "services_oa_formula_safeeval_visit_nameconstant", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L102", "weight": 1.0}, {"source": "services_oa_formula_safeeval", "target": "services_oa_formula_safeeval_visit_name", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L105", "weight": 1.0}, {"source": "services_oa_formula_safeeval", "target": "services_oa_formula_safeeval_visit_unaryop", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L114", "weight": 1.0}, {"source": "services_oa_formula_safeeval", "target": "services_oa_formula_safeeval_visit_binop", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L124", "weight": 1.0}, {"source": "services_oa_formula_safeeval", "target": "services_oa_formula_safeeval_visit_compare", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L136", "weight": 1.0}, {"source": "services_oa_formula_safeeval", "target": "services_oa_formula_safeeval_visit_boolop", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L154", "weight": 1.0}, {"source": "services_oa_formula_safeeval", "target": "services_oa_formula_safeeval_visit_ifexp", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L169", "weight": 1.0}, {"source": "services_oa_formula_safeeval", "target": "services_oa_formula_safeeval_visit_call", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L172", "weight": 1.0}, {"source": "services_oa_formula_safeeval", "target": "services_oa_formula_safeeval_visit_list", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L198", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_formula_py", "target": "services_oa_formula_eval_formula", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L202", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_formula_py", "target": "services_oa_formula_extract_rules", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L211", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_formula_py", "target": "services_oa_formula_walk_rules", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L221", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_formula_py", "target": "services_oa_formula_apply_formulas_and_linkages", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L229", "weight": 1.0}, {"source": "services_oa_formula_to_number", "target": "services_oa_formula_formulaerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L52", "weight": 1.0}, {"source": "services_oa_formula_preprocess_formula", "target": "services_oa_formula_formulaerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L72", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit", "target": "services_oa_formula_formulaerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L84", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_expression", "target": "services_oa_formula_safeeval_visit", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L88", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_constant", "target": "services_oa_formula_formulaerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L93", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_name", "target": "services_oa_formula_formulaerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L107", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_unaryop", "target": "services_oa_formula_safeeval_visit", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L115", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_unaryop", "target": "services_oa_formula_to_number", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L117", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_unaryop", "target": "services_oa_formula_truthy", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L121", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_unaryop", "target": "services_oa_formula_formulaerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L122", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_binop", "target": "services_oa_formula_formulaerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L127", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_binop", "target": "services_oa_formula_to_number", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L128", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_binop", "target": "services_oa_formula_safeeval_visit", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L128", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_compare", "target": "services_oa_formula_safeeval_visit", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L137", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_compare", "target": "services_oa_formula_formulaerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L141", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_compare", "target": "services_oa_formula_to_number", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L145", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_boolop", "target": "services_oa_formula_truthy", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L158", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_boolop", "target": "services_oa_formula_safeeval_visit", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L158", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_boolop", "target": "services_oa_formula_formulaerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L167", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_ifexp", "target": "services_oa_formula_safeeval_visit", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L170", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_ifexp", "target": "services_oa_formula_truthy", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L170", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_call", "target": "services_oa_formula_formulaerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L174", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_call", "target": "services_oa_formula_safeeval_visit", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L178", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_call", "target": "services_oa_formula_truthy", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L182", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_call", "target": "services_oa_formula_to_number", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L188", "weight": 1.0}, {"source": "services_oa_formula_safeeval_visit_list", "target": "services_oa_formula_safeeval_visit", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L199", "weight": 1.0}, {"source": "services_oa_formula_eval_formula", "target": "services_oa_formula_preprocess_formula", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L203", "weight": 1.0}, {"source": "services_oa_formula_eval_formula", "target": "services_oa_formula_formulaerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L207", "weight": 1.0}, {"source": "services_oa_formula_eval_formula", "target": "services_oa_formula_safeeval_visit", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L208", "weight": 1.0}, {"source": "services_oa_formula_eval_formula", "target": "services_oa_formula_safeeval", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L208", "weight": 1.0}, {"source": "services_oa_formula_apply_formulas_and_linkages", "target": "services_oa_formula_walk_rules", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L239", "weight": 1.0}, {"source": "services_oa_formula_apply_formulas_and_linkages", "target": "services_oa_formula_extract_rules", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L239", "weight": 1.0}, {"source": "services_oa_formula_apply_formulas_and_linkages", "target": "services_oa_formula_eval_formula", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L252", "weight": 1.0}, {"source": "services_oa_formula_apply_formulas_and_linkages", "target": "services_oa_formula_truthy", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L275", "weight": 1.0}, {"source": "services_oa_formula_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_formula_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L1", "weight": 1.0}, {"source": "services_oa_formula_rationale_69", "target": "services_oa_formula_preprocess_formula", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L69", "weight": 1.0}, {"source": "services_oa_formula_rationale_232", "target": "services_oa_formula_apply_formulas_and_linkages", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L232", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_formula_to_number", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L39"}, {"caller_nid": "services_oa_formula_to_number", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L40"}, {"caller_nid": "services_oa_formula_to_number", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L41"}, {"caller_nid": "services_oa_formula_to_number", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L43"}, {"caller_nid": "services_oa_formula_to_number", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L44"}, {"caller_nid": "services_oa_formula_to_number", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L49"}, {"caller_nid": "services_oa_formula_to_number", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L50"}, {"caller_nid": "services_oa_formula_to_number", "callee": "type", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L53"}, {"caller_nid": "services_oa_formula_truthy", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L59"}, {"caller_nid": "services_oa_formula_truthy", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L61"}, {"caller_nid": "services_oa_formula_truthy", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L62"}, {"caller_nid": "services_oa_formula_truthy", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L63"}, {"caller_nid": "services_oa_formula_truthy", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L64"}, {"caller_nid": "services_oa_formula_truthy", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L65"}, {"caller_nid": "services_oa_formula_preprocess_formula", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L70"}, {"caller_nid": "services_oa_formula_preprocess_formula", "callee": "sub", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L73"}, {"caller_nid": "services_oa_formula_safeeval_visit", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L82"}, {"caller_nid": "services_oa_formula_safeeval_visit", "callee": "visitor", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L85"}, {"caller_nid": "services_oa_formula_safeeval_visit_constant", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L91"}, {"caller_nid": "services_oa_formula_safeeval_visit_name", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L106"}, {"caller_nid": "services_oa_formula_safeeval_visit_name", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L111"}, {"caller_nid": "services_oa_formula_safeeval_visit_name", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L112"}, {"caller_nid": "services_oa_formula_safeeval_visit_unaryop", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L116"}, {"caller_nid": "services_oa_formula_safeeval_visit_unaryop", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L118"}, {"caller_nid": "services_oa_formula_safeeval_visit_unaryop", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L120"}, {"caller_nid": "services_oa_formula_safeeval_visit_binop", "callee": "type", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L125"}, {"caller_nid": "services_oa_formula_safeeval_visit_binop", "callee": "_BIN_OPS[op_type]", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L134"}, {"caller_nid": "services_oa_formula_safeeval_visit_compare", "callee": "zip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L138"}, {"caller_nid": "services_oa_formula_safeeval_visit_compare", "callee": "type", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L139"}, {"caller_nid": "services_oa_formula_safeeval_visit_compare", "callee": "_CMP_OPS[op_type]", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L146"}, {"caller_nid": "services_oa_formula_safeeval_visit_compare", "callee": "_CMP_OPS[op_type]", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L148"}, {"caller_nid": "services_oa_formula_safeeval_visit_boolop", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L155"}, {"caller_nid": "services_oa_formula_safeeval_visit_boolop", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L162"}, {"caller_nid": "services_oa_formula_safeeval_visit_call", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L173"}, {"caller_nid": "services_oa_formula_safeeval_visit_call", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L175"}, {"caller_nid": "services_oa_formula_safeeval_visit_call", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L180"}, {"caller_nid": "services_oa_formula_safeeval_visit_call", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L186"}, {"caller_nid": "services_oa_formula_safeeval_visit_call", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L193"}, {"caller_nid": "services_oa_formula_safeeval_visit_call", "callee": "abs", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L195"}, {"caller_nid": "services_oa_formula_eval_formula", "callee": "parse", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L205"}, {"caller_nid": "services_oa_formula_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L212"}, {"caller_nid": "services_oa_formula_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L213"}, {"caller_nid": "services_oa_formula_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L214"}, {"caller_nid": "services_oa_formula_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L215"}, {"caller_nid": "services_oa_formula_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L215"}, {"caller_nid": "services_oa_formula_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L215"}, {"caller_nid": "services_oa_formula_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L216"}, {"caller_nid": "services_oa_formula_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L217"}, {"caller_nid": "services_oa_formula_walk_rules", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L223"}, {"caller_nid": "services_oa_formula_walk_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L224"}, {"caller_nid": "services_oa_formula_walk_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L225"}, {"caller_nid": "services_oa_formula_walk_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L226"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L237"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "range", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L242"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L245"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L248"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L249"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L249"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L252"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L255"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L262"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L263"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L263"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L266"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L268"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L270"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L270"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L271"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L271"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L275"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L278"}, {"caller_nid": "services_oa_formula_apply_formulas_and_linkages", "callee": "items", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_formula.py", "source_location": "L279"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/05c0231590282d8c729306e1617a3fec9cb4c22419cab080ff1fe280dedc316d.json b/backend/app/graphify-out/cache/ast/05c0231590282d8c729306e1617a3fec9cb4c22419cab080ff1fe280dedc316d.json new file mode 100644 index 00000000..c725edf9 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/05c0231590282d8c729306e1617a3fec9cb4c22419cab080ff1fe280dedc316d.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "label": "oa_approval.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L1"}, {"id": "crud_oa_approval_dumps", "label": "_dumps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L24"}, {"id": "crud_oa_approval_loads", "label": "_loads()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L32"}, {"id": "crud_oa_approval_role_to_dict", "label": "_role_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L48"}, {"id": "crud_oa_approval_ensure_presets", "label": "ensure_presets()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L64"}, {"id": "crud_oa_approval_member_count_map", "label": "_member_count_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L105"}, {"id": "crud_oa_approval_list_roles", "label": "list_roles()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L123"}, {"id": "crud_oa_approval_get_role", "label": "get_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L143"}, {"id": "crud_oa_approval_create_role", "label": "create_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L151"}, {"id": "crud_oa_approval_update_role", "label": "update_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L200"}, {"id": "crud_oa_approval_delete_role", "label": "delete_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L233"}, {"id": "crud_oa_approval_list_role_users", "label": "list_role_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L246"}, {"id": "crud_oa_approval_replace_role_users", "label": "replace_role_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L270"}, {"id": "crud_oa_approval_list_oa_role_user_ids", "label": "list_oa_role_user_ids()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L321"}, {"id": "crud_oa_approval_group_to_dict", "label": "_group_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L360"}, {"id": "crud_oa_approval_list_groups", "label": "list_groups()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L372"}, {"id": "crud_oa_approval_get_group", "label": "get_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L382"}, {"id": "crud_oa_approval_create_group", "label": "create_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L390"}, {"id": "crud_oa_approval_update_group", "label": "update_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L422"}, {"id": "crud_oa_approval_delete_group", "label": "delete_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L452"}, {"id": "crud_oa_approval_app_to_dict", "label": "_app_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L475"}, {"id": "crud_oa_approval_get_app", "label": "get_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L498"}, {"id": "crud_oa_approval_list_apps", "label": "list_apps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L506"}, {"id": "crud_oa_approval_create_version", "label": "_create_version()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L566"}, {"id": "crud_oa_approval_create_app", "label": "create_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L603"}, {"id": "crud_oa_approval_update_app", "label": "update_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L667"}, {"id": "crud_oa_approval_delete_app", "label": "delete_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L729"}, {"id": "crud_oa_approval_find_draft", "label": "_find_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L750"}, {"id": "crud_oa_approval_find_latest_published", "label": "_find_latest_published()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L764"}, {"id": "crud_oa_approval_version_draft_to_dict", "label": "_version_draft_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L777"}, {"id": "crud_oa_approval_get_or_create_draft", "label": "get_or_create_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L810"}, {"id": "crud_oa_approval_save_draft", "label": "save_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L857"}, {"id": "crud_oa_approval_rationale_1", "label": "OA \u5ba1\u6279 CRUD\uff08\u5de5\u4f5c\u6d41\u89d2\u8272\u3001\u5206\u7ec4\u3001\u5e94\u7528\u3001\u8349\u7a3f\u7b49\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L1"}, {"id": "crud_oa_approval_rationale_65", "label": "\u5e42\u7b49\u5199\u5165\u9884\u7f6e\u89d2\u8272 GM / CHAIRMAN\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L65"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_dumps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_loads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_role_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L48", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_ensure_presets", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L64", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_member_count_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L105", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_list_roles", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L123", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_get_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L143", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_create_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L151", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_update_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L200", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_delete_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L233", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_list_role_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L246", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_replace_role_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L270", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_list_oa_role_user_ids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L321", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_group_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L360", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_list_groups", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L372", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_get_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L382", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_create_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L390", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_update_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L422", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_delete_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L452", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_app_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L475", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_get_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L498", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_list_apps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L506", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_create_version", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L566", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_create_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L603", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_update_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L667", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_delete_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L729", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_find_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L750", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_find_latest_published", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L764", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_version_draft_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L777", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_get_or_create_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L810", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_save_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L857", "weight": 1.0}, {"source": "crud_oa_approval_list_roles", "target": "crud_oa_approval_ensure_presets", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L130", "weight": 1.0}, {"source": "crud_oa_approval_list_roles", "target": "crud_oa_approval_member_count_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L139", "weight": 1.0}, {"source": "crud_oa_approval_list_roles", "target": "crud_oa_approval_role_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L140", "weight": 1.0}, {"source": "crud_oa_approval_update_role", "target": "crud_oa_approval_get_role", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L211", "weight": 1.0}, {"source": "crud_oa_approval_delete_role", "target": "crud_oa_approval_get_role", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L234", "weight": 1.0}, {"source": "crud_oa_approval_replace_role_users", "target": "crud_oa_approval_get_role", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L278", "weight": 1.0}, {"source": "crud_oa_approval_list_groups", "target": "crud_oa_approval_group_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L379", "weight": 1.0}, {"source": "crud_oa_approval_update_group", "target": "crud_oa_approval_get_group", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L432", "weight": 1.0}, {"source": "crud_oa_approval_delete_group", "target": "crud_oa_approval_get_group", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L453", "weight": 1.0}, {"source": "crud_oa_approval_app_to_dict", "target": "crud_oa_approval_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L484", "weight": 1.0}, {"source": "crud_oa_approval_list_apps", "target": "crud_oa_approval_app_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L556", "weight": 1.0}, {"source": "crud_oa_approval_create_version", "target": "crud_oa_approval_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L586", "weight": 1.0}, {"source": "crud_oa_approval_create_app", "target": "crud_oa_approval_get_group", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L626", "weight": 1.0}, {"source": "crud_oa_approval_create_app", "target": "crud_oa_approval_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L636", "weight": 1.0}, {"source": "crud_oa_approval_create_app", "target": "crud_oa_approval_create_version", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L651", "weight": 1.0}, {"source": "crud_oa_approval_update_app", "target": "crud_oa_approval_get_app", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L685", "weight": 1.0}, {"source": "crud_oa_approval_update_app", "target": "crud_oa_approval_get_group", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L697", "weight": 1.0}, {"source": "crud_oa_approval_update_app", "target": "crud_oa_approval_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L710", "weight": 1.0}, {"source": "crud_oa_approval_delete_app", "target": "crud_oa_approval_get_app", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L730", "weight": 1.0}, {"source": "crud_oa_approval_version_draft_to_dict", "target": "crud_oa_approval_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L778", "weight": 1.0}, {"source": "crud_oa_approval_get_or_create_draft", "target": "crud_oa_approval_get_app", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L813", "weight": 1.0}, {"source": "crud_oa_approval_get_or_create_draft", "target": "crud_oa_approval_find_draft", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L816", "weight": 1.0}, {"source": "crud_oa_approval_get_or_create_draft", "target": "crud_oa_approval_version_draft_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L818", "weight": 1.0}, {"source": "crud_oa_approval_get_or_create_draft", "target": "crud_oa_approval_find_latest_published", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L819", "weight": 1.0}, {"source": "crud_oa_approval_get_or_create_draft", "target": "crud_oa_approval_create_version", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L822", "weight": 1.0}, {"source": "crud_oa_approval_get_or_create_draft", "target": "crud_oa_approval_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L828", "weight": 1.0}, {"source": "crud_oa_approval_save_draft", "target": "crud_oa_approval_get_app", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L868", "weight": 1.0}, {"source": "crud_oa_approval_save_draft", "target": "crud_oa_approval_get_or_create_draft", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L872", "weight": 1.0}, {"source": "crud_oa_approval_save_draft", "target": "crud_oa_approval_find_draft", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L873", "weight": 1.0}, {"source": "crud_oa_approval_save_draft", "target": "crud_oa_approval_update_app", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L892", "weight": 1.0}, {"source": "crud_oa_approval_save_draft", "target": "crud_oa_approval_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L899", "weight": 1.0}, {"source": "crud_oa_approval_save_draft", "target": "crud_oa_approval_version_draft_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L915", "weight": 1.0}, {"source": "crud_oa_approval_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L1", "weight": 1.0}, {"source": "crud_oa_approval_rationale_65", "target": "crud_oa_approval_ensure_presets", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L65", "weight": 1.0}], "raw_calls": [{"caller_nid": "crud_oa_approval_dumps", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L27"}, {"caller_nid": "crud_oa_approval_dumps", "callee": "dumps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L29"}, {"caller_nid": "crud_oa_approval_loads", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L35"}, {"caller_nid": "crud_oa_approval_loads", "callee": "loads", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L38"}, {"caller_nid": "crud_oa_approval_role_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L59"}, {"caller_nid": "crud_oa_approval_role_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L60"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L66"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L70"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L70"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L70"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "OaRole", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L80"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L81"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L96"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L97"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L99"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L101"}, {"caller_nid": "crud_oa_approval_member_count_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L109"}, {"caller_nid": "crud_oa_approval_member_count_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L109"}, {"caller_nid": "crud_oa_approval_member_count_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L109"}, {"caller_nid": "crud_oa_approval_member_count_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L111"}, {"caller_nid": "crud_oa_approval_member_count_map", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L119"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L131"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L131"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L132"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L135"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L135"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L135"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L137"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L138"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L138"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L138"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L138"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L138"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L140"}, {"caller_nid": "crud_oa_approval_get_role", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L145"}, {"caller_nid": "crud_oa_approval_get_role", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L145"}, {"caller_nid": "crud_oa_approval_get_role", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L145"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L162"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L163"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L163"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L165"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L167"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L169"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L171"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L171"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L171"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L176"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L177"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "OaRole", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L178"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L179"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L186"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L194"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L195"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L196"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L213"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L215"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L217"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L224"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L226"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L227"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L228"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L229"}, {"caller_nid": "crud_oa_approval_delete_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L236"}, {"caller_nid": "crud_oa_approval_delete_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L238"}, {"caller_nid": "crud_oa_approval_delete_role", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L241"}, {"caller_nid": "crud_oa_approval_delete_role", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L242"}, {"caller_nid": "crud_oa_approval_delete_role", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L243"}, {"caller_nid": "crud_oa_approval_list_role_users", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L248"}, {"caller_nid": "crud_oa_approval_list_role_users", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L248"}, {"caller_nid": "crud_oa_approval_list_role_users", "callee": "outerjoin", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L248"}, {"caller_nid": "crud_oa_approval_list_role_users", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L248"}, {"caller_nid": "crud_oa_approval_list_role_users", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L249"}, {"caller_nid": "crud_oa_approval_list_role_users", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L259"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L280"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L281"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L283"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L283"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L283"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L295"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L296"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L298"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L301"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L302"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "OaRoleUser", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L303"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L304"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L318"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L326"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L326"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L326"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L328"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L338"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L338"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L338"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L340"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L340"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L347"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L350"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L351"}, {"caller_nid": "crud_oa_approval_group_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L367"}, {"caller_nid": "crud_oa_approval_group_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L368"}, {"caller_nid": "crud_oa_approval_list_groups", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L374"}, {"caller_nid": "crud_oa_approval_list_groups", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L374"}, {"caller_nid": "crud_oa_approval_list_groups", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L374"}, {"caller_nid": "crud_oa_approval_list_groups", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L374"}, {"caller_nid": "crud_oa_approval_list_groups", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L376"}, {"caller_nid": "crud_oa_approval_list_groups", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L376"}, {"caller_nid": "crud_oa_approval_get_group", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L384"}, {"caller_nid": "crud_oa_approval_get_group", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L384"}, {"caller_nid": "crud_oa_approval_get_group", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L384"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L399"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L401"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L402"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "OaAppGroup", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L403"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L404"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L408"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L416"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L417"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L418"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L434"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L436"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L438"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L443"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L445"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L446"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L447"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L448"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L455"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L457"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L457"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L457"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L462"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L465"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L466"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L467"}, {"caller_nid": "crud_oa_approval_app_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L493"}, {"caller_nid": "crud_oa_approval_app_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L494"}, {"caller_nid": "crud_oa_approval_get_app", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L500"}, {"caller_nid": "crud_oa_approval_get_app", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L500"}, {"caller_nid": "crud_oa_approval_get_app", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L500"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L514"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L514"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L516"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L518"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L519"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L522"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L522"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L523"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L523"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L523"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L523"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L524"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L528"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L528"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L528"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L529"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L536"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L536"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L536"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L546"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L546"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L546"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L555"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L558"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L559"}, {"caller_nid": "crud_oa_approval_create_version", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L579"}, {"caller_nid": "crud_oa_approval_create_version", "callee": "OaAppVersion", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L580"}, {"caller_nid": "crud_oa_approval_create_version", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L581"}, {"caller_nid": "crud_oa_approval_create_version", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L599"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L620"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L622"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L623"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L624"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L625"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L627"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L628"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "OaApp", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L629"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L630"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L633"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L634"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L642"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L650"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L662"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L663"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L687"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L689"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L691"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L692"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L693"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L696"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L698"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L701"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L703"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L704"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L705"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L720"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L722"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L723"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L724"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L725"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L732"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L733"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L737"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L739"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L739"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L739"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L746"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L747"}, {"caller_nid": "crud_oa_approval_find_draft", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L752"}, {"caller_nid": "crud_oa_approval_find_draft", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L752"}, {"caller_nid": "crud_oa_approval_find_draft", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L752"}, {"caller_nid": "crud_oa_approval_find_draft", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L752"}, {"caller_nid": "crud_oa_approval_find_draft", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L759"}, {"caller_nid": "crud_oa_approval_find_latest_published", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L766"}, {"caller_nid": "crud_oa_approval_find_latest_published", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L766"}, {"caller_nid": "crud_oa_approval_find_latest_published", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L766"}, {"caller_nid": "crud_oa_approval_version_draft_to_dict", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L779"}, {"caller_nid": "crud_oa_approval_version_draft_to_dict", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L780"}, {"caller_nid": "crud_oa_approval_version_draft_to_dict", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L782"}, {"caller_nid": "crud_oa_approval_version_draft_to_dict", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L783"}, {"caller_nid": "crud_oa_approval_version_draft_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L806"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L815"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L835"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L835"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L835"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L835"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L837"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L852"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L853"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L870"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L875"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L896"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L897"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L903"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L904"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L905"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L911"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L912"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L913"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/0d4fef5d0aaba7324c22742e85ebb9ba5eddc42c29b8a325f6ff1db8d94b3762.json b/backend/app/graphify-out/cache/ast/0d4fef5d0aaba7324c22742e85ebb9ba5eddc42c29b8a325f6ff1db8d94b3762.json new file mode 100644 index 00000000..c4631e6d --- /dev/null +++ b/backend/app/graphify-out/cache/ast/0d4fef5d0aaba7324c22742e85ebb9ba5eddc42c29b8a325f6ff1db8d94b3762.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "label": "dept.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L1"}, {"id": "crud_dept_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L13"}, {"id": "crud_dept_build_tree", "label": "_build_tree()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L31"}, {"id": "crud_dept_collect_with_ancestors", "label": "_collect_with_ancestors()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L39"}, {"id": "crud_dept_list_depts", "label": "list_depts()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L55"}, {"id": "crud_dept_list_depts_tree", "label": "list_depts_tree()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L76"}, {"id": "crud_dept_get_dept", "label": "get_dept()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L98"}, {"id": "crud_dept_create_dept", "label": "create_dept()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L106"}, {"id": "crud_dept_update_dept", "label": "update_dept()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L149"}, {"id": "crud_dept_cascade_soft_delete", "label": "_cascade_soft_delete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L190"}, {"id": "crud_dept_soft_delete_dept", "label": "soft_delete_dept()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L203"}, {"id": "crud_dept_rationale_42", "label": "\u4fdd\u7559\u5339\u914d\u8282\u70b9\u53ca\u5176\u5168\u90e8\u4e0a\u7ea7\uff0c\u4f9b\u5173\u952e\u8bcd\u68c0\u7d22\u540e\u4ecd\u80fd\u6b63\u786e\u7ec4\u6811\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L42"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_row_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_build_tree", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L31", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_collect_with_ancestors", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L39", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_list_depts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L55", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_list_depts_tree", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L76", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_get_dept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L98", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_create_dept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L106", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_update_dept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L149", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_cascade_soft_delete", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L190", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_dept_py", "target": "crud_dept_soft_delete_dept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L203", "weight": 1.0}, {"source": "crud_dept_list_depts", "target": "crud_dept_row_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L73", "weight": 1.0}, {"source": "crud_dept_list_depts_tree", "target": "crud_dept_list_depts", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L85", "weight": 1.0}, {"source": "crud_dept_list_depts_tree", "target": "crud_dept_build_tree", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L86", "weight": 1.0}, {"source": "crud_dept_list_depts_tree", "target": "crud_dept_collect_with_ancestors", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L94", "weight": 1.0}, {"source": "crud_dept_update_dept", "target": "crud_dept_get_dept", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L163", "weight": 1.0}, {"source": "crud_dept_soft_delete_dept", "target": "crud_dept_get_dept", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L204", "weight": 1.0}, {"source": "crud_dept_soft_delete_dept", "target": "crud_dept_cascade_soft_delete", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L207", "weight": 1.0}, {"source": "crud_dept_rationale_42", "target": "crud_dept_collect_with_ancestors", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L42", "weight": 1.0}], "raw_calls": [{"caller_nid": "crud_dept_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L26"}, {"caller_nid": "crud_dept_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L27"}, {"caller_nid": "crud_dept_build_tree", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L32"}, {"caller_nid": "crud_dept_build_tree", "callee": "sort", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L35"}, {"caller_nid": "crud_dept_build_tree", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L35"}, {"caller_nid": "crud_dept_collect_with_ancestors", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L43"}, {"caller_nid": "crud_dept_collect_with_ancestors", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L44"}, {"caller_nid": "crud_dept_collect_with_ancestors", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L46"}, {"caller_nid": "crud_dept_collect_with_ancestors", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L50"}, {"caller_nid": "crud_dept_collect_with_ancestors", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L51"}, {"caller_nid": "crud_dept_collect_with_ancestors", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L51"}, {"caller_nid": "crud_dept_list_depts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L62"}, {"caller_nid": "crud_dept_list_depts", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L62"}, {"caller_nid": "crud_dept_list_depts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L64"}, {"caller_nid": "crud_dept_list_depts", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L65"}, {"caller_nid": "crud_dept_list_depts", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L68"}, {"caller_nid": "crud_dept_list_depts", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L68"}, {"caller_nid": "crud_dept_list_depts", "callee": "apply_data_scope", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L71"}, {"caller_nid": "crud_dept_list_depts", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L72"}, {"caller_nid": "crud_dept_list_depts", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L72"}, {"caller_nid": "crud_dept_list_depts", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L72"}, {"caller_nid": "crud_dept_list_depts_tree", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L83"}, {"caller_nid": "crud_dept_list_depts_tree", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L93"}, {"caller_nid": "crud_dept_get_dept", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L100"}, {"caller_nid": "crud_dept_get_dept", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L100"}, {"caller_nid": "crud_dept_get_dept", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L100"}, {"caller_nid": "crud_dept_get_dept", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L101"}, {"caller_nid": "crud_dept_create_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L121"}, {"caller_nid": "crud_dept_create_dept", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L123"}, {"caller_nid": "crud_dept_create_dept", "callee": "SysDept", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L124"}, {"caller_nid": "crud_dept_create_dept", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L125"}, {"caller_nid": "crud_dept_create_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L126"}, {"caller_nid": "crud_dept_create_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L128"}, {"caller_nid": "crud_dept_create_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L130"}, {"caller_nid": "crud_dept_create_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L131"}, {"caller_nid": "crud_dept_create_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L132"}, {"caller_nid": "crud_dept_create_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L135"}, {"caller_nid": "crud_dept_create_dept", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L138"}, {"caller_nid": "crud_dept_create_dept", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L140"}, {"caller_nid": "crud_dept_create_dept", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L143"}, {"caller_nid": "crud_dept_create_dept", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L144"}, {"caller_nid": "crud_dept_create_dept", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L145"}, {"caller_nid": "crud_dept_update_dept", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L165"}, {"caller_nid": "crud_dept_update_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L167"}, {"caller_nid": "crud_dept_update_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L169"}, {"caller_nid": "crud_dept_update_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L173"}, {"caller_nid": "crud_dept_update_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L175"}, {"caller_nid": "crud_dept_update_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L177"}, {"caller_nid": "crud_dept_update_dept", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L181"}, {"caller_nid": "crud_dept_update_dept", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L183"}, {"caller_nid": "crud_dept_update_dept", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L184"}, {"caller_nid": "crud_dept_update_dept", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L185"}, {"caller_nid": "crud_dept_update_dept", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L186"}, {"caller_nid": "crud_dept_cascade_soft_delete", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L192"}, {"caller_nid": "crud_dept_cascade_soft_delete", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L192"}, {"caller_nid": "crud_dept_cascade_soft_delete", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L192"}, {"caller_nid": "crud_dept_cascade_soft_delete", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L193"}, {"caller_nid": "crud_dept_cascade_soft_delete", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L199"}, {"caller_nid": "crud_dept_cascade_soft_delete", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L200"}, {"caller_nid": "crud_dept_soft_delete_dept", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L206"}, {"caller_nid": "crud_dept_soft_delete_dept", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L209"}, {"caller_nid": "crud_dept_soft_delete_dept", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L210"}, {"caller_nid": "crud_dept_soft_delete_dept", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/dept.py", "source_location": "L211"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/0e9a73ef6b1d6117187f16aead0da4b5fdb3029572b2b32cdf43d5a3ec600bdd.json b/backend/app/graphify-out/cache/ast/0e9a73ef6b1d6117187f16aead0da4b5fdb3029572b2b32cdf43d5a3ec600bdd.json new file mode 100644 index 00000000..efe9ce78 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/0e9a73ef6b1d6117187f16aead0da4b5fdb3029572b2b32cdf43d5a3ec600bdd.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "label": "oa_engine.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1"}, {"id": "services_oa_engine_oaengineerror", "label": "OaEngineError", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "services_oa_engine_loads", "label": "_loads()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21"}, {"id": "services_oa_engine_dumps", "label": "_dumps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32"}, {"id": "services_oa_engine_node_type", "label": "_node_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36"}, {"id": "services_oa_engine_flow_root", "label": "_flow_root()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40"}, {"id": "services_oa_engine_find_node", "label": "_find_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48"}, {"id": "services_oa_engine_advanced", "label": "_advanced()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66"}, {"id": "services_oa_engine_check_initiator_scope", "label": "_check_initiator_scope()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75"}, {"id": "services_oa_engine_instance_to_dict", "label": "_instance_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L84"}, {"id": "services_oa_engine_task_to_dict", "label": "_task_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100"}, {"id": "services_oa_engine_user_name_map", "label": "_user_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L118"}, {"id": "services_oa_engine_list_templates", "label": "list_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L126"}, {"id": "services_oa_engine_get_template_detail", "label": "get_template_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L156"}, {"id": "services_oa_engine_create_tasks_for_node", "label": "_create_tasks_for_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L180"}, {"id": "services_oa_engine_match_condition_group", "label": "_match_condition_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L245"}, {"id": "services_oa_engine_advance_from", "label": "advance_from()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L286"}, {"id": "services_oa_engine_start_instance", "label": "start_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L352"}, {"id": "services_oa_engine_get_instance", "label": "_get_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L443"}, {"id": "services_oa_engine_get_instance_detail", "label": "get_instance_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454"}, {"id": "services_oa_engine_list_tasks", "label": "list_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L491"}, {"id": "services_oa_engine_complete_task", "label": "complete_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L541"}, {"id": "services_oa_engine_add_sign", "label": "add_sign()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L662"}, {"id": "services_oa_engine_withdraw_instance", "label": "withdraw_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L775"}, {"id": "services_oa_engine_rationale_295", "label": "\u4ece\u67d0\u8282\u70b9\u7684\u4e0b\u4e00\u8df3\u5f00\u59cb\u63a8\u8fdb\uff1bfrom_node \u4e3a None \u8868\u793a\u4ece start \u8fdb\u5165\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L295"}, {"id": "services_oa_engine_rationale_671", "label": "\u5f53\u524d\u5f85\u529e\u5904\u7406\u4eba\u52a0\u7b7e\uff1a\u4e3a\u540c\u8282\u70b9\u65b0\u589e\u5f85\u529e\u5ba1\u6279\u4eba\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L671"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_assignee", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_formula", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_oaengineerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "services_oa_engine_oaengineerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_loads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_dumps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_node_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_root", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_find_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advanced", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_check_initiator_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_instance_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L84", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_user_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L118", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L126", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_template_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L156", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_create_tasks_for_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L180", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_match_condition_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L245", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advance_from", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L286", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_start_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L352", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L443", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L491", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_complete_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L541", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_add_sign", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L662", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_withdraw_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L775", "weight": 1.0}, {"source": "services_oa_engine_flow_root", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L42", "weight": 1.0}, {"source": "services_oa_engine_advanced", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L67", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L79", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L81", "weight": 1.0}, {"source": "services_oa_engine_instance_to_dict", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L93", "weight": 1.0}, {"source": "services_oa_engine_list_templates", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L139", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L161", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L162", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L174", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L176", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L189", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L200", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L212", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L296", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L296", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L312", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_create_tasks_for_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L329", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L342", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L366", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L367", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L372", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L394", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L430", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L440", "weight": 1.0}, {"source": "services_oa_engine_get_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L450", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L455", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L473", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L478", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L485", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L486", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L533", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L535", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L538", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L552", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L566", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L578", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L615", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L653", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L653", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L654", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L657", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L678", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L684", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L695", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L772", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L778", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L780", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L788", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L807", "weight": 1.0}, {"source": "services_oa_engine_rationale_295", "target": "services_oa_engine_advance_from", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L295", "weight": 1.0}, {"source": "services_oa_engine_rationale_671", "target": "services_oa_engine_add_sign", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L671", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_engine_loads", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L24"}, {"caller_nid": "services_oa_engine_loads", "callee": "loads", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L27"}, {"caller_nid": "services_oa_engine_dumps", "callee": "dumps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L33"}, {"caller_nid": "services_oa_engine_node_type", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L51"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L53"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L54"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L58"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_advanced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L69"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L70"}, {"caller_nid": "services_oa_engine_advanced", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L71"}, {"caller_nid": "services_oa_engine_check_initiator_scope", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L76"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L95"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L96"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L113"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L114"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L122"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L122"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L122"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L122"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L130"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L130"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L135"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L142"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L159"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L163"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L190"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L199"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L202"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L212"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L214"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L214"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L214"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L215"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L219"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L220"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L222"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L223"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L240"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L241"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L248"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L250"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L251"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L253"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L257"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L259"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L263"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L265"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L266"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L267"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L270"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L271"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L273"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L274"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "eval_formula", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L279"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L279"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L312"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L314"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L322"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L323"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L326"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L339"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L345"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L364"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L368"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L373"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "apply_formulas_and_linkages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L375"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L380"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L380"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L380"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L384"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L386"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaInstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L387"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L388"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L391"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L406"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L409"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L412"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaRelation", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L413"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L414"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L438"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L439"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L445"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L445"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L445"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L456"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L463"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L463"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L463"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L463"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L465"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L469"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L469"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L469"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L479"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L486"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L487"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L487"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L498"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L500"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L500"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L508"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L508"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L513"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L516"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L516"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L524"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L524"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L524"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L524"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L530"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L537"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L537"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L537"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L550"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L555"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L555"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L555"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L571"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L571"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L571"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L579"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L579"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L582"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L583"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L587"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "flush", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L590"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L595"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L595"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L595"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L609"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L613"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L614"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L618"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L620"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L620"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L620"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L632"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L638"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L638"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L638"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L651"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L658"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L673"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L673"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L673"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L689"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L689"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L689"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L696"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L700"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L702"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L705"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L706"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L712"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L712"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L712"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L721"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L728"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L728"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L728"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L739"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L740"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L741"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L753"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L767"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L770"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L771"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L784"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L784"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L784"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L788"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L789"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L792"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L796"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L798"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L798"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L798"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L805"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L806"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/12c2defb79e6a7825da37e5332393a9f081eba2c294453e6e7d4d6c3004f012d.json b/backend/app/graphify-out/cache/ast/12c2defb79e6a7825da37e5332393a9f081eba2c294453e6e7d4d6c3004f012d.json new file mode 100644 index 00000000..278507aa --- /dev/null +++ b/backend/app/graphify-out/cache/ast/12c2defb79e6a7825da37e5332393a9f081eba2c294453e6e7d4d6c3004f012d.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "label": "oa_engine.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1"}, {"id": "services_oa_engine_oaengineerror", "label": "OaEngineError", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "services_oa_engine_loads", "label": "_loads()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21"}, {"id": "services_oa_engine_dumps", "label": "_dumps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32"}, {"id": "services_oa_engine_node_type", "label": "_node_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36"}, {"id": "services_oa_engine_flow_root", "label": "_flow_root()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40"}, {"id": "services_oa_engine_find_node", "label": "_find_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48"}, {"id": "services_oa_engine_flow_node_key_order", "label": "_flow_node_key_order()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66"}, {"id": "services_oa_engine_next_task_order_num", "label": "_next_task_order_num()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L91"}, {"id": "services_oa_engine_sort_tasks_for_detail", "label": "_sort_tasks_for_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L102"}, {"id": "services_oa_engine_fmt_dt", "label": "_fmt_dt()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L121"}, {"id": "services_oa_engine_terminal_item", "label": "_terminal_item()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L129"}, {"id": "services_oa_engine_build_progress_items", "label": "build_progress_items()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L144"}, {"id": "services_oa_engine_advanced", "label": "_advanced()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L216"}, {"id": "services_oa_engine_check_initiator_scope", "label": "_check_initiator_scope()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L225"}, {"id": "services_oa_engine_instance_to_dict", "label": "_instance_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L234"}, {"id": "services_oa_engine_task_to_dict", "label": "_task_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L250"}, {"id": "services_oa_engine_user_name_map", "label": "_user_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L268"}, {"id": "services_oa_engine_list_templates", "label": "list_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L276"}, {"id": "services_oa_engine_get_template_detail", "label": "get_template_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L306"}, {"id": "services_oa_engine_role_name_map", "label": "_role_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L339"}, {"id": "services_oa_engine_assignee_meta", "label": "_assignee_meta()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L367"}, {"id": "services_oa_engine_preview_people", "label": "_preview_people()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L382"}, {"id": "services_oa_engine_walk_preview_nodes", "label": "_walk_preview_nodes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L390"}, {"id": "services_oa_engine_preview_start_flow", "label": "preview_start_flow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L516"}, {"id": "services_oa_engine_create_tasks_for_node", "label": "_create_tasks_for_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L566"}, {"id": "services_oa_engine_match_condition_group", "label": "_match_condition_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L634"}, {"id": "services_oa_engine_advance_from", "label": "advance_from()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L675"}, {"id": "services_oa_engine_start_instance", "label": "start_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L745"}, {"id": "services_oa_engine_get_instance", "label": "_get_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L836"}, {"id": "services_oa_engine_get_instance_detail", "label": "get_instance_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L847"}, {"id": "services_oa_engine_list_tasks", "label": "list_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L897"}, {"id": "services_oa_engine_complete_task", "label": "complete_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L947"}, {"id": "services_oa_engine_add_sign", "label": "add_sign()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1068"}, {"id": "services_oa_engine_withdraw_instance", "label": "withdraw_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1183"}, {"id": "services_oa_engine_rationale_67", "label": "\u6309\u6d41\u7a0b\u6811\u5148\u5e8f\u904d\u5386\u4e3a node.id \u5206\u914d\u7a33\u5b9a\u5e8f\u53f7\uff08\u7528\u4e8e\u8be6\u60c5\u65f6\u95f4\u8f74\u6392\u5e8f\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L67"}, {"id": "services_oa_engine_rationale_92", "label": "\u540c\u4e00\u5b9e\u4f8b\u5185\u4efb\u52a1\u5c55\u793a\u5e8f\u53f7\u53d6 max+1\uff08\u65e0\u4efb\u52a1\u4ece 1 \u8d77\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L92"}, {"id": "services_oa_engine_rationale_105", "label": "\u8be6\u60c5\u65f6\u95f4\u8f74\uff1a\u6309\u6d41\u7a0b\u6811\u8282\u70b9\u987a\u5e8f\uff0c\u518d order_num / create_time\uff08\u517c\u5bb9\u65e7\u6570\u636e\u540c\u79d2\u521b\u5efa\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L105"}, {"id": "services_oa_engine_rationale_152", "label": "\u6295\u5f71\u5ba1\u6279\u8fdb\u5ea6\u3002P0\uff1asubmit + \u6309\u6811\u5e8f tasks + pending_node + terminal\u3002 P1\uff1a\u63d2\u5165 return/resubmi", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L152"}, {"id": "services_oa_engine_rationale_525", "label": "\u53d1\u8d77\u524d\u9884\u89c8\u5ba1\u6279\u94fe\uff08\u89e3\u6790\u5177\u4f53\u4eba\u5458\uff1b\u6761\u4ef6\u5206\u652f\u5c55\u5f00\u5c55\u793a\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L525"}, {"id": "services_oa_engine_rationale_684", "label": "\u4ece\u67d0\u8282\u70b9\u7684\u4e0b\u4e00\u8df3\u5f00\u59cb\u63a8\u8fdb\uff1bfrom_node \u4e3a None \u8868\u793a\u4ece start \u8fdb\u5165\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L684"}, {"id": "services_oa_engine_rationale_1077", "label": "\u5f53\u524d\u5f85\u529e\u5904\u7406\u4eba\u52a0\u7b7e\uff1a\u4e3a\u540c\u8282\u70b9\u65b0\u589e\u5f85\u529e\u5ba1\u6279\u4eba\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1077"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_assignee", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_formula", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_oaengineerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "services_oa_engine_oaengineerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_loads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_dumps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_node_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_root", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_find_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_node_key_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_next_task_order_num", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L91", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L102", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_fmt_dt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L121", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_terminal_item", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L129", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_build_progress_items", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L144", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advanced", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L216", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_check_initiator_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L225", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_instance_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L234", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L250", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_user_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L268", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L276", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_template_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L306", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_role_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L339", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_assignee_meta", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L367", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_preview_people", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L382", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_walk_preview_nodes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L390", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_preview_start_flow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L516", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_create_tasks_for_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L566", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_match_condition_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L634", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advance_from", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L675", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_start_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L745", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L836", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L847", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L897", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_complete_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L947", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_add_sign", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1068", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_withdraw_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1183", "weight": 1.0}, {"source": "services_oa_engine_flow_root", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L42", "weight": 1.0}, {"source": "services_oa_engine_sort_tasks_for_detail", "target": "services_oa_engine_flow_node_key_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L106", "weight": 1.0}, {"source": "services_oa_engine_terminal_item", "target": "services_oa_engine_fmt_dt", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L137", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_fmt_dt", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L164", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L169", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_flow_node_key_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L187", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L189", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L192", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_terminal_item", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L208", "weight": 1.0}, {"source": "services_oa_engine_advanced", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L217", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L229", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L231", "weight": 1.0}, {"source": "services_oa_engine_instance_to_dict", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L243", "weight": 1.0}, {"source": "services_oa_engine_list_templates", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L289", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L311", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L312", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L324", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L326", "weight": 1.0}, {"source": "services_oa_engine_assignee_meta", "target": "services_oa_engine_role_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L371", "weight": 1.0}, {"source": "services_oa_engine_preview_people", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L383", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L403", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_preview_people", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L405", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_assignee_meta", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L476", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L528", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L529", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L547", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_walk_preview_nodes", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L553", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L559", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L576", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L587", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L599", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L604", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L685", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L685", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L701", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L706", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_create_tasks_for_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L720", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L735", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L759", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L760", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L765", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L787", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L823", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L833", "weight": 1.0}, {"source": "services_oa_engine_get_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L843", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L848", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L863", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L863", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L866", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L872", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L877", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L880", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L885", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_build_progress_items", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L887", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L939", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L941", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L944", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L958", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L972", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L984", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1021", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1059", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1059", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1060", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1063", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1084", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1090", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1101", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1129", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1180", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1186", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1188", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1196", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1215", "weight": 1.0}, {"source": "services_oa_engine_rationale_67", "target": "services_oa_engine_flow_node_key_order", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L67", "weight": 1.0}, {"source": "services_oa_engine_rationale_92", "target": "services_oa_engine_next_task_order_num", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L92", "weight": 1.0}, {"source": "services_oa_engine_rationale_105", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L105", "weight": 1.0}, {"source": "services_oa_engine_rationale_152", "target": "services_oa_engine_build_progress_items", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L152", "weight": 1.0}, {"source": "services_oa_engine_rationale_525", "target": "services_oa_engine_preview_start_flow", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L525", "weight": 1.0}, {"source": "services_oa_engine_rationale_684", "target": "services_oa_engine_advance_from", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L684", "weight": 1.0}, {"source": "services_oa_engine_rationale_1077", "target": "services_oa_engine_add_sign", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1077", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_engine_loads", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L24"}, {"caller_nid": "services_oa_engine_loads", "callee": "loads", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L27"}, {"caller_nid": "services_oa_engine_dumps", "callee": "dumps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L33"}, {"caller_nid": "services_oa_engine_node_type", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L51"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L53"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L54"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L58"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_flow_node_key_order", "callee": "walk", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L87"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L94"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L94"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L94"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L98"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L99"}, {"caller_nid": "services_oa_engine_sort_tasks_for_detail", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L106"}, {"caller_nid": "services_oa_engine_sort_tasks_for_detail", "callee": "sorted", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L118"}, {"caller_nid": "services_oa_engine_fmt_dt", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L124"}, {"caller_nid": "services_oa_engine_fmt_dt", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L125"}, {"caller_nid": "services_oa_engine_fmt_dt", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L126"}, {"caller_nid": "services_oa_engine_terminal_item", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L132"}, {"caller_nid": "services_oa_engine_terminal_item", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L137"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L157"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L163"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L164"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L169"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L170"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L170"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L172"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L178"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L183"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L186"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "sorted", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L188"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "items", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L188"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L195"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L198"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L208"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L210"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L212"}, {"caller_nid": "services_oa_engine_advanced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L218"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L219"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L220"}, {"caller_nid": "services_oa_engine_advanced", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L221"}, {"caller_nid": "services_oa_engine_check_initiator_scope", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L226"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L245"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L246"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L263"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L264"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L269"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L269"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L272"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L272"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L272"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L272"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L278"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L278"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L278"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L278"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L280"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L280"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L285"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L292"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L309"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L313"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L341"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L341"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L341"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L341"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L342"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L342"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L342"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L342"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L342"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L345"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L345"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L345"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L346"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "extend", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L349"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L352"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L352"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L352"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L355"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L363"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L368"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L368"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L368"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L369"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L374"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L374"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L375"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L375"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L378"}, {"caller_nid": "services_oa_engine_preview_people", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L386"}, {"caller_nid": "services_oa_engine_preview_people", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L386"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L402"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L406"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L408"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L410"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L418"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L422"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L424"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L426"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L437"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L439"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L441"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L443"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L443"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L445"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L453"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L465"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L469"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L470"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L470"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L470"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L471"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L471"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L471"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L486"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L497"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L498"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L500"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L502"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L510"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L513"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L526"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L530"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L535"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L535"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L535"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L543"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L548"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L548"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L549"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L550"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L577"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L586"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L589"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L599"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L601"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L601"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L601"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L602"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L607"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L608"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L610"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L611"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L629"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L630"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L637"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L639"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L640"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L642"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L646"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L648"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L652"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L654"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L655"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L656"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L659"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L660"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L662"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L663"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "eval_formula", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L668"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L668"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L701"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L703"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L713"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L714"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L717"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L729"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L729"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L732"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L738"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L757"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L761"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L766"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "apply_formulas_and_linkages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L768"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L773"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L773"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L773"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L777"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L779"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaInstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L780"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L781"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L784"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L799"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L802"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L805"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaRelation", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L806"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L807"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L831"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L832"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L838"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L838"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L838"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L849"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L851"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L851"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L851"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L856"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L856"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L856"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L868"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L868"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L868"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L878"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L880"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L885"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L886"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L886"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L904"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L906"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L906"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L914"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L914"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L919"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L922"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L922"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L930"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L930"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L930"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L930"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L936"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L943"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L943"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L943"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L956"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L961"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L961"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L961"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L977"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L977"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L977"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L985"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L985"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L988"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L989"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L993"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "flush", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L996"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1001"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1001"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1001"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1015"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1019"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1020"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1024"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1026"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1026"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1026"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1038"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1044"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1044"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1044"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1057"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1064"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1079"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1079"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1079"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1095"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1095"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1095"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1102"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1106"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1108"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1111"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1112"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1118"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1118"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1118"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1127"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1135"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1135"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1135"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1146"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1147"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1148"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1160"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1175"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1178"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1179"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1192"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1192"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1192"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1196"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1197"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1200"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1204"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1206"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1206"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1206"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1213"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1214"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/182c70d418a13dd1fec82a053be5bf17ae01d059c9d1803868ca06a0c0d372b6.json b/backend/app/graphify-out/cache/ast/182c70d418a13dd1fec82a053be5bf17ae01d059c9d1803868ca06a0c0d372b6.json new file mode 100644 index 00000000..c180c38b --- /dev/null +++ b/backend/app/graphify-out/cache/ast/182c70d418a13dd1fec82a053be5bf17ae01d059c9d1803868ca06a0c0d372b6.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "label": "models.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1"}, {"id": "models_models_userrole", "label": "UserRole", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L10"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "models_models_sysuser", "label": "SysUser", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L22"}, {"id": "base", "label": "Base", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "models_models_sysrole", "label": "SysRole", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L49"}, {"id": "models_models_sysuserrole", "label": "SysUserRole", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L69"}, {"id": "models_models_sysrolemenu", "label": "SysRoleMenu", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L88"}, {"id": "models_models_sysroledatascopedetail", "label": "SysRoleDataScopeDetail", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L107"}, {"id": "models_models_sysmenu", "label": "SysMenu", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L127"}, {"id": "models_models_sysdept", "label": "SysDept", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L153"}, {"id": "models_models_systenant", "label": "SysTenant", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L177"}, {"id": "models_models_syssite", "label": "SysSite", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L197"}, {"id": "models_models_syspost", "label": "SysPost", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L223"}, {"id": "models_models_sysuserpost", "label": "SysUserPost", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L243"}, {"id": "models_models_bizitemunit", "label": "BizItemUnit", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L262"}, {"id": "models_models_bizexpresscompany", "label": "BizExpressCompany", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L281"}, {"id": "models_models_bizcustomer", "label": "BizCustomer", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L301"}, {"id": "models_models_bizcellsampletype", "label": "BizCellSampleType", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L324"}, {"id": "models_models_bizcollectionregion", "label": "BizCollectionRegion", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L347"}, {"id": "models_models_bizcollectionhospital", "label": "BizCollectionHospital", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L365"}, {"id": "models_models_bizcollectionprotocolno", "label": "BizCollectionProtocolNo", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L384"}, {"id": "models_models_bizbiznosequence", "label": "BizBizNoSequence", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L406"}, {"id": "models_models_bizsamplecode", "label": "BizSampleCode", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L426"}, {"id": "models_models_sysdicttype", "label": "SysDictType", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L454"}, {"id": "models_models_sysethnic", "label": "SysEthnic", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L473"}, {"id": "models_models_sysdictdata", "label": "SysDictData", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L492"}, {"id": "models_models_sysapirequestlog", "label": "SysApiRequestLog", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L517"}, {"id": "models_models_sysapirequestloghis", "label": "SysApiRequestLogHis", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L543"}, {"id": "models_models_bizleaverequest", "label": "BizLeaveRequest", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L574"}, {"id": "models_models_wfprocessdef", "label": "WfProcessDef", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L603"}, {"id": "models_models_wfprocessversion", "label": "WfProcessVersion", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L623"}, {"id": "models_models_wfnode", "label": "WfNode", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L644"}, {"id": "models_models_wftransition", "label": "WfTransition", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L666"}, {"id": "models_models_wfprocessinstance", "label": "WfProcessInstance", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L687"}, {"id": "models_models_wftask", "label": "WfTask", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L711"}, {"id": "models_models_oaappgroup", "label": "OaAppGroup", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L738"}, {"id": "models_models_oaapp", "label": "OaApp", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L756"}, {"id": "models_models_oaappversion", "label": "OaAppVersion", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L782"}, {"id": "models_models_oarole", "label": "OaRole", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L806"}, {"id": "models_models_oaroleuser", "label": "OaRoleUser", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L827"}, {"id": "models_models_oainstance", "label": "OaInstance", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L846"}, {"id": "models_models_oatask", "label": "OaTask", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L870"}, {"id": "models_models_oarelation", "label": "OaRelation", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L896"}, {"id": "models_models_bizcollectionprotocol", "label": "BizCollectionProtocol", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L921"}, {"id": "models_models_bizprotocolaudit", "label": "BizProtocolAudit", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L955"}, {"id": "models_models_bizstoragereleasereview", "label": "BizStorageReleaseReview", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L976"}, {"id": "models_models_bizprotocolpayment", "label": "BizProtocolPayment", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1009"}, {"id": "models_models_bizprotocolpaymentdetail", "label": "BizProtocolPaymentDetail", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1035"}, {"id": "models_models_bizprotocolinvoicerequest", "label": "BizProtocolInvoiceRequest", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1068"}, {"id": "models_models_bizprotocolinvoicerequestitem", "label": "BizProtocolInvoiceRequestItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1098"}, {"id": "models_models_bizprotocolpartycustomer", "label": "BizProtocolPartyCustomer", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1120"}, {"id": "models_models_bizprotocolcollectioninfo", "label": "BizProtocolCollectionInfo", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1160"}, {"id": "models_models_bizprotocolsample", "label": "BizProtocolSample", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1184"}, {"id": "models_models_bizprotocolsampletransport", "label": "BizProtocolSampleTransport", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1217"}, {"id": "models_models_bizattachment", "label": "BizAttachment", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1245"}, {"id": "models_models_bizprotocolstoragecert", "label": "BizProtocolStorageCert", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1269"}, {"id": "models_models_bizsamplereceptioncheckitem", "label": "BizSampleReceptionCheckItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1290"}, {"id": "models_models_bizsamplereceptioncheckresult", "label": "BizSampleReceptionCheckResult", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1310"}, {"id": "models_models_bizsamplereception", "label": "BizSampleReception", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1332"}, {"id": "models_models_bizsampleproductionreception", "label": "BizSampleProductionReception", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1371"}, {"id": "models_models_bizsamplesmsnotification", "label": "BizSampleSmsNotification", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1409"}, {"id": "models_models_bizqcsmsnotification", "label": "BizQcSmsNotification", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1430"}, {"id": "models_models_bizstorageentrysmsnotification", "label": "BizStorageEntrySmsNotification", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1455"}, {"id": "models_models_bizqcthirdpartycompany", "label": "BizQcThirdPartyCompany", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1484"}, {"id": "models_models_bizqcthirdpartyitem", "label": "BizQcThirdPartyItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1512"}, {"id": "models_models_bizqclabtestitem", "label": "BizQcLabTestItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1534"}, {"id": "models_models_bizqcworkorder", "label": "BizQcWorkOrder", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1555"}, {"id": "models_models_bizqcworkorderinspectionbatch", "label": "BizQcWorkOrderInspectionBatch", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1604"}, {"id": "models_models_bizqcbatchassignee", "label": "BizQcBatchAssignee", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1625"}, {"id": "models_models_bizqcworkorderlabitem", "label": "BizQcWorkOrderLabItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1644"}, {"id": "models_models_bizqcworkorderthirditem", "label": "BizQcWorkOrderThirdItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1667"}, {"id": "models_models_bizqctask", "label": "BizQcTask", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1693"}, {"id": "models_models_bizqctaskassignee", "label": "BizQcTaskAssignee", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1727"}, {"id": "models_models_bizcleanroom", "label": "BizCleanRoom", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1751"}, {"id": "models_models_bizcleanroomaccesslog", "label": "BizCleanRoomAccessLog", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1774"}, {"id": "models_models_bizcleanroomuvdisinfectlog", "label": "BizCleanRoomUvDisinfectLog", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1799"}, {"id": "models_models_bizstoragefacility", "label": "BizStorageFacility", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1822"}, {"id": "models_models_bizstoragefacilityslot", "label": "BizStorageFacilitySlot", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1844"}, {"id": "models_models_bizstorageslotoccupancy", "label": "BizStorageSlotOccupancy", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1867"}, {"id": "models_models_bizexhibitionappointment", "label": "BizExhibitionAppointment", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1893"}, {"id": "models_models_bizcellproducttype", "label": "BizCellProductType", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1921"}, {"id": "models_models_bizcellproductspec", "label": "BizCellProductSpec", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1940"}, {"id": "models_models_bizcellproductprice", "label": "BizCellProductPrice", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1959"}, {"id": "models_models_bizcellproductprojectsystem", "label": "BizCellProductProjectSystem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1984"}, {"id": "models_models_bizcellproductprojectsystemitem", "label": "BizCellProductProjectSystemItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2004"}, {"id": "models_models_bizchannel", "label": "BizChannel", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2031"}, {"id": "models_models_bizchannelagreement", "label": "BizChannelAgreement", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2055"}, {"id": "models_models_bizchannelagreementproductprice", "label": "BizChannelAgreementProductPrice", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2080"}, {"id": "models_models_bizchannelinvoice", "label": "BizChannelInvoice", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2105"}, {"id": "models_models_bizchannelmailaddress", "label": "BizChannelMailAddress", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2129"}, {"id": "models_models_bizchannelaccount", "label": "BizChannelAccount", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2150"}, {"id": "models_models_bizchannelproductquota", "label": "BizChannelProductQuota", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2169"}, {"id": "models_models_bizchannelserviceorder", "label": "BizChannelServiceOrder", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2195"}, {"id": "models_models_bizchannelserviceorderproduct", "label": "BizChannelServiceOrderProduct", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2241"}, {"id": "models_models_bizchannelserviceordertxn", "label": "BizChannelServiceOrderTxn", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2270"}, {"id": "models_models_bizcheckupinstitution", "label": "BizCheckupInstitution", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2305"}, {"id": "models_models_bizcheckupinstitutioninvoice", "label": "BizCheckupInstitutionInvoice", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2328"}, {"id": "models_models_bizcheckupinstitutionproject", "label": "BizCheckupInstitutionProject", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2352"}, {"id": "models_models_bizcheckupinstitutionpackage", "label": "BizCheckupInstitutionPackage", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2373"}, {"id": "models_models_bizcheckupinstitutionpackageitem", "label": "BizCheckupInstitutionPackageItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2394"}, {"id": "models_models_bizconsumable", "label": "BizConsumable", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2420"}, {"id": "models_models_bizreagent", "label": "BizReagent", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2446"}, {"id": "models_models_bizequipment", "label": "BizEquipment", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2472"}, {"id": "models_models_bizsopdocument", "label": "BizSopDocument", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2498"}, {"id": "models_models_bizprocesscategory", "label": "BizProcessCategory", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2519"}, {"id": "models_models_bizoutputtype", "label": "BizOutputType", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2538"}, {"id": "models_models_bizconsumablepack", "label": "BizConsumablePack", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2557"}, {"id": "models_models_bizconsumablepackitem", "label": "BizConsumablePackItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2579"}, {"id": "models_models_bizprocess", "label": "BizProcess", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2602"}, {"id": "models_models_bizprocessreagent", "label": "BizProcessReagent", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2627"}, {"id": "models_models_bizprocessconsumable", "label": "BizProcessConsumable", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2651"}, {"id": "models_models_bizprocessoutput", "label": "BizProcessOutput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2675"}, {"id": "models_models_bizprocessdatacollection", "label": "BizProcessDataCollection", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2696"}, {"id": "models_models_bizprocessroute", "label": "BizProcessRoute", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2714"}, {"id": "models_models_bizprocessroutestep", "label": "BizProcessRouteStep", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2736"}, {"id": "models_models_bizprocessroutestepreagent", "label": "BizProcessRouteStepReagent", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2764"}, {"id": "models_models_bizprocessroutestepconsumable", "label": "BizProcessRouteStepConsumable", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2788"}, {"id": "models_models_bizprocessroutestepoutput", "label": "BizProcessRouteStepOutput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2812"}, {"id": "models_models_bizprocessroutestepdatacollection", "label": "BizProcessRouteStepDataCollection", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2833"}, {"id": "models_models_bizcellproduct", "label": "BizCellProduct", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2858"}, {"id": "models_models_bizproductionworkorder", "label": "BizProductionWorkOrder", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2893"}, {"id": "models_models_bizproductiontask", "label": "BizProductionTask", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2923"}, {"id": "models_models_bizproductiontaskhandover", "label": "BizProductionTaskHandover", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2955"}, {"id": "models_models_bizproductiontaskinput", "label": "BizProductionTaskInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2977"}, {"id": "models_models_bizproductiontaskstep", "label": "BizProductionTaskStep", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2999"}, {"id": "models_models_bizproductiontaskstepassignee", "label": "BizProductionTaskStepAssignee", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3032"}, {"id": "models_models_bizproductiontaskstepreagent", "label": "BizProductionTaskStepReagent", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3051"}, {"id": "models_models_bizproductiontaskstepconsumable", "label": "BizProductionTaskStepConsumable", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3077"}, {"id": "models_models_bizproductiontaskstepconfiguredreagent", "label": "BizProductionTaskStepConfiguredReagent", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3103"}, {"id": "models_models_bizproductiontaskstepoutput", "label": "BizProductionTaskStepOutput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3128"}, {"id": "models_models_bizproductiontaskstepdatacollection", "label": "BizProductionTaskStepDataCollection", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3149"}, {"id": "models_models_bizproductiontaskoutput", "label": "BizProductionTaskOutput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3170"}, {"id": "models_models_bizprotocolfullmoontodo", "label": "BizProtocolFullmoonTodo", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3195"}, {"id": "models_models_bizinsurancecompany", "label": "BizInsuranceCompany", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3225"}, {"id": "models_models_bizinsurancecompanyinvoice", "label": "BizInsuranceCompanyInvoice", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3248"}, {"id": "models_models_bizinsuranceprojectprice", "label": "BizInsuranceProjectPrice", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3272"}, {"id": "models_models_bizconsumablestocklog", "label": "BizConsumableStockLog", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3293"}, {"id": "models_models_bizreagentstocklog", "label": "BizReagentStockLog", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3323"}, {"id": "models_models_bizpilotapplication", "label": "BizPilotApplication", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3353"}, {"id": "models_models_bizpilotpatient", "label": "BizPilotPatient", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3383"}, {"id": "models_models_bizpilotinfusionplan", "label": "BizPilotInfusionPlan", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3412"}, {"id": "models_models_bizpilotinfusionschedule", "label": "BizPilotInfusionSchedule", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3437"}, {"id": "models_models_bizpilotinfusionscheduleproduct", "label": "BizPilotInfusionScheduleProduct", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3466"}, {"id": "models_models_bizpilotcheckup", "label": "BizPilotCheckup", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3493"}, {"id": "models_models_bizpilotcheckupreserveitem", "label": "BizPilotCheckupReserveItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3522"}, {"id": "models_models_bizpilotcheckupactualitem", "label": "BizPilotCheckupActualItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3542"}, {"id": "models_models_bizpilotdelivery", "label": "BizPilotDelivery", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3562"}, {"id": "models_models_bizpilotdeliverymaterial", "label": "BizPilotDeliveryMaterial", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3581"}, {"id": "models_models_bizpilotdeliverymethod", "label": "BizPilotDeliveryMethod", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3602"}, {"id": "models_models_bizpilotinfusionconfirm", "label": "BizPilotInfusionConfirm", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3631"}, {"id": "models_models_bizoutboundreleasematerial", "label": "BizOutboundReleaseMaterial", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3652"}, {"id": "models_models_bizoutboundreleasecell", "label": "BizOutboundReleaseCell", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3671"}, {"id": "models_models_bizoutboundreleasepaper", "label": "BizOutboundReleasePaper", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3699"}, {"id": "models_models_bizoutboundhandover", "label": "BizOutboundHandover", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3721"}, {"id": "models_models_bizoutboundreleaseqcmaterial", "label": "BizOutboundReleaseQcMaterial", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3746"}, {"id": "models_models_bizoutboundreleasereview", "label": "BizOutboundReleaseReview", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3771"}, {"id": "models_models_bizenvdetectitem", "label": "BizEnvDetectItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3797"}, {"id": "models_models_bizenvdetectrecord", "label": "BizEnvDetectRecord", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3817"}, {"id": "models_models_rationale_1", "label": "\u6570\u636e\u6a21\u578b\uff08\u4e0e docs/sql/zkxw.sql \u5168\u5e93\u5bfc\u51fa\u57fa\u7ebf\u5bf9\u9f50\u7684\u6838\u5fc3\u7cfb\u7edf\u8868\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1"}, {"id": "models_models_rationale_11", "label": "Web \u7ba1\u7406\u7aef\u7ea6\u5b9a\u89d2\u8272\uff08\u7531 sys_role.role_name \u6620\u5c04\u800c\u6765\uff0c\u975e\u6570\u636e\u5e93\u679a\u4e3e\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L11"}, {"id": "models_models_rationale_70", "label": "\u7528\u6237-\u89d2\u8272\u5173\u8054 sys_user_role\uff08V0.3\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L70"}, {"id": "models_models_rationale_89", "label": "\u89d2\u8272-\u83dc\u5355\u5173\u8054 sys_role_menu\uff08V0.3\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L89"}, {"id": "models_models_rationale_108", "label": "\u89d2\u8272\u81ea\u5b9a\u4e49\u6570\u636e\u6743\u9650\u660e\u7ec6 sys_role_data_scope_detail", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L108"}, {"id": "models_models_rationale_178", "label": "\u79df\u6237\u8868 sys_tenant\uff08V0.3 2.1.1\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L178"}, {"id": "models_models_rationale_244", "label": "\u7528\u6237-\u804c\u4f4d\u5173\u8054 sys_user_post", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L244"}, {"id": "models_models_rationale_282", "label": "\u5feb\u9012\u516c\u53f8 biz_express_company", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L282"}, {"id": "models_models_rationale_325", "label": "\u7ec6\u80de\u6837\u672c\u7c7b\u578b biz_cell_sample_type", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L325"}, {"id": "models_models_rationale_348", "label": "\u91c7\u96c6\u5730\u533a biz_collection_region", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L348"}, {"id": "models_models_rationale_366", "label": "\u91c7\u96c6\u5730\u533a\u4e0b\u5c5e\u533b\u9662 biz_collection_hospital", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L366"}, {"id": "models_models_rationale_385", "label": "\u91c7\u96c6\u534f\u8bae\u53f7\u6c60 biz_collection_protocol_no", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L385"}, {"id": "models_models_rationale_407", "label": "\u4e1a\u52a1\u534f\u8bae\u53f7\u65e5\u5e8f\u5217\u8868 biz_biz_no_sequence", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L407"}, {"id": "models_models_rationale_427", "label": "\u6837\u672c\u7f16\u7801\u6c60 biz_sample_code", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L427"}, {"id": "models_models_rationale_474", "label": "\u6c11\u65cf\u7801\u8868 sys_ethnic\uff08\u56fd\u6807 GB/T 3304\uff0c\u5168\u5c40\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L474"}, {"id": "models_models_rationale_575", "label": "\u8bf7\u5047\u7533\u8bf7 biz_leave_request", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L575"}, {"id": "models_models_rationale_624", "label": "\u6d41\u7a0b\u5b9a\u4e49\u7248\u672c wf_process_version", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L624"}, {"id": "models_models_rationale_667", "label": "\u6d41\u7a0b\u8fde\u7ebf/\u8f6c\u79fb wf_transition", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L667"}, {"id": "models_models_rationale_688", "label": "\u6d41\u7a0b\u5b9e\u4f8b wf_process_instance", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L688"}, {"id": "models_models_rationale_783", "label": "OA\u5ba1\u6279\u5e94\u7528\u7248\u672c oa_app_version", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L783"}, {"id": "models_models_rationale_828", "label": "OA\u5de5\u4f5c\u6d41\u89d2\u8272\u6210\u5458 oa_role_user", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L828"}, {"id": "models_models_rationale_922", "label": "\u91c7\u96c6\u534f\u8bae\u5355 biz_collection_protocol", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L922"}, {"id": "models_models_rationale_956", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u5ba1\u6838\u8bb0\u5f55 biz_protocol_audit", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L956"}, {"id": "models_models_rationale_977", "label": "\u5165\u5e93\u653e\u884c\u5ba1\u6838 biz_storage_release_review", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L977"}, {"id": "models_models_rationale_1010", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u7f34\u8d39\u4e3b\u8868 biz_protocol_payment", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1010"}, {"id": "models_models_rationale_1036", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u7f34\u8d39\u660e\u7ec6 biz_protocol_payment_detail", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1036"}, {"id": "models_models_rationale_1069", "label": "\u91c7\u96c6\u534f\u8bae\u5355\u5f00\u7968\u7533\u8bf7\u4e3b\u8868 biz_protocol_invoice_request", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1069"}, {"id": "models_models_rationale_1099", "label": "\u91c7\u96c6\u534f\u8bae\u5355\u5f00\u7968\u7533\u8bf7\u660e\u7ec6 biz_protocol_invoice_request_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1099"}, {"id": "models_models_rationale_1121", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u5f53\u4e8b\u4eba\u5ba2\u6237\u4fe1\u606f biz_protocol_party_customer", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1121"}, {"id": "models_models_rationale_1161", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u91c7\u96c6\u4fe1\u606f biz_protocol_collection_info", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1161"}, {"id": "models_models_rationale_1185", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u6837\u672c\u4fe1\u606f biz_protocol_sample", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1185"}, {"id": "models_models_rationale_1218", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u6837\u672c\u8fd0\u8f93 biz_protocol_sample_transport", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1218"}, {"id": "models_models_rationale_1270", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u50a8\u5b58\u8bc1\u4e66 biz_protocol_storage_cert", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1270"}, {"id": "models_models_rationale_1291", "label": "\u6837\u672c\u63a5\u6536\u68c0\u67e5\u9879\u914d\u7f6e biz_sample_reception_check_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1291"}, {"id": "models_models_rationale_1311", "label": "\u6837\u672c\u63a5\u6536\u68c0\u67e5\u9879\u7ed3\u679c biz_sample_reception_check_result", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1311"}, {"id": "models_models_rationale_1333", "label": "\u6837\u672c\u63a5\u6536 biz_sample_reception", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1333"}, {"id": "models_models_rationale_1372", "label": "\u751f\u4ea7\u90e8\u95e8\u6837\u672c\u63a5\u6536\u767b\u8bb0 biz_sample_production_reception", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1372"}, {"id": "models_models_rationale_1431", "label": "\u6837\u672c\u8d28\u68c0\u77ed\u4fe1\u901a\u77e5 biz_qc_sms_notification", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1431"}, {"id": "models_models_rationale_1456", "label": "\u6837\u672c\u5165\u5e93\u77ed\u4fe1\u901a\u77e5 biz_storage_entry_sms_notification", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1456"}, {"id": "models_models_rationale_1485", "label": "\u7b2c\u4e09\u65b9\u68c0\u6d4b\u516c\u53f8 biz_qc_third_party_company", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1485"}, {"id": "models_models_rationale_1513", "label": "\u7b2c\u4e09\u65b9\u68c0\u6d4b\u9879\u76ee biz_qc_third_party_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1513"}, {"id": "models_models_rationale_1535", "label": "\u5b9e\u9a8c\u5ba4\u81ea\u68c0\u9879\u76ee biz_qc_lab_test_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1535"}, {"id": "models_models_rationale_1556", "label": "\u8d28\u68c0\u5de5\u5355 biz_qc_work_order", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1556"}, {"id": "models_models_rationale_1605", "label": "\u8d28\u68c0\u5de5\u5355\u68c0\u6d4b\u6279\u6b21 biz_qc_work_order_inspection_batch", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1605"}, {"id": "models_models_rationale_1626", "label": "\u8d28\u68c0\u68c0\u6d4b\u6279\u6b21\u8d1f\u8d23\u4eba biz_qc_batch_assignee", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1626"}, {"id": "models_models_rationale_1645", "label": "\u8d28\u68c0\u5de5\u5355-\u5b9e\u9a8c\u5ba4\u9879\u76ee\u660e\u7ec6 biz_qc_work_order_lab_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1645"}, {"id": "models_models_rationale_1668", "label": "\u8d28\u68c0\u5de5\u5355-\u7b2c\u4e09\u65b9\u9879\u76ee\u660e\u7ec6 biz_qc_work_order_third_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1668"}, {"id": "models_models_rationale_1728", "label": "\u8d28\u68c0\u4efb\u52a1\u8d1f\u8d23\u4eba biz_qc_task_assignee", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1728"}, {"id": "models_models_rationale_1775", "label": "\u6d01\u51c0\u5ba4\u51fa\u5165\u8bb0\u5f55 biz_clean_room_access_log", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1775"}, {"id": "models_models_rationale_1800", "label": "\u6d01\u51c0\u5ba4\u7d2b\u5916\u7ebf\u6d88\u6bd2\u8bb0\u5f55 biz_clean_room_uv_disinfect_log", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1800"}, {"id": "models_models_rationale_1823", "label": "\u5b58\u50a8\u8bbe\u65bd\u6811 biz_storage_facility", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1823"}, {"id": "models_models_rationale_1845", "label": "\u5b58\u50a8\u8bbe\u65bd\u5c0f\u683c biz_storage_facility_slot", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1845"}, {"id": "models_models_rationale_1868", "label": "\u5e93\u4f4d\u5360\u7528\u8bb0\u5f55 biz_storage_slot_occupancy", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1868"}, {"id": "models_models_rationale_1894", "label": "\u5c55\u9986\u9884\u7ea6 biz_exhibition_appointment", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1894"}, {"id": "models_models_rationale_1922", "label": "\u7ec6\u80de\u4ea7\u54c1\u7c7b\u578b biz_cell_product_type", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1922"}, {"id": "models_models_rationale_1941", "label": "\u7ec6\u80de\u4ea7\u54c1\u89c4\u683c biz_cell_product_spec", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1941"}, {"id": "models_models_rationale_1960", "label": "\u7ec6\u80de\u4ea7\u54c1\u4ef7\u683c\u4f53\u7cfb biz_cell_product_price", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1960"}, {"id": "models_models_rationale_1985", "label": "\u7ec6\u80de\u4ea7\u54c1\u9879\u76ee\u4ef7\u683c\u4f53\u7cfb biz_cell_product_project_system", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1985"}, {"id": "models_models_rationale_2005", "label": "\u9879\u76ee\u4ef7\u683c\u4f53\u7cfb-\u7ec6\u80de\u4ef7\u683c\u660e\u7ec6 biz_cell_product_project_system_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2005"}, {"id": "models_models_rationale_2056", "label": "\u6e20\u9053\u534f\u8bae biz_channel_agreement", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2056"}, {"id": "models_models_rationale_2081", "label": "\u6e20\u9053\u534f\u8bae-\u7ec6\u80de\u4ea7\u54c1\u4ef7\u683c biz_channel_agreement_product_price", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2081"}, {"id": "models_models_rationale_2106", "label": "\u6e20\u9053\u5f00\u7968\u4fe1\u606f biz_channel_invoice", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2106"}, {"id": "models_models_rationale_2130", "label": "\u6e20\u9053\u90ae\u5bc4\u5730\u5740 biz_channel_mail_address", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2130"}, {"id": "models_models_rationale_2151", "label": "\u6e20\u9053\u8d26\u6237\u4f59\u989d biz_channel_account", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2151"}, {"id": "models_models_rationale_2170", "label": "\u6e20\u9053\u4ea7\u54c1\u4efd\u6570\u5e93\u5b58 biz_channel_product_quota", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2170"}, {"id": "models_models_rationale_2196", "label": "\u6e20\u9053\u670d\u52a1\u8ba2\u5355 biz_channel_service_order", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2196"}, {"id": "models_models_rationale_2242", "label": "\u6e20\u9053\u670d\u52a1\u8ba2\u5355\u4ea7\u54c1\u660e\u7ec6 biz_channel_service_order_product", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2242"}, {"id": "models_models_rationale_2271", "label": "\u6e20\u9053\u670d\u52a1\u8ba2\u5355\u6d41\u6c34 biz_channel_service_order_txn", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2271"}, {"id": "models_models_rationale_2306", "label": "\u4f53\u68c0\u673a\u6784 biz_checkup_institution", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2306"}, {"id": "models_models_rationale_2329", "label": "\u4f53\u68c0\u673a\u6784\u5f00\u7968\u4fe1\u606f biz_checkup_institution_invoice", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2329"}, {"id": "models_models_rationale_2353", "label": "\u4f53\u68c0\u673a\u6784\u9879\u76ee\u53ca\u4ef7\u683c biz_checkup_institution_project", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2353"}, {"id": "models_models_rationale_2374", "label": "\u4f53\u68c0\u673a\u6784\u9879\u76ee\u5957\u9910 biz_checkup_institution_package", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2374"}, {"id": "models_models_rationale_2395", "label": "\u4f53\u68c0\u673a\u6784\u9879\u76ee\u5957\u9910\u660e\u7ec6 biz_checkup_institution_package_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2395"}, {"id": "models_models_rationale_2499", "label": "SOP\u6587\u6863 biz_sop_document", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2499"}, {"id": "models_models_rationale_2520", "label": "\u5de5\u5e8f\u5206\u7c7b biz_process_category", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2520"}, {"id": "models_models_rationale_2558", "label": "\u8017\u6750\u5305 biz_consumable_pack", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2558"}, {"id": "models_models_rationale_2580", "label": "\u8017\u6750\u5305\u660e\u7ec6 biz_consumable_pack_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2580"}, {"id": "models_models_rationale_2628", "label": "\u5de5\u827a\u8bd5\u5242 biz_process_reagent", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2628"}, {"id": "models_models_rationale_2652", "label": "\u5de5\u827a\u8017\u6750 biz_process_consumable", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2652"}, {"id": "models_models_rationale_2676", "label": "\u5de5\u827a\u4ea7\u51fa\u7269 biz_process_output", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2676"}, {"id": "models_models_rationale_2715", "label": "\u5de5\u827a\u8def\u7ebf biz_process_route", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2715"}, {"id": "models_models_rationale_2737", "label": "\u5de5\u827a\u8def\u7ebf\u6b65\u9aa4 biz_process_route_step", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2737"}, {"id": "models_models_rationale_2765", "label": "\u5de5\u827a\u8def\u7ebf\u6b65\u9aa4\u8bd5\u5242 biz_process_route_step_reagent", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2765"}, {"id": "models_models_rationale_2789", "label": "\u5de5\u827a\u8def\u7ebf\u6b65\u9aa4\u8017\u6750 biz_process_route_step_consumable", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2789"}, {"id": "models_models_rationale_2813", "label": "\u5de5\u827a\u8def\u7ebf\u6b65\u9aa4\u4ea7\u51fa\u7269 biz_process_route_step_output", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2813"}, {"id": "models_models_rationale_2834", "label": "\u5de5\u827a\u8def\u7ebf\u6b65\u9aa4\u6570\u636e\u91c7\u96c6\u9879 biz_process_route_step_data_collection", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2834"}, {"id": "models_models_rationale_2859", "label": "\u7ec6\u80de\u4ea7\u54c1 biz_cell_product", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2859"}, {"id": "models_models_rationale_2894", "label": "\u751f\u4ea7\u5de5\u5355 biz_production_work_order", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2894"}, {"id": "models_models_rationale_2924", "label": "\u751f\u4ea7\u4efb\u52a1 biz_production_task", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2924"}, {"id": "models_models_rationale_2956", "label": "\u751f\u4ea7\u4efb\u52a1\u8f6c\u53d1\u8bb0\u5f55 biz_production_task_handover", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2956"}, {"id": "models_models_rationale_2978", "label": "\u751f\u4ea7\u4efb\u52a1\u6295\u5165\u7269 biz_production_task_input", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2978"}, {"id": "models_models_rationale_3000", "label": "\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4 biz_production_task_step", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3000"}, {"id": "models_models_rationale_3033", "label": "\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4\u8d1f\u8d23\u4eba biz_production_task_step_assignee", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3033"}, {"id": "models_models_rationale_3052", "label": "\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4\u8bd5\u5242 biz_production_task_step_reagent", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3052"}, {"id": "models_models_rationale_3078", "label": "\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4\u8017\u6750 biz_production_task_step_consumable", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3078"}, {"id": "models_models_rationale_3104", "label": "\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4\u914d\u7f6e\u8bd5\u5242 biz_production_task_step_configured_reagent", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3104"}, {"id": "models_models_rationale_3129", "label": "\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4\u4ea7\u51fa\u7269 biz_production_task_step_output", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3129"}, {"id": "models_models_rationale_3150", "label": "\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4\u6570\u636e\u91c7\u96c6\u9879 biz_production_task_step_data_collection", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3150"}, {"id": "models_models_rationale_3171", "label": "\u751f\u4ea7\u4efb\u52a1\u6700\u7ec8\u4ea7\u51fa biz_production_task_output", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3171"}, {"id": "models_models_rationale_3196", "label": "\u65b0\u751f\u513f\u6ee1\u6708\u5f85\u529e biz_protocol_fullmoon_todo", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3196"}, {"id": "models_models_rationale_3226", "label": "\u4fdd\u9669\u516c\u53f8 biz_insurance_company", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3226"}, {"id": "models_models_rationale_3249", "label": "\u4fdd\u9669\u516c\u53f8\u5f00\u7968\u4fe1\u606f biz_insurance_company_invoice", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3249"}, {"id": "models_models_rationale_3273", "label": "\u4fdd\u9669\u9669\u79cd\u4ef7\u683c biz_insurance_project_price", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3273"}, {"id": "models_models_rationale_3294", "label": "\u8017\u6750\u53d8\u52a8\u8bb0\u5f55 biz_consumable_stock_log", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3294"}, {"id": "models_models_rationale_3324", "label": "\u8bd5\u5242\u53d8\u52a8\u8bb0\u5f55 biz_reagent_stock_log", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3324"}, {"id": "models_models_rationale_3354", "label": "\u6e20\u9053\u4e2d\u8bd5\u670d\u52a1\u7533\u8bf7\u5355 biz_pilot_application", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3354"}, {"id": "models_models_rationale_3384", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u60a3\u8005\u4fe1\u606f biz_pilot_patient", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3384"}, {"id": "models_models_rationale_3413", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u8f93\u6ce8\u65b9\u6848 biz_pilot_infusion_plan", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3413"}, {"id": "models_models_rationale_3438", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u8f93\u6ce8\u8ba1\u5212 biz_pilot_infusion_schedule", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3438"}, {"id": "models_models_rationale_3467", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u8f93\u6ce8\u8ba1\u5212\u7ec6\u80de\u4ea7\u54c1 biz_pilot_infusion_schedule_product", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3467"}, {"id": "models_models_rationale_3494", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u4f53\u68c0\u4fe1\u606f biz_pilot_checkup", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3494"}, {"id": "models_models_rationale_3523", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u4f53\u68c0\u9884\u7ea6\u9879\u76ee biz_pilot_checkup_reserve_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3523"}, {"id": "models_models_rationale_3543", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u4f53\u68c0\u5b9e\u9645\u9879\u76ee biz_pilot_checkup_actual_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3543"}, {"id": "models_models_rationale_3563", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u4ea4\u4ed8\u4fe1\u606f biz_pilot_delivery", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3563"}, {"id": "models_models_rationale_3582", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u4ea4\u4ed8\u7269\u6599 biz_pilot_delivery_material", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3582"}, {"id": "models_models_rationale_3603", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u4ea4\u4ed8\u65b9\u5f0f biz_pilot_delivery_method", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3603"}, {"id": "models_models_rationale_3632", "label": "\u8f93\u6ce8\u8ba1\u5212-\u5e94\u7528\u786e\u8ba4 biz_pilot_infusion_confirm", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3632"}, {"id": "models_models_rationale_3653", "label": "\u51fa\u5e93\u653e\u884c-\u51fa\u5e93\u7269\u6599\u51c6\u5907\u4e3b\u8868 biz_outbound_release_material", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3653"}, {"id": "models_models_rationale_3672", "label": "\u51fa\u5e93\u653e\u884c-\u51fa\u5e93\u7ec6\u80de(\u53f0\u8d26) biz_outbound_release_cell", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3672"}, {"id": "models_models_rationale_3700", "label": "\u51fa\u5e93\u653e\u884c-\u5176\u4ed6\u7eb8\u8d28\u6750\u6599(\u53f0\u8d26) biz_outbound_release_paper", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3700"}, {"id": "models_models_rationale_3722", "label": "\u8f93\u6ce8\u8ba1\u5212-\u51fa\u5e93\u4ea4\u63a5 biz_outbound_handover", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3722"}, {"id": "models_models_rationale_3747", "label": "\u51fa\u5e93\u653e\u884c-\u8d28\u68c0\u7269\u6599(\u53f0\u8d26) biz_outbound_release_qc_material", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3747"}, {"id": "models_models_rationale_3772", "label": "\u51fa\u5e93\u653e\u884c\u5ba1\u6838 biz_outbound_release_review", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3772"}, {"id": "models_models_rationale_3798", "label": "\u73af\u5883\u68c0\u6d4b\u9879 biz_env_detect_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3798"}, {"id": "models_models_rationale_3818", "label": "\u73af\u5883\u68c0\u6d4b\u767b\u8bb0 biz_env_detect_record", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3818"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "enum", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "app_core_database", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_userrole", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L10", "weight": 1.0}, {"source": "models_models_userrole", "target": "str", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysuser", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L22", "weight": 1.0}, {"source": "models_models_sysuser", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysrole", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L49", "weight": 1.0}, {"source": "models_models_sysrole", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L49", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysuserrole", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L69", "weight": 1.0}, {"source": "models_models_sysuserrole", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L69", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysrolemenu", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L88", "weight": 1.0}, {"source": "models_models_sysrolemenu", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L88", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysroledatascopedetail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L107", "weight": 1.0}, {"source": "models_models_sysroledatascopedetail", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L107", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysmenu", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L127", "weight": 1.0}, {"source": "models_models_sysmenu", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L127", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysdept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L153", "weight": 1.0}, {"source": "models_models_sysdept", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L153", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_systenant", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L177", "weight": 1.0}, {"source": "models_models_systenant", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L177", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_syssite", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L197", "weight": 1.0}, {"source": "models_models_syssite", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L197", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_syspost", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L223", "weight": 1.0}, {"source": "models_models_syspost", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L223", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysuserpost", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L243", "weight": 1.0}, {"source": "models_models_sysuserpost", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L243", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizitemunit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L262", "weight": 1.0}, {"source": "models_models_bizitemunit", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L262", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizexpresscompany", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L281", "weight": 1.0}, {"source": "models_models_bizexpresscompany", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L281", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcustomer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L301", "weight": 1.0}, {"source": "models_models_bizcustomer", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L301", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcellsampletype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L324", "weight": 1.0}, {"source": "models_models_bizcellsampletype", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L324", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcollectionregion", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L347", "weight": 1.0}, {"source": "models_models_bizcollectionregion", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L347", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcollectionhospital", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L365", "weight": 1.0}, {"source": "models_models_bizcollectionhospital", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L365", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcollectionprotocolno", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L384", "weight": 1.0}, {"source": "models_models_bizcollectionprotocolno", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L384", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizbiznosequence", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L406", "weight": 1.0}, {"source": "models_models_bizbiznosequence", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L406", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizsamplecode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L426", "weight": 1.0}, {"source": "models_models_bizsamplecode", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L426", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysdicttype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L454", "weight": 1.0}, {"source": "models_models_sysdicttype", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L454", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysethnic", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L473", "weight": 1.0}, {"source": "models_models_sysethnic", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L473", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysdictdata", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L492", "weight": 1.0}, {"source": "models_models_sysdictdata", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L492", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysapirequestlog", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L517", "weight": 1.0}, {"source": "models_models_sysapirequestlog", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L517", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysapirequestloghis", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L543", "weight": 1.0}, {"source": "models_models_sysapirequestloghis", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L543", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizleaverequest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L574", "weight": 1.0}, {"source": "models_models_bizleaverequest", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L574", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_wfprocessdef", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L603", "weight": 1.0}, {"source": "models_models_wfprocessdef", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L603", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_wfprocessversion", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L623", "weight": 1.0}, {"source": "models_models_wfprocessversion", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L623", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_wfnode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L644", "weight": 1.0}, {"source": "models_models_wfnode", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L644", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_wftransition", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L666", "weight": 1.0}, {"source": "models_models_wftransition", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L666", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_wfprocessinstance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L687", "weight": 1.0}, {"source": "models_models_wfprocessinstance", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L687", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_wftask", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L711", "weight": 1.0}, {"source": "models_models_wftask", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L711", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oaappgroup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L738", "weight": 1.0}, {"source": "models_models_oaappgroup", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L738", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oaapp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L756", "weight": 1.0}, {"source": "models_models_oaapp", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L756", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oaappversion", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L782", "weight": 1.0}, {"source": "models_models_oaappversion", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L782", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oarole", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L806", "weight": 1.0}, {"source": "models_models_oarole", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L806", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oaroleuser", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L827", "weight": 1.0}, {"source": "models_models_oaroleuser", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L827", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oainstance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L846", "weight": 1.0}, {"source": "models_models_oainstance", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L846", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oatask", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L870", "weight": 1.0}, {"source": "models_models_oatask", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L870", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oarelation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L896", "weight": 1.0}, {"source": "models_models_oarelation", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L896", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcollectionprotocol", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L921", "weight": 1.0}, {"source": "models_models_bizcollectionprotocol", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L921", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolaudit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L955", "weight": 1.0}, {"source": "models_models_bizprotocolaudit", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L955", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizstoragereleasereview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L976", "weight": 1.0}, {"source": "models_models_bizstoragereleasereview", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L976", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolpayment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1009", "weight": 1.0}, {"source": "models_models_bizprotocolpayment", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1009", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolpaymentdetail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1035", "weight": 1.0}, {"source": "models_models_bizprotocolpaymentdetail", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1035", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolinvoicerequest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1068", "weight": 1.0}, {"source": "models_models_bizprotocolinvoicerequest", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1068", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolinvoicerequestitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1098", "weight": 1.0}, {"source": "models_models_bizprotocolinvoicerequestitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1098", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolpartycustomer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1120", "weight": 1.0}, {"source": "models_models_bizprotocolpartycustomer", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1120", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolcollectioninfo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1160", "weight": 1.0}, {"source": "models_models_bizprotocolcollectioninfo", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1160", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolsample", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1184", "weight": 1.0}, {"source": "models_models_bizprotocolsample", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1184", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolsampletransport", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1217", "weight": 1.0}, {"source": "models_models_bizprotocolsampletransport", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1217", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizattachment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1245", "weight": 1.0}, {"source": "models_models_bizattachment", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1245", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolstoragecert", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1269", "weight": 1.0}, {"source": "models_models_bizprotocolstoragecert", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1269", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizsamplereceptioncheckitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1290", "weight": 1.0}, {"source": "models_models_bizsamplereceptioncheckitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1290", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizsamplereceptioncheckresult", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1310", "weight": 1.0}, {"source": "models_models_bizsamplereceptioncheckresult", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1310", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizsamplereception", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1332", "weight": 1.0}, {"source": "models_models_bizsamplereception", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1332", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizsampleproductionreception", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1371", "weight": 1.0}, {"source": "models_models_bizsampleproductionreception", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1371", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizsamplesmsnotification", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1409", "weight": 1.0}, {"source": "models_models_bizsamplesmsnotification", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1409", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcsmsnotification", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1430", "weight": 1.0}, {"source": "models_models_bizqcsmsnotification", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1430", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizstorageentrysmsnotification", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1455", "weight": 1.0}, {"source": "models_models_bizstorageentrysmsnotification", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1455", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcthirdpartycompany", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1484", "weight": 1.0}, {"source": "models_models_bizqcthirdpartycompany", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1484", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcthirdpartyitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1512", "weight": 1.0}, {"source": "models_models_bizqcthirdpartyitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1512", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqclabtestitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1534", "weight": 1.0}, {"source": "models_models_bizqclabtestitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1534", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcworkorder", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1555", "weight": 1.0}, {"source": "models_models_bizqcworkorder", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1555", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcworkorderinspectionbatch", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1604", "weight": 1.0}, {"source": "models_models_bizqcworkorderinspectionbatch", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1604", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcbatchassignee", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1625", "weight": 1.0}, {"source": "models_models_bizqcbatchassignee", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1625", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcworkorderlabitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1644", "weight": 1.0}, {"source": "models_models_bizqcworkorderlabitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1644", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcworkorderthirditem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1667", "weight": 1.0}, {"source": "models_models_bizqcworkorderthirditem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1667", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqctask", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1693", "weight": 1.0}, {"source": "models_models_bizqctask", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1693", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqctaskassignee", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1727", "weight": 1.0}, {"source": "models_models_bizqctaskassignee", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1727", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcleanroom", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1751", "weight": 1.0}, {"source": "models_models_bizcleanroom", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1751", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcleanroomaccesslog", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1774", "weight": 1.0}, {"source": "models_models_bizcleanroomaccesslog", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1774", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcleanroomuvdisinfectlog", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1799", "weight": 1.0}, {"source": "models_models_bizcleanroomuvdisinfectlog", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1799", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizstoragefacility", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1822", "weight": 1.0}, {"source": "models_models_bizstoragefacility", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1822", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizstoragefacilityslot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1844", "weight": 1.0}, {"source": "models_models_bizstoragefacilityslot", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1844", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizstorageslotoccupancy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1867", "weight": 1.0}, {"source": "models_models_bizstorageslotoccupancy", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1867", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizexhibitionappointment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1893", "weight": 1.0}, {"source": "models_models_bizexhibitionappointment", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1893", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcellproducttype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1921", "weight": 1.0}, {"source": "models_models_bizcellproducttype", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1921", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcellproductspec", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1940", "weight": 1.0}, {"source": "models_models_bizcellproductspec", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1940", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcellproductprice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1959", "weight": 1.0}, {"source": "models_models_bizcellproductprice", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1959", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcellproductprojectsystem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1984", "weight": 1.0}, {"source": "models_models_bizcellproductprojectsystem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1984", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcellproductprojectsystemitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2004", "weight": 1.0}, {"source": "models_models_bizcellproductprojectsystemitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2004", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2031", "weight": 1.0}, {"source": "models_models_bizchannel", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2031", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelagreement", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2055", "weight": 1.0}, {"source": "models_models_bizchannelagreement", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2055", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelagreementproductprice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2080", "weight": 1.0}, {"source": "models_models_bizchannelagreementproductprice", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2080", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelinvoice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2105", "weight": 1.0}, {"source": "models_models_bizchannelinvoice", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2105", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelmailaddress", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2129", "weight": 1.0}, {"source": "models_models_bizchannelmailaddress", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2129", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelaccount", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2150", "weight": 1.0}, {"source": "models_models_bizchannelaccount", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2150", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelproductquota", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2169", "weight": 1.0}, {"source": "models_models_bizchannelproductquota", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2169", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelserviceorder", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2195", "weight": 1.0}, {"source": "models_models_bizchannelserviceorder", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelserviceorderproduct", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2241", "weight": 1.0}, {"source": "models_models_bizchannelserviceorderproduct", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2241", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelserviceordertxn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2270", "weight": 1.0}, {"source": "models_models_bizchannelserviceordertxn", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2270", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcheckupinstitution", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2305", "weight": 1.0}, {"source": "models_models_bizcheckupinstitution", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2305", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcheckupinstitutioninvoice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2328", "weight": 1.0}, {"source": "models_models_bizcheckupinstitutioninvoice", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2328", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcheckupinstitutionproject", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2352", "weight": 1.0}, {"source": "models_models_bizcheckupinstitutionproject", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2352", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcheckupinstitutionpackage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2373", "weight": 1.0}, {"source": "models_models_bizcheckupinstitutionpackage", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2373", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcheckupinstitutionpackageitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2394", "weight": 1.0}, {"source": "models_models_bizcheckupinstitutionpackageitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2394", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizconsumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2420", "weight": 1.0}, {"source": "models_models_bizconsumable", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2420", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizreagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2446", "weight": 1.0}, {"source": "models_models_bizreagent", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2446", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizequipment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2472", "weight": 1.0}, {"source": "models_models_bizequipment", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2472", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizsopdocument", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2498", "weight": 1.0}, {"source": "models_models_bizsopdocument", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2498", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocesscategory", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2519", "weight": 1.0}, {"source": "models_models_bizprocesscategory", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2519", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizoutputtype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2538", "weight": 1.0}, {"source": "models_models_bizoutputtype", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2538", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizconsumablepack", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2557", "weight": 1.0}, {"source": "models_models_bizconsumablepack", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2557", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizconsumablepackitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2579", "weight": 1.0}, {"source": "models_models_bizconsumablepackitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2579", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocess", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2602", "weight": 1.0}, {"source": "models_models_bizprocess", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2602", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessreagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2627", "weight": 1.0}, {"source": "models_models_bizprocessreagent", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2627", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessconsumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2651", "weight": 1.0}, {"source": "models_models_bizprocessconsumable", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2651", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessoutput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2675", "weight": 1.0}, {"source": "models_models_bizprocessoutput", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2675", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessdatacollection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2696", "weight": 1.0}, {"source": "models_models_bizprocessdatacollection", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2696", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessroute", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2714", "weight": 1.0}, {"source": "models_models_bizprocessroute", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2714", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessroutestep", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2736", "weight": 1.0}, {"source": "models_models_bizprocessroutestep", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2736", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessroutestepreagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2764", "weight": 1.0}, {"source": "models_models_bizprocessroutestepreagent", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2764", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessroutestepconsumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2788", "weight": 1.0}, {"source": "models_models_bizprocessroutestepconsumable", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2788", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessroutestepoutput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2812", "weight": 1.0}, {"source": "models_models_bizprocessroutestepoutput", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2812", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessroutestepdatacollection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2833", "weight": 1.0}, {"source": "models_models_bizprocessroutestepdatacollection", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2833", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcellproduct", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2858", "weight": 1.0}, {"source": "models_models_bizcellproduct", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2858", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductionworkorder", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2893", "weight": 1.0}, {"source": "models_models_bizproductionworkorder", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2893", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontask", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2923", "weight": 1.0}, {"source": "models_models_bizproductiontask", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2923", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskhandover", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2955", "weight": 1.0}, {"source": "models_models_bizproductiontaskhandover", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2955", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskinput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2977", "weight": 1.0}, {"source": "models_models_bizproductiontaskinput", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2977", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskstep", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2999", "weight": 1.0}, {"source": "models_models_bizproductiontaskstep", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2999", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskstepassignee", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3032", "weight": 1.0}, {"source": "models_models_bizproductiontaskstepassignee", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3032", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskstepreagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3051", "weight": 1.0}, {"source": "models_models_bizproductiontaskstepreagent", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3051", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskstepconsumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3077", "weight": 1.0}, {"source": "models_models_bizproductiontaskstepconsumable", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3077", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskstepconfiguredreagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3103", "weight": 1.0}, {"source": "models_models_bizproductiontaskstepconfiguredreagent", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3103", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskstepoutput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3128", "weight": 1.0}, {"source": "models_models_bizproductiontaskstepoutput", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3128", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskstepdatacollection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3149", "weight": 1.0}, {"source": "models_models_bizproductiontaskstepdatacollection", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3149", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskoutput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3170", "weight": 1.0}, {"source": "models_models_bizproductiontaskoutput", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3170", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolfullmoontodo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3195", "weight": 1.0}, {"source": "models_models_bizprotocolfullmoontodo", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizinsurancecompany", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3225", "weight": 1.0}, {"source": "models_models_bizinsurancecompany", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3225", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizinsurancecompanyinvoice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3248", "weight": 1.0}, {"source": "models_models_bizinsurancecompanyinvoice", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3248", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizinsuranceprojectprice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3272", "weight": 1.0}, {"source": "models_models_bizinsuranceprojectprice", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3272", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizconsumablestocklog", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3293", "weight": 1.0}, {"source": "models_models_bizconsumablestocklog", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3293", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizreagentstocklog", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3323", "weight": 1.0}, {"source": "models_models_bizreagentstocklog", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3323", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotapplication", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3353", "weight": 1.0}, {"source": "models_models_bizpilotapplication", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3353", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotpatient", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3383", "weight": 1.0}, {"source": "models_models_bizpilotpatient", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3383", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotinfusionplan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3412", "weight": 1.0}, {"source": "models_models_bizpilotinfusionplan", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3412", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotinfusionschedule", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3437", "weight": 1.0}, {"source": "models_models_bizpilotinfusionschedule", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3437", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotinfusionscheduleproduct", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3466", "weight": 1.0}, {"source": "models_models_bizpilotinfusionscheduleproduct", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3466", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotcheckup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3493", "weight": 1.0}, {"source": "models_models_bizpilotcheckup", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3493", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotcheckupreserveitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3522", "weight": 1.0}, {"source": "models_models_bizpilotcheckupreserveitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3522", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotcheckupactualitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3542", "weight": 1.0}, {"source": "models_models_bizpilotcheckupactualitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3542", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotdelivery", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3562", "weight": 1.0}, {"source": "models_models_bizpilotdelivery", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3562", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotdeliverymaterial", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3581", "weight": 1.0}, {"source": "models_models_bizpilotdeliverymaterial", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3581", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotdeliverymethod", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3602", "weight": 1.0}, {"source": "models_models_bizpilotdeliverymethod", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3602", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotinfusionconfirm", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3631", "weight": 1.0}, {"source": "models_models_bizpilotinfusionconfirm", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3631", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizoutboundreleasematerial", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3652", "weight": 1.0}, {"source": "models_models_bizoutboundreleasematerial", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3652", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizoutboundreleasecell", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3671", "weight": 1.0}, {"source": "models_models_bizoutboundreleasecell", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3671", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizoutboundreleasepaper", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3699", "weight": 1.0}, {"source": "models_models_bizoutboundreleasepaper", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3699", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizoutboundhandover", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3721", "weight": 1.0}, {"source": "models_models_bizoutboundhandover", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3721", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizoutboundreleaseqcmaterial", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3746", "weight": 1.0}, {"source": "models_models_bizoutboundreleaseqcmaterial", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3746", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizoutboundreleasereview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3771", "weight": 1.0}, {"source": "models_models_bizoutboundreleasereview", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3771", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizenvdetectitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3797", "weight": 1.0}, {"source": "models_models_bizenvdetectitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3797", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizenvdetectrecord", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3817", "weight": 1.0}, {"source": "models_models_bizenvdetectrecord", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3817", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "app_models_qc_param", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3844", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "app_models_qc_material", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3845", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "app_models_production_material", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3846", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "app_models_material", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3854", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "app_models_clinical_payment", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3863", "weight": 1.0}, {"source": "models_models_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1", "weight": 1.0}, {"source": "models_models_rationale_11", "target": "models_models_userrole", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L11", "weight": 1.0}, {"source": "models_models_rationale_70", "target": "models_models_sysuserrole", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L70", "weight": 1.0}, {"source": "models_models_rationale_89", "target": "models_models_sysrolemenu", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L89", "weight": 1.0}, {"source": "models_models_rationale_108", "target": "models_models_sysroledatascopedetail", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L108", "weight": 1.0}, {"source": "models_models_rationale_178", "target": "models_models_systenant", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L178", "weight": 1.0}, {"source": "models_models_rationale_244", "target": "models_models_sysuserpost", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L244", "weight": 1.0}, {"source": "models_models_rationale_282", "target": "models_models_bizexpresscompany", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L282", "weight": 1.0}, {"source": "models_models_rationale_325", "target": "models_models_bizcellsampletype", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L325", "weight": 1.0}, {"source": "models_models_rationale_348", "target": "models_models_bizcollectionregion", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L348", "weight": 1.0}, {"source": "models_models_rationale_366", "target": "models_models_bizcollectionhospital", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L366", "weight": 1.0}, {"source": "models_models_rationale_385", "target": "models_models_bizcollectionprotocolno", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L385", "weight": 1.0}, {"source": "models_models_rationale_407", "target": "models_models_bizbiznosequence", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L407", "weight": 1.0}, {"source": "models_models_rationale_427", "target": "models_models_bizsamplecode", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L427", "weight": 1.0}, {"source": "models_models_rationale_474", "target": "models_models_sysethnic", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L474", "weight": 1.0}, {"source": "models_models_rationale_575", "target": "models_models_bizleaverequest", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L575", "weight": 1.0}, {"source": "models_models_rationale_624", "target": "models_models_wfprocessversion", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L624", "weight": 1.0}, {"source": "models_models_rationale_667", "target": "models_models_wftransition", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L667", "weight": 1.0}, {"source": "models_models_rationale_688", "target": "models_models_wfprocessinstance", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L688", "weight": 1.0}, {"source": "models_models_rationale_783", "target": "models_models_oaappversion", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L783", "weight": 1.0}, {"source": "models_models_rationale_828", "target": "models_models_oaroleuser", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L828", "weight": 1.0}, {"source": "models_models_rationale_922", "target": "models_models_bizcollectionprotocol", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L922", "weight": 1.0}, {"source": "models_models_rationale_956", "target": "models_models_bizprotocolaudit", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L956", "weight": 1.0}, {"source": "models_models_rationale_977", "target": "models_models_bizstoragereleasereview", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L977", "weight": 1.0}, {"source": "models_models_rationale_1010", "target": "models_models_bizprotocolpayment", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1010", "weight": 1.0}, {"source": "models_models_rationale_1036", "target": "models_models_bizprotocolpaymentdetail", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1036", "weight": 1.0}, {"source": "models_models_rationale_1069", "target": "models_models_bizprotocolinvoicerequest", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1069", "weight": 1.0}, {"source": "models_models_rationale_1099", "target": "models_models_bizprotocolinvoicerequestitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1099", "weight": 1.0}, {"source": "models_models_rationale_1121", "target": "models_models_bizprotocolpartycustomer", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1121", "weight": 1.0}, {"source": "models_models_rationale_1161", "target": "models_models_bizprotocolcollectioninfo", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1161", "weight": 1.0}, {"source": "models_models_rationale_1185", "target": "models_models_bizprotocolsample", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1185", "weight": 1.0}, {"source": "models_models_rationale_1218", "target": "models_models_bizprotocolsampletransport", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1218", "weight": 1.0}, {"source": "models_models_rationale_1270", "target": "models_models_bizprotocolstoragecert", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1270", "weight": 1.0}, {"source": "models_models_rationale_1291", "target": "models_models_bizsamplereceptioncheckitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1291", "weight": 1.0}, {"source": "models_models_rationale_1311", "target": "models_models_bizsamplereceptioncheckresult", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1311", "weight": 1.0}, {"source": "models_models_rationale_1333", "target": "models_models_bizsamplereception", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1333", "weight": 1.0}, {"source": "models_models_rationale_1372", "target": "models_models_bizsampleproductionreception", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1372", "weight": 1.0}, {"source": "models_models_rationale_1431", "target": "models_models_bizqcsmsnotification", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1431", "weight": 1.0}, {"source": "models_models_rationale_1456", "target": "models_models_bizstorageentrysmsnotification", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1456", "weight": 1.0}, {"source": "models_models_rationale_1485", "target": "models_models_bizqcthirdpartycompany", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1485", "weight": 1.0}, {"source": "models_models_rationale_1513", "target": "models_models_bizqcthirdpartyitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1513", "weight": 1.0}, {"source": "models_models_rationale_1535", "target": "models_models_bizqclabtestitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1535", "weight": 1.0}, {"source": "models_models_rationale_1556", "target": "models_models_bizqcworkorder", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1556", "weight": 1.0}, {"source": "models_models_rationale_1605", "target": "models_models_bizqcworkorderinspectionbatch", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1605", "weight": 1.0}, {"source": "models_models_rationale_1626", "target": "models_models_bizqcbatchassignee", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1626", "weight": 1.0}, {"source": "models_models_rationale_1645", "target": "models_models_bizqcworkorderlabitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1645", "weight": 1.0}, {"source": "models_models_rationale_1668", "target": "models_models_bizqcworkorderthirditem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1668", "weight": 1.0}, {"source": "models_models_rationale_1728", "target": "models_models_bizqctaskassignee", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1728", "weight": 1.0}, {"source": "models_models_rationale_1775", "target": "models_models_bizcleanroomaccesslog", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1775", "weight": 1.0}, {"source": "models_models_rationale_1800", "target": "models_models_bizcleanroomuvdisinfectlog", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1800", "weight": 1.0}, {"source": "models_models_rationale_1823", "target": "models_models_bizstoragefacility", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1823", "weight": 1.0}, {"source": "models_models_rationale_1845", "target": "models_models_bizstoragefacilityslot", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1845", "weight": 1.0}, {"source": "models_models_rationale_1868", "target": "models_models_bizstorageslotoccupancy", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1868", "weight": 1.0}, {"source": "models_models_rationale_1894", "target": "models_models_bizexhibitionappointment", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1894", "weight": 1.0}, {"source": "models_models_rationale_1922", "target": "models_models_bizcellproducttype", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1922", "weight": 1.0}, {"source": "models_models_rationale_1941", "target": "models_models_bizcellproductspec", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1941", "weight": 1.0}, {"source": "models_models_rationale_1960", "target": "models_models_bizcellproductprice", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1960", "weight": 1.0}, {"source": "models_models_rationale_1985", "target": "models_models_bizcellproductprojectsystem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1985", "weight": 1.0}, {"source": "models_models_rationale_2005", "target": "models_models_bizcellproductprojectsystemitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2005", "weight": 1.0}, {"source": "models_models_rationale_2056", "target": "models_models_bizchannelagreement", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2056", "weight": 1.0}, {"source": "models_models_rationale_2081", "target": "models_models_bizchannelagreementproductprice", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2081", "weight": 1.0}, {"source": "models_models_rationale_2106", "target": "models_models_bizchannelinvoice", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2106", "weight": 1.0}, {"source": "models_models_rationale_2130", "target": "models_models_bizchannelmailaddress", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2130", "weight": 1.0}, {"source": "models_models_rationale_2151", "target": "models_models_bizchannelaccount", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2151", "weight": 1.0}, {"source": "models_models_rationale_2170", "target": "models_models_bizchannelproductquota", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2170", "weight": 1.0}, {"source": "models_models_rationale_2196", "target": "models_models_bizchannelserviceorder", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2196", "weight": 1.0}, {"source": "models_models_rationale_2242", "target": "models_models_bizchannelserviceorderproduct", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2242", "weight": 1.0}, {"source": "models_models_rationale_2271", "target": "models_models_bizchannelserviceordertxn", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2271", "weight": 1.0}, {"source": "models_models_rationale_2306", "target": "models_models_bizcheckupinstitution", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2306", "weight": 1.0}, {"source": "models_models_rationale_2329", "target": "models_models_bizcheckupinstitutioninvoice", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2329", "weight": 1.0}, {"source": "models_models_rationale_2353", "target": "models_models_bizcheckupinstitutionproject", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2353", "weight": 1.0}, {"source": "models_models_rationale_2374", "target": "models_models_bizcheckupinstitutionpackage", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2374", "weight": 1.0}, {"source": "models_models_rationale_2395", "target": "models_models_bizcheckupinstitutionpackageitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2395", "weight": 1.0}, {"source": "models_models_rationale_2499", "target": "models_models_bizsopdocument", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2499", "weight": 1.0}, {"source": "models_models_rationale_2520", "target": "models_models_bizprocesscategory", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2520", "weight": 1.0}, {"source": "models_models_rationale_2558", "target": "models_models_bizconsumablepack", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2558", "weight": 1.0}, {"source": "models_models_rationale_2580", "target": "models_models_bizconsumablepackitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2580", "weight": 1.0}, {"source": "models_models_rationale_2628", "target": "models_models_bizprocessreagent", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2628", "weight": 1.0}, {"source": "models_models_rationale_2652", "target": "models_models_bizprocessconsumable", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2652", "weight": 1.0}, {"source": "models_models_rationale_2676", "target": "models_models_bizprocessoutput", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2676", "weight": 1.0}, {"source": "models_models_rationale_2715", "target": "models_models_bizprocessroute", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2715", "weight": 1.0}, {"source": "models_models_rationale_2737", "target": "models_models_bizprocessroutestep", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2737", "weight": 1.0}, {"source": "models_models_rationale_2765", "target": "models_models_bizprocessroutestepreagent", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2765", "weight": 1.0}, {"source": "models_models_rationale_2789", "target": "models_models_bizprocessroutestepconsumable", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2789", "weight": 1.0}, {"source": "models_models_rationale_2813", "target": "models_models_bizprocessroutestepoutput", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2813", "weight": 1.0}, {"source": "models_models_rationale_2834", "target": "models_models_bizprocessroutestepdatacollection", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2834", "weight": 1.0}, {"source": "models_models_rationale_2859", "target": "models_models_bizcellproduct", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2859", "weight": 1.0}, {"source": "models_models_rationale_2894", "target": "models_models_bizproductionworkorder", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2894", "weight": 1.0}, {"source": "models_models_rationale_2924", "target": "models_models_bizproductiontask", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2924", "weight": 1.0}, {"source": "models_models_rationale_2956", "target": "models_models_bizproductiontaskhandover", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2956", "weight": 1.0}, {"source": "models_models_rationale_2978", "target": "models_models_bizproductiontaskinput", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2978", "weight": 1.0}, {"source": "models_models_rationale_3000", "target": "models_models_bizproductiontaskstep", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3000", "weight": 1.0}, {"source": "models_models_rationale_3033", "target": "models_models_bizproductiontaskstepassignee", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3033", "weight": 1.0}, {"source": "models_models_rationale_3052", "target": "models_models_bizproductiontaskstepreagent", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3052", "weight": 1.0}, {"source": "models_models_rationale_3078", "target": "models_models_bizproductiontaskstepconsumable", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3078", "weight": 1.0}, {"source": "models_models_rationale_3104", "target": "models_models_bizproductiontaskstepconfiguredreagent", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3104", "weight": 1.0}, {"source": "models_models_rationale_3129", "target": "models_models_bizproductiontaskstepoutput", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3129", "weight": 1.0}, {"source": "models_models_rationale_3150", "target": "models_models_bizproductiontaskstepdatacollection", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3150", "weight": 1.0}, {"source": "models_models_rationale_3171", "target": "models_models_bizproductiontaskoutput", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3171", "weight": 1.0}, {"source": "models_models_rationale_3196", "target": "models_models_bizprotocolfullmoontodo", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3196", "weight": 1.0}, {"source": "models_models_rationale_3226", "target": "models_models_bizinsurancecompany", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3226", "weight": 1.0}, {"source": "models_models_rationale_3249", "target": "models_models_bizinsurancecompanyinvoice", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3249", "weight": 1.0}, {"source": "models_models_rationale_3273", "target": "models_models_bizinsuranceprojectprice", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3273", "weight": 1.0}, {"source": "models_models_rationale_3294", "target": "models_models_bizconsumablestocklog", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3294", "weight": 1.0}, {"source": "models_models_rationale_3324", "target": "models_models_bizreagentstocklog", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3324", "weight": 1.0}, {"source": "models_models_rationale_3354", "target": "models_models_bizpilotapplication", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3354", "weight": 1.0}, {"source": "models_models_rationale_3384", "target": "models_models_bizpilotpatient", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3384", "weight": 1.0}, {"source": "models_models_rationale_3413", "target": "models_models_bizpilotinfusionplan", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3413", "weight": 1.0}, {"source": "models_models_rationale_3438", "target": "models_models_bizpilotinfusionschedule", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3438", "weight": 1.0}, {"source": "models_models_rationale_3467", "target": "models_models_bizpilotinfusionscheduleproduct", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3467", "weight": 1.0}, {"source": "models_models_rationale_3494", "target": "models_models_bizpilotcheckup", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3494", "weight": 1.0}, {"source": "models_models_rationale_3523", "target": "models_models_bizpilotcheckupreserveitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3523", "weight": 1.0}, {"source": "models_models_rationale_3543", "target": "models_models_bizpilotcheckupactualitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3543", "weight": 1.0}, {"source": "models_models_rationale_3563", "target": "models_models_bizpilotdelivery", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3563", "weight": 1.0}, {"source": "models_models_rationale_3582", "target": "models_models_bizpilotdeliverymaterial", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3582", "weight": 1.0}, {"source": "models_models_rationale_3603", "target": "models_models_bizpilotdeliverymethod", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3603", "weight": 1.0}, {"source": "models_models_rationale_3632", "target": "models_models_bizpilotinfusionconfirm", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3632", "weight": 1.0}, {"source": "models_models_rationale_3653", "target": "models_models_bizoutboundreleasematerial", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3653", "weight": 1.0}, {"source": "models_models_rationale_3672", "target": "models_models_bizoutboundreleasecell", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3672", "weight": 1.0}, {"source": "models_models_rationale_3700", "target": "models_models_bizoutboundreleasepaper", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3700", "weight": 1.0}, {"source": "models_models_rationale_3722", "target": "models_models_bizoutboundhandover", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3722", "weight": 1.0}, {"source": "models_models_rationale_3747", "target": "models_models_bizoutboundreleaseqcmaterial", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3747", "weight": 1.0}, {"source": "models_models_rationale_3772", "target": "models_models_bizoutboundreleasereview", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3772", "weight": 1.0}, {"source": "models_models_rationale_3798", "target": "models_models_bizenvdetectitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3798", "weight": 1.0}, {"source": "models_models_rationale_3818", "target": "models_models_bizenvdetectrecord", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3818", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/1a23bcb2e3f5f26ff675fca0189fd1298f6d140b09e6080fd58b55f71bcb6297.json b/backend/app/graphify-out/cache/ast/1a23bcb2e3f5f26ff675fca0189fd1298f6d140b09e6080fd58b55f71bcb6297.json new file mode 100644 index 00000000..403304db --- /dev/null +++ b/backend/app/graphify-out/cache/ast/1a23bcb2e3f5f26ff675fca0189fd1298f6d140b09e6080fd58b55f71bcb6297.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "label": "oa_engine.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1"}, {"id": "services_oa_engine_oaengineerror", "label": "OaEngineError", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "services_oa_engine_loads", "label": "_loads()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21"}, {"id": "services_oa_engine_dumps", "label": "_dumps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32"}, {"id": "services_oa_engine_node_type", "label": "_node_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36"}, {"id": "services_oa_engine_flow_root", "label": "_flow_root()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40"}, {"id": "services_oa_engine_find_node", "label": "_find_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48"}, {"id": "services_oa_engine_advanced", "label": "_advanced()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66"}, {"id": "services_oa_engine_check_initiator_scope", "label": "_check_initiator_scope()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75"}, {"id": "services_oa_engine_instance_to_dict", "label": "_instance_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L84"}, {"id": "services_oa_engine_task_to_dict", "label": "_task_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100"}, {"id": "services_oa_engine_list_templates", "label": "list_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L117"}, {"id": "services_oa_engine_get_template_detail", "label": "get_template_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L147"}, {"id": "services_oa_engine_create_tasks_for_node", "label": "_create_tasks_for_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L171"}, {"id": "services_oa_engine_match_condition_group", "label": "_match_condition_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L236"}, {"id": "services_oa_engine_advance_from", "label": "advance_from()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L277"}, {"id": "services_oa_engine_start_instance", "label": "start_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L343"}, {"id": "services_oa_engine_get_instance", "label": "_get_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L434"}, {"id": "services_oa_engine_get_instance_detail", "label": "get_instance_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L445"}, {"id": "services_oa_engine_list_tasks", "label": "list_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L473"}, {"id": "services_oa_engine_complete_task", "label": "complete_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L523"}, {"id": "services_oa_engine_add_sign", "label": "add_sign()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L638"}, {"id": "services_oa_engine_withdraw_instance", "label": "withdraw_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L751"}, {"id": "services_oa_engine_rationale_286", "label": "\u4ece\u67d0\u8282\u70b9\u7684\u4e0b\u4e00\u8df3\u5f00\u59cb\u63a8\u8fdb\uff1bfrom_node \u4e3a None \u8868\u793a\u4ece start \u8fdb\u5165\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L286"}, {"id": "services_oa_engine_rationale_647", "label": "\u5f53\u524d\u5f85\u529e\u5904\u7406\u4eba\u52a0\u7b7e\uff1a\u4e3a\u540c\u8282\u70b9\u65b0\u589e\u5f85\u529e\u5ba1\u6279\u4eba\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L647"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_assignee", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_formula", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_oaengineerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "services_oa_engine_oaengineerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_loads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_dumps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_node_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_root", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_find_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advanced", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_check_initiator_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_instance_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L84", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L117", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_template_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L147", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_create_tasks_for_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L171", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_match_condition_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L236", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advance_from", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L277", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_start_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L343", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L434", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L445", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L473", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_complete_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L523", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_add_sign", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L638", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_withdraw_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L751", "weight": 1.0}, {"source": "services_oa_engine_flow_root", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L42", "weight": 1.0}, {"source": "services_oa_engine_advanced", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L67", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L79", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L81", "weight": 1.0}, {"source": "services_oa_engine_instance_to_dict", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L93", "weight": 1.0}, {"source": "services_oa_engine_list_templates", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L130", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L152", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L153", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L165", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L167", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L180", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L191", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L203", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L287", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L287", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L303", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_create_tasks_for_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L320", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L333", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L357", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L358", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L363", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L385", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L421", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L431", "weight": 1.0}, {"source": "services_oa_engine_get_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L441", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L446", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L464", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L465", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L467", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L468", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L515", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L517", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L520", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L534", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L548", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L560", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L593", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L629", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L629", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L630", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L633", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L654", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L660", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L671", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L748", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L754", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L756", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L764", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L783", "weight": 1.0}, {"source": "services_oa_engine_rationale_286", "target": "services_oa_engine_advance_from", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L286", "weight": 1.0}, {"source": "services_oa_engine_rationale_647", "target": "services_oa_engine_add_sign", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L647", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_engine_loads", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L24"}, {"caller_nid": "services_oa_engine_loads", "callee": "loads", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L27"}, {"caller_nid": "services_oa_engine_dumps", "callee": "dumps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L33"}, {"caller_nid": "services_oa_engine_node_type", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L51"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L53"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L54"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L58"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_advanced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L69"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L70"}, {"caller_nid": "services_oa_engine_advanced", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L71"}, {"caller_nid": "services_oa_engine_check_initiator_scope", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L76"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L95"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L96"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L112"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L113"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L121"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L121"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L126"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L133"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L150"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L154"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L181"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L190"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L193"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L203"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L205"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L205"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L205"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L206"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L210"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L211"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L213"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L214"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L231"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L232"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L239"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L241"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L242"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L244"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L248"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L250"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L254"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L256"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L257"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L258"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L261"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L262"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L264"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L265"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "eval_formula", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L270"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L270"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L303"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L305"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L313"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L314"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L317"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L330"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L336"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L355"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L359"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L364"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "apply_formulas_and_linkages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L366"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L371"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L371"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L371"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L375"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L377"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaInstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L378"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L379"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L382"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L397"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L400"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L403"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaRelation", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L404"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L405"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L429"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L430"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L436"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L436"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L436"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L447"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L449"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L449"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L449"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L456"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L460"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L460"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L460"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L468"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L469"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L469"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L480"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L482"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L482"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L490"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L490"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L495"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L498"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L498"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L506"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L506"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L506"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L506"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L512"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L519"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L519"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L519"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L532"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L537"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L537"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L537"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L553"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L553"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L553"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L561"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L561"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L564"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L565"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L569"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L574"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L574"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L574"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L587"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L591"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L592"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L596"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L598"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L598"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L598"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L609"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L615"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L615"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L615"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L627"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L634"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L649"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L649"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L649"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L665"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L665"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L665"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L672"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L676"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L678"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L681"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L682"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L688"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L688"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L688"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L697"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L704"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L704"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L704"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L715"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L716"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L717"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L729"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L743"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L746"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L747"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L760"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L760"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L760"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L764"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L765"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L768"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L772"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L774"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L774"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L774"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L781"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L782"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/2b82abe13ff0cd8326315ca4617689ed900bd1abd1c70f21d23376ec12194d80.json b/backend/app/graphify-out/cache/ast/2b82abe13ff0cd8326315ca4617689ed900bd1abd1c70f21d23376ec12194d80.json new file mode 100644 index 00000000..722b65ce --- /dev/null +++ b/backend/app/graphify-out/cache/ast/2b82abe13ff0cd8326315ca4617689ed900bd1abd1c70f21d23376ec12194d80.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "label": "oa_engine.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1"}, {"id": "services_oa_engine_oaengineerror", "label": "OaEngineError", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L26"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "services_oa_engine_loads", "label": "_loads()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L30"}, {"id": "services_oa_engine_dumps", "label": "_dumps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41"}, {"id": "services_oa_engine_node_type", "label": "_node_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L45"}, {"id": "services_oa_engine_flow_root", "label": "_flow_root()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L49"}, {"id": "services_oa_engine_find_node", "label": "_find_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L57"}, {"id": "services_oa_engine_flow_node_key_order", "label": "_flow_node_key_order()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75"}, {"id": "services_oa_engine_next_task_order_num", "label": "_next_task_order_num()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100"}, {"id": "services_oa_engine_sort_tasks_for_detail", "label": "_sort_tasks_for_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L111"}, {"id": "services_oa_engine_fmt_dt", "label": "_fmt_dt()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L131"}, {"id": "services_oa_engine_terminal_item", "label": "_terminal_item()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L139"}, {"id": "services_oa_engine_task_round", "label": "_task_round()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L154"}, {"id": "services_oa_engine_append_pending_nodes", "label": "_append_pending_nodes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L164"}, {"id": "services_oa_engine_build_progress_items", "label": "build_progress_items()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L195"}, {"id": "services_oa_engine_add_instance_event", "label": "_add_instance_event()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L267"}, {"id": "services_oa_engine_advanced", "label": "_advanced()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L302"}, {"id": "services_oa_engine_check_initiator_scope", "label": "_check_initiator_scope()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L311"}, {"id": "services_oa_engine_instance_to_dict", "label": "_instance_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L320"}, {"id": "services_oa_engine_task_to_dict", "label": "_task_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L338"}, {"id": "services_oa_engine_instance_progress_summary", "label": "_instance_progress_summary()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L364"}, {"id": "services_oa_engine_enrich_list_rows", "label": "_enrich_list_rows()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L405"}, {"id": "services_oa_engine_user_name_map", "label": "_user_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L471"}, {"id": "services_oa_engine_list_templates", "label": "list_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L479"}, {"id": "services_oa_engine_get_template_detail", "label": "get_template_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L509"}, {"id": "services_oa_engine_role_name_map", "label": "_role_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L542"}, {"id": "services_oa_engine_assignee_meta", "label": "_assignee_meta()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L570"}, {"id": "services_oa_engine_preview_people", "label": "_preview_people()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L585"}, {"id": "services_oa_engine_walk_preview_nodes", "label": "_walk_preview_nodes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L593"}, {"id": "services_oa_engine_preview_start_flow", "label": "preview_start_flow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L719"}, {"id": "services_oa_engine_create_tasks_for_node", "label": "_create_tasks_for_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L769"}, {"id": "services_oa_engine_match_condition_group", "label": "_match_condition_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L838"}, {"id": "services_oa_engine_advance_from", "label": "advance_from()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L879"}, {"id": "services_oa_engine_start_instance", "label": "start_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L949"}, {"id": "services_oa_engine_get_instance", "label": "_get_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1053"}, {"id": "services_oa_engine_get_instance_detail", "label": "get_instance_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1064"}, {"id": "services_oa_engine_list_tasks", "label": "list_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1128"}, {"id": "services_oa_engine_complete_task", "label": "complete_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1192"}, {"id": "services_oa_engine_add_sign", "label": "add_sign()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1313"}, {"id": "services_oa_engine_return_task", "label": "return_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1429"}, {"id": "services_oa_engine_resubmit_instance", "label": "resubmit_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1510"}, {"id": "services_oa_engine_withdraw_instance", "label": "withdraw_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1524"}, {"id": "services_oa_engine_rationale_76", "label": "\u6309\u6d41\u7a0b\u6811\u5148\u5e8f\u904d\u5386\u4e3a node.id \u5206\u914d\u7a33\u5b9a\u5e8f\u53f7\uff08\u7528\u4e8e\u8be6\u60c5\u65f6\u95f4\u8f74\u6392\u5e8f\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L76"}, {"id": "services_oa_engine_rationale_101", "label": "\u540c\u4e00\u5b9e\u4f8b\u5185\u4efb\u52a1\u5c55\u793a\u5e8f\u53f7\u53d6 max+1\uff08\u65e0\u4efb\u52a1\u4ece 1 \u8d77\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L101"}, {"id": "services_oa_engine_rationale_114", "label": "\u8be6\u60c5\u65f6\u95f4\u8f74\uff1a\u6309\u6d41\u7a0b\u6811\u8282\u70b9\u987a\u5e8f\uff0c\u518d order_num / create_time\uff08\u517c\u5bb9\u65e7\u6570\u636e\u540c\u79d2\u521b\u5efa\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L114"}, {"id": "services_oa_engine_rationale_203", "label": "\u6295\u5f71\u5ba1\u6279\u8fdb\u5ea6\uff1a\u53d1\u8d77\u4eba \u2192 \u6811\u5e8f tasks \u2192 \u672a\u5230\u8fbe\uff1b\u7ec8\u6001\u6536\u5c3e\u3002 \u9489\u9489\u5bf9\u9f50\uff1a\u6253\u56de\u7ed3\u679c\u843d\u5728\u5ba1\u6279\u4efb\u52a1\u8282\u70b9\u4e0a\uff0c\u4e0d\u53e6\u63d2 kind=return\uff1b\u4e0d\u505a\u540c\u5355\u591a\u8f6e", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L203"}, {"id": "services_oa_engine_rationale_728", "label": "\u53d1\u8d77\u524d\u9884\u89c8\u5ba1\u6279\u94fe\uff08\u89e3\u6790\u5177\u4f53\u4eba\u5458\uff1b\u6761\u4ef6\u5206\u652f\u5c55\u5f00\u5c55\u793a\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L728"}, {"id": "services_oa_engine_rationale_888", "label": "\u4ece\u67d0\u8282\u70b9\u7684\u4e0b\u4e00\u8df3\u5f00\u59cb\u63a8\u8fdb\uff1bfrom_node \u4e3a None \u8868\u793a\u4ece start \u8fdb\u5165\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L888"}, {"id": "services_oa_engine_rationale_1322", "label": "\u5f53\u524d\u5f85\u529e\u5904\u7406\u4eba\u52a0\u7b7e\uff1a\u4e3a\u540c\u8282\u70b9\u65b0\u589e\u5f85\u529e\u5ba1\u6279\u4eba\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1322"}, {"id": "services_oa_engine_rationale_1437", "label": "\u5ba1\u6279\u4eba\u6253\u56de\uff1a\u672c\u5355\u7ec8\u6001 returned\uff1b\u518d\u529e\u987b\u590d\u5236\u8868\u5355\u5f00\u65b0\u5b9e\u4f8b\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1437"}, {"id": "services_oa_engine_rationale_1519", "label": "\u5df2\u5e9f\u5f03\uff1a\u540c\u5b9e\u4f8b\u518d\u6b21\u63d0\u4ea4\u3002\u8bf7\u590d\u5236\u8868\u5355\u91cd\u65b0\u53d1\u8d77\u65b0\u5b9e\u4f8b\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1519"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_assignee", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_formula", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_oaengineerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L26", "weight": 1.0}, {"source": "services_oa_engine_oaengineerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_loads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L30", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_dumps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_node_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L45", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_root", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L49", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_find_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L57", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_node_key_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_next_task_order_num", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_fmt_dt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L131", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_terminal_item", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L139", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_round", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L154", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_append_pending_nodes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L164", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_build_progress_items", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_add_instance_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L267", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advanced", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L302", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_check_initiator_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_instance_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L320", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L338", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_instance_progress_summary", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L364", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_enrich_list_rows", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L405", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_user_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L471", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L479", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_template_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L509", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_role_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L542", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_assignee_meta", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L570", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_preview_people", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L585", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_walk_preview_nodes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L593", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_preview_start_flow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L719", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_create_tasks_for_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L769", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_match_condition_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L838", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advance_from", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L879", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_start_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L949", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1053", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1064", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1128", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_complete_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1192", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_add_sign", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1313", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_return_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1429", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_resubmit_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1510", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_withdraw_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1524", "weight": 1.0}, {"source": "services_oa_engine_flow_root", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L51", "weight": 1.0}, {"source": "services_oa_engine_sort_tasks_for_detail", "target": "services_oa_engine_flow_node_key_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L115", "weight": 1.0}, {"source": "services_oa_engine_terminal_item", "target": "services_oa_engine_fmt_dt", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L147", "weight": 1.0}, {"source": "services_oa_engine_append_pending_nodes", "target": "services_oa_engine_flow_node_key_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L171", "weight": 1.0}, {"source": "services_oa_engine_append_pending_nodes", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L173", "weight": 1.0}, {"source": "services_oa_engine_append_pending_nodes", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L176", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L208", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_fmt_dt", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L211", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_append_pending_nodes", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L252", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_terminal_item", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L257", "weight": 1.0}, {"source": "services_oa_engine_advanced", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L303", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L315", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L317", "weight": 1.0}, {"source": "services_oa_engine_instance_to_dict", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L329", "weight": 1.0}, {"source": "services_oa_engine_enrich_list_rows", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L449", "weight": 1.0}, {"source": "services_oa_engine_enrich_list_rows", "target": "services_oa_engine_instance_progress_summary", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458", "weight": 1.0}, {"source": "services_oa_engine_list_templates", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L492", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L514", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L515", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L527", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L529", "weight": 1.0}, {"source": "services_oa_engine_assignee_meta", "target": "services_oa_engine_role_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L574", "weight": 1.0}, {"source": "services_oa_engine_preview_people", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L586", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L606", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_preview_people", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L608", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_assignee_meta", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L679", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L731", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L732", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L750", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_walk_preview_nodes", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L756", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L762", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L779", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L790", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L802", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L807", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L889", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L889", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L905", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L910", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_create_tasks_for_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L924", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L939", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L966", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L967", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L972", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L995", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_add_instance_event", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1033", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1040", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1050", "weight": 1.0}, {"source": "services_oa_engine_get_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1060", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1065", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1080", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1080", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1083", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1089", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1094", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1097", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1102", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_build_progress_items", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1115", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1170", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_enrich_list_rows", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1171", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1173", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1176", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1203", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1217", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1229", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1266", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1304", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1304", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1305", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1308", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1329", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1335", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1346", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1374", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1426", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1444", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1450", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1461", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_add_instance_event", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1496", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1507", "weight": 1.0}, {"source": "services_oa_engine_resubmit_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1521", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1527", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1529", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1537", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_add_instance_event", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1555", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1563", "weight": 1.0}, {"source": "services_oa_engine_rationale_76", "target": "services_oa_engine_flow_node_key_order", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L76", "weight": 1.0}, {"source": "services_oa_engine_rationale_101", "target": "services_oa_engine_next_task_order_num", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L101", "weight": 1.0}, {"source": "services_oa_engine_rationale_114", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L114", "weight": 1.0}, {"source": "services_oa_engine_rationale_203", "target": "services_oa_engine_build_progress_items", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L203", "weight": 1.0}, {"source": "services_oa_engine_rationale_728", "target": "services_oa_engine_preview_start_flow", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L728", "weight": 1.0}, {"source": "services_oa_engine_rationale_888", "target": "services_oa_engine_advance_from", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L888", "weight": 1.0}, {"source": "services_oa_engine_rationale_1322", "target": "services_oa_engine_add_sign", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1322", "weight": 1.0}, {"source": "services_oa_engine_rationale_1437", "target": "services_oa_engine_return_task", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1437", "weight": 1.0}, {"source": "services_oa_engine_rationale_1519", "target": "services_oa_engine_resubmit_instance", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1519", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_engine_loads", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L33"}, {"caller_nid": "services_oa_engine_loads", "callee": "loads", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36"}, {"caller_nid": "services_oa_engine_dumps", "callee": "dumps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L42"}, {"caller_nid": "services_oa_engine_node_type", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L46"}, {"caller_nid": "services_oa_engine_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L46"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L50"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L52"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L52"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L60"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L62"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L63"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L67"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_flow_node_key_order", "callee": "walk", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L96"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L103"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L103"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L103"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L107"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L108"}, {"caller_nid": "services_oa_engine_sort_tasks_for_detail", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L115"}, {"caller_nid": "services_oa_engine_sort_tasks_for_detail", "callee": "sorted", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_fmt_dt", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L134"}, {"caller_nid": "services_oa_engine_fmt_dt", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L135"}, {"caller_nid": "services_oa_engine_fmt_dt", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L136"}, {"caller_nid": "services_oa_engine_terminal_item", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L142"}, {"caller_nid": "services_oa_engine_terminal_item", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L147"}, {"caller_nid": "services_oa_engine_task_round", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L155"}, {"caller_nid": "services_oa_engine_task_round", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L159"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "sorted", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L172"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "items", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L172"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L179"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L183"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L207"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L208"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L211"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L213"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L214"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L224"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L232"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L232"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L235"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L242"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L247"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L251"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L257"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L259"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L261"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L263"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L278"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "OaInstanceEvent", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L279"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L280"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L287"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L298"}, {"caller_nid": "services_oa_engine_advanced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L304"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L305"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L306"}, {"caller_nid": "services_oa_engine_advanced", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L307"}, {"caller_nid": "services_oa_engine_check_initiator_scope", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L312"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L331"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L332"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L332"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L333"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L334"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L351"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L352"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L372"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L374"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L378"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L381"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L383"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L384"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L385"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L387"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L387"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L388"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L389"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L391"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L397"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L415"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L417"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L417"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L417"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L417"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L423"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "keys", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L423"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L425"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L425"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L425"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L425"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L429"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L433"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L440"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "setdefault", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L440"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L445"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L448"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L453"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L453"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L456"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L460"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L461"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L462"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L465"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L466"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L467"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L472"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L472"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L475"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L475"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L475"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L475"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L483"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L483"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L488"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L495"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L512"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L516"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L544"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L544"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L544"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L544"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L545"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L545"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L545"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L545"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L545"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L548"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L548"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L548"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L549"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "extend", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L552"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L555"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L555"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L555"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L558"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L566"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L571"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L571"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L571"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L572"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L577"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L577"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L578"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L578"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L581"}, {"caller_nid": "services_oa_engine_preview_people", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L589"}, {"caller_nid": "services_oa_engine_preview_people", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L589"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L605"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L609"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L611"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L613"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L621"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L625"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L627"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L629"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L640"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L642"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L644"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L646"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L646"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L648"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L656"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L657"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L668"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L672"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L673"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L673"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L673"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L674"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L674"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L674"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L684"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L684"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L684"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L689"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L700"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L701"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L703"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L705"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L713"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L716"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L729"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L733"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L738"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L738"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L738"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L746"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L751"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L751"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L752"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L753"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L780"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L789"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L792"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L802"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L804"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L804"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L804"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L805"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L810"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L811"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L813"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L814"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L821"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L821"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L833"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L834"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L841"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L843"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L844"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L846"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L850"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L852"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L856"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L858"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L859"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L860"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L863"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L864"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L866"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L867"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "eval_formula", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L872"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L872"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L905"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L907"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L917"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L918"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L921"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L933"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L933"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L936"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L942"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L964"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L968"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L973"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "apply_formulas_and_linkages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L975"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L980"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L980"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L980"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L984"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L986"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L987"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaInstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L988"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L989"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1009"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1012"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1015"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaRelation", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1016"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1017"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1048"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1049"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1055"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1055"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1055"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1066"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1068"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1068"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1068"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1073"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1073"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1073"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1085"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1085"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1085"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1095"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1097"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1102"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1104"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1104"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1105"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1105"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1107"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1107"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1107"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1107"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1109"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1114"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1135"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1137"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1137"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1145"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1145"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1150"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1153"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1153"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1161"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1161"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1161"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1161"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1167"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1175"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1175"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1175"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1177"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1179"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1179"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1179"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1183"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1201"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1206"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1206"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1206"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1222"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1222"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1222"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1230"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1230"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1233"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1234"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1238"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "flush", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1241"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1246"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1246"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1246"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1260"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1264"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1265"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1269"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1271"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1271"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1271"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1283"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1289"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1289"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1289"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1302"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1309"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1324"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1324"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1324"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1340"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1340"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1340"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1347"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1351"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1353"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1356"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1357"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1363"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1363"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1363"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1372"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1380"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1380"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1380"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1391"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1392"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1393"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1403"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1403"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1403"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1406"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1421"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1424"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1425"}, {"caller_nid": "services_oa_engine_return_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1439"}, {"caller_nid": "services_oa_engine_return_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1439"}, {"caller_nid": "services_oa_engine_return_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1439"}, {"caller_nid": "services_oa_engine_return_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1455"}, {"caller_nid": "services_oa_engine_return_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1455"}, {"caller_nid": "services_oa_engine_return_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1455"}, {"caller_nid": "services_oa_engine_return_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1462"}, {"caller_nid": "services_oa_engine_return_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1465"}, {"caller_nid": "services_oa_engine_return_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1469"}, {"caller_nid": "services_oa_engine_return_task", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1470"}, {"caller_nid": "services_oa_engine_return_task", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1470"}, {"caller_nid": "services_oa_engine_return_task", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1470"}, {"caller_nid": "services_oa_engine_return_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1475"}, {"caller_nid": "services_oa_engine_return_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1478"}, {"caller_nid": "services_oa_engine_return_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1478"}, {"caller_nid": "services_oa_engine_return_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1478"}, {"caller_nid": "services_oa_engine_return_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1490"}, {"caller_nid": "services_oa_engine_return_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1495"}, {"caller_nid": "services_oa_engine_return_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1506"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1533"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1533"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1533"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1537"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1538"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1541"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1545"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1547"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1547"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1547"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1554"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1560"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1560"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1562"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/3398627a33b672c2e3f0aac66faf2e9b8de4ddb671009577fa3875b01d793ab9.json b/backend/app/graphify-out/cache/ast/3398627a33b672c2e3f0aac66faf2e9b8de4ddb671009577fa3875b01d793ab9.json new file mode 100644 index 00000000..7e8fe49f --- /dev/null +++ b/backend/app/graphify-out/cache/ast/3398627a33b672c2e3f0aac66faf2e9b8de4ddb671009577fa3875b01d793ab9.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_api_menu_py", "label": "menu.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/menu.py", "source_location": "L1"}, {"id": "api_menu_get_menu_list", "label": "get_menu_list()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/menu.py", "source_location": "L1023"}, {"id": "api_menu_rationale_1", "label": "\u8fd0\u8425\u7aef\u83dc\u5355\u63a5\u53e3\uff08\u4e0e web-admin \u524d\u7aef\u9759\u6001\u8def\u7531 sqxp.ts \u5bf9\u9f50\uff0c5 \u4e2a\u4e00\u7ea7\u83dc\u5355\u5206\u7ec4\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/menu.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_api_menu_py", "target": "fastapi", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/menu.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_menu_py", "target": "app_core_menu_guard", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/menu.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_menu_py", "target": "app_core_response", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/menu.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_menu_py", "target": "api_menu_get_menu_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/menu.py", "source_location": "L1023", "weight": 1.0}, {"source": "api_menu_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_api_menu_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/menu.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "api_menu_get_menu_list", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/menu.py", "source_location": "L1025"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/377028ec20d4e5f13d3f0de5be1c1127fd3e8c100f4fc1d293c5168ade3f9a6d.json b/backend/app/graphify-out/cache/ast/377028ec20d4e5f13d3f0de5be1c1127fd3e8c100f4fc1d293c5168ade3f9a6d.json new file mode 100644 index 00000000..3e7d5b8e --- /dev/null +++ b/backend/app/graphify-out/cache/ast/377028ec20d4e5f13d3f0de5be1c1127fd3e8c100f4fc1d293c5168ade3f9a6d.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "label": "models.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1"}, {"id": "models_models_userrole", "label": "UserRole", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L10"}, {"id": "str", "label": "str", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "models_models_sysuser", "label": "SysUser", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L22"}, {"id": "base", "label": "Base", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "models_models_sysrole", "label": "SysRole", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L49"}, {"id": "models_models_sysuserrole", "label": "SysUserRole", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L69"}, {"id": "models_models_sysrolemenu", "label": "SysRoleMenu", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L88"}, {"id": "models_models_sysroledatascopedetail", "label": "SysRoleDataScopeDetail", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L107"}, {"id": "models_models_sysmenu", "label": "SysMenu", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L127"}, {"id": "models_models_sysdept", "label": "SysDept", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L153"}, {"id": "models_models_systenant", "label": "SysTenant", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L177"}, {"id": "models_models_syssite", "label": "SysSite", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L197"}, {"id": "models_models_syspost", "label": "SysPost", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L223"}, {"id": "models_models_sysuserpost", "label": "SysUserPost", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L243"}, {"id": "models_models_bizitemunit", "label": "BizItemUnit", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L262"}, {"id": "models_models_bizexpresscompany", "label": "BizExpressCompany", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L281"}, {"id": "models_models_bizcustomer", "label": "BizCustomer", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L301"}, {"id": "models_models_bizcellsampletype", "label": "BizCellSampleType", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L324"}, {"id": "models_models_bizcollectionregion", "label": "BizCollectionRegion", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L347"}, {"id": "models_models_bizcollectionhospital", "label": "BizCollectionHospital", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L365"}, {"id": "models_models_bizcollectionprotocolno", "label": "BizCollectionProtocolNo", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L384"}, {"id": "models_models_bizbiznosequence", "label": "BizBizNoSequence", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L406"}, {"id": "models_models_bizsamplecode", "label": "BizSampleCode", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L426"}, {"id": "models_models_sysdicttype", "label": "SysDictType", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L454"}, {"id": "models_models_sysethnic", "label": "SysEthnic", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L473"}, {"id": "models_models_sysdictdata", "label": "SysDictData", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L492"}, {"id": "models_models_sysapirequestlog", "label": "SysApiRequestLog", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L517"}, {"id": "models_models_sysapirequestloghis", "label": "SysApiRequestLogHis", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L543"}, {"id": "models_models_bizleaverequest", "label": "BizLeaveRequest", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L574"}, {"id": "models_models_wfprocessdef", "label": "WfProcessDef", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L603"}, {"id": "models_models_wfprocessversion", "label": "WfProcessVersion", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L623"}, {"id": "models_models_wfnode", "label": "WfNode", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L644"}, {"id": "models_models_wftransition", "label": "WfTransition", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L666"}, {"id": "models_models_wfprocessinstance", "label": "WfProcessInstance", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L687"}, {"id": "models_models_wftask", "label": "WfTask", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L711"}, {"id": "models_models_oaappgroup", "label": "OaAppGroup", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L738"}, {"id": "models_models_oaapp", "label": "OaApp", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L756"}, {"id": "models_models_oaappversion", "label": "OaAppVersion", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L782"}, {"id": "models_models_oarole", "label": "OaRole", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L806"}, {"id": "models_models_oaroleuser", "label": "OaRoleUser", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L827"}, {"id": "models_models_oainstance", "label": "OaInstance", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L846"}, {"id": "models_models_oatask", "label": "OaTask", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L877"}, {"id": "models_models_oainstanceevent", "label": "OaInstanceEvent", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L904"}, {"id": "models_models_oarelation", "label": "OaRelation", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L928"}, {"id": "models_models_bizcollectionprotocol", "label": "BizCollectionProtocol", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L953"}, {"id": "models_models_bizprotocolaudit", "label": "BizProtocolAudit", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L987"}, {"id": "models_models_bizstoragereleasereview", "label": "BizStorageReleaseReview", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1008"}, {"id": "models_models_bizprotocolpayment", "label": "BizProtocolPayment", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1041"}, {"id": "models_models_bizprotocolpaymentdetail", "label": "BizProtocolPaymentDetail", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1067"}, {"id": "models_models_bizprotocolinvoicerequest", "label": "BizProtocolInvoiceRequest", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1100"}, {"id": "models_models_bizprotocolinvoicerequestitem", "label": "BizProtocolInvoiceRequestItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1130"}, {"id": "models_models_bizprotocolpartycustomer", "label": "BizProtocolPartyCustomer", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1152"}, {"id": "models_models_bizprotocolcollectioninfo", "label": "BizProtocolCollectionInfo", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1192"}, {"id": "models_models_bizprotocolsample", "label": "BizProtocolSample", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1216"}, {"id": "models_models_bizprotocolsampletransport", "label": "BizProtocolSampleTransport", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1249"}, {"id": "models_models_bizattachment", "label": "BizAttachment", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1277"}, {"id": "models_models_bizprotocolstoragecert", "label": "BizProtocolStorageCert", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1301"}, {"id": "models_models_bizsamplereceptioncheckitem", "label": "BizSampleReceptionCheckItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1322"}, {"id": "models_models_bizsamplereceptioncheckresult", "label": "BizSampleReceptionCheckResult", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1342"}, {"id": "models_models_bizsamplereception", "label": "BizSampleReception", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1364"}, {"id": "models_models_bizsampleproductionreception", "label": "BizSampleProductionReception", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1403"}, {"id": "models_models_bizsamplesmsnotification", "label": "BizSampleSmsNotification", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1441"}, {"id": "models_models_bizqcsmsnotification", "label": "BizQcSmsNotification", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1462"}, {"id": "models_models_bizstorageentrysmsnotification", "label": "BizStorageEntrySmsNotification", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1487"}, {"id": "models_models_bizqcthirdpartycompany", "label": "BizQcThirdPartyCompany", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1516"}, {"id": "models_models_bizqcthirdpartyitem", "label": "BizQcThirdPartyItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1544"}, {"id": "models_models_bizqclabtestitem", "label": "BizQcLabTestItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1566"}, {"id": "models_models_bizqcworkorder", "label": "BizQcWorkOrder", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1587"}, {"id": "models_models_bizqcworkorderinspectionbatch", "label": "BizQcWorkOrderInspectionBatch", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1636"}, {"id": "models_models_bizqcbatchassignee", "label": "BizQcBatchAssignee", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1657"}, {"id": "models_models_bizqcworkorderlabitem", "label": "BizQcWorkOrderLabItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1676"}, {"id": "models_models_bizqcworkorderthirditem", "label": "BizQcWorkOrderThirdItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1699"}, {"id": "models_models_bizqctask", "label": "BizQcTask", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1725"}, {"id": "models_models_bizqctaskassignee", "label": "BizQcTaskAssignee", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1759"}, {"id": "models_models_bizcleanroom", "label": "BizCleanRoom", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1783"}, {"id": "models_models_bizcleanroomaccesslog", "label": "BizCleanRoomAccessLog", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1806"}, {"id": "models_models_bizcleanroomuvdisinfectlog", "label": "BizCleanRoomUvDisinfectLog", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1831"}, {"id": "models_models_bizstoragefacility", "label": "BizStorageFacility", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1854"}, {"id": "models_models_bizstoragefacilityslot", "label": "BizStorageFacilitySlot", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1876"}, {"id": "models_models_bizstorageslotoccupancy", "label": "BizStorageSlotOccupancy", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1899"}, {"id": "models_models_bizexhibitionappointment", "label": "BizExhibitionAppointment", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1925"}, {"id": "models_models_bizcellproducttype", "label": "BizCellProductType", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1953"}, {"id": "models_models_bizcellproductspec", "label": "BizCellProductSpec", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1972"}, {"id": "models_models_bizcellproductprice", "label": "BizCellProductPrice", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1991"}, {"id": "models_models_bizcellproductprojectsystem", "label": "BizCellProductProjectSystem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2016"}, {"id": "models_models_bizcellproductprojectsystemitem", "label": "BizCellProductProjectSystemItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2036"}, {"id": "models_models_bizchannel", "label": "BizChannel", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2063"}, {"id": "models_models_bizchannelagreement", "label": "BizChannelAgreement", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2087"}, {"id": "models_models_bizchannelagreementproductprice", "label": "BizChannelAgreementProductPrice", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2112"}, {"id": "models_models_bizchannelinvoice", "label": "BizChannelInvoice", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2137"}, {"id": "models_models_bizchannelmailaddress", "label": "BizChannelMailAddress", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2161"}, {"id": "models_models_bizchannelaccount", "label": "BizChannelAccount", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2182"}, {"id": "models_models_bizchannelproductquota", "label": "BizChannelProductQuota", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2201"}, {"id": "models_models_bizchannelserviceorder", "label": "BizChannelServiceOrder", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2227"}, {"id": "models_models_bizchannelserviceorderproduct", "label": "BizChannelServiceOrderProduct", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2273"}, {"id": "models_models_bizchannelserviceordertxn", "label": "BizChannelServiceOrderTxn", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2302"}, {"id": "models_models_bizcheckupinstitution", "label": "BizCheckupInstitution", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2337"}, {"id": "models_models_bizcheckupinstitutioninvoice", "label": "BizCheckupInstitutionInvoice", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2360"}, {"id": "models_models_bizcheckupinstitutionproject", "label": "BizCheckupInstitutionProject", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2384"}, {"id": "models_models_bizcheckupinstitutionpackage", "label": "BizCheckupInstitutionPackage", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2405"}, {"id": "models_models_bizcheckupinstitutionpackageitem", "label": "BizCheckupInstitutionPackageItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2426"}, {"id": "models_models_bizconsumable", "label": "BizConsumable", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2452"}, {"id": "models_models_bizreagent", "label": "BizReagent", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2478"}, {"id": "models_models_bizequipment", "label": "BizEquipment", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2504"}, {"id": "models_models_bizsopdocument", "label": "BizSopDocument", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2530"}, {"id": "models_models_bizprocesscategory", "label": "BizProcessCategory", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2551"}, {"id": "models_models_bizoutputtype", "label": "BizOutputType", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2570"}, {"id": "models_models_bizconsumablepack", "label": "BizConsumablePack", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2589"}, {"id": "models_models_bizconsumablepackitem", "label": "BizConsumablePackItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2611"}, {"id": "models_models_bizprocess", "label": "BizProcess", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2634"}, {"id": "models_models_bizprocessreagent", "label": "BizProcessReagent", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2659"}, {"id": "models_models_bizprocessconsumable", "label": "BizProcessConsumable", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2683"}, {"id": "models_models_bizprocessoutput", "label": "BizProcessOutput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2707"}, {"id": "models_models_bizprocessdatacollection", "label": "BizProcessDataCollection", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2728"}, {"id": "models_models_bizprocessroute", "label": "BizProcessRoute", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2746"}, {"id": "models_models_bizprocessroutestep", "label": "BizProcessRouteStep", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2768"}, {"id": "models_models_bizprocessroutestepreagent", "label": "BizProcessRouteStepReagent", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2796"}, {"id": "models_models_bizprocessroutestepconsumable", "label": "BizProcessRouteStepConsumable", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2820"}, {"id": "models_models_bizprocessroutestepoutput", "label": "BizProcessRouteStepOutput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2844"}, {"id": "models_models_bizprocessroutestepdatacollection", "label": "BizProcessRouteStepDataCollection", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2865"}, {"id": "models_models_bizcellproduct", "label": "BizCellProduct", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2890"}, {"id": "models_models_bizproductionworkorder", "label": "BizProductionWorkOrder", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2925"}, {"id": "models_models_bizproductiontask", "label": "BizProductionTask", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2955"}, {"id": "models_models_bizproductiontaskhandover", "label": "BizProductionTaskHandover", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2987"}, {"id": "models_models_bizproductiontaskinput", "label": "BizProductionTaskInput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3009"}, {"id": "models_models_bizproductiontaskstep", "label": "BizProductionTaskStep", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3031"}, {"id": "models_models_bizproductiontaskstepassignee", "label": "BizProductionTaskStepAssignee", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3064"}, {"id": "models_models_bizproductiontaskstepreagent", "label": "BizProductionTaskStepReagent", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3083"}, {"id": "models_models_bizproductiontaskstepconsumable", "label": "BizProductionTaskStepConsumable", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3109"}, {"id": "models_models_bizproductiontaskstepconfiguredreagent", "label": "BizProductionTaskStepConfiguredReagent", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3135"}, {"id": "models_models_bizproductiontaskstepoutput", "label": "BizProductionTaskStepOutput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3160"}, {"id": "models_models_bizproductiontaskstepdatacollection", "label": "BizProductionTaskStepDataCollection", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3181"}, {"id": "models_models_bizproductiontaskoutput", "label": "BizProductionTaskOutput", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3202"}, {"id": "models_models_bizprotocolfullmoontodo", "label": "BizProtocolFullmoonTodo", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3227"}, {"id": "models_models_bizinsurancecompany", "label": "BizInsuranceCompany", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3257"}, {"id": "models_models_bizinsurancecompanyinvoice", "label": "BizInsuranceCompanyInvoice", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3280"}, {"id": "models_models_bizinsuranceprojectprice", "label": "BizInsuranceProjectPrice", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3304"}, {"id": "models_models_bizconsumablestocklog", "label": "BizConsumableStockLog", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3325"}, {"id": "models_models_bizreagentstocklog", "label": "BizReagentStockLog", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3355"}, {"id": "models_models_bizpilotapplication", "label": "BizPilotApplication", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3385"}, {"id": "models_models_bizpilotpatient", "label": "BizPilotPatient", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3415"}, {"id": "models_models_bizpilotinfusionplan", "label": "BizPilotInfusionPlan", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3444"}, {"id": "models_models_bizpilotinfusionschedule", "label": "BizPilotInfusionSchedule", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3469"}, {"id": "models_models_bizpilotinfusionscheduleproduct", "label": "BizPilotInfusionScheduleProduct", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3498"}, {"id": "models_models_bizpilotcheckup", "label": "BizPilotCheckup", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3525"}, {"id": "models_models_bizpilotcheckupreserveitem", "label": "BizPilotCheckupReserveItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3554"}, {"id": "models_models_bizpilotcheckupactualitem", "label": "BizPilotCheckupActualItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3574"}, {"id": "models_models_bizpilotdelivery", "label": "BizPilotDelivery", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3594"}, {"id": "models_models_bizpilotdeliverymaterial", "label": "BizPilotDeliveryMaterial", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3613"}, {"id": "models_models_bizpilotdeliverymethod", "label": "BizPilotDeliveryMethod", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3634"}, {"id": "models_models_bizpilotinfusionconfirm", "label": "BizPilotInfusionConfirm", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3663"}, {"id": "models_models_bizoutboundreleasematerial", "label": "BizOutboundReleaseMaterial", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3684"}, {"id": "models_models_bizoutboundreleasecell", "label": "BizOutboundReleaseCell", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3703"}, {"id": "models_models_bizoutboundreleasepaper", "label": "BizOutboundReleasePaper", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3731"}, {"id": "models_models_bizoutboundhandover", "label": "BizOutboundHandover", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3753"}, {"id": "models_models_bizoutboundreleaseqcmaterial", "label": "BizOutboundReleaseQcMaterial", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3778"}, {"id": "models_models_bizoutboundreleasereview", "label": "BizOutboundReleaseReview", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3803"}, {"id": "models_models_bizenvdetectitem", "label": "BizEnvDetectItem", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3829"}, {"id": "models_models_bizenvdetectrecord", "label": "BizEnvDetectRecord", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3849"}, {"id": "models_models_rationale_1", "label": "\u6570\u636e\u6a21\u578b\uff08\u4e0e docs/sql/zkxw.sql \u5168\u5e93\u5bfc\u51fa\u57fa\u7ebf\u5bf9\u9f50\u7684\u6838\u5fc3\u7cfb\u7edf\u8868\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1"}, {"id": "models_models_rationale_11", "label": "Web \u7ba1\u7406\u7aef\u7ea6\u5b9a\u89d2\u8272\uff08\u7531 sys_role.role_name \u6620\u5c04\u800c\u6765\uff0c\u975e\u6570\u636e\u5e93\u679a\u4e3e\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L11"}, {"id": "models_models_rationale_70", "label": "\u7528\u6237-\u89d2\u8272\u5173\u8054 sys_user_role\uff08V0.3\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L70"}, {"id": "models_models_rationale_89", "label": "\u89d2\u8272-\u83dc\u5355\u5173\u8054 sys_role_menu\uff08V0.3\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L89"}, {"id": "models_models_rationale_108", "label": "\u89d2\u8272\u81ea\u5b9a\u4e49\u6570\u636e\u6743\u9650\u660e\u7ec6 sys_role_data_scope_detail", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L108"}, {"id": "models_models_rationale_178", "label": "\u79df\u6237\u8868 sys_tenant\uff08V0.3 2.1.1\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L178"}, {"id": "models_models_rationale_244", "label": "\u7528\u6237-\u804c\u4f4d\u5173\u8054 sys_user_post", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L244"}, {"id": "models_models_rationale_282", "label": "\u5feb\u9012\u516c\u53f8 biz_express_company", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L282"}, {"id": "models_models_rationale_325", "label": "\u7ec6\u80de\u6837\u672c\u7c7b\u578b biz_cell_sample_type", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L325"}, {"id": "models_models_rationale_348", "label": "\u91c7\u96c6\u5730\u533a biz_collection_region", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L348"}, {"id": "models_models_rationale_366", "label": "\u91c7\u96c6\u5730\u533a\u4e0b\u5c5e\u533b\u9662 biz_collection_hospital", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L366"}, {"id": "models_models_rationale_385", "label": "\u91c7\u96c6\u534f\u8bae\u53f7\u6c60 biz_collection_protocol_no", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L385"}, {"id": "models_models_rationale_407", "label": "\u4e1a\u52a1\u534f\u8bae\u53f7\u65e5\u5e8f\u5217\u8868 biz_biz_no_sequence", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L407"}, {"id": "models_models_rationale_427", "label": "\u6837\u672c\u7f16\u7801\u6c60 biz_sample_code", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L427"}, {"id": "models_models_rationale_474", "label": "\u6c11\u65cf\u7801\u8868 sys_ethnic\uff08\u56fd\u6807 GB/T 3304\uff0c\u5168\u5c40\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L474"}, {"id": "models_models_rationale_575", "label": "\u8bf7\u5047\u7533\u8bf7 biz_leave_request", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L575"}, {"id": "models_models_rationale_624", "label": "\u6d41\u7a0b\u5b9a\u4e49\u7248\u672c wf_process_version", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L624"}, {"id": "models_models_rationale_667", "label": "\u6d41\u7a0b\u8fde\u7ebf/\u8f6c\u79fb wf_transition", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L667"}, {"id": "models_models_rationale_688", "label": "\u6d41\u7a0b\u5b9e\u4f8b wf_process_instance", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L688"}, {"id": "models_models_rationale_783", "label": "OA\u5ba1\u6279\u5e94\u7528\u7248\u672c oa_app_version", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L783"}, {"id": "models_models_rationale_828", "label": "OA\u5de5\u4f5c\u6d41\u89d2\u8272\u6210\u5458 oa_role_user", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L828"}, {"id": "models_models_rationale_905", "label": "OA\u5b9e\u4f8b\u64cd\u4f5c\u4e8b\u4ef6 oa_instance_event", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L905"}, {"id": "models_models_rationale_954", "label": "\u91c7\u96c6\u534f\u8bae\u5355 biz_collection_protocol", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L954"}, {"id": "models_models_rationale_988", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u5ba1\u6838\u8bb0\u5f55 biz_protocol_audit", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L988"}, {"id": "models_models_rationale_1009", "label": "\u5165\u5e93\u653e\u884c\u5ba1\u6838 biz_storage_release_review", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1009"}, {"id": "models_models_rationale_1042", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u7f34\u8d39\u4e3b\u8868 biz_protocol_payment", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1042"}, {"id": "models_models_rationale_1068", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u7f34\u8d39\u660e\u7ec6 biz_protocol_payment_detail", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1068"}, {"id": "models_models_rationale_1101", "label": "\u91c7\u96c6\u534f\u8bae\u5355\u5f00\u7968\u7533\u8bf7\u4e3b\u8868 biz_protocol_invoice_request", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1101"}, {"id": "models_models_rationale_1131", "label": "\u91c7\u96c6\u534f\u8bae\u5355\u5f00\u7968\u7533\u8bf7\u660e\u7ec6 biz_protocol_invoice_request_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1131"}, {"id": "models_models_rationale_1153", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u5f53\u4e8b\u4eba\u5ba2\u6237\u4fe1\u606f biz_protocol_party_customer", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1153"}, {"id": "models_models_rationale_1193", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u91c7\u96c6\u4fe1\u606f biz_protocol_collection_info", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1193"}, {"id": "models_models_rationale_1217", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u6837\u672c\u4fe1\u606f biz_protocol_sample", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1217"}, {"id": "models_models_rationale_1250", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u6837\u672c\u8fd0\u8f93 biz_protocol_sample_transport", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1250"}, {"id": "models_models_rationale_1302", "label": "\u91c7\u96c6\u534f\u8bae\u5355-\u50a8\u5b58\u8bc1\u4e66 biz_protocol_storage_cert", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1302"}, {"id": "models_models_rationale_1323", "label": "\u6837\u672c\u63a5\u6536\u68c0\u67e5\u9879\u914d\u7f6e biz_sample_reception_check_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1323"}, {"id": "models_models_rationale_1343", "label": "\u6837\u672c\u63a5\u6536\u68c0\u67e5\u9879\u7ed3\u679c biz_sample_reception_check_result", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1343"}, {"id": "models_models_rationale_1365", "label": "\u6837\u672c\u63a5\u6536 biz_sample_reception", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1365"}, {"id": "models_models_rationale_1404", "label": "\u751f\u4ea7\u90e8\u95e8\u6837\u672c\u63a5\u6536\u767b\u8bb0 biz_sample_production_reception", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1404"}, {"id": "models_models_rationale_1463", "label": "\u6837\u672c\u8d28\u68c0\u77ed\u4fe1\u901a\u77e5 biz_qc_sms_notification", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1463"}, {"id": "models_models_rationale_1488", "label": "\u6837\u672c\u5165\u5e93\u77ed\u4fe1\u901a\u77e5 biz_storage_entry_sms_notification", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1488"}, {"id": "models_models_rationale_1517", "label": "\u7b2c\u4e09\u65b9\u68c0\u6d4b\u516c\u53f8 biz_qc_third_party_company", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1517"}, {"id": "models_models_rationale_1545", "label": "\u7b2c\u4e09\u65b9\u68c0\u6d4b\u9879\u76ee biz_qc_third_party_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1545"}, {"id": "models_models_rationale_1567", "label": "\u5b9e\u9a8c\u5ba4\u81ea\u68c0\u9879\u76ee biz_qc_lab_test_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1567"}, {"id": "models_models_rationale_1588", "label": "\u8d28\u68c0\u5de5\u5355 biz_qc_work_order", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1588"}, {"id": "models_models_rationale_1637", "label": "\u8d28\u68c0\u5de5\u5355\u68c0\u6d4b\u6279\u6b21 biz_qc_work_order_inspection_batch", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1637"}, {"id": "models_models_rationale_1658", "label": "\u8d28\u68c0\u68c0\u6d4b\u6279\u6b21\u8d1f\u8d23\u4eba biz_qc_batch_assignee", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1658"}, {"id": "models_models_rationale_1677", "label": "\u8d28\u68c0\u5de5\u5355-\u5b9e\u9a8c\u5ba4\u9879\u76ee\u660e\u7ec6 biz_qc_work_order_lab_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1677"}, {"id": "models_models_rationale_1700", "label": "\u8d28\u68c0\u5de5\u5355-\u7b2c\u4e09\u65b9\u9879\u76ee\u660e\u7ec6 biz_qc_work_order_third_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1700"}, {"id": "models_models_rationale_1760", "label": "\u8d28\u68c0\u4efb\u52a1\u8d1f\u8d23\u4eba biz_qc_task_assignee", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1760"}, {"id": "models_models_rationale_1807", "label": "\u6d01\u51c0\u5ba4\u51fa\u5165\u8bb0\u5f55 biz_clean_room_access_log", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1807"}, {"id": "models_models_rationale_1832", "label": "\u6d01\u51c0\u5ba4\u7d2b\u5916\u7ebf\u6d88\u6bd2\u8bb0\u5f55 biz_clean_room_uv_disinfect_log", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1832"}, {"id": "models_models_rationale_1855", "label": "\u5b58\u50a8\u8bbe\u65bd\u6811 biz_storage_facility", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1855"}, {"id": "models_models_rationale_1877", "label": "\u5b58\u50a8\u8bbe\u65bd\u5c0f\u683c biz_storage_facility_slot", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1877"}, {"id": "models_models_rationale_1900", "label": "\u5e93\u4f4d\u5360\u7528\u8bb0\u5f55 biz_storage_slot_occupancy", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1900"}, {"id": "models_models_rationale_1926", "label": "\u5c55\u9986\u9884\u7ea6 biz_exhibition_appointment", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1926"}, {"id": "models_models_rationale_1954", "label": "\u7ec6\u80de\u4ea7\u54c1\u7c7b\u578b biz_cell_product_type", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1954"}, {"id": "models_models_rationale_1973", "label": "\u7ec6\u80de\u4ea7\u54c1\u89c4\u683c biz_cell_product_spec", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1973"}, {"id": "models_models_rationale_1992", "label": "\u7ec6\u80de\u4ea7\u54c1\u4ef7\u683c\u4f53\u7cfb biz_cell_product_price", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1992"}, {"id": "models_models_rationale_2017", "label": "\u7ec6\u80de\u4ea7\u54c1\u9879\u76ee\u4ef7\u683c\u4f53\u7cfb biz_cell_product_project_system", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2017"}, {"id": "models_models_rationale_2037", "label": "\u9879\u76ee\u4ef7\u683c\u4f53\u7cfb-\u7ec6\u80de\u4ef7\u683c\u660e\u7ec6 biz_cell_product_project_system_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2037"}, {"id": "models_models_rationale_2088", "label": "\u6e20\u9053\u534f\u8bae biz_channel_agreement", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2088"}, {"id": "models_models_rationale_2113", "label": "\u6e20\u9053\u534f\u8bae-\u7ec6\u80de\u4ea7\u54c1\u4ef7\u683c biz_channel_agreement_product_price", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2113"}, {"id": "models_models_rationale_2138", "label": "\u6e20\u9053\u5f00\u7968\u4fe1\u606f biz_channel_invoice", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2138"}, {"id": "models_models_rationale_2162", "label": "\u6e20\u9053\u90ae\u5bc4\u5730\u5740 biz_channel_mail_address", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2162"}, {"id": "models_models_rationale_2183", "label": "\u6e20\u9053\u8d26\u6237\u4f59\u989d biz_channel_account", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2183"}, {"id": "models_models_rationale_2202", "label": "\u6e20\u9053\u4ea7\u54c1\u4efd\u6570\u5e93\u5b58 biz_channel_product_quota", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2202"}, {"id": "models_models_rationale_2228", "label": "\u6e20\u9053\u670d\u52a1\u8ba2\u5355 biz_channel_service_order", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2228"}, {"id": "models_models_rationale_2274", "label": "\u6e20\u9053\u670d\u52a1\u8ba2\u5355\u4ea7\u54c1\u660e\u7ec6 biz_channel_service_order_product", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2274"}, {"id": "models_models_rationale_2303", "label": "\u6e20\u9053\u670d\u52a1\u8ba2\u5355\u6d41\u6c34 biz_channel_service_order_txn", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2303"}, {"id": "models_models_rationale_2338", "label": "\u4f53\u68c0\u673a\u6784 biz_checkup_institution", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2338"}, {"id": "models_models_rationale_2361", "label": "\u4f53\u68c0\u673a\u6784\u5f00\u7968\u4fe1\u606f biz_checkup_institution_invoice", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2361"}, {"id": "models_models_rationale_2385", "label": "\u4f53\u68c0\u673a\u6784\u9879\u76ee\u53ca\u4ef7\u683c biz_checkup_institution_project", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2385"}, {"id": "models_models_rationale_2406", "label": "\u4f53\u68c0\u673a\u6784\u9879\u76ee\u5957\u9910 biz_checkup_institution_package", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2406"}, {"id": "models_models_rationale_2427", "label": "\u4f53\u68c0\u673a\u6784\u9879\u76ee\u5957\u9910\u660e\u7ec6 biz_checkup_institution_package_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2427"}, {"id": "models_models_rationale_2531", "label": "SOP\u6587\u6863 biz_sop_document", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2531"}, {"id": "models_models_rationale_2552", "label": "\u5de5\u5e8f\u5206\u7c7b biz_process_category", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2552"}, {"id": "models_models_rationale_2590", "label": "\u8017\u6750\u5305 biz_consumable_pack", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2590"}, {"id": "models_models_rationale_2612", "label": "\u8017\u6750\u5305\u660e\u7ec6 biz_consumable_pack_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2612"}, {"id": "models_models_rationale_2660", "label": "\u5de5\u827a\u8bd5\u5242 biz_process_reagent", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2660"}, {"id": "models_models_rationale_2684", "label": "\u5de5\u827a\u8017\u6750 biz_process_consumable", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2684"}, {"id": "models_models_rationale_2708", "label": "\u5de5\u827a\u4ea7\u51fa\u7269 biz_process_output", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2708"}, {"id": "models_models_rationale_2747", "label": "\u5de5\u827a\u8def\u7ebf biz_process_route", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2747"}, {"id": "models_models_rationale_2769", "label": "\u5de5\u827a\u8def\u7ebf\u6b65\u9aa4 biz_process_route_step", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2769"}, {"id": "models_models_rationale_2797", "label": "\u5de5\u827a\u8def\u7ebf\u6b65\u9aa4\u8bd5\u5242 biz_process_route_step_reagent", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2797"}, {"id": "models_models_rationale_2821", "label": "\u5de5\u827a\u8def\u7ebf\u6b65\u9aa4\u8017\u6750 biz_process_route_step_consumable", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2821"}, {"id": "models_models_rationale_2845", "label": "\u5de5\u827a\u8def\u7ebf\u6b65\u9aa4\u4ea7\u51fa\u7269 biz_process_route_step_output", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2845"}, {"id": "models_models_rationale_2866", "label": "\u5de5\u827a\u8def\u7ebf\u6b65\u9aa4\u6570\u636e\u91c7\u96c6\u9879 biz_process_route_step_data_collection", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2866"}, {"id": "models_models_rationale_2891", "label": "\u7ec6\u80de\u4ea7\u54c1 biz_cell_product", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2891"}, {"id": "models_models_rationale_2926", "label": "\u751f\u4ea7\u5de5\u5355 biz_production_work_order", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2926"}, {"id": "models_models_rationale_2956", "label": "\u751f\u4ea7\u4efb\u52a1 biz_production_task", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2956"}, {"id": "models_models_rationale_2988", "label": "\u751f\u4ea7\u4efb\u52a1\u8f6c\u53d1\u8bb0\u5f55 biz_production_task_handover", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2988"}, {"id": "models_models_rationale_3010", "label": "\u751f\u4ea7\u4efb\u52a1\u6295\u5165\u7269 biz_production_task_input", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3010"}, {"id": "models_models_rationale_3032", "label": "\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4 biz_production_task_step", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3032"}, {"id": "models_models_rationale_3065", "label": "\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4\u8d1f\u8d23\u4eba biz_production_task_step_assignee", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3065"}, {"id": "models_models_rationale_3084", "label": "\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4\u8bd5\u5242 biz_production_task_step_reagent", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3084"}, {"id": "models_models_rationale_3110", "label": "\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4\u8017\u6750 biz_production_task_step_consumable", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3110"}, {"id": "models_models_rationale_3136", "label": "\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4\u914d\u7f6e\u8bd5\u5242 biz_production_task_step_configured_reagent", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3136"}, {"id": "models_models_rationale_3161", "label": "\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4\u4ea7\u51fa\u7269 biz_production_task_step_output", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3161"}, {"id": "models_models_rationale_3182", "label": "\u751f\u4ea7\u4efb\u52a1\u6b65\u9aa4\u6570\u636e\u91c7\u96c6\u9879 biz_production_task_step_data_collection", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3182"}, {"id": "models_models_rationale_3203", "label": "\u751f\u4ea7\u4efb\u52a1\u6700\u7ec8\u4ea7\u51fa biz_production_task_output", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3203"}, {"id": "models_models_rationale_3228", "label": "\u65b0\u751f\u513f\u6ee1\u6708\u5f85\u529e biz_protocol_fullmoon_todo", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3228"}, {"id": "models_models_rationale_3258", "label": "\u4fdd\u9669\u516c\u53f8 biz_insurance_company", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3258"}, {"id": "models_models_rationale_3281", "label": "\u4fdd\u9669\u516c\u53f8\u5f00\u7968\u4fe1\u606f biz_insurance_company_invoice", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3281"}, {"id": "models_models_rationale_3305", "label": "\u4fdd\u9669\u9669\u79cd\u4ef7\u683c biz_insurance_project_price", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3305"}, {"id": "models_models_rationale_3326", "label": "\u8017\u6750\u53d8\u52a8\u8bb0\u5f55 biz_consumable_stock_log", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3326"}, {"id": "models_models_rationale_3356", "label": "\u8bd5\u5242\u53d8\u52a8\u8bb0\u5f55 biz_reagent_stock_log", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3356"}, {"id": "models_models_rationale_3386", "label": "\u6e20\u9053\u4e2d\u8bd5\u670d\u52a1\u7533\u8bf7\u5355 biz_pilot_application", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3386"}, {"id": "models_models_rationale_3416", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u60a3\u8005\u4fe1\u606f biz_pilot_patient", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3416"}, {"id": "models_models_rationale_3445", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u8f93\u6ce8\u65b9\u6848 biz_pilot_infusion_plan", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3445"}, {"id": "models_models_rationale_3470", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u8f93\u6ce8\u8ba1\u5212 biz_pilot_infusion_schedule", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3470"}, {"id": "models_models_rationale_3499", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u8f93\u6ce8\u8ba1\u5212\u7ec6\u80de\u4ea7\u54c1 biz_pilot_infusion_schedule_product", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3499"}, {"id": "models_models_rationale_3526", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u4f53\u68c0\u4fe1\u606f biz_pilot_checkup", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3526"}, {"id": "models_models_rationale_3555", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u4f53\u68c0\u9884\u7ea6\u9879\u76ee biz_pilot_checkup_reserve_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3555"}, {"id": "models_models_rationale_3575", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u4f53\u68c0\u5b9e\u9645\u9879\u76ee biz_pilot_checkup_actual_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3575"}, {"id": "models_models_rationale_3595", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u4ea4\u4ed8\u4fe1\u606f biz_pilot_delivery", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3595"}, {"id": "models_models_rationale_3614", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u4ea4\u4ed8\u7269\u6599 biz_pilot_delivery_material", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3614"}, {"id": "models_models_rationale_3635", "label": "\u4e2d\u8bd5\u7533\u8bf7\u5355-\u4ea4\u4ed8\u65b9\u5f0f biz_pilot_delivery_method", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3635"}, {"id": "models_models_rationale_3664", "label": "\u8f93\u6ce8\u8ba1\u5212-\u5e94\u7528\u786e\u8ba4 biz_pilot_infusion_confirm", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3664"}, {"id": "models_models_rationale_3685", "label": "\u51fa\u5e93\u653e\u884c-\u51fa\u5e93\u7269\u6599\u51c6\u5907\u4e3b\u8868 biz_outbound_release_material", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3685"}, {"id": "models_models_rationale_3704", "label": "\u51fa\u5e93\u653e\u884c-\u51fa\u5e93\u7ec6\u80de(\u53f0\u8d26) biz_outbound_release_cell", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3704"}, {"id": "models_models_rationale_3732", "label": "\u51fa\u5e93\u653e\u884c-\u5176\u4ed6\u7eb8\u8d28\u6750\u6599(\u53f0\u8d26) biz_outbound_release_paper", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3732"}, {"id": "models_models_rationale_3754", "label": "\u8f93\u6ce8\u8ba1\u5212-\u51fa\u5e93\u4ea4\u63a5 biz_outbound_handover", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3754"}, {"id": "models_models_rationale_3779", "label": "\u51fa\u5e93\u653e\u884c-\u8d28\u68c0\u7269\u6599(\u53f0\u8d26) biz_outbound_release_qc_material", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3779"}, {"id": "models_models_rationale_3804", "label": "\u51fa\u5e93\u653e\u884c\u5ba1\u6838 biz_outbound_release_review", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3804"}, {"id": "models_models_rationale_3830", "label": "\u73af\u5883\u68c0\u6d4b\u9879 biz_env_detect_item", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3830"}, {"id": "models_models_rationale_3850", "label": "\u73af\u5883\u68c0\u6d4b\u767b\u8bb0 biz_env_detect_record", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3850"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "enum", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "app_core_database", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_userrole", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L10", "weight": 1.0}, {"source": "models_models_userrole", "target": "str", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysuser", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L22", "weight": 1.0}, {"source": "models_models_sysuser", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysrole", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L49", "weight": 1.0}, {"source": "models_models_sysrole", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L49", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysuserrole", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L69", "weight": 1.0}, {"source": "models_models_sysuserrole", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L69", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysrolemenu", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L88", "weight": 1.0}, {"source": "models_models_sysrolemenu", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L88", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysroledatascopedetail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L107", "weight": 1.0}, {"source": "models_models_sysroledatascopedetail", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L107", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysmenu", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L127", "weight": 1.0}, {"source": "models_models_sysmenu", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L127", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysdept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L153", "weight": 1.0}, {"source": "models_models_sysdept", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L153", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_systenant", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L177", "weight": 1.0}, {"source": "models_models_systenant", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L177", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_syssite", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L197", "weight": 1.0}, {"source": "models_models_syssite", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L197", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_syspost", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L223", "weight": 1.0}, {"source": "models_models_syspost", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L223", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysuserpost", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L243", "weight": 1.0}, {"source": "models_models_sysuserpost", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L243", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizitemunit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L262", "weight": 1.0}, {"source": "models_models_bizitemunit", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L262", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizexpresscompany", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L281", "weight": 1.0}, {"source": "models_models_bizexpresscompany", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L281", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcustomer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L301", "weight": 1.0}, {"source": "models_models_bizcustomer", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L301", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcellsampletype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L324", "weight": 1.0}, {"source": "models_models_bizcellsampletype", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L324", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcollectionregion", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L347", "weight": 1.0}, {"source": "models_models_bizcollectionregion", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L347", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcollectionhospital", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L365", "weight": 1.0}, {"source": "models_models_bizcollectionhospital", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L365", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcollectionprotocolno", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L384", "weight": 1.0}, {"source": "models_models_bizcollectionprotocolno", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L384", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizbiznosequence", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L406", "weight": 1.0}, {"source": "models_models_bizbiznosequence", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L406", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizsamplecode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L426", "weight": 1.0}, {"source": "models_models_bizsamplecode", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L426", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysdicttype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L454", "weight": 1.0}, {"source": "models_models_sysdicttype", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L454", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysethnic", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L473", "weight": 1.0}, {"source": "models_models_sysethnic", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L473", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysdictdata", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L492", "weight": 1.0}, {"source": "models_models_sysdictdata", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L492", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysapirequestlog", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L517", "weight": 1.0}, {"source": "models_models_sysapirequestlog", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L517", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_sysapirequestloghis", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L543", "weight": 1.0}, {"source": "models_models_sysapirequestloghis", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L543", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizleaverequest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L574", "weight": 1.0}, {"source": "models_models_bizleaverequest", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L574", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_wfprocessdef", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L603", "weight": 1.0}, {"source": "models_models_wfprocessdef", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L603", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_wfprocessversion", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L623", "weight": 1.0}, {"source": "models_models_wfprocessversion", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L623", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_wfnode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L644", "weight": 1.0}, {"source": "models_models_wfnode", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L644", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_wftransition", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L666", "weight": 1.0}, {"source": "models_models_wftransition", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L666", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_wfprocessinstance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L687", "weight": 1.0}, {"source": "models_models_wfprocessinstance", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L687", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_wftask", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L711", "weight": 1.0}, {"source": "models_models_wftask", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L711", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oaappgroup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L738", "weight": 1.0}, {"source": "models_models_oaappgroup", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L738", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oaapp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L756", "weight": 1.0}, {"source": "models_models_oaapp", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L756", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oaappversion", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L782", "weight": 1.0}, {"source": "models_models_oaappversion", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L782", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oarole", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L806", "weight": 1.0}, {"source": "models_models_oarole", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L806", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oaroleuser", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L827", "weight": 1.0}, {"source": "models_models_oaroleuser", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L827", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oainstance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L846", "weight": 1.0}, {"source": "models_models_oainstance", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L846", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oatask", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L877", "weight": 1.0}, {"source": "models_models_oatask", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L877", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oainstanceevent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L904", "weight": 1.0}, {"source": "models_models_oainstanceevent", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L904", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_oarelation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L928", "weight": 1.0}, {"source": "models_models_oarelation", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L928", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcollectionprotocol", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L953", "weight": 1.0}, {"source": "models_models_bizcollectionprotocol", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L953", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolaudit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L987", "weight": 1.0}, {"source": "models_models_bizprotocolaudit", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L987", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizstoragereleasereview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1008", "weight": 1.0}, {"source": "models_models_bizstoragereleasereview", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1008", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolpayment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1041", "weight": 1.0}, {"source": "models_models_bizprotocolpayment", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1041", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolpaymentdetail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1067", "weight": 1.0}, {"source": "models_models_bizprotocolpaymentdetail", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1067", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolinvoicerequest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1100", "weight": 1.0}, {"source": "models_models_bizprotocolinvoicerequest", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1100", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolinvoicerequestitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1130", "weight": 1.0}, {"source": "models_models_bizprotocolinvoicerequestitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1130", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolpartycustomer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1152", "weight": 1.0}, {"source": "models_models_bizprotocolpartycustomer", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1152", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolcollectioninfo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1192", "weight": 1.0}, {"source": "models_models_bizprotocolcollectioninfo", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1192", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolsample", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1216", "weight": 1.0}, {"source": "models_models_bizprotocolsample", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1216", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolsampletransport", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1249", "weight": 1.0}, {"source": "models_models_bizprotocolsampletransport", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1249", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizattachment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1277", "weight": 1.0}, {"source": "models_models_bizattachment", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1277", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolstoragecert", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1301", "weight": 1.0}, {"source": "models_models_bizprotocolstoragecert", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1301", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizsamplereceptioncheckitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1322", "weight": 1.0}, {"source": "models_models_bizsamplereceptioncheckitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1322", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizsamplereceptioncheckresult", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1342", "weight": 1.0}, {"source": "models_models_bizsamplereceptioncheckresult", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1342", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizsamplereception", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1364", "weight": 1.0}, {"source": "models_models_bizsamplereception", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1364", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizsampleproductionreception", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1403", "weight": 1.0}, {"source": "models_models_bizsampleproductionreception", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1403", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizsamplesmsnotification", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1441", "weight": 1.0}, {"source": "models_models_bizsamplesmsnotification", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1441", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcsmsnotification", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1462", "weight": 1.0}, {"source": "models_models_bizqcsmsnotification", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1462", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizstorageentrysmsnotification", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1487", "weight": 1.0}, {"source": "models_models_bizstorageentrysmsnotification", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1487", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcthirdpartycompany", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1516", "weight": 1.0}, {"source": "models_models_bizqcthirdpartycompany", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1516", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcthirdpartyitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1544", "weight": 1.0}, {"source": "models_models_bizqcthirdpartyitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1544", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqclabtestitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1566", "weight": 1.0}, {"source": "models_models_bizqclabtestitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1566", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcworkorder", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1587", "weight": 1.0}, {"source": "models_models_bizqcworkorder", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1587", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcworkorderinspectionbatch", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1636", "weight": 1.0}, {"source": "models_models_bizqcworkorderinspectionbatch", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1636", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcbatchassignee", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1657", "weight": 1.0}, {"source": "models_models_bizqcbatchassignee", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1657", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcworkorderlabitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1676", "weight": 1.0}, {"source": "models_models_bizqcworkorderlabitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1676", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqcworkorderthirditem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1699", "weight": 1.0}, {"source": "models_models_bizqcworkorderthirditem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1699", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqctask", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1725", "weight": 1.0}, {"source": "models_models_bizqctask", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1725", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizqctaskassignee", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1759", "weight": 1.0}, {"source": "models_models_bizqctaskassignee", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1759", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcleanroom", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1783", "weight": 1.0}, {"source": "models_models_bizcleanroom", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1783", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcleanroomaccesslog", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1806", "weight": 1.0}, {"source": "models_models_bizcleanroomaccesslog", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1806", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcleanroomuvdisinfectlog", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1831", "weight": 1.0}, {"source": "models_models_bizcleanroomuvdisinfectlog", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1831", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizstoragefacility", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1854", "weight": 1.0}, {"source": "models_models_bizstoragefacility", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1854", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizstoragefacilityslot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1876", "weight": 1.0}, {"source": "models_models_bizstoragefacilityslot", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1876", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizstorageslotoccupancy", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1899", "weight": 1.0}, {"source": "models_models_bizstorageslotoccupancy", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1899", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizexhibitionappointment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1925", "weight": 1.0}, {"source": "models_models_bizexhibitionappointment", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1925", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcellproducttype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1953", "weight": 1.0}, {"source": "models_models_bizcellproducttype", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1953", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcellproductspec", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1972", "weight": 1.0}, {"source": "models_models_bizcellproductspec", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1972", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcellproductprice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1991", "weight": 1.0}, {"source": "models_models_bizcellproductprice", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1991", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcellproductprojectsystem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2016", "weight": 1.0}, {"source": "models_models_bizcellproductprojectsystem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2016", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcellproductprojectsystemitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2036", "weight": 1.0}, {"source": "models_models_bizcellproductprojectsystemitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2036", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2063", "weight": 1.0}, {"source": "models_models_bizchannel", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2063", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelagreement", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2087", "weight": 1.0}, {"source": "models_models_bizchannelagreement", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2087", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelagreementproductprice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2112", "weight": 1.0}, {"source": "models_models_bizchannelagreementproductprice", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2112", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelinvoice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2137", "weight": 1.0}, {"source": "models_models_bizchannelinvoice", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2137", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelmailaddress", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2161", "weight": 1.0}, {"source": "models_models_bizchannelmailaddress", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2161", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelaccount", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2182", "weight": 1.0}, {"source": "models_models_bizchannelaccount", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2182", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelproductquota", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2201", "weight": 1.0}, {"source": "models_models_bizchannelproductquota", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2201", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelserviceorder", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2227", "weight": 1.0}, {"source": "models_models_bizchannelserviceorder", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2227", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelserviceorderproduct", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2273", "weight": 1.0}, {"source": "models_models_bizchannelserviceorderproduct", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2273", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizchannelserviceordertxn", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2302", "weight": 1.0}, {"source": "models_models_bizchannelserviceordertxn", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2302", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcheckupinstitution", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2337", "weight": 1.0}, {"source": "models_models_bizcheckupinstitution", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2337", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcheckupinstitutioninvoice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2360", "weight": 1.0}, {"source": "models_models_bizcheckupinstitutioninvoice", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2360", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcheckupinstitutionproject", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2384", "weight": 1.0}, {"source": "models_models_bizcheckupinstitutionproject", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2384", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcheckupinstitutionpackage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2405", "weight": 1.0}, {"source": "models_models_bizcheckupinstitutionpackage", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2405", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcheckupinstitutionpackageitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2426", "weight": 1.0}, {"source": "models_models_bizcheckupinstitutionpackageitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2426", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizconsumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2452", "weight": 1.0}, {"source": "models_models_bizconsumable", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2452", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizreagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2478", "weight": 1.0}, {"source": "models_models_bizreagent", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2478", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizequipment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2504", "weight": 1.0}, {"source": "models_models_bizequipment", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2504", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizsopdocument", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2530", "weight": 1.0}, {"source": "models_models_bizsopdocument", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2530", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocesscategory", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2551", "weight": 1.0}, {"source": "models_models_bizprocesscategory", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2551", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizoutputtype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2570", "weight": 1.0}, {"source": "models_models_bizoutputtype", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2570", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizconsumablepack", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2589", "weight": 1.0}, {"source": "models_models_bizconsumablepack", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2589", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizconsumablepackitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2611", "weight": 1.0}, {"source": "models_models_bizconsumablepackitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2611", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocess", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2634", "weight": 1.0}, {"source": "models_models_bizprocess", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2634", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessreagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2659", "weight": 1.0}, {"source": "models_models_bizprocessreagent", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2659", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessconsumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2683", "weight": 1.0}, {"source": "models_models_bizprocessconsumable", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2683", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessoutput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2707", "weight": 1.0}, {"source": "models_models_bizprocessoutput", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2707", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessdatacollection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2728", "weight": 1.0}, {"source": "models_models_bizprocessdatacollection", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2728", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessroute", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2746", "weight": 1.0}, {"source": "models_models_bizprocessroute", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2746", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessroutestep", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2768", "weight": 1.0}, {"source": "models_models_bizprocessroutestep", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2768", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessroutestepreagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2796", "weight": 1.0}, {"source": "models_models_bizprocessroutestepreagent", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2796", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessroutestepconsumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2820", "weight": 1.0}, {"source": "models_models_bizprocessroutestepconsumable", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2820", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessroutestepoutput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2844", "weight": 1.0}, {"source": "models_models_bizprocessroutestepoutput", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2844", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprocessroutestepdatacollection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2865", "weight": 1.0}, {"source": "models_models_bizprocessroutestepdatacollection", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2865", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizcellproduct", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2890", "weight": 1.0}, {"source": "models_models_bizcellproduct", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2890", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductionworkorder", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2925", "weight": 1.0}, {"source": "models_models_bizproductionworkorder", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2925", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontask", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2955", "weight": 1.0}, {"source": "models_models_bizproductiontask", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2955", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskhandover", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2987", "weight": 1.0}, {"source": "models_models_bizproductiontaskhandover", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2987", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskinput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3009", "weight": 1.0}, {"source": "models_models_bizproductiontaskinput", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3009", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskstep", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3031", "weight": 1.0}, {"source": "models_models_bizproductiontaskstep", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3031", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskstepassignee", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3064", "weight": 1.0}, {"source": "models_models_bizproductiontaskstepassignee", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3064", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskstepreagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3083", "weight": 1.0}, {"source": "models_models_bizproductiontaskstepreagent", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3083", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskstepconsumable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3109", "weight": 1.0}, {"source": "models_models_bizproductiontaskstepconsumable", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3109", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskstepconfiguredreagent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3135", "weight": 1.0}, {"source": "models_models_bizproductiontaskstepconfiguredreagent", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3135", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskstepoutput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3160", "weight": 1.0}, {"source": "models_models_bizproductiontaskstepoutput", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3160", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskstepdatacollection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3181", "weight": 1.0}, {"source": "models_models_bizproductiontaskstepdatacollection", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3181", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizproductiontaskoutput", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3202", "weight": 1.0}, {"source": "models_models_bizproductiontaskoutput", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3202", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizprotocolfullmoontodo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3227", "weight": 1.0}, {"source": "models_models_bizprotocolfullmoontodo", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3227", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizinsurancecompany", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3257", "weight": 1.0}, {"source": "models_models_bizinsurancecompany", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3257", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizinsurancecompanyinvoice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3280", "weight": 1.0}, {"source": "models_models_bizinsurancecompanyinvoice", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3280", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizinsuranceprojectprice", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3304", "weight": 1.0}, {"source": "models_models_bizinsuranceprojectprice", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3304", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizconsumablestocklog", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3325", "weight": 1.0}, {"source": "models_models_bizconsumablestocklog", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3325", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizreagentstocklog", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3355", "weight": 1.0}, {"source": "models_models_bizreagentstocklog", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3355", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotapplication", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3385", "weight": 1.0}, {"source": "models_models_bizpilotapplication", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3385", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotpatient", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3415", "weight": 1.0}, {"source": "models_models_bizpilotpatient", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3415", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotinfusionplan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3444", "weight": 1.0}, {"source": "models_models_bizpilotinfusionplan", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3444", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotinfusionschedule", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3469", "weight": 1.0}, {"source": "models_models_bizpilotinfusionschedule", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3469", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotinfusionscheduleproduct", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3498", "weight": 1.0}, {"source": "models_models_bizpilotinfusionscheduleproduct", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3498", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotcheckup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3525", "weight": 1.0}, {"source": "models_models_bizpilotcheckup", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3525", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotcheckupreserveitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3554", "weight": 1.0}, {"source": "models_models_bizpilotcheckupreserveitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3554", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotcheckupactualitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3574", "weight": 1.0}, {"source": "models_models_bizpilotcheckupactualitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3574", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotdelivery", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3594", "weight": 1.0}, {"source": "models_models_bizpilotdelivery", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3594", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotdeliverymaterial", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3613", "weight": 1.0}, {"source": "models_models_bizpilotdeliverymaterial", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3613", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotdeliverymethod", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3634", "weight": 1.0}, {"source": "models_models_bizpilotdeliverymethod", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3634", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizpilotinfusionconfirm", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3663", "weight": 1.0}, {"source": "models_models_bizpilotinfusionconfirm", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3663", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizoutboundreleasematerial", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3684", "weight": 1.0}, {"source": "models_models_bizoutboundreleasematerial", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3684", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizoutboundreleasecell", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3703", "weight": 1.0}, {"source": "models_models_bizoutboundreleasecell", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3703", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizoutboundreleasepaper", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3731", "weight": 1.0}, {"source": "models_models_bizoutboundreleasepaper", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3731", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizoutboundhandover", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3753", "weight": 1.0}, {"source": "models_models_bizoutboundhandover", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3753", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizoutboundreleaseqcmaterial", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3778", "weight": 1.0}, {"source": "models_models_bizoutboundreleaseqcmaterial", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3778", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizoutboundreleasereview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3803", "weight": 1.0}, {"source": "models_models_bizoutboundreleasereview", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3803", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizenvdetectitem", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3829", "weight": 1.0}, {"source": "models_models_bizenvdetectitem", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3829", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "models_models_bizenvdetectrecord", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3849", "weight": 1.0}, {"source": "models_models_bizenvdetectrecord", "target": "base", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3849", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "app_models_qc_param", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3876", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "app_models_qc_material", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3877", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "app_models_production_material", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3878", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "app_models_material", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3886", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "target": "app_models_clinical_payment", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3895", "weight": 1.0}, {"source": "models_models_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_models_models_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1", "weight": 1.0}, {"source": "models_models_rationale_11", "target": "models_models_userrole", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L11", "weight": 1.0}, {"source": "models_models_rationale_70", "target": "models_models_sysuserrole", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L70", "weight": 1.0}, {"source": "models_models_rationale_89", "target": "models_models_sysrolemenu", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L89", "weight": 1.0}, {"source": "models_models_rationale_108", "target": "models_models_sysroledatascopedetail", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L108", "weight": 1.0}, {"source": "models_models_rationale_178", "target": "models_models_systenant", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L178", "weight": 1.0}, {"source": "models_models_rationale_244", "target": "models_models_sysuserpost", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L244", "weight": 1.0}, {"source": "models_models_rationale_282", "target": "models_models_bizexpresscompany", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L282", "weight": 1.0}, {"source": "models_models_rationale_325", "target": "models_models_bizcellsampletype", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L325", "weight": 1.0}, {"source": "models_models_rationale_348", "target": "models_models_bizcollectionregion", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L348", "weight": 1.0}, {"source": "models_models_rationale_366", "target": "models_models_bizcollectionhospital", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L366", "weight": 1.0}, {"source": "models_models_rationale_385", "target": "models_models_bizcollectionprotocolno", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L385", "weight": 1.0}, {"source": "models_models_rationale_407", "target": "models_models_bizbiznosequence", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L407", "weight": 1.0}, {"source": "models_models_rationale_427", "target": "models_models_bizsamplecode", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L427", "weight": 1.0}, {"source": "models_models_rationale_474", "target": "models_models_sysethnic", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L474", "weight": 1.0}, {"source": "models_models_rationale_575", "target": "models_models_bizleaverequest", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L575", "weight": 1.0}, {"source": "models_models_rationale_624", "target": "models_models_wfprocessversion", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L624", "weight": 1.0}, {"source": "models_models_rationale_667", "target": "models_models_wftransition", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L667", "weight": 1.0}, {"source": "models_models_rationale_688", "target": "models_models_wfprocessinstance", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L688", "weight": 1.0}, {"source": "models_models_rationale_783", "target": "models_models_oaappversion", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L783", "weight": 1.0}, {"source": "models_models_rationale_828", "target": "models_models_oaroleuser", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L828", "weight": 1.0}, {"source": "models_models_rationale_905", "target": "models_models_oainstanceevent", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L905", "weight": 1.0}, {"source": "models_models_rationale_954", "target": "models_models_bizcollectionprotocol", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L954", "weight": 1.0}, {"source": "models_models_rationale_988", "target": "models_models_bizprotocolaudit", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L988", "weight": 1.0}, {"source": "models_models_rationale_1009", "target": "models_models_bizstoragereleasereview", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1009", "weight": 1.0}, {"source": "models_models_rationale_1042", "target": "models_models_bizprotocolpayment", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1042", "weight": 1.0}, {"source": "models_models_rationale_1068", "target": "models_models_bizprotocolpaymentdetail", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1068", "weight": 1.0}, {"source": "models_models_rationale_1101", "target": "models_models_bizprotocolinvoicerequest", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1101", "weight": 1.0}, {"source": "models_models_rationale_1131", "target": "models_models_bizprotocolinvoicerequestitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1131", "weight": 1.0}, {"source": "models_models_rationale_1153", "target": "models_models_bizprotocolpartycustomer", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1153", "weight": 1.0}, {"source": "models_models_rationale_1193", "target": "models_models_bizprotocolcollectioninfo", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1193", "weight": 1.0}, {"source": "models_models_rationale_1217", "target": "models_models_bizprotocolsample", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1217", "weight": 1.0}, {"source": "models_models_rationale_1250", "target": "models_models_bizprotocolsampletransport", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1250", "weight": 1.0}, {"source": "models_models_rationale_1302", "target": "models_models_bizprotocolstoragecert", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1302", "weight": 1.0}, {"source": "models_models_rationale_1323", "target": "models_models_bizsamplereceptioncheckitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1323", "weight": 1.0}, {"source": "models_models_rationale_1343", "target": "models_models_bizsamplereceptioncheckresult", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1343", "weight": 1.0}, {"source": "models_models_rationale_1365", "target": "models_models_bizsamplereception", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1365", "weight": 1.0}, {"source": "models_models_rationale_1404", "target": "models_models_bizsampleproductionreception", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1404", "weight": 1.0}, {"source": "models_models_rationale_1463", "target": "models_models_bizqcsmsnotification", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1463", "weight": 1.0}, {"source": "models_models_rationale_1488", "target": "models_models_bizstorageentrysmsnotification", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1488", "weight": 1.0}, {"source": "models_models_rationale_1517", "target": "models_models_bizqcthirdpartycompany", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1517", "weight": 1.0}, {"source": "models_models_rationale_1545", "target": "models_models_bizqcthirdpartyitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1545", "weight": 1.0}, {"source": "models_models_rationale_1567", "target": "models_models_bizqclabtestitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1567", "weight": 1.0}, {"source": "models_models_rationale_1588", "target": "models_models_bizqcworkorder", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1588", "weight": 1.0}, {"source": "models_models_rationale_1637", "target": "models_models_bizqcworkorderinspectionbatch", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1637", "weight": 1.0}, {"source": "models_models_rationale_1658", "target": "models_models_bizqcbatchassignee", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1658", "weight": 1.0}, {"source": "models_models_rationale_1677", "target": "models_models_bizqcworkorderlabitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1677", "weight": 1.0}, {"source": "models_models_rationale_1700", "target": "models_models_bizqcworkorderthirditem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1700", "weight": 1.0}, {"source": "models_models_rationale_1760", "target": "models_models_bizqctaskassignee", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1760", "weight": 1.0}, {"source": "models_models_rationale_1807", "target": "models_models_bizcleanroomaccesslog", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1807", "weight": 1.0}, {"source": "models_models_rationale_1832", "target": "models_models_bizcleanroomuvdisinfectlog", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1832", "weight": 1.0}, {"source": "models_models_rationale_1855", "target": "models_models_bizstoragefacility", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1855", "weight": 1.0}, {"source": "models_models_rationale_1877", "target": "models_models_bizstoragefacilityslot", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1877", "weight": 1.0}, {"source": "models_models_rationale_1900", "target": "models_models_bizstorageslotoccupancy", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1900", "weight": 1.0}, {"source": "models_models_rationale_1926", "target": "models_models_bizexhibitionappointment", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1926", "weight": 1.0}, {"source": "models_models_rationale_1954", "target": "models_models_bizcellproducttype", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1954", "weight": 1.0}, {"source": "models_models_rationale_1973", "target": "models_models_bizcellproductspec", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1973", "weight": 1.0}, {"source": "models_models_rationale_1992", "target": "models_models_bizcellproductprice", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L1992", "weight": 1.0}, {"source": "models_models_rationale_2017", "target": "models_models_bizcellproductprojectsystem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2017", "weight": 1.0}, {"source": "models_models_rationale_2037", "target": "models_models_bizcellproductprojectsystemitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2037", "weight": 1.0}, {"source": "models_models_rationale_2088", "target": "models_models_bizchannelagreement", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2088", "weight": 1.0}, {"source": "models_models_rationale_2113", "target": "models_models_bizchannelagreementproductprice", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2113", "weight": 1.0}, {"source": "models_models_rationale_2138", "target": "models_models_bizchannelinvoice", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2138", "weight": 1.0}, {"source": "models_models_rationale_2162", "target": "models_models_bizchannelmailaddress", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2162", "weight": 1.0}, {"source": "models_models_rationale_2183", "target": "models_models_bizchannelaccount", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2183", "weight": 1.0}, {"source": "models_models_rationale_2202", "target": "models_models_bizchannelproductquota", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2202", "weight": 1.0}, {"source": "models_models_rationale_2228", "target": "models_models_bizchannelserviceorder", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2228", "weight": 1.0}, {"source": "models_models_rationale_2274", "target": "models_models_bizchannelserviceorderproduct", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2274", "weight": 1.0}, {"source": "models_models_rationale_2303", "target": "models_models_bizchannelserviceordertxn", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2303", "weight": 1.0}, {"source": "models_models_rationale_2338", "target": "models_models_bizcheckupinstitution", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2338", "weight": 1.0}, {"source": "models_models_rationale_2361", "target": "models_models_bizcheckupinstitutioninvoice", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2361", "weight": 1.0}, {"source": "models_models_rationale_2385", "target": "models_models_bizcheckupinstitutionproject", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2385", "weight": 1.0}, {"source": "models_models_rationale_2406", "target": "models_models_bizcheckupinstitutionpackage", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2406", "weight": 1.0}, {"source": "models_models_rationale_2427", "target": "models_models_bizcheckupinstitutionpackageitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2427", "weight": 1.0}, {"source": "models_models_rationale_2531", "target": "models_models_bizsopdocument", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2531", "weight": 1.0}, {"source": "models_models_rationale_2552", "target": "models_models_bizprocesscategory", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2552", "weight": 1.0}, {"source": "models_models_rationale_2590", "target": "models_models_bizconsumablepack", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2590", "weight": 1.0}, {"source": "models_models_rationale_2612", "target": "models_models_bizconsumablepackitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2612", "weight": 1.0}, {"source": "models_models_rationale_2660", "target": "models_models_bizprocessreagent", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2660", "weight": 1.0}, {"source": "models_models_rationale_2684", "target": "models_models_bizprocessconsumable", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2684", "weight": 1.0}, {"source": "models_models_rationale_2708", "target": "models_models_bizprocessoutput", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2708", "weight": 1.0}, {"source": "models_models_rationale_2747", "target": "models_models_bizprocessroute", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2747", "weight": 1.0}, {"source": "models_models_rationale_2769", "target": "models_models_bizprocessroutestep", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2769", "weight": 1.0}, {"source": "models_models_rationale_2797", "target": "models_models_bizprocessroutestepreagent", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2797", "weight": 1.0}, {"source": "models_models_rationale_2821", "target": "models_models_bizprocessroutestepconsumable", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2821", "weight": 1.0}, {"source": "models_models_rationale_2845", "target": "models_models_bizprocessroutestepoutput", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2845", "weight": 1.0}, {"source": "models_models_rationale_2866", "target": "models_models_bizprocessroutestepdatacollection", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2866", "weight": 1.0}, {"source": "models_models_rationale_2891", "target": "models_models_bizcellproduct", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2891", "weight": 1.0}, {"source": "models_models_rationale_2926", "target": "models_models_bizproductionworkorder", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2926", "weight": 1.0}, {"source": "models_models_rationale_2956", "target": "models_models_bizproductiontask", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2956", "weight": 1.0}, {"source": "models_models_rationale_2988", "target": "models_models_bizproductiontaskhandover", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L2988", "weight": 1.0}, {"source": "models_models_rationale_3010", "target": "models_models_bizproductiontaskinput", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3010", "weight": 1.0}, {"source": "models_models_rationale_3032", "target": "models_models_bizproductiontaskstep", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3032", "weight": 1.0}, {"source": "models_models_rationale_3065", "target": "models_models_bizproductiontaskstepassignee", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3065", "weight": 1.0}, {"source": "models_models_rationale_3084", "target": "models_models_bizproductiontaskstepreagent", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3084", "weight": 1.0}, {"source": "models_models_rationale_3110", "target": "models_models_bizproductiontaskstepconsumable", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3110", "weight": 1.0}, {"source": "models_models_rationale_3136", "target": "models_models_bizproductiontaskstepconfiguredreagent", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3136", "weight": 1.0}, {"source": "models_models_rationale_3161", "target": "models_models_bizproductiontaskstepoutput", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3161", "weight": 1.0}, {"source": "models_models_rationale_3182", "target": "models_models_bizproductiontaskstepdatacollection", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3182", "weight": 1.0}, {"source": "models_models_rationale_3203", "target": "models_models_bizproductiontaskoutput", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3203", "weight": 1.0}, {"source": "models_models_rationale_3228", "target": "models_models_bizprotocolfullmoontodo", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3228", "weight": 1.0}, {"source": "models_models_rationale_3258", "target": "models_models_bizinsurancecompany", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3258", "weight": 1.0}, {"source": "models_models_rationale_3281", "target": "models_models_bizinsurancecompanyinvoice", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3281", "weight": 1.0}, {"source": "models_models_rationale_3305", "target": "models_models_bizinsuranceprojectprice", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3305", "weight": 1.0}, {"source": "models_models_rationale_3326", "target": "models_models_bizconsumablestocklog", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3326", "weight": 1.0}, {"source": "models_models_rationale_3356", "target": "models_models_bizreagentstocklog", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3356", "weight": 1.0}, {"source": "models_models_rationale_3386", "target": "models_models_bizpilotapplication", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3386", "weight": 1.0}, {"source": "models_models_rationale_3416", "target": "models_models_bizpilotpatient", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3416", "weight": 1.0}, {"source": "models_models_rationale_3445", "target": "models_models_bizpilotinfusionplan", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3445", "weight": 1.0}, {"source": "models_models_rationale_3470", "target": "models_models_bizpilotinfusionschedule", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3470", "weight": 1.0}, {"source": "models_models_rationale_3499", "target": "models_models_bizpilotinfusionscheduleproduct", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3499", "weight": 1.0}, {"source": "models_models_rationale_3526", "target": "models_models_bizpilotcheckup", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3526", "weight": 1.0}, {"source": "models_models_rationale_3555", "target": "models_models_bizpilotcheckupreserveitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3555", "weight": 1.0}, {"source": "models_models_rationale_3575", "target": "models_models_bizpilotcheckupactualitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3575", "weight": 1.0}, {"source": "models_models_rationale_3595", "target": "models_models_bizpilotdelivery", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3595", "weight": 1.0}, {"source": "models_models_rationale_3614", "target": "models_models_bizpilotdeliverymaterial", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3614", "weight": 1.0}, {"source": "models_models_rationale_3635", "target": "models_models_bizpilotdeliverymethod", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3635", "weight": 1.0}, {"source": "models_models_rationale_3664", "target": "models_models_bizpilotinfusionconfirm", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3664", "weight": 1.0}, {"source": "models_models_rationale_3685", "target": "models_models_bizoutboundreleasematerial", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3685", "weight": 1.0}, {"source": "models_models_rationale_3704", "target": "models_models_bizoutboundreleasecell", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3704", "weight": 1.0}, {"source": "models_models_rationale_3732", "target": "models_models_bizoutboundreleasepaper", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3732", "weight": 1.0}, {"source": "models_models_rationale_3754", "target": "models_models_bizoutboundhandover", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3754", "weight": 1.0}, {"source": "models_models_rationale_3779", "target": "models_models_bizoutboundreleaseqcmaterial", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3779", "weight": 1.0}, {"source": "models_models_rationale_3804", "target": "models_models_bizoutboundreleasereview", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3804", "weight": 1.0}, {"source": "models_models_rationale_3830", "target": "models_models_bizenvdetectitem", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3830", "weight": 1.0}, {"source": "models_models_rationale_3850", "target": "models_models_bizenvdetectrecord", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/models/models.py", "source_location": "L3850", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/4540ec751f48c9ae9c7d96df7612fbe11e50272c8d17163617f5c8eaea96ea7d.json b/backend/app/graphify-out/cache/ast/4540ec751f48c9ae9c7d96df7612fbe11e50272c8d17163617f5c8eaea96ea7d.json new file mode 100644 index 00000000..924d8332 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/4540ec751f48c9ae9c7d96df7612fbe11e50272c8d17163617f5c8eaea96ea7d.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "label": "oa_engine.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1"}, {"id": "services_oa_engine_oaengineerror", "label": "OaEngineError", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L26"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "services_oa_engine_loads", "label": "_loads()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L30"}, {"id": "services_oa_engine_dumps", "label": "_dumps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41"}, {"id": "services_oa_engine_node_type", "label": "_node_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L45"}, {"id": "services_oa_engine_flow_root", "label": "_flow_root()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L49"}, {"id": "services_oa_engine_find_node", "label": "_find_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L57"}, {"id": "services_oa_engine_flow_node_key_order", "label": "_flow_node_key_order()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75"}, {"id": "services_oa_engine_next_task_order_num", "label": "_next_task_order_num()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100"}, {"id": "services_oa_engine_sort_tasks_for_detail", "label": "_sort_tasks_for_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L111"}, {"id": "services_oa_engine_fmt_dt", "label": "_fmt_dt()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L131"}, {"id": "services_oa_engine_terminal_item", "label": "_terminal_item()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L139"}, {"id": "services_oa_engine_task_round", "label": "_task_round()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L154"}, {"id": "services_oa_engine_append_pending_nodes", "label": "_append_pending_nodes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L164"}, {"id": "services_oa_engine_build_progress_items", "label": "build_progress_items()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L195"}, {"id": "services_oa_engine_add_instance_event", "label": "_add_instance_event()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L267"}, {"id": "services_oa_engine_advanced", "label": "_advanced()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L302"}, {"id": "services_oa_engine_check_initiator_scope", "label": "_check_initiator_scope()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L311"}, {"id": "services_oa_engine_instance_to_dict", "label": "_instance_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L320"}, {"id": "services_oa_engine_task_to_dict", "label": "_task_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L338"}, {"id": "services_oa_engine_instance_progress_summary", "label": "_instance_progress_summary()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L364"}, {"id": "services_oa_engine_enrich_list_rows", "label": "_enrich_list_rows()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L405"}, {"id": "services_oa_engine_user_name_map", "label": "_user_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L477"}, {"id": "services_oa_engine_list_templates", "label": "list_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L485"}, {"id": "services_oa_engine_get_template_detail", "label": "get_template_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L515"}, {"id": "services_oa_engine_role_name_map", "label": "_role_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L548"}, {"id": "services_oa_engine_assignee_meta", "label": "_assignee_meta()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L576"}, {"id": "services_oa_engine_preview_people", "label": "_preview_people()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L591"}, {"id": "services_oa_engine_walk_preview_nodes", "label": "_walk_preview_nodes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L599"}, {"id": "services_oa_engine_preview_start_flow", "label": "preview_start_flow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L725"}, {"id": "services_oa_engine_create_tasks_for_node", "label": "_create_tasks_for_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L775"}, {"id": "services_oa_engine_match_condition_group", "label": "_match_condition_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L844"}, {"id": "services_oa_engine_advance_from", "label": "advance_from()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L885"}, {"id": "services_oa_engine_start_instance", "label": "start_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L955"}, {"id": "services_oa_engine_get_instance", "label": "_get_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1059"}, {"id": "services_oa_engine_get_instance_detail", "label": "get_instance_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1070"}, {"id": "services_oa_engine_list_tasks", "label": "list_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1134"}, {"id": "services_oa_engine_complete_task", "label": "complete_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1198"}, {"id": "services_oa_engine_add_sign", "label": "add_sign()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1319"}, {"id": "services_oa_engine_return_task", "label": "return_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1435"}, {"id": "services_oa_engine_resubmit_instance", "label": "resubmit_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1516"}, {"id": "services_oa_engine_withdraw_instance", "label": "withdraw_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1530"}, {"id": "services_oa_engine_rationale_76", "label": "\u6309\u6d41\u7a0b\u6811\u5148\u5e8f\u904d\u5386\u4e3a node.id \u5206\u914d\u7a33\u5b9a\u5e8f\u53f7\uff08\u7528\u4e8e\u8be6\u60c5\u65f6\u95f4\u8f74\u6392\u5e8f\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L76"}, {"id": "services_oa_engine_rationale_101", "label": "\u540c\u4e00\u5b9e\u4f8b\u5185\u4efb\u52a1\u5c55\u793a\u5e8f\u53f7\u53d6 max+1\uff08\u65e0\u4efb\u52a1\u4ece 1 \u8d77\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L101"}, {"id": "services_oa_engine_rationale_114", "label": "\u8be6\u60c5\u65f6\u95f4\u8f74\uff1a\u6309\u6d41\u7a0b\u6811\u8282\u70b9\u987a\u5e8f\uff0c\u518d order_num / create_time\uff08\u517c\u5bb9\u65e7\u6570\u636e\u540c\u79d2\u521b\u5efa\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L114"}, {"id": "services_oa_engine_rationale_203", "label": "\u6295\u5f71\u5ba1\u6279\u8fdb\u5ea6\uff1a\u53d1\u8d77\u4eba \u2192 \u6811\u5e8f tasks \u2192 \u672a\u5230\u8fbe\uff1b\u7ec8\u6001\u6536\u5c3e\u3002 \u9489\u9489\u5bf9\u9f50\uff1a\u6253\u56de\u7ed3\u679c\u843d\u5728\u5ba1\u6279\u4efb\u52a1\u8282\u70b9\u4e0a\uff0c\u4e0d\u53e6\u63d2 kind=return\uff1b\u4e0d\u505a\u540c\u5355\u591a\u8f6e", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L203"}, {"id": "services_oa_engine_rationale_734", "label": "\u53d1\u8d77\u524d\u9884\u89c8\u5ba1\u6279\u94fe\uff08\u89e3\u6790\u5177\u4f53\u4eba\u5458\uff1b\u6761\u4ef6\u5206\u652f\u5c55\u5f00\u5c55\u793a\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L734"}, {"id": "services_oa_engine_rationale_894", "label": "\u4ece\u67d0\u8282\u70b9\u7684\u4e0b\u4e00\u8df3\u5f00\u59cb\u63a8\u8fdb\uff1bfrom_node \u4e3a None \u8868\u793a\u4ece start \u8fdb\u5165\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L894"}, {"id": "services_oa_engine_rationale_1328", "label": "\u5f53\u524d\u5f85\u529e\u5904\u7406\u4eba\u52a0\u7b7e\uff1a\u4e3a\u540c\u8282\u70b9\u65b0\u589e\u5f85\u529e\u5ba1\u6279\u4eba\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1328"}, {"id": "services_oa_engine_rationale_1443", "label": "\u5ba1\u6279\u4eba\u6253\u56de\uff1a\u672c\u5355\u7ec8\u6001 returned\uff1b\u518d\u529e\u987b\u590d\u5236\u8868\u5355\u5f00\u65b0\u5b9e\u4f8b\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1443"}, {"id": "services_oa_engine_rationale_1525", "label": "\u5df2\u5e9f\u5f03\uff1a\u540c\u5b9e\u4f8b\u518d\u6b21\u63d0\u4ea4\u3002\u8bf7\u590d\u5236\u8868\u5355\u91cd\u65b0\u53d1\u8d77\u65b0\u5b9e\u4f8b\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1525"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_assignee", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_formula", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_oaengineerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L26", "weight": 1.0}, {"source": "services_oa_engine_oaengineerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_loads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L30", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_dumps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_node_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L45", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_root", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L49", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_find_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L57", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_node_key_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_next_task_order_num", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_fmt_dt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L131", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_terminal_item", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L139", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_round", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L154", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_append_pending_nodes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L164", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_build_progress_items", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_add_instance_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L267", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advanced", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L302", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_check_initiator_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_instance_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L320", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L338", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_instance_progress_summary", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L364", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_enrich_list_rows", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L405", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_user_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L477", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L485", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_template_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L515", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_role_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L548", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_assignee_meta", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L576", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_preview_people", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L591", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_walk_preview_nodes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L599", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_preview_start_flow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L725", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_create_tasks_for_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L775", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_match_condition_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L844", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advance_from", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L885", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_start_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L955", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1059", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1070", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1134", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_complete_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1198", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_add_sign", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1319", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_return_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1435", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_resubmit_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1516", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_withdraw_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1530", "weight": 1.0}, {"source": "services_oa_engine_flow_root", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L51", "weight": 1.0}, {"source": "services_oa_engine_sort_tasks_for_detail", "target": "services_oa_engine_flow_node_key_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L115", "weight": 1.0}, {"source": "services_oa_engine_terminal_item", "target": "services_oa_engine_fmt_dt", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L147", "weight": 1.0}, {"source": "services_oa_engine_append_pending_nodes", "target": "services_oa_engine_flow_node_key_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L171", "weight": 1.0}, {"source": "services_oa_engine_append_pending_nodes", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L173", "weight": 1.0}, {"source": "services_oa_engine_append_pending_nodes", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L176", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L208", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_fmt_dt", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L211", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_append_pending_nodes", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L252", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_terminal_item", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L257", "weight": 1.0}, {"source": "services_oa_engine_advanced", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L303", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L315", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L317", "weight": 1.0}, {"source": "services_oa_engine_instance_to_dict", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L329", "weight": 1.0}, {"source": "services_oa_engine_enrich_list_rows", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L455", "weight": 1.0}, {"source": "services_oa_engine_enrich_list_rows", "target": "services_oa_engine_instance_progress_summary", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L464", "weight": 1.0}, {"source": "services_oa_engine_list_templates", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L498", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L520", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L521", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L533", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L535", "weight": 1.0}, {"source": "services_oa_engine_assignee_meta", "target": "services_oa_engine_role_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L580", "weight": 1.0}, {"source": "services_oa_engine_preview_people", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L592", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L612", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_preview_people", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L614", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_assignee_meta", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L685", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L737", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L738", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L756", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_walk_preview_nodes", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L762", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L768", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L785", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L796", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L808", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L813", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L895", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L895", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L911", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L916", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_create_tasks_for_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L930", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L945", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L972", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L973", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L978", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1001", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_add_instance_event", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1039", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1046", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1056", "weight": 1.0}, {"source": "services_oa_engine_get_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1066", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1071", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1086", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1086", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1089", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1095", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1100", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1103", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1108", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_build_progress_items", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1121", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1176", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_enrich_list_rows", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1177", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1179", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1182", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1209", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1223", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1235", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1272", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1310", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1310", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1311", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1314", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1335", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1341", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1352", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1380", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1432", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1450", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1456", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1467", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_add_instance_event", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1502", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1513", "weight": 1.0}, {"source": "services_oa_engine_resubmit_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1527", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1533", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1535", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1543", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_add_instance_event", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1561", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1569", "weight": 1.0}, {"source": "services_oa_engine_rationale_76", "target": "services_oa_engine_flow_node_key_order", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L76", "weight": 1.0}, {"source": "services_oa_engine_rationale_101", "target": "services_oa_engine_next_task_order_num", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L101", "weight": 1.0}, {"source": "services_oa_engine_rationale_114", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L114", "weight": 1.0}, {"source": "services_oa_engine_rationale_203", "target": "services_oa_engine_build_progress_items", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L203", "weight": 1.0}, {"source": "services_oa_engine_rationale_734", "target": "services_oa_engine_preview_start_flow", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L734", "weight": 1.0}, {"source": "services_oa_engine_rationale_894", "target": "services_oa_engine_advance_from", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L894", "weight": 1.0}, {"source": "services_oa_engine_rationale_1328", "target": "services_oa_engine_add_sign", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1328", "weight": 1.0}, {"source": "services_oa_engine_rationale_1443", "target": "services_oa_engine_return_task", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1443", "weight": 1.0}, {"source": "services_oa_engine_rationale_1525", "target": "services_oa_engine_resubmit_instance", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1525", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_engine_loads", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L33"}, {"caller_nid": "services_oa_engine_loads", "callee": "loads", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36"}, {"caller_nid": "services_oa_engine_dumps", "callee": "dumps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L42"}, {"caller_nid": "services_oa_engine_node_type", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L46"}, {"caller_nid": "services_oa_engine_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L46"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L50"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L52"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L52"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L60"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L62"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L63"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L67"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_flow_node_key_order", "callee": "walk", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L96"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L103"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L103"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L103"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L107"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L108"}, {"caller_nid": "services_oa_engine_sort_tasks_for_detail", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L115"}, {"caller_nid": "services_oa_engine_sort_tasks_for_detail", "callee": "sorted", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_fmt_dt", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L134"}, {"caller_nid": "services_oa_engine_fmt_dt", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L135"}, {"caller_nid": "services_oa_engine_fmt_dt", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L136"}, {"caller_nid": "services_oa_engine_terminal_item", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L142"}, {"caller_nid": "services_oa_engine_terminal_item", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L147"}, {"caller_nid": "services_oa_engine_task_round", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L155"}, {"caller_nid": "services_oa_engine_task_round", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L159"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "sorted", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L172"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "items", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L172"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L179"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L183"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L207"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L208"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L211"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L213"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L214"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L224"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L232"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L232"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L235"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L242"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L247"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L251"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L257"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L259"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L261"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L263"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L278"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "OaInstanceEvent", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L279"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L280"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L287"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L298"}, {"caller_nid": "services_oa_engine_advanced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L304"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L305"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L306"}, {"caller_nid": "services_oa_engine_advanced", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L307"}, {"caller_nid": "services_oa_engine_check_initiator_scope", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L312"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L331"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L332"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L332"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L333"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L334"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L351"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L352"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L372"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L374"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L378"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L381"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L383"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L384"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L385"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L387"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L387"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L388"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L389"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L391"}, {"caller_nid": "services_oa_engine_instance_progress_summary", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L397"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L415"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L417"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L417"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L417"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L419"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L429"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "keys", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L429"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L431"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L431"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L431"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L431"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L435"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L439"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L446"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "setdefault", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L446"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L451"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L459"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L459"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L460"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L462"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L466"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L467"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L468"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L471"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L472"}, {"caller_nid": "services_oa_engine_enrich_list_rows", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L473"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L478"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L478"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L487"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L487"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L487"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L487"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L489"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L489"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L494"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L501"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L518"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L522"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L550"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L550"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L550"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L550"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L551"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L551"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L551"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L551"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L551"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L554"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L554"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L554"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L555"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "extend", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L558"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L561"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L561"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L561"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L564"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L572"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L577"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L577"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L577"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L578"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L583"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L583"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L584"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L584"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L587"}, {"caller_nid": "services_oa_engine_preview_people", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L595"}, {"caller_nid": "services_oa_engine_preview_people", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L595"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L611"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L615"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L617"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L619"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L627"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L631"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L633"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L635"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L646"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L648"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L650"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L652"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L652"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L654"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L662"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L663"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L674"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L678"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L679"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L679"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L679"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L680"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L680"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L680"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L690"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L690"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L690"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L695"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L706"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L707"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L709"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L711"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L719"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L722"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L735"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L739"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L744"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L744"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L744"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L752"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L757"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L757"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L758"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L759"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L786"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L795"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L798"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L808"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L810"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L810"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L810"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L811"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L816"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L817"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L819"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L820"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L827"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L827"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L839"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L840"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L847"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L849"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L850"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L852"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L856"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L858"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L862"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L864"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L865"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L866"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L869"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L870"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L872"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L873"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "eval_formula", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L878"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L878"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L911"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L913"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L923"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L924"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L927"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L939"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L939"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L942"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L948"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L970"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L974"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L979"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "apply_formulas_and_linkages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L981"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L986"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L986"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L986"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L990"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L992"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L993"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaInstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L994"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L995"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1015"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1018"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1021"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaRelation", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1022"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1023"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1054"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1055"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1061"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1061"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1061"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1072"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1074"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1074"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1074"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1079"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1079"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1079"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1091"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1091"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1091"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1101"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1103"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1108"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1110"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1110"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1111"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1111"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1113"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1113"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1113"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1113"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1115"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1120"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1141"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1143"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1143"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1151"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1151"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1156"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1159"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1159"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1167"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1167"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1167"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1167"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1173"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1181"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1181"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1181"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1183"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1185"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1185"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1185"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1189"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1207"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1212"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1212"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1212"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1228"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1228"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1228"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1236"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1236"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1239"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1240"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1244"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "flush", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1247"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1252"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1252"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1252"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1266"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1270"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1271"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1275"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1277"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1277"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1277"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1289"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1295"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1295"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1295"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1308"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1315"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1330"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1330"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1330"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1346"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1346"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1346"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1353"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1357"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1359"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1362"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1363"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1369"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1369"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1369"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1378"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1386"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1386"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1386"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1397"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1398"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1399"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1409"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1409"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1409"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1412"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1427"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1430"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1431"}, {"caller_nid": "services_oa_engine_return_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1445"}, {"caller_nid": "services_oa_engine_return_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1445"}, {"caller_nid": "services_oa_engine_return_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1445"}, {"caller_nid": "services_oa_engine_return_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1461"}, {"caller_nid": "services_oa_engine_return_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1461"}, {"caller_nid": "services_oa_engine_return_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1461"}, {"caller_nid": "services_oa_engine_return_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1468"}, {"caller_nid": "services_oa_engine_return_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1471"}, {"caller_nid": "services_oa_engine_return_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1475"}, {"caller_nid": "services_oa_engine_return_task", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1476"}, {"caller_nid": "services_oa_engine_return_task", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1476"}, {"caller_nid": "services_oa_engine_return_task", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1476"}, {"caller_nid": "services_oa_engine_return_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1481"}, {"caller_nid": "services_oa_engine_return_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1484"}, {"caller_nid": "services_oa_engine_return_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1484"}, {"caller_nid": "services_oa_engine_return_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1484"}, {"caller_nid": "services_oa_engine_return_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1496"}, {"caller_nid": "services_oa_engine_return_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1501"}, {"caller_nid": "services_oa_engine_return_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1512"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1539"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1539"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1539"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1543"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1544"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1547"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1551"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1553"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1553"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1553"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1560"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1566"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1566"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1568"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/4a4f6d3ab85a5e63782ecbaa8dbcb6fa8af7a2706d71a4a3f061967fc3636633.json b/backend/app/graphify-out/cache/ast/4a4f6d3ab85a5e63782ecbaa8dbcb6fa8af7a2706d71a4a3f061967fc3636633.json new file mode 100644 index 00000000..c6704ccf --- /dev/null +++ b/backend/app/graphify-out/cache/ast/4a4f6d3ab85a5e63782ecbaa8dbcb6fa8af7a2706d71a4a3f061967fc3636633.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "label": "main.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L1"}, {"id": "app_main_lifespan", "label": "lifespan()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L20"}, {"id": "app_main_error_json", "label": "_error_json()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L67"}, {"id": "app_main_sqlalchemy_exception_handler", "label": "sqlalchemy_exception_handler()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L80"}, {"id": "app_main_unhandled_exception_handler", "label": "unhandled_exception_handler()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L91"}, {"id": "app_main_mask_secret", "label": "_mask_secret()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L138"}, {"id": "app_main_root", "label": "root()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L160"}, {"id": "app_main_health_check", "label": "health_check()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L165"}, {"id": "app_main_rationale_81", "label": "\u6570\u636e\u5e93\u5f02\u5e38\uff1a\u8fd4\u56de JSON \u5e76\u4fdd\u7559 CORS \u5934\uff0c\u907f\u514d\u6d4f\u89c8\u5668\u53ea\u62a5\u8de8\u57df\u9519\u8bef", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L81"}, {"id": "app_main_rationale_92", "label": "\u672a\u6355\u83b7\u5f02\u5e38\uff1a\u7edf\u4e00 JSON 500\uff0c\u786e\u4fdd\u8de8\u57df\u573a\u666f\u4e0b\u4ecd\u6709 Access-Control-Allow-Origin", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L92"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "contextlib", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "logging", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "fastapi", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "fastapi_middleware_cors", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "fastapi_responses", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "sqlalchemy_exc", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "app_core_config", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "app_core_database", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "app_core_api_request_log_middleware", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "app_core_api_crypto_middleware", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "app_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "app_api", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "app_main_lifespan", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L20", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "app_main_error_json", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L67", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "app_main_sqlalchemy_exception_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L80", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "app_main_unhandled_exception_handler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L91", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "app_main_mask_secret", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L138", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "app_main_root", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L160", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_main_py", "target": "app_main_health_check", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L165", "weight": 1.0}, {"source": "app_main_sqlalchemy_exception_handler", "target": "app_main_error_json", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L87", "weight": 1.0}, {"source": "app_main_unhandled_exception_handler", "target": "app_main_error_json", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L98", "weight": 1.0}, {"source": "app_main_rationale_81", "target": "app_main_sqlalchemy_exception_handler", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L81", "weight": 1.0}, {"source": "app_main_rationale_92", "target": "app_main_unhandled_exception_handler", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L92", "weight": 1.0}], "raw_calls": [{"caller_nid": "app_main_lifespan", "callee": "ensure_initialized", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L24"}, {"caller_nid": "app_main_lifespan", "callee": "init_scheduled_tasks", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L29"}, {"caller_nid": "app_main_lifespan", "callee": "warning", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L31"}, {"caller_nid": "app_main_lifespan", "callee": "shutdown_scheduler", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L38"}, {"caller_nid": "app_main_error_json", "callee": "JSONResponse", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L68"}, {"caller_nid": "app_main_error_json", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L74"}, {"caller_nid": "app_main_error_json", "callee": "timestamp", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L74"}, {"caller_nid": "app_main_error_json", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L74"}, {"caller_nid": "app_main_sqlalchemy_exception_handler", "callee": "exception", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L82"}, {"caller_nid": "app_main_sqlalchemy_exception_handler", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L84"}, {"caller_nid": "app_main_unhandled_exception_handler", "callee": "exception", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L93"}, {"caller_nid": "app_main_unhandled_exception_handler", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L95"}, {"caller_nid": "app_main_mask_secret", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L141"}, {"caller_nid": "app_main_mask_secret", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/main.py", "source_location": "L142"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/4eb08c9586e788aa63a3795abf2b0d63c74b50f65fc12a3e1aa2bdb9fbc0ed09.json b/backend/app/graphify-out/cache/ast/4eb08c9586e788aa63a3795abf2b0d63c74b50f65fc12a3e1aa2bdb9fbc0ed09.json new file mode 100644 index 00000000..f8ed3d29 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/4eb08c9586e788aa63a3795abf2b0d63c74b50f65fc12a3e1aa2bdb9fbc0ed09.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "label": "user.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L1"}, {"id": "crud_user_hash_password", "label": "_hash_password()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L18"}, {"id": "crud_user_usercrudcompat", "label": "_UserCRUDCompat", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L22"}, {"id": "crud_user_usercrudcompat_get_by_user_no", "label": ".get_by_user_no()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L23"}, {"id": "crud_user_row_to_dict", "label": "_row_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L38"}, {"id": "crud_user_list_users", "label": "list_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L59"}, {"id": "crud_user_get_user", "label": "get_user()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L110"}, {"id": "crud_user_list_post_ids_for_user", "label": "list_post_ids_for_user()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L118"}, {"id": "crud_user_set_user_post_ids_only", "label": "set_user_post_ids_only()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L128"}, {"id": "crud_user_list_user_ids_bound_to_post", "label": "list_user_ids_bound_to_post()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L160"}, {"id": "crud_user_sync_post_user_bindings", "label": "sync_post_user_bindings()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L175"}, {"id": "crud_user_get_user_with_relations", "label": "get_user_with_relations()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L203"}, {"id": "crud_user_user_no_exists", "label": "user_no_exists()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L228"}, {"id": "crud_user_replace_associations", "label": "_replace_associations()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L237"}, {"id": "crud_user_create_user", "label": "create_user()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L288"}, {"id": "crud_user_update_user", "label": "update_user()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L349"}, {"id": "crud_user_soft_delete_user", "label": "soft_delete_user()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L407"}, {"id": "crud_user_reset_password", "label": "reset_password()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L417"}, {"id": "crud_user_change_password", "label": "change_password()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L427"}, {"id": "crud_user_total_pages", "label": "total_pages()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L446"}, {"id": "crud_user_rationale_1", "label": "\u7528\u6237 CRUD\uff08sys_user + sys_user_role + sys_user_post\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L1"}, {"id": "crud_user_rationale_135", "label": "\u4ec5\u66ff\u6362 sys_user_post\uff0c\u4e0d\u5f71\u54cd sys_user_role\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L135"}, {"id": "crud_user_rationale_182", "label": "\u5c06\u672c\u804c\u4f4d\u7ed1\u5b9a\u7684\u7528\u6237\u96c6\u5408\u8bbe\u4e3a user_ids\uff08\u53ea\u589e\u5220\u672c\u804c\u4f4d\uff0c\u4fdd\u7559\u7528\u6237\u5176\u5b83\u804c\u4f4d\u4e0e\u89d2\u8272\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L182"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "math", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "bcrypt", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "app_core_config", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "app_crud_base", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_hash_password", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_usercrudcompat", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L22", "weight": 1.0}, {"source": "crud_user_usercrudcompat", "target": "crud_user_usercrudcompat_get_by_user_no", "relation": "method", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_row_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L38", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_list_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L59", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_get_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L110", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_list_post_ids_for_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L118", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_set_user_post_ids_only", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L128", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_list_user_ids_bound_to_post", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L160", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_sync_post_user_bindings", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L175", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_get_user_with_relations", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L203", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_user_no_exists", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L228", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_replace_associations", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L237", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_create_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L288", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_update_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L349", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_soft_delete_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L407", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_reset_password", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L417", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_change_password", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L427", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "target": "crud_user_total_pages", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L446", "weight": 1.0}, {"source": "crud_user_list_users", "target": "crud_user_row_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L107", "weight": 1.0}, {"source": "crud_user_sync_post_user_bindings", "target": "crud_user_get_user", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L185", "weight": 1.0}, {"source": "crud_user_sync_post_user_bindings", "target": "crud_user_list_user_ids_bound_to_post", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L189", "weight": 1.0}, {"source": "crud_user_sync_post_user_bindings", "target": "crud_user_list_post_ids_for_user", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L196", "weight": 1.0}, {"source": "crud_user_sync_post_user_bindings", "target": "crud_user_set_user_post_ids_only", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L199", "weight": 1.0}, {"source": "crud_user_get_user_with_relations", "target": "crud_user_get_user", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L204", "weight": 1.0}, {"source": "crud_user_get_user_with_relations", "target": "crud_user_row_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L214", "weight": 1.0}, {"source": "crud_user_get_user_with_relations", "target": "crud_user_list_post_ids_for_user", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L222", "weight": 1.0}, {"source": "crud_user_create_user", "target": "crud_user_hash_password", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L328", "weight": 1.0}, {"source": "crud_user_create_user", "target": "crud_user_replace_associations", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L344", "weight": 1.0}, {"source": "crud_user_update_user", "target": "crud_user_get_user", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L367", "weight": 1.0}, {"source": "crud_user_update_user", "target": "crud_user_replace_associations", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L397", "weight": 1.0}, {"source": "crud_user_soft_delete_user", "target": "crud_user_get_user", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L408", "weight": 1.0}, {"source": "crud_user_reset_password", "target": "crud_user_get_user", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L418", "weight": 1.0}, {"source": "crud_user_reset_password", "target": "crud_user_hash_password", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L421", "weight": 1.0}, {"source": "crud_user_change_password", "target": "crud_user_get_user", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L430", "weight": 1.0}, {"source": "crud_user_change_password", "target": "crud_user_hash_password", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L439", "weight": 1.0}, {"source": "crud_user_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_crud_user_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L1", "weight": 1.0}, {"source": "crud_user_rationale_135", "target": "crud_user_set_user_post_ids_only", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L135", "weight": 1.0}, {"source": "crud_user_rationale_182", "target": "crud_user_sync_post_user_bindings", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L182", "weight": 1.0}], "raw_calls": [{"caller_nid": "crud_user_hash_password", "callee": "decode", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L19"}, {"caller_nid": "crud_user_hash_password", "callee": "hashpw", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L19"}, {"caller_nid": "crud_user_hash_password", "callee": "encode", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L19"}, {"caller_nid": "crud_user_hash_password", "callee": "gensalt", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L19"}, {"caller_nid": "crud_user_usercrudcompat_get_by_user_no", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L25"}, {"caller_nid": "crud_user_usercrudcompat_get_by_user_no", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L29"}, {"caller_nid": "crud_user_usercrudcompat_get_by_user_no", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L29"}, {"caller_nid": "crud_user_usercrudcompat_get_by_user_no", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L29"}, {"caller_nid": "crud_user_usercrudcompat_get_by_user_no", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L30"}, {"caller_nid": "crud_user_row_to_dict", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L42"}, {"caller_nid": "crud_user_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L53"}, {"caller_nid": "crud_user_row_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L54"}, {"caller_nid": "crud_user_list_users", "callee": "scalar", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L89"}, {"caller_nid": "crud_user_list_users", "callee": "with_entities", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L89"}, {"caller_nid": "crud_user_list_users", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L89"}, {"caller_nid": "crud_user_list_users", "callee": "_filtered", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L89"}, {"caller_nid": "crud_user_list_users", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L89"}, {"caller_nid": "crud_user_list_users", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L90"}, {"caller_nid": "crud_user_list_users", "callee": "min", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L91"}, {"caller_nid": "crud_user_list_users", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L91"}, {"caller_nid": "crud_user_list_users", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L93"}, {"caller_nid": "crud_user_list_users", "callee": "limit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L93"}, {"caller_nid": "crud_user_list_users", "callee": "offset", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L93"}, {"caller_nid": "crud_user_list_users", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L93"}, {"caller_nid": "crud_user_list_users", "callee": "_filtered", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L93"}, {"caller_nid": "crud_user_list_users", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L94"}, {"caller_nid": "crud_user_list_users", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L101"}, {"caller_nid": "crud_user_list_users", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L104"}, {"caller_nid": "crud_user_list_users", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L104"}, {"caller_nid": "crud_user_list_users", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L104"}, {"caller_nid": "crud_user_list_users", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L104"}, {"caller_nid": "crud_user_list_users", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L107"}, {"caller_nid": "crud_user_list_users", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L107"}, {"caller_nid": "crud_user_get_user", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L112"}, {"caller_nid": "crud_user_get_user", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L112"}, {"caller_nid": "crud_user_get_user", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L112"}, {"caller_nid": "crud_user_get_user", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L113"}, {"caller_nid": "crud_user_list_post_ids_for_user", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L122"}, {"caller_nid": "crud_user_list_post_ids_for_user", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L122"}, {"caller_nid": "crud_user_list_post_ids_for_user", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L122"}, {"caller_nid": "crud_user_list_post_ids_for_user", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L123"}, {"caller_nid": "crud_user_set_user_post_ids_only", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L136"}, {"caller_nid": "crud_user_set_user_post_ids_only", "callee": "fromkeys", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L137"}, {"caller_nid": "crud_user_set_user_post_ids_only", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L138"}, {"caller_nid": "crud_user_set_user_post_ids_only", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L138"}, {"caller_nid": "crud_user_set_user_post_ids_only", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L138"}, {"caller_nid": "crud_user_set_user_post_ids_only", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L139"}, {"caller_nid": "crud_user_set_user_post_ids_only", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L142"}, {"caller_nid": "crud_user_set_user_post_ids_only", "callee": "SysUserPost", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L143"}, {"caller_nid": "crud_user_set_user_post_ids_only", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L144"}, {"caller_nid": "crud_user_list_user_ids_bound_to_post", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L162"}, {"caller_nid": "crud_user_list_user_ids_bound_to_post", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L162"}, {"caller_nid": "crud_user_list_user_ids_bound_to_post", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L162"}, {"caller_nid": "crud_user_list_user_ids_bound_to_post", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L164"}, {"caller_nid": "crud_user_sync_post_user_bindings", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L183"}, {"caller_nid": "crud_user_sync_post_user_bindings", "callee": "fromkeys", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L183"}, {"caller_nid": "crud_user_sync_post_user_bindings", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L187"}, {"caller_nid": "crud_user_sync_post_user_bindings", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L189"}, {"caller_nid": "crud_user_sync_post_user_bindings", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L190"}, {"caller_nid": "crud_user_sync_post_user_bindings", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L200"}, {"caller_nid": "crud_user_get_user_with_relations", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L210"}, {"caller_nid": "crud_user_get_user_with_relations", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L210"}, {"caller_nid": "crud_user_get_user_with_relations", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L210"}, {"caller_nid": "crud_user_get_user_with_relations", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L218"}, {"caller_nid": "crud_user_get_user_with_relations", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L218"}, {"caller_nid": "crud_user_get_user_with_relations", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L218"}, {"caller_nid": "crud_user_get_user_with_relations", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L219"}, {"caller_nid": "crud_user_user_no_exists", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L229"}, {"caller_nid": "crud_user_user_no_exists", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L229"}, {"caller_nid": "crud_user_user_no_exists", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L230"}, {"caller_nid": "crud_user_user_no_exists", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L230"}, {"caller_nid": "crud_user_user_no_exists", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L233"}, {"caller_nid": "crud_user_user_no_exists", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L234"}, {"caller_nid": "crud_user_replace_associations", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L245"}, {"caller_nid": "crud_user_replace_associations", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L246"}, {"caller_nid": "crud_user_replace_associations", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L246"}, {"caller_nid": "crud_user_replace_associations", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L246"}, {"caller_nid": "crud_user_replace_associations", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L247"}, {"caller_nid": "crud_user_replace_associations", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L249"}, {"caller_nid": "crud_user_replace_associations", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L249"}, {"caller_nid": "crud_user_replace_associations", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L249"}, {"caller_nid": "crud_user_replace_associations", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L250"}, {"caller_nid": "crud_user_replace_associations", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L255"}, {"caller_nid": "crud_user_replace_associations", "callee": "SysUserRole", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L255"}, {"caller_nid": "crud_user_replace_associations", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L256"}, {"caller_nid": "crud_user_replace_associations", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L272"}, {"caller_nid": "crud_user_replace_associations", "callee": "SysUserPost", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L272"}, {"caller_nid": "crud_user_replace_associations", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L273"}, {"caller_nid": "crud_user_create_user", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L308"}, {"caller_nid": "crud_user_create_user", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L310"}, {"caller_nid": "crud_user_create_user", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L311"}, {"caller_nid": "crud_user_create_user", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L313"}, {"caller_nid": "crud_user_create_user", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L314"}, {"caller_nid": "crud_user_create_user", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L316"}, {"caller_nid": "crud_user_create_user", "callee": "SysUser", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L318"}, {"caller_nid": "crud_user_create_user", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L319"}, {"caller_nid": "crud_user_create_user", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L321"}, {"caller_nid": "crud_user_create_user", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L324"}, {"caller_nid": "crud_user_create_user", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L325"}, {"caller_nid": "crud_user_create_user", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L332"}, {"caller_nid": "crud_user_create_user", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L335"}, {"caller_nid": "crud_user_create_user", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L337"}, {"caller_nid": "crud_user_create_user", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L340"}, {"caller_nid": "crud_user_create_user", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L341"}, {"caller_nid": "crud_user_create_user", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L342"}, {"caller_nid": "crud_user_create_user", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L345"}, {"caller_nid": "crud_user_update_user", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L369"}, {"caller_nid": "crud_user_update_user", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L372"}, {"caller_nid": "crud_user_update_user", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L376"}, {"caller_nid": "crud_user_update_user", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L378"}, {"caller_nid": "crud_user_update_user", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L380"}, {"caller_nid": "crud_user_update_user", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L390"}, {"caller_nid": "crud_user_update_user", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L393"}, {"caller_nid": "crud_user_update_user", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L394"}, {"caller_nid": "crud_user_update_user", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L402"}, {"caller_nid": "crud_user_update_user", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L403"}, {"caller_nid": "crud_user_soft_delete_user", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L410"}, {"caller_nid": "crud_user_soft_delete_user", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L412"}, {"caller_nid": "crud_user_soft_delete_user", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L413"}, {"caller_nid": "crud_user_soft_delete_user", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L414"}, {"caller_nid": "crud_user_reset_password", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L420"}, {"caller_nid": "crud_user_reset_password", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L422"}, {"caller_nid": "crud_user_reset_password", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L423"}, {"caller_nid": "crud_user_reset_password", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L424"}, {"caller_nid": "crud_user_change_password", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L432"}, {"caller_nid": "crud_user_change_password", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L433"}, {"caller_nid": "crud_user_change_password", "callee": "verify_password", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L434"}, {"caller_nid": "crud_user_change_password", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L435"}, {"caller_nid": "crud_user_change_password", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L436"}, {"caller_nid": "crud_user_change_password", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L437"}, {"caller_nid": "crud_user_change_password", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L438"}, {"caller_nid": "crud_user_change_password", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L441"}, {"caller_nid": "crud_user_change_password", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L442"}, {"caller_nid": "crud_user_change_password", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L443"}, {"caller_nid": "crud_user_total_pages", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L449"}, {"caller_nid": "crud_user_total_pages", "callee": "ceil", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L449"}, {"caller_nid": "crud_user_total_pages", "callee": "float", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/user.py", "source_location": "L449"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/53d21d863787e052c449ced5a0c5e92414d73b4ae21f7450f522fb369309dddb.json b/backend/app/graphify-out/cache/ast/53d21d863787e052c449ced5a0c5e92414d73b4ae21f7450f522fb369309dddb.json new file mode 100644 index 00000000..4d962696 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/53d21d863787e052c449ced5a0c5e92414d73b4ae21f7450f522fb369309dddb.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "label": "oa_engine.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1"}, {"id": "services_oa_engine_oaengineerror", "label": "OaEngineError", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "services_oa_engine_loads", "label": "_loads()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21"}, {"id": "services_oa_engine_dumps", "label": "_dumps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32"}, {"id": "services_oa_engine_node_type", "label": "_node_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36"}, {"id": "services_oa_engine_flow_root", "label": "_flow_root()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40"}, {"id": "services_oa_engine_find_node", "label": "_find_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48"}, {"id": "services_oa_engine_flow_node_key_order", "label": "_flow_node_key_order()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66"}, {"id": "services_oa_engine_next_task_order_num", "label": "_next_task_order_num()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L91"}, {"id": "services_oa_engine_sort_tasks_for_detail", "label": "_sort_tasks_for_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L102"}, {"id": "services_oa_engine_advanced", "label": "_advanced()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L121"}, {"id": "services_oa_engine_check_initiator_scope", "label": "_check_initiator_scope()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L130"}, {"id": "services_oa_engine_instance_to_dict", "label": "_instance_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L139"}, {"id": "services_oa_engine_task_to_dict", "label": "_task_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L155"}, {"id": "services_oa_engine_user_name_map", "label": "_user_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L173"}, {"id": "services_oa_engine_list_templates", "label": "list_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L181"}, {"id": "services_oa_engine_get_template_detail", "label": "get_template_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L211"}, {"id": "services_oa_engine_role_name_map", "label": "_role_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L244"}, {"id": "services_oa_engine_assignee_meta", "label": "_assignee_meta()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L272"}, {"id": "services_oa_engine_preview_people", "label": "_preview_people()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L287"}, {"id": "services_oa_engine_walk_preview_nodes", "label": "_walk_preview_nodes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L295"}, {"id": "services_oa_engine_preview_start_flow", "label": "preview_start_flow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L421"}, {"id": "services_oa_engine_create_tasks_for_node", "label": "_create_tasks_for_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L471"}, {"id": "services_oa_engine_match_condition_group", "label": "_match_condition_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L539"}, {"id": "services_oa_engine_advance_from", "label": "advance_from()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L580"}, {"id": "services_oa_engine_start_instance", "label": "start_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L650"}, {"id": "services_oa_engine_get_instance", "label": "_get_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L741"}, {"id": "services_oa_engine_get_instance_detail", "label": "get_instance_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L752"}, {"id": "services_oa_engine_list_tasks", "label": "list_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L795"}, {"id": "services_oa_engine_complete_task", "label": "complete_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L845"}, {"id": "services_oa_engine_add_sign", "label": "add_sign()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L966"}, {"id": "services_oa_engine_withdraw_instance", "label": "withdraw_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1081"}, {"id": "services_oa_engine_rationale_67", "label": "\u6309\u6d41\u7a0b\u6811\u5148\u5e8f\u904d\u5386\u4e3a node.id \u5206\u914d\u7a33\u5b9a\u5e8f\u53f7\uff08\u7528\u4e8e\u8be6\u60c5\u65f6\u95f4\u8f74\u6392\u5e8f\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L67"}, {"id": "services_oa_engine_rationale_92", "label": "\u540c\u4e00\u5b9e\u4f8b\u5185\u4efb\u52a1\u5c55\u793a\u5e8f\u53f7\u53d6 max+1\uff08\u65e0\u4efb\u52a1\u4ece 1 \u8d77\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L92"}, {"id": "services_oa_engine_rationale_105", "label": "\u8be6\u60c5\u65f6\u95f4\u8f74\uff1a\u6309\u6d41\u7a0b\u6811\u8282\u70b9\u987a\u5e8f\uff0c\u518d order_num / create_time\uff08\u517c\u5bb9\u65e7\u6570\u636e\u540c\u79d2\u521b\u5efa\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L105"}, {"id": "services_oa_engine_rationale_430", "label": "\u53d1\u8d77\u524d\u9884\u89c8\u5ba1\u6279\u94fe\uff08\u89e3\u6790\u5177\u4f53\u4eba\u5458\uff1b\u6761\u4ef6\u5206\u652f\u5c55\u5f00\u5c55\u793a\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L430"}, {"id": "services_oa_engine_rationale_589", "label": "\u4ece\u67d0\u8282\u70b9\u7684\u4e0b\u4e00\u8df3\u5f00\u59cb\u63a8\u8fdb\uff1bfrom_node \u4e3a None \u8868\u793a\u4ece start \u8fdb\u5165\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L589"}, {"id": "services_oa_engine_rationale_975", "label": "\u5f53\u524d\u5f85\u529e\u5904\u7406\u4eba\u52a0\u7b7e\uff1a\u4e3a\u540c\u8282\u70b9\u65b0\u589e\u5f85\u529e\u5ba1\u6279\u4eba\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L975"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_assignee", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_formula", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_oaengineerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "services_oa_engine_oaengineerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_loads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_dumps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_node_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_root", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_find_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_node_key_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_next_task_order_num", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L91", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L102", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advanced", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L121", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_check_initiator_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L130", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_instance_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L139", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L155", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_user_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L173", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L181", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_template_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L211", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_role_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L244", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_assignee_meta", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L272", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_preview_people", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L287", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_walk_preview_nodes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L295", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_preview_start_flow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L421", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_create_tasks_for_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L471", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_match_condition_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L539", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advance_from", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L580", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_start_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L650", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L741", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L752", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L795", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_complete_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L845", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_add_sign", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L966", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_withdraw_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1081", "weight": 1.0}, {"source": "services_oa_engine_flow_root", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L42", "weight": 1.0}, {"source": "services_oa_engine_sort_tasks_for_detail", "target": "services_oa_engine_flow_node_key_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L106", "weight": 1.0}, {"source": "services_oa_engine_advanced", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L122", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L134", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L136", "weight": 1.0}, {"source": "services_oa_engine_instance_to_dict", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L148", "weight": 1.0}, {"source": "services_oa_engine_list_templates", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L194", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L216", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L217", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L229", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L231", "weight": 1.0}, {"source": "services_oa_engine_assignee_meta", "target": "services_oa_engine_role_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L276", "weight": 1.0}, {"source": "services_oa_engine_preview_people", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L288", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L308", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_preview_people", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L310", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_assignee_meta", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L381", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L433", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L434", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L452", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_walk_preview_nodes", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L464", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L492", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L504", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L509", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L590", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L590", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L606", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L611", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_create_tasks_for_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L625", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L640", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L664", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L665", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L670", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L692", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L728", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L738", "weight": 1.0}, {"source": "services_oa_engine_get_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L748", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L753", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L768", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L768", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L771", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L777", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L782", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L785", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L790", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L837", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L839", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L842", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L856", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L870", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L882", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L919", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L957", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L957", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L958", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L961", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L982", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L988", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L999", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1027", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1078", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1084", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1086", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1094", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1113", "weight": 1.0}, {"source": "services_oa_engine_rationale_67", "target": "services_oa_engine_flow_node_key_order", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L67", "weight": 1.0}, {"source": "services_oa_engine_rationale_92", "target": "services_oa_engine_next_task_order_num", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L92", "weight": 1.0}, {"source": "services_oa_engine_rationale_105", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L105", "weight": 1.0}, {"source": "services_oa_engine_rationale_430", "target": "services_oa_engine_preview_start_flow", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L430", "weight": 1.0}, {"source": "services_oa_engine_rationale_589", "target": "services_oa_engine_advance_from", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L589", "weight": 1.0}, {"source": "services_oa_engine_rationale_975", "target": "services_oa_engine_add_sign", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L975", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_engine_loads", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L24"}, {"caller_nid": "services_oa_engine_loads", "callee": "loads", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L27"}, {"caller_nid": "services_oa_engine_dumps", "callee": "dumps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L33"}, {"caller_nid": "services_oa_engine_node_type", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L51"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L53"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L54"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L58"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_flow_node_key_order", "callee": "walk", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L87"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L94"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L94"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L94"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L98"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L99"}, {"caller_nid": "services_oa_engine_sort_tasks_for_detail", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L106"}, {"caller_nid": "services_oa_engine_sort_tasks_for_detail", "callee": "sorted", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L118"}, {"caller_nid": "services_oa_engine_advanced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L123"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L124"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L125"}, {"caller_nid": "services_oa_engine_advanced", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L126"}, {"caller_nid": "services_oa_engine_check_initiator_scope", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L131"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L150"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L151"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L168"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L169"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L174"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L174"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L177"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L177"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L177"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L177"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L183"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L183"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L183"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L183"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L185"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L185"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L190"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L197"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L214"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L218"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L246"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L246"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L246"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L246"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L247"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L247"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L247"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L247"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L247"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L250"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L250"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L250"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L251"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "extend", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L254"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L257"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L257"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L257"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L260"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L268"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L273"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L273"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L273"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L274"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L279"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L279"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L280"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L280"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L283"}, {"caller_nid": "services_oa_engine_preview_people", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L291"}, {"caller_nid": "services_oa_engine_preview_people", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L291"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L307"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L311"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L313"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L315"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L323"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L327"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L329"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L331"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L342"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L344"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L346"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L348"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L348"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L350"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L358"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L359"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L370"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L374"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L375"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L375"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L375"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L376"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L376"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L376"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L386"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L386"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L386"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L391"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L402"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L403"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L405"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L407"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L415"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L418"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L431"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L435"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L440"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L440"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L440"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L448"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L453"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L453"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L455"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L482"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L491"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L494"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L504"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L506"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L506"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L506"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L507"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L512"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L513"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L515"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L516"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L534"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L535"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L542"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L544"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L545"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L547"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L551"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L553"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L557"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L559"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L560"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L561"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L564"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L565"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L567"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L568"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "eval_formula", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L573"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L573"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L606"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L608"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L618"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L619"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L622"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L634"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L634"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L637"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L643"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L662"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L666"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L671"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "apply_formulas_and_linkages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L673"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L678"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L678"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L678"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L682"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L684"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaInstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L685"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L686"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L689"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L704"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L707"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L710"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaRelation", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L711"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L712"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L736"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L737"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L743"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L743"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L743"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L754"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L756"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L756"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L756"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L761"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L761"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L761"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L773"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L773"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L773"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L783"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L785"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L790"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L791"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L791"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L802"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L804"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L804"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L812"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L812"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L817"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L820"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L820"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L828"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L828"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L828"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L828"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L834"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L841"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L841"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L841"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L854"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L859"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L859"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L859"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L875"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L875"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L875"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L883"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L883"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L886"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L887"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L891"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "flush", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L894"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L899"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L899"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L899"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L913"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L917"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L918"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L922"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L924"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L924"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L924"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L936"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L942"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L942"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L942"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L955"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L962"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L977"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L977"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L977"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L993"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L993"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L993"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1000"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1004"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1006"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1009"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1010"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1016"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1016"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1016"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1025"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1033"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1033"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1033"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1044"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1045"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1046"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1058"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1073"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1076"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1077"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1090"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1090"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1090"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1094"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1095"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1098"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1102"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1104"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1104"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1104"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1111"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1112"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/658041b1206e5bbc476638928729cec1262929622e14098e7f5f4e5167d94711.json b/backend/app/graphify-out/cache/ast/658041b1206e5bbc476638928729cec1262929622e14098e7f5f4e5167d94711.json new file mode 100644 index 00000000..206e94c0 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/658041b1206e5bbc476638928729cec1262929622e14098e7f5f4e5167d94711.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "label": "oa_approval.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L1"}, {"id": "api_oa_approval_get_tenant_no", "label": "_get_tenant_no()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L17"}, {"id": "api_oa_approval_oarolecreatebody", "label": "OaRoleCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L34"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "api_oa_approval_oaroleupdatebody", "label": "OaRoleUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L43"}, {"id": "api_oa_approval_oaroleusersbody", "label": "OaRoleUsersBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L51"}, {"id": "api_oa_approval_list_oa_roles", "label": "list_oa_roles()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L57"}, {"id": "api_oa_approval_ensure_oa_role_presets", "label": "ensure_oa_role_presets()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L69"}, {"id": "api_oa_approval_create_oa_role", "label": "create_oa_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L82"}, {"id": "api_oa_approval_update_oa_role", "label": "update_oa_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L105"}, {"id": "api_oa_approval_delete_oa_role", "label": "delete_oa_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L130"}, {"id": "api_oa_approval_list_oa_role_users", "label": "list_oa_role_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L144"}, {"id": "api_oa_approval_replace_oa_role_users", "label": "replace_oa_role_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L156"}, {"id": "api_oa_approval_oagroupcreatebody", "label": "OaGroupCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L184"}, {"id": "api_oa_approval_oagroupupdatebody", "label": "OaGroupUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L191"}, {"id": "api_oa_approval_list_oa_groups", "label": "list_oa_groups()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L199"}, {"id": "api_oa_approval_create_oa_group", "label": "create_oa_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L208"}, {"id": "api_oa_approval_update_oa_group", "label": "update_oa_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L229"}, {"id": "api_oa_approval_delete_oa_group", "label": "delete_oa_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L253"}, {"id": "api_oa_approval_oaappcreatebody", "label": "OaAppCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L271"}, {"id": "api_oa_approval_oaappupdatebody", "label": "OaAppUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L286"}, {"id": "api_oa_approval_oadraftsavebody", "label": "OaDraftSaveBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L301"}, {"id": "api_oa_approval_list_oa_apps", "label": "list_oa_apps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L310"}, {"id": "api_oa_approval_create_oa_app", "label": "create_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L325"}, {"id": "api_oa_approval_update_oa_app", "label": "update_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L361"}, {"id": "api_oa_approval_delete_oa_app", "label": "delete_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L381"}, {"id": "api_oa_approval_get_oa_app_draft", "label": "get_oa_app_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L395"}, {"id": "api_oa_approval_save_oa_app_draft", "label": "save_oa_app_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L411"}, {"id": "api_oa_approval_publish_oa_app", "label": "publish_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L435"}, {"id": "api_oa_approval_oastartinstancebody", "label": "OaStartInstanceBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L456"}, {"id": "api_oa_approval_oataskactionbody", "label": "OaTaskActionBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L467"}, {"id": "api_oa_approval_oaaddsignbody", "label": "OaAddSignBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L472"}, {"id": "api_oa_approval_oaresubmitbody", "label": "OaResubmitBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L478"}, {"id": "api_oa_approval_list_oa_templates", "label": "list_oa_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L485"}, {"id": "api_oa_approval_get_oa_template", "label": "get_oa_template()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L497"}, {"id": "api_oa_approval_preview_oa_template_flow", "label": "preview_oa_template_flow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L518"}, {"id": "api_oa_approval_start_oa_instance", "label": "start_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L552"}, {"id": "api_oa_approval_get_oa_instance", "label": "get_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L579"}, {"id": "api_oa_approval_list_oa_tasks", "label": "list_oa_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L594"}, {"id": "api_oa_approval_approve_oa_task", "label": "approve_oa_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L612"}, {"id": "api_oa_approval_reject_oa_task", "label": "reject_oa_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L636"}, {"id": "api_oa_approval_return_oa_task", "label": "return_oa_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L660"}, {"id": "api_oa_approval_resubmit_oa_instance", "label": "resubmit_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L683"}, {"id": "api_oa_approval_add_sign_oa_task", "label": "add_sign_oa_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L707"}, {"id": "api_oa_approval_withdraw_oa_instance", "label": "withdraw_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L731"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "fastapi", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "pydantic", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_core_database", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_core_menu_guard", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_core_response", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_tenant_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oarolecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L34", "weight": 1.0}, {"source": "api_oa_approval_oarolecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L34", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaroleupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L43", "weight": 1.0}, {"source": "api_oa_approval_oaroleupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L43", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaroleusersbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L51", "weight": 1.0}, {"source": "api_oa_approval_oaroleusersbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L51", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_roles", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L57", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_ensure_oa_role_presets", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L69", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_create_oa_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L82", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_update_oa_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L105", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_delete_oa_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L130", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_role_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L144", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_replace_oa_role_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L156", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oagroupcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L184", "weight": 1.0}, {"source": "api_oa_approval_oagroupcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L184", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oagroupupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L191", "weight": 1.0}, {"source": "api_oa_approval_oagroupupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L191", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_groups", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L199", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_create_oa_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L208", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_update_oa_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L229", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_delete_oa_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L253", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaappcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L271", "weight": 1.0}, {"source": "api_oa_approval_oaappcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L271", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaappupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L286", "weight": 1.0}, {"source": "api_oa_approval_oaappupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L286", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oadraftsavebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L301", "weight": 1.0}, {"source": "api_oa_approval_oadraftsavebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L301", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_apps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L310", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_create_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L325", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_update_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L361", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_delete_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L381", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_oa_app_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L395", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_save_oa_app_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L411", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_publish_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L435", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oastartinstancebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L456", "weight": 1.0}, {"source": "api_oa_approval_oastartinstancebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L456", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oataskactionbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L467", "weight": 1.0}, {"source": "api_oa_approval_oataskactionbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L467", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaaddsignbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L472", "weight": 1.0}, {"source": "api_oa_approval_oaaddsignbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L472", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaresubmitbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L478", "weight": 1.0}, {"source": "api_oa_approval_oaresubmitbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L478", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L485", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_oa_template", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L497", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_preview_oa_template_flow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L518", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_start_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L552", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L579", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L594", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_approve_oa_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L612", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_reject_oa_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L636", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_return_oa_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L660", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_resubmit_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L683", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_add_sign_oa_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L707", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_withdraw_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L731", "weight": 1.0}, {"source": "api_oa_approval_list_oa_roles", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L63", "weight": 1.0}, {"source": "api_oa_approval_ensure_oa_role_presets", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L73", "weight": 1.0}, {"source": "api_oa_approval_create_oa_role", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L88", "weight": 1.0}, {"source": "api_oa_approval_update_oa_role", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L112", "weight": 1.0}, {"source": "api_oa_approval_delete_oa_role", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L136", "weight": 1.0}, {"source": "api_oa_approval_list_oa_role_users", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L149", "weight": 1.0}, {"source": "api_oa_approval_replace_oa_role_users", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L163", "weight": 1.0}, {"source": "api_oa_approval_list_oa_groups", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L203", "weight": 1.0}, {"source": "api_oa_approval_create_oa_group", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L214", "weight": 1.0}, {"source": "api_oa_approval_update_oa_group", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L236", "weight": 1.0}, {"source": "api_oa_approval_delete_oa_group", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L259", "weight": 1.0}, {"source": "api_oa_approval_list_oa_apps", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L317", "weight": 1.0}, {"source": "api_oa_approval_create_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L331", "weight": 1.0}, {"source": "api_oa_approval_update_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L368", "weight": 1.0}, {"source": "api_oa_approval_delete_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L387", "weight": 1.0}, {"source": "api_oa_approval_get_oa_app_draft", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L401", "weight": 1.0}, {"source": "api_oa_approval_save_oa_app_draft", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L418", "weight": 1.0}, {"source": "api_oa_approval_publish_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L442", "weight": 1.0}, {"source": "api_oa_approval_list_oa_templates", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L491", "weight": 1.0}, {"source": "api_oa_approval_get_oa_template", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L505", "weight": 1.0}, {"source": "api_oa_approval_preview_oa_template_flow", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L528", "weight": 1.0}, {"source": "api_oa_approval_start_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L560", "weight": 1.0}, {"source": "api_oa_approval_get_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L587", "weight": 1.0}, {"source": "api_oa_approval_list_oa_tasks", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L602", "weight": 1.0}, {"source": "api_oa_approval_approve_oa_task", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L621", "weight": 1.0}, {"source": "api_oa_approval_reject_oa_task", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L645", "weight": 1.0}, {"source": "api_oa_approval_return_oa_task", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L669", "weight": 1.0}, {"source": "api_oa_approval_resubmit_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L692", "weight": 1.0}, {"source": "api_oa_approval_add_sign_oa_task", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L716", "weight": 1.0}, {"source": "api_oa_approval_withdraw_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L739", "weight": 1.0}], "raw_calls": [{"caller_nid": "api_oa_approval_get_tenant_no", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L18"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L18"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L21"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L23"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L23"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L23"}, {"caller_nid": "api_oa_approval_list_oa_roles", "callee": "list_roles", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L64"}, {"caller_nid": "api_oa_approval_list_oa_roles", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L65"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "ensure_presets", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L74"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L74"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L75"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L76"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "create_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L89"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L97"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L99"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "_role_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L99"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L101"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L101"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L113"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "update_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L114"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L118"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L119"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L120"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L121"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L122"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L124"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "_role_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L124"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L126"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L126"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "delete_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L137"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L137"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L138"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L140"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L140"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "get_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L150"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L151"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L152"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "list_role_users", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L152"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "replace_role_users", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L164"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L169"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L171"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "list_role_users", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L172"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L176"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L176"}, {"caller_nid": "api_oa_approval_list_oa_groups", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L204"}, {"caller_nid": "api_oa_approval_list_oa_groups", "callee": "list_groups", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L204"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "create_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L215"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L221"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L223"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "_group_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L223"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L225"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L225"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L237"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "update_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L238"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L242"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L243"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L244"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L245"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L247"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "_group_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L247"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L249"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L249"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "delete_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L260"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L260"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L261"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L263"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L263"}, {"caller_nid": "api_oa_approval_list_oa_apps", "callee": "list_apps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L318"}, {"caller_nid": "api_oa_approval_list_oa_apps", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L321"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "create_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L332"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L346"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "get_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L350"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L352"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "_app_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L353"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L357"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L357"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L369"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "update_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L370"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L370"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "get_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L373"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L375"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "_app_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L375"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L377"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L377"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "delete_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L388"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L388"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L389"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L391"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L391"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "get_or_create_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L402"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L403"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L405"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L407"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L407"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "save_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L419"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L427"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L429"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L431"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L431"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "publish_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L443"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L444"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L447"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L448"}, {"caller_nid": "api_oa_approval_list_oa_templates", "callee": "list_templates", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L492"}, {"caller_nid": "api_oa_approval_list_oa_templates", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L492"}, {"caller_nid": "api_oa_approval_list_oa_templates", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L493"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "get_template_detail", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L506"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L510"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L512"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L514"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L514"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L529"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L532"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L532"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L532"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L537"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "split", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L537"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L537"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "preview_start_flow", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L538"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L546"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L548"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L548"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "start_instance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L561"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L565"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L573"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L575"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L575"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L588"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "get_instance_detail", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L588"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L590"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L590"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "list_tasks", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L603"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L604"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L606"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L608"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L608"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "complete_task", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L622"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L626"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L630"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L632"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L632"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "complete_task", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L646"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L650"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L654"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L656"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L656"}, {"caller_nid": "api_oa_approval_return_oa_task", "callee": "return_task", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L670"}, {"caller_nid": "api_oa_approval_return_oa_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L674"}, {"caller_nid": "api_oa_approval_return_oa_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L677"}, {"caller_nid": "api_oa_approval_return_oa_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L679"}, {"caller_nid": "api_oa_approval_return_oa_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L679"}, {"caller_nid": "api_oa_approval_resubmit_oa_instance", "callee": "resubmit_instance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L693"}, {"caller_nid": "api_oa_approval_resubmit_oa_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L697"}, {"caller_nid": "api_oa_approval_resubmit_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L701"}, {"caller_nid": "api_oa_approval_resubmit_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L703"}, {"caller_nid": "api_oa_approval_resubmit_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L703"}, {"caller_nid": "api_oa_approval_add_sign_oa_task", "callee": "add_sign", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L717"}, {"caller_nid": "api_oa_approval_add_sign_oa_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L721"}, {"caller_nid": "api_oa_approval_add_sign_oa_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L725"}, {"caller_nid": "api_oa_approval_add_sign_oa_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L727"}, {"caller_nid": "api_oa_approval_add_sign_oa_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L727"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "withdraw_instance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L740"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L741"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L743"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L745"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L745"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/69e06061a9b956800fac7d1d6f7bfee0c0e845ea186523045870831354e07228.json b/backend/app/graphify-out/cache/ast/69e06061a9b956800fac7d1d6f7bfee0c0e845ea186523045870831354e07228.json new file mode 100644 index 00000000..3278310d --- /dev/null +++ b/backend/app/graphify-out/cache/ast/69e06061a9b956800fac7d1d6f7bfee0c0e845ea186523045870831354e07228.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "label": "oa_publish.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L1"}, {"id": "services_oa_publish_extract_rules", "label": "_extract_rules()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L72"}, {"id": "services_oa_publish_walk_form_rules", "label": "_walk_form_rules()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L87"}, {"id": "services_oa_publish_count_fillable_fields", "label": "count_fillable_fields()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L95"}, {"id": "services_oa_publish_node_type", "label": "_node_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L109"}, {"id": "services_oa_publish_validate_flow_tree", "label": "validate_flow_tree()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L113"}, {"id": "services_oa_publish_validate_oa_roles_referenced", "label": "validate_oa_roles_referenced()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L200"}, {"id": "services_oa_publish_validate_draft_for_publish", "label": "validate_draft_for_publish()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L269"}, {"id": "services_oa_publish_publish_app", "label": "publish_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L291"}, {"id": "services_oa_publish_rationale_298", "label": "\u6821\u9a8c\u5e76\u53d1\u5e03\u5f53\u524d\u8349\u7a3f\u3002 \u6210\u529f\u8fd4\u56de (draft_dict_like_published_info, [])\uff1b \u5931\u8d25\u8fd4\u56de ({}, errors)\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L298"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_extract_rules", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L72", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_walk_form_rules", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L87", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_count_fillable_fields", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L95", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_node_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L109", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_validate_flow_tree", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L113", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_validate_oa_roles_referenced", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L200", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_validate_draft_for_publish", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L269", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_publish_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L291", "weight": 1.0}, {"source": "services_oa_publish_count_fillable_fields", "target": "services_oa_publish_walk_form_rules", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L97", "weight": 1.0}, {"source": "services_oa_publish_count_fillable_fields", "target": "services_oa_publish_extract_rules", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L97", "weight": 1.0}, {"source": "services_oa_publish_validate_flow_tree", "target": "services_oa_publish_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L123", "weight": 1.0}, {"source": "services_oa_publish_validate_draft_for_publish", "target": "services_oa_publish_count_fillable_fields", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L284", "weight": 1.0}, {"source": "services_oa_publish_validate_draft_for_publish", "target": "services_oa_publish_validate_flow_tree", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L286", "weight": 1.0}, {"source": "services_oa_publish_validate_draft_for_publish", "target": "services_oa_publish_validate_oa_roles_referenced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L287", "weight": 1.0}, {"source": "services_oa_publish_publish_app", "target": "services_oa_publish_validate_draft_for_publish", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L312", "weight": 1.0}, {"source": "services_oa_publish_rationale_298", "target": "services_oa_publish_publish_app", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L298", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_publish_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L75"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L76"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L77"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L78"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L78"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L78"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L79"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L80"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L82"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L82"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L89"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L90"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L90"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L90"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L91"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L92"}, {"caller_nid": "services_oa_publish_count_fillable_fields", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L100"}, {"caller_nid": "services_oa_publish_count_fillable_fields", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L100"}, {"caller_nid": "services_oa_publish_count_fillable_fields", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L103"}, {"caller_nid": "services_oa_publish_count_fillable_fields", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L103"}, {"caller_nid": "services_oa_publish_node_type", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L110"}, {"caller_nid": "services_oa_publish_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L110"}, {"caller_nid": "services_oa_publish_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L110"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L115"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L120"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L124"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "walk", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L194"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L194"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L196"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L203"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L204"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L227"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L227"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L227"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "collect", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L229"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L229"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L234"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L234"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L234"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L236"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L236"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L244"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L246"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L248"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L251"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L251"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L251"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L253"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L253"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L259"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L261"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L263"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L265"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L279"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L280"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L280"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L285"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "extend", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L286"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "extend", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L287"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L303"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L306"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "get_or_create_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L309"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L310"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L311"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L317"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "_find_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L322"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L330"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L332"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L332"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L332"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L345"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L351"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L354"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L355"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L356"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/70c0726ecc7952b506e4b8951ab2cdff56bef53553dbde1c16c0bdb85235bcb3.json b/backend/app/graphify-out/cache/ast/70c0726ecc7952b506e4b8951ab2cdff56bef53553dbde1c16c0bdb85235bcb3.json new file mode 100644 index 00000000..1d1dc331 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/70c0726ecc7952b506e4b8951ab2cdff56bef53553dbde1c16c0bdb85235bcb3.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "label": "oa_engine.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1"}, {"id": "services_oa_engine_oaengineerror", "label": "OaEngineError", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "services_oa_engine_loads", "label": "_loads()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21"}, {"id": "services_oa_engine_dumps", "label": "_dumps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32"}, {"id": "services_oa_engine_node_type", "label": "_node_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36"}, {"id": "services_oa_engine_flow_root", "label": "_flow_root()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40"}, {"id": "services_oa_engine_find_node", "label": "_find_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48"}, {"id": "services_oa_engine_advanced", "label": "_advanced()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66"}, {"id": "services_oa_engine_check_initiator_scope", "label": "_check_initiator_scope()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75"}, {"id": "services_oa_engine_instance_to_dict", "label": "_instance_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L84"}, {"id": "services_oa_engine_task_to_dict", "label": "_task_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100"}, {"id": "services_oa_engine_list_templates", "label": "list_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L117"}, {"id": "services_oa_engine_create_tasks_for_node", "label": "_create_tasks_for_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L147"}, {"id": "services_oa_engine_match_condition_group", "label": "_match_condition_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L212"}, {"id": "services_oa_engine_advance_from", "label": "advance_from()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L253"}, {"id": "services_oa_engine_start_instance", "label": "start_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L319"}, {"id": "services_oa_engine_get_instance", "label": "_get_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L410"}, {"id": "services_oa_engine_get_instance_detail", "label": "get_instance_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L421"}, {"id": "services_oa_engine_list_tasks", "label": "list_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L441"}, {"id": "services_oa_engine_complete_task", "label": "complete_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L491"}, {"id": "services_oa_engine_withdraw_instance", "label": "withdraw_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L606"}, {"id": "services_oa_engine_rationale_262", "label": "\u4ece\u67d0\u8282\u70b9\u7684\u4e0b\u4e00\u8df3\u5f00\u59cb\u63a8\u8fdb\uff1bfrom_node \u4e3a None \u8868\u793a\u4ece start \u8fdb\u5165\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L262"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_assignee", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_formula", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_oaengineerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "services_oa_engine_oaengineerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_loads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_dumps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_node_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_root", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_find_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advanced", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_check_initiator_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_instance_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L84", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L117", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_create_tasks_for_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L147", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_match_condition_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L212", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advance_from", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L253", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_start_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L319", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L410", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L421", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L441", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_complete_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L491", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_withdraw_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L606", "weight": 1.0}, {"source": "services_oa_engine_flow_root", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L42", "weight": 1.0}, {"source": "services_oa_engine_advanced", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L67", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L79", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L81", "weight": 1.0}, {"source": "services_oa_engine_instance_to_dict", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L93", "weight": 1.0}, {"source": "services_oa_engine_list_templates", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L130", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L156", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L167", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L179", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L263", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L263", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L279", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_create_tasks_for_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L296", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L309", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L333", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L334", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L339", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L361", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L397", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L407", "weight": 1.0}, {"source": "services_oa_engine_get_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L417", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L422", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L435", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L436", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L483", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L485", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L488", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L502", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L516", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L528", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L561", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L597", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L597", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L598", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L601", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L609", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L611", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L619", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L638", "weight": 1.0}, {"source": "services_oa_engine_rationale_262", "target": "services_oa_engine_advance_from", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L262", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_engine_loads", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L24"}, {"caller_nid": "services_oa_engine_loads", "callee": "loads", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L27"}, {"caller_nid": "services_oa_engine_dumps", "callee": "dumps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L33"}, {"caller_nid": "services_oa_engine_node_type", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L51"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L53"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L54"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L58"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_advanced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L69"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L70"}, {"caller_nid": "services_oa_engine_advanced", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L71"}, {"caller_nid": "services_oa_engine_check_initiator_scope", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L76"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L95"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L96"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L112"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L113"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L121"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L121"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L126"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L133"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L157"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L166"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L169"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L179"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L181"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L181"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L181"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L182"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L186"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L187"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L189"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L190"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L207"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L208"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L215"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L217"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L218"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L220"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L224"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L226"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L230"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L232"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L233"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L234"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L237"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L238"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L240"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L241"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "eval_formula", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L246"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L246"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L279"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L281"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L289"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L290"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L293"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L306"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L312"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L331"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L335"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L340"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "apply_formulas_and_linkages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L342"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L347"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L347"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L347"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L351"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L353"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaInstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L354"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L355"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L358"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L373"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L376"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L379"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaRelation", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L380"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L381"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L405"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L406"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L412"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L412"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L412"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L423"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L425"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L425"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L425"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L425"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L427"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L431"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L431"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L431"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L448"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L450"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L450"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L463"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L466"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L466"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L474"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L474"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L474"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L474"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L480"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L487"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L487"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L487"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L500"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L505"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L505"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L505"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L521"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L521"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L521"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L529"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L529"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L532"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L533"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L537"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L542"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L542"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L542"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L555"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L559"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L560"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L564"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L566"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L566"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L566"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L577"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L583"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L583"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L583"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L595"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L602"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L615"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L615"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L615"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L619"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L620"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L623"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L627"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L629"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L629"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L629"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L636"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L637"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/a074ddca26dfb7246db13b3167caecf1d99d12552e0d864163fe6330742d87b8.json b/backend/app/graphify-out/cache/ast/a074ddca26dfb7246db13b3167caecf1d99d12552e0d864163fe6330742d87b8.json new file mode 100644 index 00000000..98b97939 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/a074ddca26dfb7246db13b3167caecf1d99d12552e0d864163fe6330742d87b8.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "label": "oa_publish.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L1"}, {"id": "services_oa_publish_extract_rules", "label": "_extract_rules()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L76"}, {"id": "services_oa_publish_walk_form_rules", "label": "_walk_form_rules()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L91"}, {"id": "services_oa_publish_count_fillable_fields", "label": "count_fillable_fields()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L99"}, {"id": "services_oa_publish_node_type", "label": "_node_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L113"}, {"id": "services_oa_publish_validate_flow_tree", "label": "validate_flow_tree()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L117"}, {"id": "services_oa_publish_validate_oa_roles_referenced", "label": "validate_oa_roles_referenced()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L204"}, {"id": "services_oa_publish_validate_control_types", "label": "validate_control_types()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L273"}, {"id": "services_oa_publish_validate_draft_for_publish", "label": "validate_draft_for_publish()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L289"}, {"id": "services_oa_publish_publish_app", "label": "publish_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L312"}, {"id": "services_oa_publish_rationale_319", "label": "\u6821\u9a8c\u5e76\u53d1\u5e03\u5f53\u524d\u8349\u7a3f\u3002 \u6210\u529f\u8fd4\u56de (draft_dict_like_published_info, [])\uff1b \u5931\u8d25\u8fd4\u56de ({}, errors)\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L319"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_extract_rules", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L76", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_walk_form_rules", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L91", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_count_fillable_fields", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L99", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_node_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L113", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_validate_flow_tree", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L117", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_validate_oa_roles_referenced", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L204", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_validate_control_types", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L273", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_validate_draft_for_publish", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L289", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_publish_py", "target": "services_oa_publish_publish_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L312", "weight": 1.0}, {"source": "services_oa_publish_count_fillable_fields", "target": "services_oa_publish_walk_form_rules", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L101", "weight": 1.0}, {"source": "services_oa_publish_count_fillable_fields", "target": "services_oa_publish_extract_rules", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L101", "weight": 1.0}, {"source": "services_oa_publish_validate_flow_tree", "target": "services_oa_publish_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L127", "weight": 1.0}, {"source": "services_oa_publish_validate_control_types", "target": "services_oa_publish_walk_form_rules", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L275", "weight": 1.0}, {"source": "services_oa_publish_validate_control_types", "target": "services_oa_publish_extract_rules", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L275", "weight": 1.0}, {"source": "services_oa_publish_validate_draft_for_publish", "target": "services_oa_publish_count_fillable_fields", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L304", "weight": 1.0}, {"source": "services_oa_publish_validate_draft_for_publish", "target": "services_oa_publish_validate_control_types", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L306", "weight": 1.0}, {"source": "services_oa_publish_validate_draft_for_publish", "target": "services_oa_publish_validate_flow_tree", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L307", "weight": 1.0}, {"source": "services_oa_publish_validate_draft_for_publish", "target": "services_oa_publish_validate_oa_roles_referenced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L308", "weight": 1.0}, {"source": "services_oa_publish_publish_app", "target": "services_oa_publish_validate_draft_for_publish", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L333", "weight": 1.0}, {"source": "services_oa_publish_rationale_319", "target": "services_oa_publish_publish_app", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L319", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_publish_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L79"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L80"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L81"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L82"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L82"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L82"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L83"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L84"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L86"}, {"caller_nid": "services_oa_publish_extract_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L86"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L93"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L94"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L94"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L94"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L95"}, {"caller_nid": "services_oa_publish_walk_form_rules", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L96"}, {"caller_nid": "services_oa_publish_count_fillable_fields", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L104"}, {"caller_nid": "services_oa_publish_count_fillable_fields", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L104"}, {"caller_nid": "services_oa_publish_count_fillable_fields", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L107"}, {"caller_nid": "services_oa_publish_count_fillable_fields", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L107"}, {"caller_nid": "services_oa_publish_node_type", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L114"}, {"caller_nid": "services_oa_publish_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L114"}, {"caller_nid": "services_oa_publish_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L114"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L119"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L124"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L128"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "walk", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L198"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L198"}, {"caller_nid": "services_oa_publish_validate_flow_tree", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L200"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L207"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L208"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L231"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L231"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L231"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "collect", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L233"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L233"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L238"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L238"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L238"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L240"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L240"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L248"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L250"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L252"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L255"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L255"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L255"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L257"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L257"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L263"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L265"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L267"}, {"caller_nid": "services_oa_publish_validate_oa_roles_referenced", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L269"}, {"caller_nid": "services_oa_publish_validate_control_types", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L277"}, {"caller_nid": "services_oa_publish_validate_control_types", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L279"}, {"caller_nid": "services_oa_publish_validate_control_types", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L279"}, {"caller_nid": "services_oa_publish_validate_control_types", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L283"}, {"caller_nid": "services_oa_publish_validate_control_types", "callee": "sorted", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L284"}, {"caller_nid": "services_oa_publish_validate_control_types", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L285"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L299"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L300"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L300"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L305"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "extend", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L306"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "extend", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L307"}, {"caller_nid": "services_oa_publish_validate_draft_for_publish", "callee": "extend", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L308"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L324"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L327"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "get_or_create_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L330"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L331"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L332"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L338"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "_find_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L343"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L351"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L353"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L353"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L353"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L366"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L372"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L375"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L376"}, {"caller_nid": "services_oa_publish_publish_app", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_publish.py", "source_location": "L377"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/a43317facbf51977d20b26539fc068914cf3b3dbd5878e0e19768801cee39cc0.json b/backend/app/graphify-out/cache/ast/a43317facbf51977d20b26539fc068914cf3b3dbd5878e0e19768801cee39cc0.json new file mode 100644 index 00000000..97df81c7 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/a43317facbf51977d20b26539fc068914cf3b3dbd5878e0e19768801cee39cc0.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "label": "oa_engine.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1"}, {"id": "services_oa_engine_oaengineerror", "label": "OaEngineError", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "services_oa_engine_loads", "label": "_loads()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21"}, {"id": "services_oa_engine_dumps", "label": "_dumps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32"}, {"id": "services_oa_engine_node_type", "label": "_node_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36"}, {"id": "services_oa_engine_flow_root", "label": "_flow_root()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40"}, {"id": "services_oa_engine_find_node", "label": "_find_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48"}, {"id": "services_oa_engine_advanced", "label": "_advanced()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66"}, {"id": "services_oa_engine_check_initiator_scope", "label": "_check_initiator_scope()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75"}, {"id": "services_oa_engine_instance_to_dict", "label": "_instance_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L84"}, {"id": "services_oa_engine_task_to_dict", "label": "_task_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100"}, {"id": "services_oa_engine_user_name_map", "label": "_user_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L118"}, {"id": "services_oa_engine_list_templates", "label": "list_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L126"}, {"id": "services_oa_engine_get_template_detail", "label": "get_template_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L156"}, {"id": "services_oa_engine_create_tasks_for_node", "label": "_create_tasks_for_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L180"}, {"id": "services_oa_engine_match_condition_group", "label": "_match_condition_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L245"}, {"id": "services_oa_engine_advance_from", "label": "advance_from()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L286"}, {"id": "services_oa_engine_start_instance", "label": "start_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L352"}, {"id": "services_oa_engine_get_instance", "label": "_get_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L443"}, {"id": "services_oa_engine_get_instance_detail", "label": "get_instance_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454"}, {"id": "services_oa_engine_list_tasks", "label": "list_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L491"}, {"id": "services_oa_engine_complete_task", "label": "complete_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L541"}, {"id": "services_oa_engine_add_sign", "label": "add_sign()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L656"}, {"id": "services_oa_engine_withdraw_instance", "label": "withdraw_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L769"}, {"id": "services_oa_engine_rationale_295", "label": "\u4ece\u67d0\u8282\u70b9\u7684\u4e0b\u4e00\u8df3\u5f00\u59cb\u63a8\u8fdb\uff1bfrom_node \u4e3a None \u8868\u793a\u4ece start \u8fdb\u5165\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L295"}, {"id": "services_oa_engine_rationale_665", "label": "\u5f53\u524d\u5f85\u529e\u5904\u7406\u4eba\u52a0\u7b7e\uff1a\u4e3a\u540c\u8282\u70b9\u65b0\u589e\u5f85\u529e\u5ba1\u6279\u4eba\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L665"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_assignee", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_formula", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_oaengineerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "services_oa_engine_oaengineerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_loads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_dumps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_node_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_root", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_find_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advanced", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_check_initiator_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_instance_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L84", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_user_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L118", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L126", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_template_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L156", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_create_tasks_for_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L180", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_match_condition_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L245", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advance_from", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L286", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_start_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L352", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L443", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L491", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_complete_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L541", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_add_sign", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L656", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_withdraw_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L769", "weight": 1.0}, {"source": "services_oa_engine_flow_root", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L42", "weight": 1.0}, {"source": "services_oa_engine_advanced", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L67", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L79", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L81", "weight": 1.0}, {"source": "services_oa_engine_instance_to_dict", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L93", "weight": 1.0}, {"source": "services_oa_engine_list_templates", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L139", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L161", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L162", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L174", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L176", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L189", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L200", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L212", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L296", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L296", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L312", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_create_tasks_for_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L329", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L342", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L366", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L367", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L372", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L394", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L430", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L440", "weight": 1.0}, {"source": "services_oa_engine_get_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L450", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L455", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L473", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L478", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L485", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L486", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L533", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L535", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L538", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L552", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L566", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L578", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L611", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L647", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L647", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L648", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L651", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L672", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L678", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L689", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L766", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L772", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L774", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L782", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L801", "weight": 1.0}, {"source": "services_oa_engine_rationale_295", "target": "services_oa_engine_advance_from", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L295", "weight": 1.0}, {"source": "services_oa_engine_rationale_665", "target": "services_oa_engine_add_sign", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L665", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_engine_loads", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L24"}, {"caller_nid": "services_oa_engine_loads", "callee": "loads", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L27"}, {"caller_nid": "services_oa_engine_dumps", "callee": "dumps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L33"}, {"caller_nid": "services_oa_engine_node_type", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L51"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L53"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L54"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L58"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_advanced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L69"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L70"}, {"caller_nid": "services_oa_engine_advanced", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L71"}, {"caller_nid": "services_oa_engine_check_initiator_scope", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L76"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L95"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L96"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L113"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L114"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L122"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L122"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L122"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L122"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L130"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L130"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L135"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L142"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L159"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L163"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L190"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L199"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L202"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L212"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L214"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L214"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L214"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L215"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L219"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L220"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L222"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L223"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L240"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L241"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L248"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L250"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L251"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L253"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L257"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L259"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L263"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L265"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L266"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L267"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L270"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L271"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L273"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L274"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "eval_formula", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L279"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L279"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L312"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L314"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L322"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L323"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L326"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L339"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L345"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L364"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L368"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L373"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "apply_formulas_and_linkages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L375"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L380"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L380"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L380"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L384"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L386"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaInstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L387"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L388"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L391"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L406"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L409"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L412"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaRelation", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L413"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L414"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L438"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L439"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L445"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L445"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L445"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L456"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L463"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L463"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L463"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L463"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L465"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L469"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L469"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L469"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L479"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L486"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L487"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L487"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L498"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L500"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L500"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L508"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L508"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L513"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L516"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L516"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L524"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L524"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L524"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L524"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L530"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L537"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L537"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L537"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L550"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L555"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L555"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L555"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L571"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L571"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L571"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L579"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L579"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L582"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L583"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L587"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L592"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L592"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L592"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L605"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L609"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L610"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L614"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L616"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L616"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L616"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L627"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L633"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L633"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L633"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L645"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L652"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L667"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L667"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L667"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L683"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L683"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L683"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L690"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L694"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L696"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L699"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L700"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L706"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L706"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L706"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L715"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L722"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L722"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L722"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L733"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L734"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L735"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L747"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L761"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L764"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L765"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L778"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L778"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L778"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L782"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L783"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L786"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L790"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L792"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L792"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L792"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L799"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L800"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/a5018a9cd5c66186b2116fa62400c3534247beae914e7ad8585193bb7e451b46.json b/backend/app/graphify-out/cache/ast/a5018a9cd5c66186b2116fa62400c3534247beae914e7ad8585193bb7e451b46.json new file mode 100644 index 00000000..17f9fea7 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/a5018a9cd5c66186b2116fa62400c3534247beae914e7ad8585193bb7e451b46.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_assignee_py", "label": "oa_assignee.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L1"}, {"id": "services_oa_assignee_assigneeresolveerror", "label": "AssigneeResolveError", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L12"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "services_oa_assignee_active_user_id", "label": "_active_user_id()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L16"}, {"id": "services_oa_assignee_resolve_dept_leader", "label": "resolve_dept_leader()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L33"}, {"id": "services_oa_assignee_resolve_direct_supervisor", "label": "resolve_direct_supervisor()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L52"}, {"id": "services_oa_assignee_resolve_assignees", "label": "resolve_assignees()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L87"}, {"id": "services_oa_assignee_rationale_1", "label": "OA \u5ba1\u6279\u4eba\u89e3\u6790\uff08\u4e0d\u8bfb sys_role\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L1"}, {"id": "services_oa_assignee_rationale_97", "label": "\u6309\u8282\u70b9 approverConfig \u89e3\u6790\u5904\u7406\u4eba\u3002 assigneeType: users | oa_roles | dept_leader | dir", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L97"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_assignee_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_assignee_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_assignee_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_assignee_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_assignee_py", "target": "services_oa_assignee_assigneeresolveerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L12", "weight": 1.0}, {"source": "services_oa_assignee_assigneeresolveerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_assignee_py", "target": "services_oa_assignee_active_user_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_assignee_py", "target": "services_oa_assignee_resolve_dept_leader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L33", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_assignee_py", "target": "services_oa_assignee_resolve_direct_supervisor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L52", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_assignee_py", "target": "services_oa_assignee_resolve_assignees", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L87", "weight": 1.0}, {"source": "services_oa_assignee_resolve_dept_leader", "target": "services_oa_assignee_assigneeresolveerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L38", "weight": 1.0}, {"source": "services_oa_assignee_resolve_dept_leader", "target": "services_oa_assignee_active_user_id", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L46", "weight": 1.0}, {"source": "services_oa_assignee_resolve_direct_supervisor", "target": "services_oa_assignee_assigneeresolveerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L70", "weight": 1.0}, {"source": "services_oa_assignee_resolve_direct_supervisor", "target": "services_oa_assignee_active_user_id", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L71", "weight": 1.0}, {"source": "services_oa_assignee_resolve_direct_supervisor", "target": "services_oa_assignee_resolve_dept_leader", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L79", "weight": 1.0}, {"source": "services_oa_assignee_resolve_assignees", "target": "services_oa_assignee_active_user_id", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L113", "weight": 1.0}, {"source": "services_oa_assignee_resolve_assignees", "target": "services_oa_assignee_assigneeresolveerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L118", "weight": 1.0}, {"source": "services_oa_assignee_resolve_assignees", "target": "services_oa_assignee_resolve_dept_leader", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L153", "weight": 1.0}, {"source": "services_oa_assignee_resolve_assignees", "target": "services_oa_assignee_resolve_direct_supervisor", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L158", "weight": 1.0}, {"source": "services_oa_assignee_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_assignee_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L1", "weight": 1.0}, {"source": "services_oa_assignee_rationale_97", "target": "services_oa_assignee_resolve_assignees", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L97", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_assignee_active_user_id", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L17"}, {"caller_nid": "services_oa_assignee_active_user_id", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L21"}, {"caller_nid": "services_oa_assignee_active_user_id", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L21"}, {"caller_nid": "services_oa_assignee_active_user_id", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L21"}, {"caller_nid": "services_oa_assignee_resolve_dept_leader", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L36"}, {"caller_nid": "services_oa_assignee_resolve_dept_leader", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L40"}, {"caller_nid": "services_oa_assignee_resolve_dept_leader", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L40"}, {"caller_nid": "services_oa_assignee_resolve_dept_leader", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L40"}, {"caller_nid": "services_oa_assignee_resolve_dept_leader", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L46"}, {"caller_nid": "services_oa_assignee_resolve_direct_supervisor", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L61"}, {"caller_nid": "services_oa_assignee_resolve_direct_supervisor", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L61"}, {"caller_nid": "services_oa_assignee_resolve_direct_supervisor", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L61"}, {"caller_nid": "services_oa_assignee_resolve_direct_supervisor", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L72"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L102"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L102"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L102"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L104"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L105"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "lower", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L106"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L109"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L109"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L111"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L115"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L116"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L122"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L122"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L124"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L124"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L129"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L129"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L129"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L132"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L132"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L138"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "list_oa_role_user_ids", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L139"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L139"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L142"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L146"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L147"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L163"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L167"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L169"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L173"}, {"caller_nid": "services_oa_assignee_resolve_assignees", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_assignee.py", "source_location": "L174"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/a6d2fe39547f86bb4f2dbf43a0cae1c532496a5219ba3d352518b6bb7815770f.json b/backend/app/graphify-out/cache/ast/a6d2fe39547f86bb4f2dbf43a0cae1c532496a5219ba3d352518b6bb7815770f.json new file mode 100644 index 00000000..97c4a0f3 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/a6d2fe39547f86bb4f2dbf43a0cae1c532496a5219ba3d352518b6bb7815770f.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "label": "oa_approval.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L1"}, {"id": "api_oa_approval_get_tenant_no", "label": "_get_tenant_no()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L17"}, {"id": "api_oa_approval_oarolecreatebody", "label": "OaRoleCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L34"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "api_oa_approval_oaroleupdatebody", "label": "OaRoleUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L43"}, {"id": "api_oa_approval_oaroleusersbody", "label": "OaRoleUsersBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L51"}, {"id": "api_oa_approval_list_oa_roles", "label": "list_oa_roles()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L57"}, {"id": "api_oa_approval_ensure_oa_role_presets", "label": "ensure_oa_role_presets()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L69"}, {"id": "api_oa_approval_create_oa_role", "label": "create_oa_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L82"}, {"id": "api_oa_approval_update_oa_role", "label": "update_oa_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L105"}, {"id": "api_oa_approval_delete_oa_role", "label": "delete_oa_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L130"}, {"id": "api_oa_approval_list_oa_role_users", "label": "list_oa_role_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L144"}, {"id": "api_oa_approval_replace_oa_role_users", "label": "replace_oa_role_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L156"}, {"id": "api_oa_approval_oagroupcreatebody", "label": "OaGroupCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L184"}, {"id": "api_oa_approval_oagroupupdatebody", "label": "OaGroupUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L191"}, {"id": "api_oa_approval_list_oa_groups", "label": "list_oa_groups()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L199"}, {"id": "api_oa_approval_create_oa_group", "label": "create_oa_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L208"}, {"id": "api_oa_approval_update_oa_group", "label": "update_oa_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L229"}, {"id": "api_oa_approval_delete_oa_group", "label": "delete_oa_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L253"}, {"id": "api_oa_approval_oaappcreatebody", "label": "OaAppCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L271"}, {"id": "api_oa_approval_oaappupdatebody", "label": "OaAppUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L286"}, {"id": "api_oa_approval_oadraftsavebody", "label": "OaDraftSaveBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L301"}, {"id": "api_oa_approval_list_oa_apps", "label": "list_oa_apps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L310"}, {"id": "api_oa_approval_create_oa_app", "label": "create_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L325"}, {"id": "api_oa_approval_update_oa_app", "label": "update_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L361"}, {"id": "api_oa_approval_delete_oa_app", "label": "delete_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L381"}, {"id": "api_oa_approval_get_oa_app_draft", "label": "get_oa_app_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L395"}, {"id": "api_oa_approval_save_oa_app_draft", "label": "save_oa_app_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L411"}, {"id": "api_oa_approval_publish_oa_app", "label": "publish_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L435"}, {"id": "api_oa_approval_oastartinstancebody", "label": "OaStartInstanceBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L456"}, {"id": "api_oa_approval_oataskactionbody", "label": "OaTaskActionBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L466"}, {"id": "api_oa_approval_oaaddsignbody", "label": "OaAddSignBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L471"}, {"id": "api_oa_approval_list_oa_templates", "label": "list_oa_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L478"}, {"id": "api_oa_approval_get_oa_template", "label": "get_oa_template()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L490"}, {"id": "api_oa_approval_start_oa_instance", "label": "start_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L511"}, {"id": "api_oa_approval_get_oa_instance", "label": "get_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L537"}, {"id": "api_oa_approval_list_oa_tasks", "label": "list_oa_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L552"}, {"id": "api_oa_approval_approve_oa_task", "label": "approve_oa_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L570"}, {"id": "api_oa_approval_reject_oa_task", "label": "reject_oa_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L594"}, {"id": "api_oa_approval_add_sign_oa_task", "label": "add_sign_oa_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L618"}, {"id": "api_oa_approval_withdraw_oa_instance", "label": "withdraw_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L642"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "fastapi", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "pydantic", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_core_database", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_core_menu_guard", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_core_response", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_tenant_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oarolecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L34", "weight": 1.0}, {"source": "api_oa_approval_oarolecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L34", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaroleupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L43", "weight": 1.0}, {"source": "api_oa_approval_oaroleupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L43", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaroleusersbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L51", "weight": 1.0}, {"source": "api_oa_approval_oaroleusersbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L51", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_roles", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L57", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_ensure_oa_role_presets", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L69", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_create_oa_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L82", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_update_oa_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L105", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_delete_oa_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L130", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_role_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L144", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_replace_oa_role_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L156", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oagroupcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L184", "weight": 1.0}, {"source": "api_oa_approval_oagroupcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L184", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oagroupupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L191", "weight": 1.0}, {"source": "api_oa_approval_oagroupupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L191", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_groups", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L199", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_create_oa_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L208", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_update_oa_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L229", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_delete_oa_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L253", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaappcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L271", "weight": 1.0}, {"source": "api_oa_approval_oaappcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L271", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaappupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L286", "weight": 1.0}, {"source": "api_oa_approval_oaappupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L286", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oadraftsavebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L301", "weight": 1.0}, {"source": "api_oa_approval_oadraftsavebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L301", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_apps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L310", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_create_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L325", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_update_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L361", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_delete_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L381", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_oa_app_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L395", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_save_oa_app_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L411", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_publish_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L435", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oastartinstancebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L456", "weight": 1.0}, {"source": "api_oa_approval_oastartinstancebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L456", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oataskactionbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L466", "weight": 1.0}, {"source": "api_oa_approval_oataskactionbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L466", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaaddsignbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L471", "weight": 1.0}, {"source": "api_oa_approval_oaaddsignbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L471", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L478", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_oa_template", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L490", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_start_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L511", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L537", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L552", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_approve_oa_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L570", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_reject_oa_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L594", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_add_sign_oa_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L618", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_withdraw_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L642", "weight": 1.0}, {"source": "api_oa_approval_list_oa_roles", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L63", "weight": 1.0}, {"source": "api_oa_approval_ensure_oa_role_presets", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L73", "weight": 1.0}, {"source": "api_oa_approval_create_oa_role", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L88", "weight": 1.0}, {"source": "api_oa_approval_update_oa_role", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L112", "weight": 1.0}, {"source": "api_oa_approval_delete_oa_role", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L136", "weight": 1.0}, {"source": "api_oa_approval_list_oa_role_users", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L149", "weight": 1.0}, {"source": "api_oa_approval_replace_oa_role_users", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L163", "weight": 1.0}, {"source": "api_oa_approval_list_oa_groups", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L203", "weight": 1.0}, {"source": "api_oa_approval_create_oa_group", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L214", "weight": 1.0}, {"source": "api_oa_approval_update_oa_group", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L236", "weight": 1.0}, {"source": "api_oa_approval_delete_oa_group", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L259", "weight": 1.0}, {"source": "api_oa_approval_list_oa_apps", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L317", "weight": 1.0}, {"source": "api_oa_approval_create_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L331", "weight": 1.0}, {"source": "api_oa_approval_update_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L368", "weight": 1.0}, {"source": "api_oa_approval_delete_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L387", "weight": 1.0}, {"source": "api_oa_approval_get_oa_app_draft", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L401", "weight": 1.0}, {"source": "api_oa_approval_save_oa_app_draft", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L418", "weight": 1.0}, {"source": "api_oa_approval_publish_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L442", "weight": 1.0}, {"source": "api_oa_approval_list_oa_templates", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L484", "weight": 1.0}, {"source": "api_oa_approval_get_oa_template", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L498", "weight": 1.0}, {"source": "api_oa_approval_start_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L519", "weight": 1.0}, {"source": "api_oa_approval_get_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L545", "weight": 1.0}, {"source": "api_oa_approval_list_oa_tasks", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L560", "weight": 1.0}, {"source": "api_oa_approval_approve_oa_task", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L579", "weight": 1.0}, {"source": "api_oa_approval_reject_oa_task", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L603", "weight": 1.0}, {"source": "api_oa_approval_add_sign_oa_task", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L627", "weight": 1.0}, {"source": "api_oa_approval_withdraw_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L650", "weight": 1.0}], "raw_calls": [{"caller_nid": "api_oa_approval_get_tenant_no", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L18"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L18"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L21"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L23"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L23"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L23"}, {"caller_nid": "api_oa_approval_list_oa_roles", "callee": "list_roles", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L64"}, {"caller_nid": "api_oa_approval_list_oa_roles", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L65"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "ensure_presets", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L74"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L74"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L75"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L76"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "create_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L89"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L97"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L99"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "_role_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L99"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L101"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L101"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L113"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "update_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L114"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L118"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L119"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L120"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L121"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L122"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L124"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "_role_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L124"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L126"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L126"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "delete_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L137"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L137"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L138"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L140"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L140"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "get_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L150"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L151"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L152"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "list_role_users", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L152"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "replace_role_users", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L164"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L169"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L171"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "list_role_users", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L172"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L176"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L176"}, {"caller_nid": "api_oa_approval_list_oa_groups", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L204"}, {"caller_nid": "api_oa_approval_list_oa_groups", "callee": "list_groups", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L204"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "create_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L215"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L221"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L223"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "_group_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L223"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L225"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L225"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L237"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "update_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L238"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L242"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L243"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L244"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L245"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L247"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "_group_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L247"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L249"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L249"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "delete_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L260"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L260"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L261"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L263"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L263"}, {"caller_nid": "api_oa_approval_list_oa_apps", "callee": "list_apps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L318"}, {"caller_nid": "api_oa_approval_list_oa_apps", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L321"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "create_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L332"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L346"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "get_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L350"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L352"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "_app_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L353"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L357"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L357"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L369"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "update_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L370"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L370"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "get_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L373"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L375"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "_app_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L375"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L377"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L377"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "delete_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L388"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L388"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L389"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L391"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L391"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "get_or_create_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L402"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L403"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L405"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L407"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L407"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "save_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L419"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L427"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L429"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L431"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L431"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "publish_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L443"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L444"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L447"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L448"}, {"caller_nid": "api_oa_approval_list_oa_templates", "callee": "list_templates", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L485"}, {"caller_nid": "api_oa_approval_list_oa_templates", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L485"}, {"caller_nid": "api_oa_approval_list_oa_templates", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L486"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "get_template_detail", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L499"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L503"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L505"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L507"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L507"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "start_instance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L520"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L524"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L531"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L533"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L533"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L546"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "get_instance_detail", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L546"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L548"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L548"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "list_tasks", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L561"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L562"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L564"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L566"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L566"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "complete_task", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L580"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L584"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L588"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L590"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L590"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "complete_task", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L604"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L608"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L612"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L614"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L614"}, {"caller_nid": "api_oa_approval_add_sign_oa_task", "callee": "add_sign", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L628"}, {"caller_nid": "api_oa_approval_add_sign_oa_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L632"}, {"caller_nid": "api_oa_approval_add_sign_oa_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L636"}, {"caller_nid": "api_oa_approval_add_sign_oa_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L638"}, {"caller_nid": "api_oa_approval_add_sign_oa_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L638"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "withdraw_instance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L651"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L652"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L654"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L656"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L656"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/b3456b4dc83b8d11dc76f836dc66d6d0316f07682b6d6bef7c068a064e3f5f88.json b/backend/app/graphify-out/cache/ast/b3456b4dc83b8d11dc76f836dc66d6d0316f07682b6d6bef7c068a064e3f5f88.json new file mode 100644 index 00000000..b5006cf5 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/b3456b4dc83b8d11dc76f836dc66d6d0316f07682b6d6bef7c068a064e3f5f88.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "label": "oa_engine.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1"}, {"id": "services_oa_engine_oaengineerror", "label": "OaEngineError", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L26"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "services_oa_engine_loads", "label": "_loads()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L30"}, {"id": "services_oa_engine_dumps", "label": "_dumps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41"}, {"id": "services_oa_engine_node_type", "label": "_node_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L45"}, {"id": "services_oa_engine_flow_root", "label": "_flow_root()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L49"}, {"id": "services_oa_engine_find_node", "label": "_find_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L57"}, {"id": "services_oa_engine_flow_node_key_order", "label": "_flow_node_key_order()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75"}, {"id": "services_oa_engine_next_task_order_num", "label": "_next_task_order_num()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100"}, {"id": "services_oa_engine_sort_tasks_for_detail", "label": "_sort_tasks_for_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L111"}, {"id": "services_oa_engine_fmt_dt", "label": "_fmt_dt()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L131"}, {"id": "services_oa_engine_terminal_item", "label": "_terminal_item()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L139"}, {"id": "services_oa_engine_task_round", "label": "_task_round()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L154"}, {"id": "services_oa_engine_append_pending_nodes", "label": "_append_pending_nodes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L164"}, {"id": "services_oa_engine_build_progress_items", "label": "build_progress_items()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L195"}, {"id": "services_oa_engine_add_instance_event", "label": "_add_instance_event()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L267"}, {"id": "services_oa_engine_advanced", "label": "_advanced()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L302"}, {"id": "services_oa_engine_check_initiator_scope", "label": "_check_initiator_scope()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L311"}, {"id": "services_oa_engine_instance_to_dict", "label": "_instance_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L320"}, {"id": "services_oa_engine_task_to_dict", "label": "_task_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L338"}, {"id": "services_oa_engine_user_name_map", "label": "_user_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L356"}, {"id": "services_oa_engine_list_templates", "label": "list_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L364"}, {"id": "services_oa_engine_get_template_detail", "label": "get_template_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L394"}, {"id": "services_oa_engine_role_name_map", "label": "_role_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L427"}, {"id": "services_oa_engine_assignee_meta", "label": "_assignee_meta()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L455"}, {"id": "services_oa_engine_preview_people", "label": "_preview_people()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L470"}, {"id": "services_oa_engine_walk_preview_nodes", "label": "_walk_preview_nodes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L478"}, {"id": "services_oa_engine_preview_start_flow", "label": "preview_start_flow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L604"}, {"id": "services_oa_engine_create_tasks_for_node", "label": "_create_tasks_for_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L654"}, {"id": "services_oa_engine_match_condition_group", "label": "_match_condition_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L723"}, {"id": "services_oa_engine_advance_from", "label": "advance_from()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L764"}, {"id": "services_oa_engine_start_instance", "label": "start_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L834"}, {"id": "services_oa_engine_get_instance", "label": "_get_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L938"}, {"id": "services_oa_engine_get_instance_detail", "label": "get_instance_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L949"}, {"id": "services_oa_engine_list_tasks", "label": "list_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1013"}, {"id": "services_oa_engine_complete_task", "label": "complete_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1063"}, {"id": "services_oa_engine_add_sign", "label": "add_sign()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1184"}, {"id": "services_oa_engine_return_task", "label": "return_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1300"}, {"id": "services_oa_engine_resubmit_instance", "label": "resubmit_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1381"}, {"id": "services_oa_engine_withdraw_instance", "label": "withdraw_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1395"}, {"id": "services_oa_engine_rationale_76", "label": "\u6309\u6d41\u7a0b\u6811\u5148\u5e8f\u904d\u5386\u4e3a node.id \u5206\u914d\u7a33\u5b9a\u5e8f\u53f7\uff08\u7528\u4e8e\u8be6\u60c5\u65f6\u95f4\u8f74\u6392\u5e8f\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L76"}, {"id": "services_oa_engine_rationale_101", "label": "\u540c\u4e00\u5b9e\u4f8b\u5185\u4efb\u52a1\u5c55\u793a\u5e8f\u53f7\u53d6 max+1\uff08\u65e0\u4efb\u52a1\u4ece 1 \u8d77\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L101"}, {"id": "services_oa_engine_rationale_114", "label": "\u8be6\u60c5\u65f6\u95f4\u8f74\uff1a\u6309\u6d41\u7a0b\u6811\u8282\u70b9\u987a\u5e8f\uff0c\u518d order_num / create_time\uff08\u517c\u5bb9\u65e7\u6570\u636e\u540c\u79d2\u521b\u5efa\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L114"}, {"id": "services_oa_engine_rationale_203", "label": "\u6295\u5f71\u5ba1\u6279\u8fdb\u5ea6\uff1a\u53d1\u8d77\u4eba \u2192 \u6811\u5e8f tasks \u2192 \u672a\u5230\u8fbe\uff1b\u7ec8\u6001\u6536\u5c3e\u3002 \u9489\u9489\u5bf9\u9f50\uff1a\u6253\u56de\u7ed3\u679c\u843d\u5728\u5ba1\u6279\u4efb\u52a1\u8282\u70b9\u4e0a\uff0c\u4e0d\u53e6\u63d2 kind=return\uff1b\u4e0d\u505a\u540c\u5355\u591a\u8f6e", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L203"}, {"id": "services_oa_engine_rationale_613", "label": "\u53d1\u8d77\u524d\u9884\u89c8\u5ba1\u6279\u94fe\uff08\u89e3\u6790\u5177\u4f53\u4eba\u5458\uff1b\u6761\u4ef6\u5206\u652f\u5c55\u5f00\u5c55\u793a\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L613"}, {"id": "services_oa_engine_rationale_773", "label": "\u4ece\u67d0\u8282\u70b9\u7684\u4e0b\u4e00\u8df3\u5f00\u59cb\u63a8\u8fdb\uff1bfrom_node \u4e3a None \u8868\u793a\u4ece start \u8fdb\u5165\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L773"}, {"id": "services_oa_engine_rationale_1193", "label": "\u5f53\u524d\u5f85\u529e\u5904\u7406\u4eba\u52a0\u7b7e\uff1a\u4e3a\u540c\u8282\u70b9\u65b0\u589e\u5f85\u529e\u5ba1\u6279\u4eba\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1193"}, {"id": "services_oa_engine_rationale_1308", "label": "\u5ba1\u6279\u4eba\u6253\u56de\uff1a\u672c\u5355\u7ec8\u6001 returned\uff1b\u518d\u529e\u987b\u590d\u5236\u8868\u5355\u5f00\u65b0\u5b9e\u4f8b\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1308"}, {"id": "services_oa_engine_rationale_1390", "label": "\u5df2\u5e9f\u5f03\uff1a\u540c\u5b9e\u4f8b\u518d\u6b21\u63d0\u4ea4\u3002\u8bf7\u590d\u5236\u8868\u5355\u91cd\u65b0\u53d1\u8d77\u65b0\u5b9e\u4f8b\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1390"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_assignee", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_formula", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_oaengineerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L26", "weight": 1.0}, {"source": "services_oa_engine_oaengineerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_loads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L30", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_dumps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_node_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L45", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_root", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L49", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_find_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L57", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_node_key_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_next_task_order_num", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_fmt_dt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L131", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_terminal_item", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L139", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_round", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L154", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_append_pending_nodes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L164", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_build_progress_items", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_add_instance_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L267", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advanced", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L302", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_check_initiator_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_instance_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L320", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L338", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_user_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L356", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L364", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_template_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L394", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_role_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L427", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_assignee_meta", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L455", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_preview_people", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L470", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_walk_preview_nodes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L478", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_preview_start_flow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L604", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_create_tasks_for_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L654", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_match_condition_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L723", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advance_from", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L764", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_start_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L834", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L938", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L949", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1013", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_complete_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1063", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_add_sign", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1184", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_return_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1300", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_resubmit_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1381", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_withdraw_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1395", "weight": 1.0}, {"source": "services_oa_engine_flow_root", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L51", "weight": 1.0}, {"source": "services_oa_engine_sort_tasks_for_detail", "target": "services_oa_engine_flow_node_key_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L115", "weight": 1.0}, {"source": "services_oa_engine_terminal_item", "target": "services_oa_engine_fmt_dt", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L147", "weight": 1.0}, {"source": "services_oa_engine_append_pending_nodes", "target": "services_oa_engine_flow_node_key_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L171", "weight": 1.0}, {"source": "services_oa_engine_append_pending_nodes", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L173", "weight": 1.0}, {"source": "services_oa_engine_append_pending_nodes", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L176", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L208", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_fmt_dt", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L211", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_append_pending_nodes", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L252", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_terminal_item", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L257", "weight": 1.0}, {"source": "services_oa_engine_advanced", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L303", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L315", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L317", "weight": 1.0}, {"source": "services_oa_engine_instance_to_dict", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L329", "weight": 1.0}, {"source": "services_oa_engine_list_templates", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L377", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L399", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L400", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L412", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L414", "weight": 1.0}, {"source": "services_oa_engine_assignee_meta", "target": "services_oa_engine_role_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L459", "weight": 1.0}, {"source": "services_oa_engine_preview_people", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L471", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L491", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_preview_people", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L493", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_assignee_meta", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L564", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L616", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L617", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L635", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_walk_preview_nodes", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L641", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L647", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L664", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L675", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L687", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L692", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L774", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L774", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L790", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L795", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_create_tasks_for_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L809", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L824", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L851", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L852", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L857", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L880", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_add_instance_event", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L918", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L925", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L935", "weight": 1.0}, {"source": "services_oa_engine_get_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L945", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L950", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L965", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L965", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L968", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L974", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L979", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L982", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L987", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_build_progress_items", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1000", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1055", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1057", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1060", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1074", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1088", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1100", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1137", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1175", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1175", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1176", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1179", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1200", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1206", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1217", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1245", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1297", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1315", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1321", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1332", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_add_instance_event", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1367", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1378", "weight": 1.0}, {"source": "services_oa_engine_resubmit_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1392", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1398", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1400", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1408", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_add_instance_event", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1426", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1434", "weight": 1.0}, {"source": "services_oa_engine_rationale_76", "target": "services_oa_engine_flow_node_key_order", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L76", "weight": 1.0}, {"source": "services_oa_engine_rationale_101", "target": "services_oa_engine_next_task_order_num", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L101", "weight": 1.0}, {"source": "services_oa_engine_rationale_114", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L114", "weight": 1.0}, {"source": "services_oa_engine_rationale_203", "target": "services_oa_engine_build_progress_items", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L203", "weight": 1.0}, {"source": "services_oa_engine_rationale_613", "target": "services_oa_engine_preview_start_flow", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L613", "weight": 1.0}, {"source": "services_oa_engine_rationale_773", "target": "services_oa_engine_advance_from", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L773", "weight": 1.0}, {"source": "services_oa_engine_rationale_1193", "target": "services_oa_engine_add_sign", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1193", "weight": 1.0}, {"source": "services_oa_engine_rationale_1308", "target": "services_oa_engine_return_task", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1308", "weight": 1.0}, {"source": "services_oa_engine_rationale_1390", "target": "services_oa_engine_resubmit_instance", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1390", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_engine_loads", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L33"}, {"caller_nid": "services_oa_engine_loads", "callee": "loads", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36"}, {"caller_nid": "services_oa_engine_dumps", "callee": "dumps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L42"}, {"caller_nid": "services_oa_engine_node_type", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L46"}, {"caller_nid": "services_oa_engine_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L46"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L50"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L52"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L52"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L60"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L62"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L63"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L67"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_flow_node_key_order", "callee": "walk", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L96"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L103"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L103"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L103"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L107"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L108"}, {"caller_nid": "services_oa_engine_sort_tasks_for_detail", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L115"}, {"caller_nid": "services_oa_engine_sort_tasks_for_detail", "callee": "sorted", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_fmt_dt", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L134"}, {"caller_nid": "services_oa_engine_fmt_dt", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L135"}, {"caller_nid": "services_oa_engine_fmt_dt", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L136"}, {"caller_nid": "services_oa_engine_terminal_item", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L142"}, {"caller_nid": "services_oa_engine_terminal_item", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L147"}, {"caller_nid": "services_oa_engine_task_round", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L155"}, {"caller_nid": "services_oa_engine_task_round", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L159"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "sorted", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L172"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "items", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L172"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L179"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L183"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L207"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L208"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L211"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L213"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L214"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L224"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L232"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L232"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L235"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L242"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L247"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L251"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L257"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L259"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L261"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L263"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L278"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "OaInstanceEvent", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L279"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L280"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L287"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L298"}, {"caller_nid": "services_oa_engine_advanced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L304"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L305"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L306"}, {"caller_nid": "services_oa_engine_advanced", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L307"}, {"caller_nid": "services_oa_engine_check_initiator_scope", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L312"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L331"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L332"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L332"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L333"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L334"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L351"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L352"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L357"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L357"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L360"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L360"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L360"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L360"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L366"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L366"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L366"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L366"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L368"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L368"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L373"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L380"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L397"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L401"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L429"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L429"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L429"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L429"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L430"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L430"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L430"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L430"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L430"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L433"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L433"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L433"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L434"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "extend", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L437"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L440"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L440"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L440"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L443"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L451"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L456"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L456"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L456"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L457"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L462"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L462"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L463"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L463"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L466"}, {"caller_nid": "services_oa_engine_preview_people", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L474"}, {"caller_nid": "services_oa_engine_preview_people", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L474"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L490"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L494"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L496"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L498"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L506"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L510"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L512"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L514"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L525"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L527"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L529"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L531"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L531"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L533"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L541"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L542"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L553"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L557"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L558"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L558"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L558"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L559"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L559"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L559"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L569"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L569"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L569"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L574"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L585"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L586"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L588"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L590"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L598"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L601"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L614"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L618"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L623"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L623"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L623"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L631"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L636"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L636"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L637"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L638"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L665"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L674"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L677"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L687"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L689"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L689"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L689"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L690"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L695"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L696"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L698"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L699"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L706"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L706"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L718"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L719"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L726"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L728"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L729"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L731"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L735"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L737"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L741"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L743"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L744"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L745"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L748"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L749"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L751"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L752"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "eval_formula", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L757"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L757"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L790"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L792"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L802"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L803"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L806"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L818"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L818"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L821"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L827"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L849"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L853"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L858"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "apply_formulas_and_linkages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L860"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L865"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L865"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L865"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L869"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L871"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L872"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaInstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L873"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L874"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L894"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L897"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L900"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaRelation", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L901"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L902"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L933"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L934"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L940"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L940"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L940"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L951"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L953"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L953"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L953"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L958"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L958"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L958"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L970"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L970"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L970"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L980"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L982"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L987"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L989"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L989"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L990"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L990"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L992"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L992"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L992"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L992"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L994"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L999"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1020"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1022"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1022"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1030"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1030"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1035"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1038"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1038"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1046"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1046"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1046"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1046"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1052"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1059"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1059"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1059"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1072"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1077"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1077"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1077"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1093"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1093"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1093"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1101"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1101"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1104"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1105"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1109"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "flush", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1112"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1117"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1117"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1117"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1131"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1135"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1136"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1140"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1142"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1142"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1142"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1154"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1160"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1160"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1160"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1173"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1180"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1195"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1195"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1195"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1211"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1211"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1211"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1218"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1222"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1224"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1227"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1228"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1234"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1234"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1234"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1243"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1251"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1251"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1251"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1262"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1263"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1264"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1274"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1274"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1274"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1277"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1292"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1295"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1296"}, {"caller_nid": "services_oa_engine_return_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1310"}, {"caller_nid": "services_oa_engine_return_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1310"}, {"caller_nid": "services_oa_engine_return_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1310"}, {"caller_nid": "services_oa_engine_return_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1326"}, {"caller_nid": "services_oa_engine_return_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1326"}, {"caller_nid": "services_oa_engine_return_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1326"}, {"caller_nid": "services_oa_engine_return_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1333"}, {"caller_nid": "services_oa_engine_return_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1336"}, {"caller_nid": "services_oa_engine_return_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1340"}, {"caller_nid": "services_oa_engine_return_task", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1341"}, {"caller_nid": "services_oa_engine_return_task", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1341"}, {"caller_nid": "services_oa_engine_return_task", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1341"}, {"caller_nid": "services_oa_engine_return_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1346"}, {"caller_nid": "services_oa_engine_return_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1349"}, {"caller_nid": "services_oa_engine_return_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1349"}, {"caller_nid": "services_oa_engine_return_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1349"}, {"caller_nid": "services_oa_engine_return_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1361"}, {"caller_nid": "services_oa_engine_return_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1366"}, {"caller_nid": "services_oa_engine_return_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1377"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1404"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1404"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1404"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1408"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1409"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1412"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1416"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1418"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1418"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1418"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1425"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1431"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1431"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1433"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/b7383ad9462c66315bcfe31c9a349c8565f7dfc62c6a1705f5154e3150b5aa1a.json b/backend/app/graphify-out/cache/ast/b7383ad9462c66315bcfe31c9a349c8565f7dfc62c6a1705f5154e3150b5aa1a.json new file mode 100644 index 00000000..d1ab78cc --- /dev/null +++ b/backend/app/graphify-out/cache/ast/b7383ad9462c66315bcfe31c9a349c8565f7dfc62c6a1705f5154e3150b5aa1a.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "label": "__init__.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L1"}, {"id": "api_init_rationale_1", "label": "API \u8def\u7531\u5305\uff08\u9aa8\u67b6\uff1a\u516c\u5171\u9274\u6743 + \u9759\u6001\u83dc\u5355 + \u8fd0\u8425\u7aef\u5360\u4f4d\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_public", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_menu", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_admin", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_workflow", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_basic_info", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_collection_protocol", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_leave", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_operations", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_ethnic", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_sample_reception", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_sample_production_reception", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_qc", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_research_donation", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_production", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_pilot_service", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_insurance_company", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_material", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_storage_release_review", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L19", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_sample_sms_notification", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L20", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_storage_entry_sms_notification", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_qc_sms_notification", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_protocol_sample_collection", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_research_donation_sample_collection", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_pilot_application", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L25", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_pilot_checkup", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_pilot_delivery", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L27", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_pilot_infusion_confirm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L28", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_pilot_infusion_schedule_mgmt", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L29", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_outbound_release_review", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L30", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_clinical_payment", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L31", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_env_detect", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_cleanroom_garment", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L33", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_market", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L34", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_pre_transit_sample", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L35", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "target": "app_api_oa_approval", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L36", "weight": 1.0}, {"source": "api_init_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_api_init_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/__init__.py", "source_location": "L1", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/bb300f7412e109992f688c80908d63c25e0b218aaccf26663c3947577f4a730c.json b/backend/app/graphify-out/cache/ast/bb300f7412e109992f688c80908d63c25e0b218aaccf26663c3947577f4a730c.json new file mode 100644 index 00000000..05ade223 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/bb300f7412e109992f688c80908d63c25e0b218aaccf26663c3947577f4a730c.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "label": "oa_approval.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L1"}, {"id": "api_oa_approval_get_tenant_no", "label": "_get_tenant_no()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L17"}, {"id": "api_oa_approval_oarolecreatebody", "label": "OaRoleCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L34"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "api_oa_approval_oaroleupdatebody", "label": "OaRoleUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L43"}, {"id": "api_oa_approval_oaroleusersbody", "label": "OaRoleUsersBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L51"}, {"id": "api_oa_approval_list_oa_roles", "label": "list_oa_roles()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L57"}, {"id": "api_oa_approval_ensure_oa_role_presets", "label": "ensure_oa_role_presets()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L69"}, {"id": "api_oa_approval_create_oa_role", "label": "create_oa_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L82"}, {"id": "api_oa_approval_update_oa_role", "label": "update_oa_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L105"}, {"id": "api_oa_approval_delete_oa_role", "label": "delete_oa_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L130"}, {"id": "api_oa_approval_list_oa_role_users", "label": "list_oa_role_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L144"}, {"id": "api_oa_approval_replace_oa_role_users", "label": "replace_oa_role_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L156"}, {"id": "api_oa_approval_oagroupcreatebody", "label": "OaGroupCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L184"}, {"id": "api_oa_approval_oagroupupdatebody", "label": "OaGroupUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L191"}, {"id": "api_oa_approval_list_oa_groups", "label": "list_oa_groups()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L199"}, {"id": "api_oa_approval_create_oa_group", "label": "create_oa_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L208"}, {"id": "api_oa_approval_update_oa_group", "label": "update_oa_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L229"}, {"id": "api_oa_approval_delete_oa_group", "label": "delete_oa_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L253"}, {"id": "api_oa_approval_oaappcreatebody", "label": "OaAppCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L271"}, {"id": "api_oa_approval_oaappupdatebody", "label": "OaAppUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L286"}, {"id": "api_oa_approval_oadraftsavebody", "label": "OaDraftSaveBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L301"}, {"id": "api_oa_approval_list_oa_apps", "label": "list_oa_apps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L310"}, {"id": "api_oa_approval_create_oa_app", "label": "create_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L325"}, {"id": "api_oa_approval_update_oa_app", "label": "update_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L361"}, {"id": "api_oa_approval_delete_oa_app", "label": "delete_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L381"}, {"id": "api_oa_approval_get_oa_app_draft", "label": "get_oa_app_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L395"}, {"id": "api_oa_approval_save_oa_app_draft", "label": "save_oa_app_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L411"}, {"id": "api_oa_approval_publish_oa_app", "label": "publish_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L435"}, {"id": "api_oa_approval_oastartinstancebody", "label": "OaStartInstanceBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L456"}, {"id": "api_oa_approval_oataskactionbody", "label": "OaTaskActionBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L466"}, {"id": "api_oa_approval_list_oa_templates", "label": "list_oa_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L472"}, {"id": "api_oa_approval_get_oa_template", "label": "get_oa_template()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L484"}, {"id": "api_oa_approval_start_oa_instance", "label": "start_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L505"}, {"id": "api_oa_approval_get_oa_instance", "label": "get_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L531"}, {"id": "api_oa_approval_list_oa_tasks", "label": "list_oa_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L546"}, {"id": "api_oa_approval_approve_oa_task", "label": "approve_oa_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L564"}, {"id": "api_oa_approval_reject_oa_task", "label": "reject_oa_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L588"}, {"id": "api_oa_approval_withdraw_oa_instance", "label": "withdraw_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L612"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "fastapi", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "pydantic", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_core_database", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_core_menu_guard", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_core_response", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_tenant_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oarolecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L34", "weight": 1.0}, {"source": "api_oa_approval_oarolecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L34", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaroleupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L43", "weight": 1.0}, {"source": "api_oa_approval_oaroleupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L43", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaroleusersbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L51", "weight": 1.0}, {"source": "api_oa_approval_oaroleusersbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L51", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_roles", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L57", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_ensure_oa_role_presets", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L69", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_create_oa_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L82", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_update_oa_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L105", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_delete_oa_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L130", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_role_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L144", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_replace_oa_role_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L156", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oagroupcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L184", "weight": 1.0}, {"source": "api_oa_approval_oagroupcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L184", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oagroupupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L191", "weight": 1.0}, {"source": "api_oa_approval_oagroupupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L191", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_groups", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L199", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_create_oa_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L208", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_update_oa_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L229", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_delete_oa_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L253", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaappcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L271", "weight": 1.0}, {"source": "api_oa_approval_oaappcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L271", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaappupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L286", "weight": 1.0}, {"source": "api_oa_approval_oaappupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L286", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oadraftsavebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L301", "weight": 1.0}, {"source": "api_oa_approval_oadraftsavebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L301", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_apps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L310", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_create_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L325", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_update_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L361", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_delete_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L381", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_oa_app_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L395", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_save_oa_app_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L411", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_publish_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L435", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oastartinstancebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L456", "weight": 1.0}, {"source": "api_oa_approval_oastartinstancebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L456", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oataskactionbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L466", "weight": 1.0}, {"source": "api_oa_approval_oataskactionbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L466", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L472", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_oa_template", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L484", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_start_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L505", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L531", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L546", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_approve_oa_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L564", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_reject_oa_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L588", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_withdraw_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L612", "weight": 1.0}, {"source": "api_oa_approval_list_oa_roles", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L63", "weight": 1.0}, {"source": "api_oa_approval_ensure_oa_role_presets", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L73", "weight": 1.0}, {"source": "api_oa_approval_create_oa_role", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L88", "weight": 1.0}, {"source": "api_oa_approval_update_oa_role", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L112", "weight": 1.0}, {"source": "api_oa_approval_delete_oa_role", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L136", "weight": 1.0}, {"source": "api_oa_approval_list_oa_role_users", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L149", "weight": 1.0}, {"source": "api_oa_approval_replace_oa_role_users", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L163", "weight": 1.0}, {"source": "api_oa_approval_list_oa_groups", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L203", "weight": 1.0}, {"source": "api_oa_approval_create_oa_group", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L214", "weight": 1.0}, {"source": "api_oa_approval_update_oa_group", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L236", "weight": 1.0}, {"source": "api_oa_approval_delete_oa_group", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L259", "weight": 1.0}, {"source": "api_oa_approval_list_oa_apps", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L317", "weight": 1.0}, {"source": "api_oa_approval_create_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L331", "weight": 1.0}, {"source": "api_oa_approval_update_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L368", "weight": 1.0}, {"source": "api_oa_approval_delete_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L387", "weight": 1.0}, {"source": "api_oa_approval_get_oa_app_draft", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L401", "weight": 1.0}, {"source": "api_oa_approval_save_oa_app_draft", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L418", "weight": 1.0}, {"source": "api_oa_approval_publish_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L442", "weight": 1.0}, {"source": "api_oa_approval_list_oa_templates", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L478", "weight": 1.0}, {"source": "api_oa_approval_get_oa_template", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L492", "weight": 1.0}, {"source": "api_oa_approval_start_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L513", "weight": 1.0}, {"source": "api_oa_approval_get_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L539", "weight": 1.0}, {"source": "api_oa_approval_list_oa_tasks", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L554", "weight": 1.0}, {"source": "api_oa_approval_approve_oa_task", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L573", "weight": 1.0}, {"source": "api_oa_approval_reject_oa_task", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L597", "weight": 1.0}, {"source": "api_oa_approval_withdraw_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L620", "weight": 1.0}], "raw_calls": [{"caller_nid": "api_oa_approval_get_tenant_no", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L18"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L18"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L21"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L23"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L23"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L23"}, {"caller_nid": "api_oa_approval_list_oa_roles", "callee": "list_roles", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L64"}, {"caller_nid": "api_oa_approval_list_oa_roles", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L65"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "ensure_presets", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L74"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L74"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L75"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L76"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "create_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L89"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L97"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L99"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "_role_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L99"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L101"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L101"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L113"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "update_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L114"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L118"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L119"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L120"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L121"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L122"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L124"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "_role_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L124"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L126"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L126"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "delete_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L137"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L137"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L138"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L140"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L140"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "get_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L150"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L151"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L152"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "list_role_users", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L152"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "replace_role_users", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L164"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L169"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L171"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "list_role_users", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L172"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L176"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L176"}, {"caller_nid": "api_oa_approval_list_oa_groups", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L204"}, {"caller_nid": "api_oa_approval_list_oa_groups", "callee": "list_groups", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L204"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "create_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L215"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L221"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L223"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "_group_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L223"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L225"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L225"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L237"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "update_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L238"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L242"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L243"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L244"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L245"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L247"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "_group_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L247"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L249"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L249"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "delete_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L260"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L260"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L261"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L263"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L263"}, {"caller_nid": "api_oa_approval_list_oa_apps", "callee": "list_apps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L318"}, {"caller_nid": "api_oa_approval_list_oa_apps", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L321"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "create_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L332"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L346"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "get_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L350"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L352"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "_app_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L353"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L357"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L357"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L369"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "update_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L370"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L370"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "get_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L373"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L375"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "_app_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L375"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L377"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L377"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "delete_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L388"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L388"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L389"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L391"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L391"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "get_or_create_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L402"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L403"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L405"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L407"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L407"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "save_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L419"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L427"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L429"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L431"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L431"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "publish_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L443"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L444"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L447"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L448"}, {"caller_nid": "api_oa_approval_list_oa_templates", "callee": "list_templates", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L479"}, {"caller_nid": "api_oa_approval_list_oa_templates", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L479"}, {"caller_nid": "api_oa_approval_list_oa_templates", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L480"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "get_template_detail", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L493"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L497"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L499"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L501"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L501"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "start_instance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L514"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L518"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L525"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L527"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L527"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L540"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "get_instance_detail", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L540"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L542"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L542"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "list_tasks", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L555"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L556"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L558"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L560"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L560"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "complete_task", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L574"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L578"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L582"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L584"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L584"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "complete_task", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L598"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L602"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L606"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L608"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L608"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "withdraw_instance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L621"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L622"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L624"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L626"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L626"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/c2911b071390a03db47b55140b02c749bb85e46b187b25430696691a7a8c7fb2.json b/backend/app/graphify-out/cache/ast/c2911b071390a03db47b55140b02c749bb85e46b187b25430696691a7a8c7fb2.json new file mode 100644 index 00000000..b9e65215 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/c2911b071390a03db47b55140b02c749bb85e46b187b25430696691a7a8c7fb2.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "label": "oa_engine.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1"}, {"id": "services_oa_engine_oaengineerror", "label": "OaEngineError", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L26"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "services_oa_engine_loads", "label": "_loads()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L30"}, {"id": "services_oa_engine_dumps", "label": "_dumps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41"}, {"id": "services_oa_engine_node_type", "label": "_node_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L45"}, {"id": "services_oa_engine_flow_root", "label": "_flow_root()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L49"}, {"id": "services_oa_engine_find_node", "label": "_find_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L57"}, {"id": "services_oa_engine_flow_node_key_order", "label": "_flow_node_key_order()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75"}, {"id": "services_oa_engine_next_task_order_num", "label": "_next_task_order_num()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100"}, {"id": "services_oa_engine_sort_tasks_for_detail", "label": "_sort_tasks_for_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L111"}, {"id": "services_oa_engine_fmt_dt", "label": "_fmt_dt()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L131"}, {"id": "services_oa_engine_terminal_item", "label": "_terminal_item()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L139"}, {"id": "services_oa_engine_task_round", "label": "_task_round()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L154"}, {"id": "services_oa_engine_append_pending_nodes", "label": "_append_pending_nodes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L164"}, {"id": "services_oa_engine_build_progress_items", "label": "build_progress_items()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L195"}, {"id": "services_oa_engine_add_instance_event", "label": "_add_instance_event()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L295"}, {"id": "services_oa_engine_advanced", "label": "_advanced()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L330"}, {"id": "services_oa_engine_check_initiator_scope", "label": "_check_initiator_scope()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L339"}, {"id": "services_oa_engine_instance_to_dict", "label": "_instance_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L348"}, {"id": "services_oa_engine_task_to_dict", "label": "_task_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L366"}, {"id": "services_oa_engine_user_name_map", "label": "_user_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L384"}, {"id": "services_oa_engine_list_templates", "label": "list_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L392"}, {"id": "services_oa_engine_get_template_detail", "label": "get_template_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L422"}, {"id": "services_oa_engine_role_name_map", "label": "_role_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L455"}, {"id": "services_oa_engine_assignee_meta", "label": "_assignee_meta()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L483"}, {"id": "services_oa_engine_preview_people", "label": "_preview_people()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L498"}, {"id": "services_oa_engine_walk_preview_nodes", "label": "_walk_preview_nodes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L506"}, {"id": "services_oa_engine_preview_start_flow", "label": "preview_start_flow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L632"}, {"id": "services_oa_engine_create_tasks_for_node", "label": "_create_tasks_for_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L682"}, {"id": "services_oa_engine_match_condition_group", "label": "_match_condition_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L751"}, {"id": "services_oa_engine_advance_from", "label": "advance_from()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L792"}, {"id": "services_oa_engine_start_instance", "label": "start_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L862"}, {"id": "services_oa_engine_get_instance", "label": "_get_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L974"}, {"id": "services_oa_engine_get_instance_detail", "label": "get_instance_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L985"}, {"id": "services_oa_engine_list_tasks", "label": "list_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1057"}, {"id": "services_oa_engine_complete_task", "label": "complete_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1107"}, {"id": "services_oa_engine_add_sign", "label": "add_sign()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1228"}, {"id": "services_oa_engine_return_task", "label": "return_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1344"}, {"id": "services_oa_engine_resubmit_instance", "label": "resubmit_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1425"}, {"id": "services_oa_engine_withdraw_instance", "label": "withdraw_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1482"}, {"id": "services_oa_engine_rationale_76", "label": "\u6309\u6d41\u7a0b\u6811\u5148\u5e8f\u904d\u5386\u4e3a node.id \u5206\u914d\u7a33\u5b9a\u5e8f\u53f7\uff08\u7528\u4e8e\u8be6\u60c5\u65f6\u95f4\u8f74\u6392\u5e8f\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L76"}, {"id": "services_oa_engine_rationale_101", "label": "\u540c\u4e00\u5b9e\u4f8b\u5185\u4efb\u52a1\u5c55\u793a\u5e8f\u53f7\u53d6 max+1\uff08\u65e0\u4efb\u52a1\u4ece 1 \u8d77\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L101"}, {"id": "services_oa_engine_rationale_114", "label": "\u8be6\u60c5\u65f6\u95f4\u8f74\uff1a\u6309\u6d41\u7a0b\u6811\u8282\u70b9\u987a\u5e8f\uff0c\u518d order_num / create_time\uff08\u517c\u5bb9\u65e7\u6570\u636e\u540c\u79d2\u521b\u5efa\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L114"}, {"id": "services_oa_engine_rationale_203", "label": "\u6295\u5f71\u5ba1\u6279\u8fdb\u5ea6\uff1a\u6309\u8f6e\u6b21 submit \u2192 \u6811\u5e8f tasks \u2192 return \u4e8b\u4ef6 \u2192 \u672a\u5230\u8fbe\uff1b\u7ec8\u6001\u6536\u5c3e\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L203"}, {"id": "services_oa_engine_rationale_641", "label": "\u53d1\u8d77\u524d\u9884\u89c8\u5ba1\u6279\u94fe\uff08\u89e3\u6790\u5177\u4f53\u4eba\u5458\uff1b\u6761\u4ef6\u5206\u652f\u5c55\u5f00\u5c55\u793a\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L641"}, {"id": "services_oa_engine_rationale_801", "label": "\u4ece\u67d0\u8282\u70b9\u7684\u4e0b\u4e00\u8df3\u5f00\u59cb\u63a8\u8fdb\uff1bfrom_node \u4e3a None \u8868\u793a\u4ece start \u8fdb\u5165\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L801"}, {"id": "services_oa_engine_rationale_1237", "label": "\u5f53\u524d\u5f85\u529e\u5904\u7406\u4eba\u52a0\u7b7e\uff1a\u4e3a\u540c\u8282\u70b9\u65b0\u589e\u5f85\u529e\u5ba1\u6279\u4eba\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1237"}, {"id": "services_oa_engine_rationale_1352", "label": "\u5ba1\u6279\u4eba\u6253\u56de\uff1a\u9000\u56de\u53d1\u8d77\u4eba\u4fee\u6539\uff0c\u540c\u5b9e\u4f8b\u4e0d\u7ed3\u675f\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1352"}, {"id": "services_oa_engine_rationale_1434", "label": "\u6253\u56de\u540e\u53d1\u8d77\u4eba\u4fee\u6539\u8868\u5355\u5e76\u518d\u6b21\u63d0\u4ea4\uff08\u540c\u5b9e\u4f8b\u65b0\u4e00\u8f6e\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1434"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_assignee", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_formula", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_oaengineerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L26", "weight": 1.0}, {"source": "services_oa_engine_oaengineerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_loads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L30", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_dumps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_node_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L45", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_root", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L49", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_find_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L57", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_node_key_order", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_next_task_order_num", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L111", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_fmt_dt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L131", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_terminal_item", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L139", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_round", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L154", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_append_pending_nodes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L164", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_build_progress_items", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L195", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_add_instance_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L295", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advanced", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L330", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_check_initiator_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L339", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_instance_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L348", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L366", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_user_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L384", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L392", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_template_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L422", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_role_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L455", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_assignee_meta", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L483", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_preview_people", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L498", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_walk_preview_nodes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L506", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_preview_start_flow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L632", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_create_tasks_for_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L682", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_match_condition_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L751", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advance_from", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L792", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_start_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L862", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L974", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L985", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1057", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_complete_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1107", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_add_sign", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1228", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_return_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1344", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_resubmit_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1425", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_withdraw_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1482", "weight": 1.0}, {"source": "services_oa_engine_flow_root", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L51", "weight": 1.0}, {"source": "services_oa_engine_sort_tasks_for_detail", "target": "services_oa_engine_flow_node_key_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L115", "weight": 1.0}, {"source": "services_oa_engine_terminal_item", "target": "services_oa_engine_fmt_dt", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L147", "weight": 1.0}, {"source": "services_oa_engine_append_pending_nodes", "target": "services_oa_engine_flow_node_key_order", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L171", "weight": 1.0}, {"source": "services_oa_engine_append_pending_nodes", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L173", "weight": 1.0}, {"source": "services_oa_engine_append_pending_nodes", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L176", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L205", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_task_round", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L209", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_fmt_dt", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L221", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_append_pending_nodes", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L282", "weight": 1.0}, {"source": "services_oa_engine_build_progress_items", "target": "services_oa_engine_terminal_item", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L287", "weight": 1.0}, {"source": "services_oa_engine_advanced", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L331", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L343", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L345", "weight": 1.0}, {"source": "services_oa_engine_instance_to_dict", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L357", "weight": 1.0}, {"source": "services_oa_engine_list_templates", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L405", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L427", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L428", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L440", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L442", "weight": 1.0}, {"source": "services_oa_engine_assignee_meta", "target": "services_oa_engine_role_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L487", "weight": 1.0}, {"source": "services_oa_engine_preview_people", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L499", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L519", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_preview_people", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L521", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_assignee_meta", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L592", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L644", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L645", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L663", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_walk_preview_nodes", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L669", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L675", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L692", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L703", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L715", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L720", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L802", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L802", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L818", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L823", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_create_tasks_for_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L837", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L852", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L877", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L878", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L885", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L891", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L916", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_add_instance_event", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L954", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L961", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L971", "weight": 1.0}, {"source": "services_oa_engine_get_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L981", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L986", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1001", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1001", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1004", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1010", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1015", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1018", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1023", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_build_progress_items", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1036", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1099", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1101", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1104", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1118", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1132", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1144", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1181", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1219", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1219", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1220", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1223", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1244", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1250", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1261", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_next_task_order_num", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1289", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1341", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1359", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1365", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1376", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_add_instance_event", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1411", "weight": 1.0}, {"source": "services_oa_engine_return_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1422", "weight": 1.0}, {"source": "services_oa_engine_resubmit_instance", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1435", "weight": 1.0}, {"source": "services_oa_engine_resubmit_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1437", "weight": 1.0}, {"source": "services_oa_engine_resubmit_instance", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1449", "weight": 1.0}, {"source": "services_oa_engine_resubmit_instance", "target": "services_oa_engine_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1457", "weight": 1.0}, {"source": "services_oa_engine_resubmit_instance", "target": "services_oa_engine_add_instance_event", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1463", "weight": 1.0}, {"source": "services_oa_engine_resubmit_instance", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1470", "weight": 1.0}, {"source": "services_oa_engine_resubmit_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1479", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1485", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1487", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1495", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_add_instance_event", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1513", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1521", "weight": 1.0}, {"source": "services_oa_engine_rationale_76", "target": "services_oa_engine_flow_node_key_order", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L76", "weight": 1.0}, {"source": "services_oa_engine_rationale_101", "target": "services_oa_engine_next_task_order_num", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L101", "weight": 1.0}, {"source": "services_oa_engine_rationale_114", "target": "services_oa_engine_sort_tasks_for_detail", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L114", "weight": 1.0}, {"source": "services_oa_engine_rationale_203", "target": "services_oa_engine_build_progress_items", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L203", "weight": 1.0}, {"source": "services_oa_engine_rationale_641", "target": "services_oa_engine_preview_start_flow", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L641", "weight": 1.0}, {"source": "services_oa_engine_rationale_801", "target": "services_oa_engine_advance_from", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L801", "weight": 1.0}, {"source": "services_oa_engine_rationale_1237", "target": "services_oa_engine_add_sign", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1237", "weight": 1.0}, {"source": "services_oa_engine_rationale_1352", "target": "services_oa_engine_return_task", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1352", "weight": 1.0}, {"source": "services_oa_engine_rationale_1434", "target": "services_oa_engine_resubmit_instance", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1434", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_engine_loads", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L33"}, {"caller_nid": "services_oa_engine_loads", "callee": "loads", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36"}, {"caller_nid": "services_oa_engine_dumps", "callee": "dumps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L42"}, {"caller_nid": "services_oa_engine_node_type", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L46"}, {"caller_nid": "services_oa_engine_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L46"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L50"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L52"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L52"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L60"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L62"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L63"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L67"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_flow_node_key_order", "callee": "walk", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L96"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L103"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L103"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L103"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L107"}, {"caller_nid": "services_oa_engine_next_task_order_num", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L108"}, {"caller_nid": "services_oa_engine_sort_tasks_for_detail", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L115"}, {"caller_nid": "services_oa_engine_sort_tasks_for_detail", "callee": "sorted", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_fmt_dt", "callee": "hasattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L134"}, {"caller_nid": "services_oa_engine_fmt_dt", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L135"}, {"caller_nid": "services_oa_engine_fmt_dt", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L136"}, {"caller_nid": "services_oa_engine_terminal_item", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L142"}, {"caller_nid": "services_oa_engine_terminal_item", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L147"}, {"caller_nid": "services_oa_engine_task_round", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L155"}, {"caller_nid": "services_oa_engine_task_round", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L159"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "sorted", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L172"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "items", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L172"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L179"}, {"caller_nid": "services_oa_engine_append_pending_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L183"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L204"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L205"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L206"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L206"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L209"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L211"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L211"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L211"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "sorted", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L212"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L216"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L217"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L217"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L221"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L223"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L223"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L224"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L226"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L228"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L235"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L244"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L244"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L247"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L254"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L259"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L263"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L265"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L266"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L273"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L274"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L275"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L276"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L278"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L281"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L287"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L289"}, {"caller_nid": "services_oa_engine_build_progress_items", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L291"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L306"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "OaInstanceEvent", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L307"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L308"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L315"}, {"caller_nid": "services_oa_engine_add_instance_event", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L326"}, {"caller_nid": "services_oa_engine_advanced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L332"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L333"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L334"}, {"caller_nid": "services_oa_engine_advanced", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L335"}, {"caller_nid": "services_oa_engine_check_initiator_scope", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L340"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L359"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L360"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L360"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L361"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L362"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L379"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L380"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L385"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L385"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L388"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L388"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L388"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L388"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L394"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L394"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L394"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L394"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L396"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L396"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L401"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L408"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L425"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L429"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L457"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L457"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L457"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L457"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L461"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L461"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L461"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L462"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "extend", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L465"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L468"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L468"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L468"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L471"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L479"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L484"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L484"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L484"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L485"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L490"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L490"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L491"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L491"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L494"}, {"caller_nid": "services_oa_engine_preview_people", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L502"}, {"caller_nid": "services_oa_engine_preview_people", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L502"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L518"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L522"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L524"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L526"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L534"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L538"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L540"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L542"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L553"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L555"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L557"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L559"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L559"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L561"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L569"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L570"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L581"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L585"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L586"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L586"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L586"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L587"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L587"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L587"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L597"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L597"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L597"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L602"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L613"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L614"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L616"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L618"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L626"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L629"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L642"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L646"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L651"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L651"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L651"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L659"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L664"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L664"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L665"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L666"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L693"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L702"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L705"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L715"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L717"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L717"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L717"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L718"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L723"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L724"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L726"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L727"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L734"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L734"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L746"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L747"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L754"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L756"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L757"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L759"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L763"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L765"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L769"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L771"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L772"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L773"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L776"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L777"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L779"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L780"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "eval_formula", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L785"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L785"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L818"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L820"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L830"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L831"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L834"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "max", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L846"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L846"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L849"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L855"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L875"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L879"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L883"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L892"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "apply_formulas_and_linkages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L894"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L899"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L899"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L899"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L903"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L905"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L906"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "startswith", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L907"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaInstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L909"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L910"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L930"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L933"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L936"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaRelation", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L937"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L938"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L969"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L970"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L976"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L976"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L976"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L987"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L989"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L989"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L989"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L994"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L994"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L994"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1006"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1006"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1006"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1016"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1018"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1023"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1025"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1025"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1026"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1026"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1028"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1028"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1028"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1028"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1030"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1035"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1044"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1044"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1044"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1044"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1050"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1064"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1066"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1066"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1074"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1074"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1079"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1082"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1082"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1090"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1090"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1090"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1090"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1096"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1103"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1103"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1103"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1116"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1121"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1121"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1121"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1137"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1137"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1137"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1145"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1145"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1148"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1149"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1153"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "flush", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1156"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1161"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1161"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1161"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1175"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1179"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1180"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1184"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1186"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1186"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1186"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1198"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1204"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1204"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1204"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1217"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1224"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1239"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1239"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1239"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1255"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1255"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1255"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1262"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1266"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1268"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1271"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1272"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1278"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1278"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1278"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1287"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1295"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1295"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1295"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1306"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1307"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1308"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1318"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1318"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1318"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1321"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1336"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1339"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1340"}, {"caller_nid": "services_oa_engine_return_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1354"}, {"caller_nid": "services_oa_engine_return_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1354"}, {"caller_nid": "services_oa_engine_return_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1354"}, {"caller_nid": "services_oa_engine_return_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1370"}, {"caller_nid": "services_oa_engine_return_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1370"}, {"caller_nid": "services_oa_engine_return_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1370"}, {"caller_nid": "services_oa_engine_return_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1377"}, {"caller_nid": "services_oa_engine_return_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1380"}, {"caller_nid": "services_oa_engine_return_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1384"}, {"caller_nid": "services_oa_engine_return_task", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1385"}, {"caller_nid": "services_oa_engine_return_task", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1385"}, {"caller_nid": "services_oa_engine_return_task", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1385"}, {"caller_nid": "services_oa_engine_return_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1390"}, {"caller_nid": "services_oa_engine_return_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1393"}, {"caller_nid": "services_oa_engine_return_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1393"}, {"caller_nid": "services_oa_engine_return_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1393"}, {"caller_nid": "services_oa_engine_return_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1405"}, {"caller_nid": "services_oa_engine_return_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1410"}, {"caller_nid": "services_oa_engine_return_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1421"}, {"caller_nid": "services_oa_engine_resubmit_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1442"}, {"caller_nid": "services_oa_engine_resubmit_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1442"}, {"caller_nid": "services_oa_engine_resubmit_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1442"}, {"caller_nid": "services_oa_engine_resubmit_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1450"}, {"caller_nid": "services_oa_engine_resubmit_instance", "callee": "apply_formulas_and_linkages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1452"}, {"caller_nid": "services_oa_engine_resubmit_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1456"}, {"caller_nid": "services_oa_engine_resubmit_instance", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1458"}, {"caller_nid": "services_oa_engine_resubmit_instance", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1458"}, {"caller_nid": "services_oa_engine_resubmit_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1462"}, {"caller_nid": "services_oa_engine_resubmit_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1478"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1491"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1491"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1491"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1495"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1496"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1499"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1503"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1505"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1505"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1505"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1512"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "int", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1518"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "getattr", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1518"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1520"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/c4e5451a4833f509fb884bd6b46060f64c9d52345cc0fd6d7256c21b472d435e.json b/backend/app/graphify-out/cache/ast/c4e5451a4833f509fb884bd6b46060f64c9d52345cc0fd6d7256c21b472d435e.json new file mode 100644 index 00000000..93e399a2 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/c4e5451a4833f509fb884bd6b46060f64c9d52345cc0fd6d7256c21b472d435e.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "label": "oa_approval.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L1"}, {"id": "api_oa_approval_get_tenant_no", "label": "_get_tenant_no()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L17"}, {"id": "api_oa_approval_oarolecreatebody", "label": "OaRoleCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L34"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "api_oa_approval_oaroleupdatebody", "label": "OaRoleUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L43"}, {"id": "api_oa_approval_oaroleusersbody", "label": "OaRoleUsersBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L51"}, {"id": "api_oa_approval_list_oa_roles", "label": "list_oa_roles()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L57"}, {"id": "api_oa_approval_ensure_oa_role_presets", "label": "ensure_oa_role_presets()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L69"}, {"id": "api_oa_approval_create_oa_role", "label": "create_oa_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L82"}, {"id": "api_oa_approval_update_oa_role", "label": "update_oa_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L105"}, {"id": "api_oa_approval_delete_oa_role", "label": "delete_oa_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L130"}, {"id": "api_oa_approval_list_oa_role_users", "label": "list_oa_role_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L144"}, {"id": "api_oa_approval_replace_oa_role_users", "label": "replace_oa_role_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L156"}, {"id": "api_oa_approval_oagroupcreatebody", "label": "OaGroupCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L184"}, {"id": "api_oa_approval_oagroupupdatebody", "label": "OaGroupUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L191"}, {"id": "api_oa_approval_list_oa_groups", "label": "list_oa_groups()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L199"}, {"id": "api_oa_approval_create_oa_group", "label": "create_oa_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L208"}, {"id": "api_oa_approval_update_oa_group", "label": "update_oa_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L229"}, {"id": "api_oa_approval_delete_oa_group", "label": "delete_oa_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L253"}, {"id": "api_oa_approval_oaappcreatebody", "label": "OaAppCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L271"}, {"id": "api_oa_approval_oaappupdatebody", "label": "OaAppUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L286"}, {"id": "api_oa_approval_oadraftsavebody", "label": "OaDraftSaveBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L301"}, {"id": "api_oa_approval_list_oa_apps", "label": "list_oa_apps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L310"}, {"id": "api_oa_approval_create_oa_app", "label": "create_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L325"}, {"id": "api_oa_approval_update_oa_app", "label": "update_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L361"}, {"id": "api_oa_approval_delete_oa_app", "label": "delete_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L381"}, {"id": "api_oa_approval_get_oa_app_draft", "label": "get_oa_app_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L395"}, {"id": "api_oa_approval_save_oa_app_draft", "label": "save_oa_app_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L411"}, {"id": "api_oa_approval_publish_oa_app", "label": "publish_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L435"}, {"id": "api_oa_approval_oastartinstancebody", "label": "OaStartInstanceBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L456"}, {"id": "api_oa_approval_oataskactionbody", "label": "OaTaskActionBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L466"}, {"id": "api_oa_approval_oaaddsignbody", "label": "OaAddSignBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L471"}, {"id": "api_oa_approval_list_oa_templates", "label": "list_oa_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L478"}, {"id": "api_oa_approval_get_oa_template", "label": "get_oa_template()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L490"}, {"id": "api_oa_approval_preview_oa_template_flow", "label": "preview_oa_template_flow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L511"}, {"id": "api_oa_approval_start_oa_instance", "label": "start_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L545"}, {"id": "api_oa_approval_get_oa_instance", "label": "get_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L571"}, {"id": "api_oa_approval_list_oa_tasks", "label": "list_oa_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L586"}, {"id": "api_oa_approval_approve_oa_task", "label": "approve_oa_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L604"}, {"id": "api_oa_approval_reject_oa_task", "label": "reject_oa_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L628"}, {"id": "api_oa_approval_add_sign_oa_task", "label": "add_sign_oa_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L652"}, {"id": "api_oa_approval_withdraw_oa_instance", "label": "withdraw_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L676"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "fastapi", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "pydantic", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_core_database", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_core_menu_guard", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_core_response", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_tenant_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oarolecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L34", "weight": 1.0}, {"source": "api_oa_approval_oarolecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L34", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaroleupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L43", "weight": 1.0}, {"source": "api_oa_approval_oaroleupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L43", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaroleusersbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L51", "weight": 1.0}, {"source": "api_oa_approval_oaroleusersbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L51", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_roles", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L57", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_ensure_oa_role_presets", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L69", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_create_oa_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L82", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_update_oa_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L105", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_delete_oa_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L130", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_role_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L144", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_replace_oa_role_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L156", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oagroupcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L184", "weight": 1.0}, {"source": "api_oa_approval_oagroupcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L184", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oagroupupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L191", "weight": 1.0}, {"source": "api_oa_approval_oagroupupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L191", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_groups", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L199", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_create_oa_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L208", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_update_oa_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L229", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_delete_oa_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L253", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaappcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L271", "weight": 1.0}, {"source": "api_oa_approval_oaappcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L271", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaappupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L286", "weight": 1.0}, {"source": "api_oa_approval_oaappupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L286", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oadraftsavebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L301", "weight": 1.0}, {"source": "api_oa_approval_oadraftsavebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L301", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_apps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L310", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_create_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L325", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_update_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L361", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_delete_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L381", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_oa_app_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L395", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_save_oa_app_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L411", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_publish_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L435", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oastartinstancebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L456", "weight": 1.0}, {"source": "api_oa_approval_oastartinstancebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L456", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oataskactionbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L466", "weight": 1.0}, {"source": "api_oa_approval_oataskactionbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L466", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaaddsignbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L471", "weight": 1.0}, {"source": "api_oa_approval_oaaddsignbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L471", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L478", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_oa_template", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L490", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_preview_oa_template_flow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L511", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_start_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L545", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L571", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L586", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_approve_oa_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L604", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_reject_oa_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L628", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_add_sign_oa_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L652", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_withdraw_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L676", "weight": 1.0}, {"source": "api_oa_approval_list_oa_roles", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L63", "weight": 1.0}, {"source": "api_oa_approval_ensure_oa_role_presets", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L73", "weight": 1.0}, {"source": "api_oa_approval_create_oa_role", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L88", "weight": 1.0}, {"source": "api_oa_approval_update_oa_role", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L112", "weight": 1.0}, {"source": "api_oa_approval_delete_oa_role", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L136", "weight": 1.0}, {"source": "api_oa_approval_list_oa_role_users", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L149", "weight": 1.0}, {"source": "api_oa_approval_replace_oa_role_users", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L163", "weight": 1.0}, {"source": "api_oa_approval_list_oa_groups", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L203", "weight": 1.0}, {"source": "api_oa_approval_create_oa_group", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L214", "weight": 1.0}, {"source": "api_oa_approval_update_oa_group", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L236", "weight": 1.0}, {"source": "api_oa_approval_delete_oa_group", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L259", "weight": 1.0}, {"source": "api_oa_approval_list_oa_apps", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L317", "weight": 1.0}, {"source": "api_oa_approval_create_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L331", "weight": 1.0}, {"source": "api_oa_approval_update_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L368", "weight": 1.0}, {"source": "api_oa_approval_delete_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L387", "weight": 1.0}, {"source": "api_oa_approval_get_oa_app_draft", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L401", "weight": 1.0}, {"source": "api_oa_approval_save_oa_app_draft", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L418", "weight": 1.0}, {"source": "api_oa_approval_publish_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L442", "weight": 1.0}, {"source": "api_oa_approval_list_oa_templates", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L484", "weight": 1.0}, {"source": "api_oa_approval_get_oa_template", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L498", "weight": 1.0}, {"source": "api_oa_approval_preview_oa_template_flow", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L521", "weight": 1.0}, {"source": "api_oa_approval_start_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L553", "weight": 1.0}, {"source": "api_oa_approval_get_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L579", "weight": 1.0}, {"source": "api_oa_approval_list_oa_tasks", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L594", "weight": 1.0}, {"source": "api_oa_approval_approve_oa_task", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L613", "weight": 1.0}, {"source": "api_oa_approval_reject_oa_task", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L637", "weight": 1.0}, {"source": "api_oa_approval_add_sign_oa_task", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L661", "weight": 1.0}, {"source": "api_oa_approval_withdraw_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L684", "weight": 1.0}], "raw_calls": [{"caller_nid": "api_oa_approval_get_tenant_no", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L18"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L18"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L21"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L23"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L23"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L23"}, {"caller_nid": "api_oa_approval_list_oa_roles", "callee": "list_roles", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L64"}, {"caller_nid": "api_oa_approval_list_oa_roles", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L65"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "ensure_presets", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L74"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L74"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L75"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L76"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "create_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L89"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L97"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L99"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "_role_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L99"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L101"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L101"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L113"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "update_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L114"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L118"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L119"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L120"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L121"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L122"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L124"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "_role_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L124"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L126"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L126"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "delete_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L137"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L137"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L138"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L140"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L140"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "get_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L150"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L151"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L152"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "list_role_users", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L152"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "replace_role_users", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L164"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L169"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L171"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "list_role_users", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L172"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L176"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L176"}, {"caller_nid": "api_oa_approval_list_oa_groups", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L204"}, {"caller_nid": "api_oa_approval_list_oa_groups", "callee": "list_groups", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L204"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "create_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L215"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L221"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L223"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "_group_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L223"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L225"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L225"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L237"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "update_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L238"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L242"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L243"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L244"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L245"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L247"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "_group_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L247"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L249"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L249"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "delete_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L260"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L260"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L261"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L263"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L263"}, {"caller_nid": "api_oa_approval_list_oa_apps", "callee": "list_apps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L318"}, {"caller_nid": "api_oa_approval_list_oa_apps", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L321"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "create_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L332"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L346"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "get_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L350"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L352"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "_app_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L353"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L357"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L357"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L369"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "update_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L370"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L370"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "get_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L373"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L375"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "_app_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L375"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L377"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L377"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "delete_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L388"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L388"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L389"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L391"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L391"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "get_or_create_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L402"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L403"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L405"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L407"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L407"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "save_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L419"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L427"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L429"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L431"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L431"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "publish_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L443"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L444"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L447"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L448"}, {"caller_nid": "api_oa_approval_list_oa_templates", "callee": "list_templates", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L485"}, {"caller_nid": "api_oa_approval_list_oa_templates", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L485"}, {"caller_nid": "api_oa_approval_list_oa_templates", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L486"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "get_template_detail", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L499"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L503"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L505"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L507"}, {"caller_nid": "api_oa_approval_get_oa_template", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L507"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L522"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L525"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L525"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L525"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L530"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "split", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L530"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L530"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "preview_start_flow", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L531"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L539"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L541"}, {"caller_nid": "api_oa_approval_preview_oa_template_flow", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L541"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "start_instance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L554"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L558"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L565"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L567"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L567"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L580"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "get_instance_detail", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L580"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L582"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L582"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "list_tasks", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L595"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L596"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L598"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L600"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L600"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "complete_task", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L614"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L618"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L622"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L624"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L624"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "complete_task", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L638"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L642"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L646"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L648"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L648"}, {"caller_nid": "api_oa_approval_add_sign_oa_task", "callee": "add_sign", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L662"}, {"caller_nid": "api_oa_approval_add_sign_oa_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L666"}, {"caller_nid": "api_oa_approval_add_sign_oa_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L670"}, {"caller_nid": "api_oa_approval_add_sign_oa_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L672"}, {"caller_nid": "api_oa_approval_add_sign_oa_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L672"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "withdraw_instance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L685"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L686"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L688"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L690"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L690"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/cb0515d6fd30a48d534d474f3a8fb4bafe8858888b419507e68815092238b029.json b/backend/app/graphify-out/cache/ast/cb0515d6fd30a48d534d474f3a8fb4bafe8858888b419507e68815092238b029.json new file mode 100644 index 00000000..17c64e87 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/cb0515d6fd30a48d534d474f3a8fb4bafe8858888b419507e68815092238b029.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "label": "oa_approval.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L1"}, {"id": "crud_oa_approval_dumps", "label": "_dumps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L23"}, {"id": "crud_oa_approval_loads", "label": "_loads()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L31"}, {"id": "crud_oa_approval_role_to_dict", "label": "_role_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L47"}, {"id": "crud_oa_approval_ensure_presets", "label": "ensure_presets()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L63"}, {"id": "crud_oa_approval_member_count_map", "label": "_member_count_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L104"}, {"id": "crud_oa_approval_list_roles", "label": "list_roles()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L122"}, {"id": "crud_oa_approval_get_role", "label": "get_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L142"}, {"id": "crud_oa_approval_create_role", "label": "create_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L150"}, {"id": "crud_oa_approval_update_role", "label": "update_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L199"}, {"id": "crud_oa_approval_delete_role", "label": "delete_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L232"}, {"id": "crud_oa_approval_list_role_users", "label": "list_role_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L245"}, {"id": "crud_oa_approval_replace_role_users", "label": "replace_role_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L269"}, {"id": "crud_oa_approval_list_oa_role_user_ids", "label": "list_oa_role_user_ids()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L320"}, {"id": "crud_oa_approval_group_to_dict", "label": "_group_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L359"}, {"id": "crud_oa_approval_list_groups", "label": "list_groups()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L371"}, {"id": "crud_oa_approval_get_group", "label": "get_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L381"}, {"id": "crud_oa_approval_create_group", "label": "create_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L389"}, {"id": "crud_oa_approval_update_group", "label": "update_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L421"}, {"id": "crud_oa_approval_delete_group", "label": "delete_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L451"}, {"id": "crud_oa_approval_app_to_dict", "label": "_app_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L474"}, {"id": "crud_oa_approval_get_app", "label": "get_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L497"}, {"id": "crud_oa_approval_list_apps", "label": "list_apps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L505"}, {"id": "crud_oa_approval_create_version", "label": "_create_version()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L565"}, {"id": "crud_oa_approval_create_app", "label": "create_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L602"}, {"id": "crud_oa_approval_update_app", "label": "update_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L666"}, {"id": "crud_oa_approval_delete_app", "label": "delete_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L728"}, {"id": "crud_oa_approval_find_draft", "label": "_find_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L749"}, {"id": "crud_oa_approval_find_latest_published", "label": "_find_latest_published()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L763"}, {"id": "crud_oa_approval_version_draft_to_dict", "label": "_version_draft_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L776"}, {"id": "crud_oa_approval_get_or_create_draft", "label": "get_or_create_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L809"}, {"id": "crud_oa_approval_save_draft", "label": "save_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L856"}, {"id": "crud_oa_approval_rationale_1", "label": "OA \u5ba1\u6279 CRUD\uff08\u5de5\u4f5c\u6d41\u89d2\u8272\u3001\u5206\u7ec4\u3001\u5e94\u7528\u3001\u8349\u7a3f\u7b49\uff09", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L1"}, {"id": "crud_oa_approval_rationale_64", "label": "\u5e42\u7b49\u5199\u5165\u9884\u7f6e\u89d2\u8272 GM / CHAIRMAN\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L64"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_dumps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_loads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L31", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_role_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L47", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_ensure_presets", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L63", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_member_count_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L104", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_list_roles", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L122", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_get_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L142", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_create_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L150", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_update_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L199", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_delete_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L232", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_list_role_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L245", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_replace_role_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L269", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_list_oa_role_user_ids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L320", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_group_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L359", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_list_groups", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L371", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_get_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L381", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_create_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L389", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_update_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L421", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_delete_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L451", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_app_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L474", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_get_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L497", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_list_apps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L505", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_create_version", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L565", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_create_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L602", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_update_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L666", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_delete_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L728", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_find_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L749", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_find_latest_published", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L763", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_version_draft_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L776", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_get_or_create_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L809", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "target": "crud_oa_approval_save_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L856", "weight": 1.0}, {"source": "crud_oa_approval_list_roles", "target": "crud_oa_approval_ensure_presets", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L129", "weight": 1.0}, {"source": "crud_oa_approval_list_roles", "target": "crud_oa_approval_member_count_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L138", "weight": 1.0}, {"source": "crud_oa_approval_list_roles", "target": "crud_oa_approval_role_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L139", "weight": 1.0}, {"source": "crud_oa_approval_update_role", "target": "crud_oa_approval_get_role", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L210", "weight": 1.0}, {"source": "crud_oa_approval_delete_role", "target": "crud_oa_approval_get_role", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L233", "weight": 1.0}, {"source": "crud_oa_approval_replace_role_users", "target": "crud_oa_approval_get_role", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L277", "weight": 1.0}, {"source": "crud_oa_approval_list_groups", "target": "crud_oa_approval_group_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L378", "weight": 1.0}, {"source": "crud_oa_approval_update_group", "target": "crud_oa_approval_get_group", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L431", "weight": 1.0}, {"source": "crud_oa_approval_delete_group", "target": "crud_oa_approval_get_group", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L452", "weight": 1.0}, {"source": "crud_oa_approval_app_to_dict", "target": "crud_oa_approval_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L483", "weight": 1.0}, {"source": "crud_oa_approval_list_apps", "target": "crud_oa_approval_app_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L555", "weight": 1.0}, {"source": "crud_oa_approval_create_version", "target": "crud_oa_approval_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L585", "weight": 1.0}, {"source": "crud_oa_approval_create_app", "target": "crud_oa_approval_get_group", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L625", "weight": 1.0}, {"source": "crud_oa_approval_create_app", "target": "crud_oa_approval_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L635", "weight": 1.0}, {"source": "crud_oa_approval_create_app", "target": "crud_oa_approval_create_version", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L650", "weight": 1.0}, {"source": "crud_oa_approval_update_app", "target": "crud_oa_approval_get_app", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L684", "weight": 1.0}, {"source": "crud_oa_approval_update_app", "target": "crud_oa_approval_get_group", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L696", "weight": 1.0}, {"source": "crud_oa_approval_update_app", "target": "crud_oa_approval_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L709", "weight": 1.0}, {"source": "crud_oa_approval_delete_app", "target": "crud_oa_approval_get_app", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L729", "weight": 1.0}, {"source": "crud_oa_approval_version_draft_to_dict", "target": "crud_oa_approval_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L777", "weight": 1.0}, {"source": "crud_oa_approval_get_or_create_draft", "target": "crud_oa_approval_get_app", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L812", "weight": 1.0}, {"source": "crud_oa_approval_get_or_create_draft", "target": "crud_oa_approval_find_draft", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L815", "weight": 1.0}, {"source": "crud_oa_approval_get_or_create_draft", "target": "crud_oa_approval_version_draft_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L817", "weight": 1.0}, {"source": "crud_oa_approval_get_or_create_draft", "target": "crud_oa_approval_find_latest_published", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L818", "weight": 1.0}, {"source": "crud_oa_approval_get_or_create_draft", "target": "crud_oa_approval_create_version", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L821", "weight": 1.0}, {"source": "crud_oa_approval_get_or_create_draft", "target": "crud_oa_approval_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L827", "weight": 1.0}, {"source": "crud_oa_approval_save_draft", "target": "crud_oa_approval_get_app", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L867", "weight": 1.0}, {"source": "crud_oa_approval_save_draft", "target": "crud_oa_approval_get_or_create_draft", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L871", "weight": 1.0}, {"source": "crud_oa_approval_save_draft", "target": "crud_oa_approval_find_draft", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L872", "weight": 1.0}, {"source": "crud_oa_approval_save_draft", "target": "crud_oa_approval_update_app", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L891", "weight": 1.0}, {"source": "crud_oa_approval_save_draft", "target": "crud_oa_approval_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L898", "weight": 1.0}, {"source": "crud_oa_approval_save_draft", "target": "crud_oa_approval_version_draft_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L914", "weight": 1.0}, {"source": "crud_oa_approval_rationale_1", "target": "users_wuzilong_work_00code_zkxw_backend_app_crud_oa_approval_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L1", "weight": 1.0}, {"source": "crud_oa_approval_rationale_64", "target": "crud_oa_approval_ensure_presets", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L64", "weight": 1.0}], "raw_calls": [{"caller_nid": "crud_oa_approval_dumps", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L26"}, {"caller_nid": "crud_oa_approval_dumps", "callee": "dumps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L28"}, {"caller_nid": "crud_oa_approval_loads", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L34"}, {"caller_nid": "crud_oa_approval_loads", "callee": "loads", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L37"}, {"caller_nid": "crud_oa_approval_role_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L58"}, {"caller_nid": "crud_oa_approval_role_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L59"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L65"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L69"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L69"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L69"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "OaRole", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L79"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L80"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L95"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L96"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L98"}, {"caller_nid": "crud_oa_approval_ensure_presets", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L100"}, {"caller_nid": "crud_oa_approval_member_count_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L108"}, {"caller_nid": "crud_oa_approval_member_count_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L108"}, {"caller_nid": "crud_oa_approval_member_count_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L108"}, {"caller_nid": "crud_oa_approval_member_count_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L110"}, {"caller_nid": "crud_oa_approval_member_count_map", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L118"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L130"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L130"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L131"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L134"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L134"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L134"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L136"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L137"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L137"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L137"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L137"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L137"}, {"caller_nid": "crud_oa_approval_list_roles", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L139"}, {"caller_nid": "crud_oa_approval_get_role", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L144"}, {"caller_nid": "crud_oa_approval_get_role", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L144"}, {"caller_nid": "crud_oa_approval_get_role", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L144"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L161"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L162"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L162"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L164"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L166"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L168"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L170"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L170"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L170"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L175"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L176"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "OaRole", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L177"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L178"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L185"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L193"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L194"}, {"caller_nid": "crud_oa_approval_create_role", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L195"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L212"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L214"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L216"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L223"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L225"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L226"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L227"}, {"caller_nid": "crud_oa_approval_update_role", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L228"}, {"caller_nid": "crud_oa_approval_delete_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L235"}, {"caller_nid": "crud_oa_approval_delete_role", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L237"}, {"caller_nid": "crud_oa_approval_delete_role", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L240"}, {"caller_nid": "crud_oa_approval_delete_role", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L241"}, {"caller_nid": "crud_oa_approval_delete_role", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L242"}, {"caller_nid": "crud_oa_approval_list_role_users", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L247"}, {"caller_nid": "crud_oa_approval_list_role_users", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L247"}, {"caller_nid": "crud_oa_approval_list_role_users", "callee": "outerjoin", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L247"}, {"caller_nid": "crud_oa_approval_list_role_users", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L247"}, {"caller_nid": "crud_oa_approval_list_role_users", "callee": "and_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L248"}, {"caller_nid": "crud_oa_approval_list_role_users", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L258"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L279"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L280"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L282"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L282"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L282"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L294"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L295"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L297"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L300"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L301"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "OaRoleUser", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L302"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L303"}, {"caller_nid": "crud_oa_approval_replace_role_users", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L317"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L325"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L325"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L325"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L327"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L337"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L337"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L337"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L339"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L339"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L346"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L349"}, {"caller_nid": "crud_oa_approval_list_oa_role_user_ids", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L350"}, {"caller_nid": "crud_oa_approval_group_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L366"}, {"caller_nid": "crud_oa_approval_group_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L367"}, {"caller_nid": "crud_oa_approval_list_groups", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L373"}, {"caller_nid": "crud_oa_approval_list_groups", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L373"}, {"caller_nid": "crud_oa_approval_list_groups", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L373"}, {"caller_nid": "crud_oa_approval_list_groups", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L373"}, {"caller_nid": "crud_oa_approval_list_groups", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L375"}, {"caller_nid": "crud_oa_approval_list_groups", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L375"}, {"caller_nid": "crud_oa_approval_get_group", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L383"}, {"caller_nid": "crud_oa_approval_get_group", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L383"}, {"caller_nid": "crud_oa_approval_get_group", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L383"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L398"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L400"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L401"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "OaAppGroup", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L402"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L403"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L407"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L415"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L416"}, {"caller_nid": "crud_oa_approval_create_group", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L417"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L433"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L435"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L437"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L442"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L444"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L445"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L446"}, {"caller_nid": "crud_oa_approval_update_group", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L447"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L454"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L456"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L456"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L456"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L461"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L464"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L465"}, {"caller_nid": "crud_oa_approval_delete_group", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L466"}, {"caller_nid": "crud_oa_approval_app_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L492"}, {"caller_nid": "crud_oa_approval_app_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L493"}, {"caller_nid": "crud_oa_approval_get_app", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L499"}, {"caller_nid": "crud_oa_approval_get_app", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L499"}, {"caller_nid": "crud_oa_approval_get_app", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L499"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L513"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L513"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L515"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L517"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L518"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L521"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L521"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L522"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L522"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L522"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L522"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L523"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L527"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L527"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L527"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L528"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L535"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L535"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L535"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L545"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L545"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L545"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L554"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L557"}, {"caller_nid": "crud_oa_approval_list_apps", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L558"}, {"caller_nid": "crud_oa_approval_create_version", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L578"}, {"caller_nid": "crud_oa_approval_create_version", "callee": "OaAppVersion", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L579"}, {"caller_nid": "crud_oa_approval_create_version", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L580"}, {"caller_nid": "crud_oa_approval_create_version", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L598"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L619"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L621"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L622"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L623"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L624"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L626"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L627"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "OaApp", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L628"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L629"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L632"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L633"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L641"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L649"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L661"}, {"caller_nid": "crud_oa_approval_create_app", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L662"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L686"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L688"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L690"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L691"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L692"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L695"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L697"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L700"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L702"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L703"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L704"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L719"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L721"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L722"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L723"}, {"caller_nid": "crud_oa_approval_update_app", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L724"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L731"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L732"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L736"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L738"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L738"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L738"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L745"}, {"caller_nid": "crud_oa_approval_delete_app", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L746"}, {"caller_nid": "crud_oa_approval_find_draft", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L751"}, {"caller_nid": "crud_oa_approval_find_draft", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L751"}, {"caller_nid": "crud_oa_approval_find_draft", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L751"}, {"caller_nid": "crud_oa_approval_find_draft", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L751"}, {"caller_nid": "crud_oa_approval_find_draft", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L758"}, {"caller_nid": "crud_oa_approval_find_latest_published", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L765"}, {"caller_nid": "crud_oa_approval_find_latest_published", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L765"}, {"caller_nid": "crud_oa_approval_find_latest_published", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L765"}, {"caller_nid": "crud_oa_approval_version_draft_to_dict", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L778"}, {"caller_nid": "crud_oa_approval_version_draft_to_dict", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L779"}, {"caller_nid": "crud_oa_approval_version_draft_to_dict", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L781"}, {"caller_nid": "crud_oa_approval_version_draft_to_dict", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L782"}, {"caller_nid": "crud_oa_approval_version_draft_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L805"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L814"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L834"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L834"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L834"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L834"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L836"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L851"}, {"caller_nid": "crud_oa_approval_get_or_create_draft", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L852"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L869"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L874"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "ValueError", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L895"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L896"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L902"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L903"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L904"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L910"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L911"}, {"caller_nid": "crud_oa_approval_save_draft", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/crud/oa_approval.py", "source_location": "L912"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/de3803c7e9ddbadc627c27d56428eec1c259772b4f5bf4e06a8085bcb563b363.json b/backend/app/graphify-out/cache/ast/de3803c7e9ddbadc627c27d56428eec1c259772b4f5bf4e06a8085bcb563b363.json new file mode 100644 index 00000000..4ab61dae --- /dev/null +++ b/backend/app/graphify-out/cache/ast/de3803c7e9ddbadc627c27d56428eec1c259772b4f5bf4e06a8085bcb563b363.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "label": "oa_engine.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1"}, {"id": "services_oa_engine_oaengineerror", "label": "OaEngineError", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "services_oa_engine_loads", "label": "_loads()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21"}, {"id": "services_oa_engine_dumps", "label": "_dumps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32"}, {"id": "services_oa_engine_node_type", "label": "_node_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36"}, {"id": "services_oa_engine_flow_root", "label": "_flow_root()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40"}, {"id": "services_oa_engine_find_node", "label": "_find_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48"}, {"id": "services_oa_engine_advanced", "label": "_advanced()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66"}, {"id": "services_oa_engine_check_initiator_scope", "label": "_check_initiator_scope()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75"}, {"id": "services_oa_engine_instance_to_dict", "label": "_instance_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L84"}, {"id": "services_oa_engine_task_to_dict", "label": "_task_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100"}, {"id": "services_oa_engine_list_templates", "label": "list_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L117"}, {"id": "services_oa_engine_get_template_detail", "label": "get_template_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L147"}, {"id": "services_oa_engine_create_tasks_for_node", "label": "_create_tasks_for_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L171"}, {"id": "services_oa_engine_match_condition_group", "label": "_match_condition_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L236"}, {"id": "services_oa_engine_advance_from", "label": "advance_from()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L277"}, {"id": "services_oa_engine_start_instance", "label": "start_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L343"}, {"id": "services_oa_engine_get_instance", "label": "_get_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L434"}, {"id": "services_oa_engine_get_instance_detail", "label": "get_instance_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L445"}, {"id": "services_oa_engine_list_tasks", "label": "list_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L471"}, {"id": "services_oa_engine_complete_task", "label": "complete_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L521"}, {"id": "services_oa_engine_withdraw_instance", "label": "withdraw_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L636"}, {"id": "services_oa_engine_rationale_286", "label": "\u4ece\u67d0\u8282\u70b9\u7684\u4e0b\u4e00\u8df3\u5f00\u59cb\u63a8\u8fdb\uff1bfrom_node \u4e3a None \u8868\u793a\u4ece start \u8fdb\u5165\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L286"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_assignee", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_formula", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_oaengineerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "services_oa_engine_oaengineerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_loads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_dumps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_node_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_root", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_find_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advanced", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_check_initiator_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_instance_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L84", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L117", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_template_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L147", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_create_tasks_for_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L171", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_match_condition_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L236", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advance_from", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L277", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_start_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L343", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L434", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L445", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L471", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_complete_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L521", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_withdraw_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L636", "weight": 1.0}, {"source": "services_oa_engine_flow_root", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L42", "weight": 1.0}, {"source": "services_oa_engine_advanced", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L67", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L79", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L81", "weight": 1.0}, {"source": "services_oa_engine_instance_to_dict", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L93", "weight": 1.0}, {"source": "services_oa_engine_list_templates", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L130", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L152", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L153", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L165", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L167", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L180", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L191", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L203", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L287", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L287", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L303", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_create_tasks_for_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L320", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L333", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L357", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L358", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L363", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L385", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L421", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L431", "weight": 1.0}, {"source": "services_oa_engine_get_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L441", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L446", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L464", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L465", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L467", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L513", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L515", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L518", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L532", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L546", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L558", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L591", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L627", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L627", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L628", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L631", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L639", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L641", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L649", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L668", "weight": 1.0}, {"source": "services_oa_engine_rationale_286", "target": "services_oa_engine_advance_from", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L286", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_engine_loads", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L24"}, {"caller_nid": "services_oa_engine_loads", "callee": "loads", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L27"}, {"caller_nid": "services_oa_engine_dumps", "callee": "dumps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L33"}, {"caller_nid": "services_oa_engine_node_type", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L51"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L53"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L54"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L58"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_advanced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L69"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L70"}, {"caller_nid": "services_oa_engine_advanced", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L71"}, {"caller_nid": "services_oa_engine_check_initiator_scope", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L76"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L95"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L96"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L112"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L113"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L121"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L121"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L126"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L133"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L150"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L154"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L181"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L190"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L193"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L203"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L205"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L205"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L205"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L206"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L210"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L211"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L213"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L214"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L231"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L232"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L239"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L241"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L242"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L244"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L248"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L250"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L254"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L256"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L257"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L258"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L261"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L262"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L264"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L265"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "eval_formula", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L270"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L270"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L303"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L305"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L313"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L314"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L317"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L330"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L336"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L355"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L359"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L364"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "apply_formulas_and_linkages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L366"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L371"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L371"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L371"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L375"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L377"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaInstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L378"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L379"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L382"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L397"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L400"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L403"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaRelation", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L404"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L405"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L429"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L430"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L436"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L436"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L436"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L447"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L449"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L449"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L449"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L454"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L456"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L460"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L460"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L460"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L478"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L480"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L480"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L488"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L488"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L493"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L496"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L496"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L504"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L504"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L504"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L504"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L510"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L517"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L517"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L517"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L530"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L535"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L535"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L535"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L551"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L551"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L551"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L559"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L559"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L562"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L563"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L567"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L572"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L572"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L572"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L585"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L589"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L590"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L594"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L596"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L596"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L596"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L607"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L613"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L613"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L613"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L625"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L632"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L645"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L645"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L645"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L649"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L650"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L653"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L657"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L659"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L659"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L659"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L666"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L667"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/e3604527668978c7a3c671768f42fd7d91d855f50e8f3273a000b9aefdf36b5b.json b/backend/app/graphify-out/cache/ast/e3604527668978c7a3c671768f42fd7d91d855f50e8f3273a000b9aefdf36b5b.json new file mode 100644 index 00000000..bab0a978 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/e3604527668978c7a3c671768f42fd7d91d855f50e8f3273a000b9aefdf36b5b.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "label": "oa_approval.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L1"}, {"id": "api_oa_approval_get_tenant_no", "label": "_get_tenant_no()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L17"}, {"id": "api_oa_approval_oarolecreatebody", "label": "OaRoleCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L34"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "api_oa_approval_oaroleupdatebody", "label": "OaRoleUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L43"}, {"id": "api_oa_approval_oaroleusersbody", "label": "OaRoleUsersBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L51"}, {"id": "api_oa_approval_list_oa_roles", "label": "list_oa_roles()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L57"}, {"id": "api_oa_approval_ensure_oa_role_presets", "label": "ensure_oa_role_presets()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L69"}, {"id": "api_oa_approval_create_oa_role", "label": "create_oa_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L82"}, {"id": "api_oa_approval_update_oa_role", "label": "update_oa_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L105"}, {"id": "api_oa_approval_delete_oa_role", "label": "delete_oa_role()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L130"}, {"id": "api_oa_approval_list_oa_role_users", "label": "list_oa_role_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L144"}, {"id": "api_oa_approval_replace_oa_role_users", "label": "replace_oa_role_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L156"}, {"id": "api_oa_approval_oagroupcreatebody", "label": "OaGroupCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L184"}, {"id": "api_oa_approval_oagroupupdatebody", "label": "OaGroupUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L191"}, {"id": "api_oa_approval_list_oa_groups", "label": "list_oa_groups()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L199"}, {"id": "api_oa_approval_create_oa_group", "label": "create_oa_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L208"}, {"id": "api_oa_approval_update_oa_group", "label": "update_oa_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L229"}, {"id": "api_oa_approval_delete_oa_group", "label": "delete_oa_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L253"}, {"id": "api_oa_approval_oaappcreatebody", "label": "OaAppCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L271"}, {"id": "api_oa_approval_oaappupdatebody", "label": "OaAppUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L286"}, {"id": "api_oa_approval_oadraftsavebody", "label": "OaDraftSaveBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L301"}, {"id": "api_oa_approval_list_oa_apps", "label": "list_oa_apps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L310"}, {"id": "api_oa_approval_create_oa_app", "label": "create_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L325"}, {"id": "api_oa_approval_update_oa_app", "label": "update_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L361"}, {"id": "api_oa_approval_delete_oa_app", "label": "delete_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L381"}, {"id": "api_oa_approval_get_oa_app_draft", "label": "get_oa_app_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L395"}, {"id": "api_oa_approval_save_oa_app_draft", "label": "save_oa_app_draft()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L411"}, {"id": "api_oa_approval_publish_oa_app", "label": "publish_oa_app()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L435"}, {"id": "api_oa_approval_oastartinstancebody", "label": "OaStartInstanceBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L456"}, {"id": "api_oa_approval_oataskactionbody", "label": "OaTaskActionBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L466"}, {"id": "api_oa_approval_list_oa_templates", "label": "list_oa_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L472"}, {"id": "api_oa_approval_start_oa_instance", "label": "start_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L484"}, {"id": "api_oa_approval_get_oa_instance", "label": "get_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L510"}, {"id": "api_oa_approval_list_oa_tasks", "label": "list_oa_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L525"}, {"id": "api_oa_approval_approve_oa_task", "label": "approve_oa_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L543"}, {"id": "api_oa_approval_reject_oa_task", "label": "reject_oa_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L567"}, {"id": "api_oa_approval_withdraw_oa_instance", "label": "withdraw_oa_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L591"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "fastapi", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "pydantic", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_core_database", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_core_menu_guard", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_core_response", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_tenant_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oarolecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L34", "weight": 1.0}, {"source": "api_oa_approval_oarolecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L34", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaroleupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L43", "weight": 1.0}, {"source": "api_oa_approval_oaroleupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L43", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaroleusersbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L51", "weight": 1.0}, {"source": "api_oa_approval_oaroleusersbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L51", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_roles", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L57", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_ensure_oa_role_presets", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L69", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_create_oa_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L82", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_update_oa_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L105", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_delete_oa_role", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L130", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_role_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L144", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_replace_oa_role_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L156", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oagroupcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L184", "weight": 1.0}, {"source": "api_oa_approval_oagroupcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L184", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oagroupupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L191", "weight": 1.0}, {"source": "api_oa_approval_oagroupupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L191", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_groups", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L199", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_create_oa_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L208", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_update_oa_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L229", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_delete_oa_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L253", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaappcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L271", "weight": 1.0}, {"source": "api_oa_approval_oaappcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L271", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oaappupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L286", "weight": 1.0}, {"source": "api_oa_approval_oaappupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L286", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oadraftsavebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L301", "weight": 1.0}, {"source": "api_oa_approval_oadraftsavebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L301", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_apps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L310", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_create_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L325", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_update_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L361", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_delete_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L381", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_oa_app_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L395", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_save_oa_app_draft", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L411", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_publish_oa_app", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L435", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oastartinstancebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L456", "weight": 1.0}, {"source": "api_oa_approval_oastartinstancebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L456", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_oataskactionbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L466", "weight": 1.0}, {"source": "api_oa_approval_oataskactionbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L466", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L472", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_start_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L484", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_get_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L510", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_list_oa_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L525", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_approve_oa_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L543", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_reject_oa_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L567", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_oa_approval_py", "target": "api_oa_approval_withdraw_oa_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L591", "weight": 1.0}, {"source": "api_oa_approval_list_oa_roles", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L63", "weight": 1.0}, {"source": "api_oa_approval_ensure_oa_role_presets", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L73", "weight": 1.0}, {"source": "api_oa_approval_create_oa_role", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L88", "weight": 1.0}, {"source": "api_oa_approval_update_oa_role", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L112", "weight": 1.0}, {"source": "api_oa_approval_delete_oa_role", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L136", "weight": 1.0}, {"source": "api_oa_approval_list_oa_role_users", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L149", "weight": 1.0}, {"source": "api_oa_approval_replace_oa_role_users", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L163", "weight": 1.0}, {"source": "api_oa_approval_list_oa_groups", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L203", "weight": 1.0}, {"source": "api_oa_approval_create_oa_group", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L214", "weight": 1.0}, {"source": "api_oa_approval_update_oa_group", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L236", "weight": 1.0}, {"source": "api_oa_approval_delete_oa_group", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L259", "weight": 1.0}, {"source": "api_oa_approval_list_oa_apps", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L317", "weight": 1.0}, {"source": "api_oa_approval_create_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L331", "weight": 1.0}, {"source": "api_oa_approval_update_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L368", "weight": 1.0}, {"source": "api_oa_approval_delete_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L387", "weight": 1.0}, {"source": "api_oa_approval_get_oa_app_draft", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L401", "weight": 1.0}, {"source": "api_oa_approval_save_oa_app_draft", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L418", "weight": 1.0}, {"source": "api_oa_approval_publish_oa_app", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L442", "weight": 1.0}, {"source": "api_oa_approval_list_oa_templates", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L478", "weight": 1.0}, {"source": "api_oa_approval_start_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L492", "weight": 1.0}, {"source": "api_oa_approval_get_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L518", "weight": 1.0}, {"source": "api_oa_approval_list_oa_tasks", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L533", "weight": 1.0}, {"source": "api_oa_approval_approve_oa_task", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L552", "weight": 1.0}, {"source": "api_oa_approval_reject_oa_task", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L576", "weight": 1.0}, {"source": "api_oa_approval_withdraw_oa_instance", "target": "api_oa_approval_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L599", "weight": 1.0}], "raw_calls": [{"caller_nid": "api_oa_approval_get_tenant_no", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L18"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L18"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L21"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L23"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L23"}, {"caller_nid": "api_oa_approval_get_tenant_no", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L23"}, {"caller_nid": "api_oa_approval_list_oa_roles", "callee": "list_roles", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L64"}, {"caller_nid": "api_oa_approval_list_oa_roles", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L65"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "ensure_presets", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L74"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L74"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L75"}, {"caller_nid": "api_oa_approval_ensure_oa_role_presets", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L76"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "create_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L89"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L97"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L99"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "_role_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L99"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L101"}, {"caller_nid": "api_oa_approval_create_oa_role", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L101"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L113"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "update_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L114"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L118"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L119"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L120"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L121"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L122"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L124"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "_role_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L124"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L126"}, {"caller_nid": "api_oa_approval_update_oa_role", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L126"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "delete_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L137"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L137"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L138"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L140"}, {"caller_nid": "api_oa_approval_delete_oa_role", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L140"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "get_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L150"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L151"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L152"}, {"caller_nid": "api_oa_approval_list_oa_role_users", "callee": "list_role_users", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L152"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "replace_role_users", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L164"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L169"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L171"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "list_role_users", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L172"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L176"}, {"caller_nid": "api_oa_approval_replace_oa_role_users", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L176"}, {"caller_nid": "api_oa_approval_list_oa_groups", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L204"}, {"caller_nid": "api_oa_approval_list_oa_groups", "callee": "list_groups", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L204"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "create_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L215"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L221"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L223"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "_group_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L223"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L225"}, {"caller_nid": "api_oa_approval_create_oa_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L225"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L237"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "update_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L238"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L242"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L243"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L244"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L245"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L247"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "_group_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L247"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L249"}, {"caller_nid": "api_oa_approval_update_oa_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L249"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "delete_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L260"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L260"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L261"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L263"}, {"caller_nid": "api_oa_approval_delete_oa_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L263"}, {"caller_nid": "api_oa_approval_list_oa_apps", "callee": "list_apps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L318"}, {"caller_nid": "api_oa_approval_list_oa_apps", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L321"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "create_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L332"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L346"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "get_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L350"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L352"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "_app_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L353"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L357"}, {"caller_nid": "api_oa_approval_create_oa_app", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L357"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L369"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "update_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L370"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L370"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "get_group", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L373"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L375"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "_app_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L375"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L377"}, {"caller_nid": "api_oa_approval_update_oa_app", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L377"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "delete_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L388"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L388"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L389"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L391"}, {"caller_nid": "api_oa_approval_delete_oa_app", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L391"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "get_or_create_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L402"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L403"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L405"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L407"}, {"caller_nid": "api_oa_approval_get_oa_app_draft", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L407"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "save_draft", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L419"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L427"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L429"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L431"}, {"caller_nid": "api_oa_approval_save_oa_app_draft", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L431"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "publish_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L443"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L444"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L447"}, {"caller_nid": "api_oa_approval_publish_oa_app", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L448"}, {"caller_nid": "api_oa_approval_list_oa_templates", "callee": "list_templates", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L479"}, {"caller_nid": "api_oa_approval_list_oa_templates", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L479"}, {"caller_nid": "api_oa_approval_list_oa_templates", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L480"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "start_instance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L493"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L497"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L504"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L506"}, {"caller_nid": "api_oa_approval_start_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L506"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L519"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "get_instance_detail", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L519"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L521"}, {"caller_nid": "api_oa_approval_get_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L521"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "list_tasks", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L534"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L535"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L537"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L539"}, {"caller_nid": "api_oa_approval_list_oa_tasks", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L539"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "complete_task", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L553"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L557"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L561"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L563"}, {"caller_nid": "api_oa_approval_approve_oa_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L563"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "complete_task", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L577"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L581"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L585"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L587"}, {"caller_nid": "api_oa_approval_reject_oa_task", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L587"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "withdraw_instance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L600"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L601"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L603"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L605"}, {"caller_nid": "api_oa_approval_withdraw_oa_instance", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/oa_approval.py", "source_location": "L605"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/e6bf0b96f69d058adfbf35f898ef1a27ead3cf4f29287ef5ab088bd5cee9c533.json b/backend/app/graphify-out/cache/ast/e6bf0b96f69d058adfbf35f898ef1a27ead3cf4f29287ef5ab088bd5cee9c533.json new file mode 100644 index 00000000..4ce225ba --- /dev/null +++ b/backend/app/graphify-out/cache/ast/e6bf0b96f69d058adfbf35f898ef1a27ead3cf4f29287ef5ab088bd5cee9c533.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "label": "oa_engine.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1"}, {"id": "services_oa_engine_oaengineerror", "label": "OaEngineError", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17"}, {"id": "valueerror", "label": "ValueError", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "services_oa_engine_loads", "label": "_loads()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21"}, {"id": "services_oa_engine_dumps", "label": "_dumps()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32"}, {"id": "services_oa_engine_node_type", "label": "_node_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36"}, {"id": "services_oa_engine_flow_root", "label": "_flow_root()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40"}, {"id": "services_oa_engine_find_node", "label": "_find_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48"}, {"id": "services_oa_engine_advanced", "label": "_advanced()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66"}, {"id": "services_oa_engine_check_initiator_scope", "label": "_check_initiator_scope()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75"}, {"id": "services_oa_engine_instance_to_dict", "label": "_instance_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L84"}, {"id": "services_oa_engine_task_to_dict", "label": "_task_to_dict()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100"}, {"id": "services_oa_engine_user_name_map", "label": "_user_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L118"}, {"id": "services_oa_engine_list_templates", "label": "list_templates()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L126"}, {"id": "services_oa_engine_get_template_detail", "label": "get_template_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L156"}, {"id": "services_oa_engine_role_name_map", "label": "_role_name_map()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L189"}, {"id": "services_oa_engine_assignee_meta", "label": "_assignee_meta()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L217"}, {"id": "services_oa_engine_preview_people", "label": "_preview_people()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L232"}, {"id": "services_oa_engine_walk_preview_nodes", "label": "_walk_preview_nodes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L240"}, {"id": "services_oa_engine_preview_start_flow", "label": "preview_start_flow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L366"}, {"id": "services_oa_engine_create_tasks_for_node", "label": "_create_tasks_for_node()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L416"}, {"id": "services_oa_engine_match_condition_group", "label": "_match_condition_group()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481"}, {"id": "services_oa_engine_advance_from", "label": "advance_from()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L522"}, {"id": "services_oa_engine_start_instance", "label": "start_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L588"}, {"id": "services_oa_engine_get_instance", "label": "_get_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L679"}, {"id": "services_oa_engine_get_instance_detail", "label": "get_instance_detail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L690"}, {"id": "services_oa_engine_list_tasks", "label": "list_tasks()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L727"}, {"id": "services_oa_engine_complete_task", "label": "complete_task()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L777"}, {"id": "services_oa_engine_add_sign", "label": "add_sign()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L898"}, {"id": "services_oa_engine_withdraw_instance", "label": "withdraw_instance()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1011"}, {"id": "services_oa_engine_rationale_375", "label": "\u53d1\u8d77\u524d\u9884\u89c8\u5ba1\u6279\u94fe\uff08\u89e3\u6790\u5177\u4f53\u4eba\u5458\uff1b\u6761\u4ef6\u5206\u652f\u5c55\u5f00\u5c55\u793a\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L375"}, {"id": "services_oa_engine_rationale_531", "label": "\u4ece\u67d0\u8282\u70b9\u7684\u4e0b\u4e00\u8df3\u5f00\u59cb\u63a8\u8fdb\uff1bfrom_node \u4e3a None \u8868\u793a\u4ece start \u8fdb\u5165\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L531"}, {"id": "services_oa_engine_rationale_907", "label": "\u5f53\u524d\u5f85\u529e\u5904\u7406\u4eba\u52a0\u7b7e\uff1a\u4e3a\u540c\u8282\u70b9\u65b0\u589e\u5f85\u529e\u5ba1\u6279\u4eba\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L907"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "json", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "datetime", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L5", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_core_utils", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_assignee", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "app_services_oa_formula", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_oaengineerror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "services_oa_engine_oaengineerror", "target": "valueerror", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_loads", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_dumps", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L32", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_node_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L36", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_flow_root", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L40", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_find_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L48", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advanced", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L66", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_check_initiator_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L75", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_instance_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L84", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_task_to_dict", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L100", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_user_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L118", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L126", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_template_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L156", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_role_name_map", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L189", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_assignee_meta", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L217", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_preview_people", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L232", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_walk_preview_nodes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L240", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_preview_start_flow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L366", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_create_tasks_for_node", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L416", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_match_condition_group", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L481", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_advance_from", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L522", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_start_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L588", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L679", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_get_instance_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L690", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_list_tasks", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L727", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_complete_task", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L777", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_add_sign", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L898", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_services_oa_engine_py", "target": "services_oa_engine_withdraw_instance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1011", "weight": 1.0}, {"source": "services_oa_engine_flow_root", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L42", "weight": 1.0}, {"source": "services_oa_engine_advanced", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L67", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L79", "weight": 1.0}, {"source": "services_oa_engine_check_initiator_scope", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L81", "weight": 1.0}, {"source": "services_oa_engine_instance_to_dict", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L93", "weight": 1.0}, {"source": "services_oa_engine_list_templates", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L139", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L161", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L162", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L174", "weight": 1.0}, {"source": "services_oa_engine_get_template_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L176", "weight": 1.0}, {"source": "services_oa_engine_assignee_meta", "target": "services_oa_engine_role_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L221", "weight": 1.0}, {"source": "services_oa_engine_preview_people", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L233", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L253", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_preview_people", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L255", "weight": 1.0}, {"source": "services_oa_engine_walk_preview_nodes", "target": "services_oa_engine_assignee_meta", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L326", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L378", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L379", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L397", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_walk_preview_nodes", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L403", "weight": 1.0}, {"source": "services_oa_engine_preview_start_flow", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L409", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L425", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L436", "weight": 1.0}, {"source": "services_oa_engine_create_tasks_for_node", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L448", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L532", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L532", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_node_type", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L548", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_create_tasks_for_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L565", "weight": 1.0}, {"source": "services_oa_engine_advance_from", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L578", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L602", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L603", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L608", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_dumps", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L630", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L666", "weight": 1.0}, {"source": "services_oa_engine_start_instance", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L676", "weight": 1.0}, {"source": "services_oa_engine_get_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L686", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L691", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_user_name_map", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L709", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L714", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L717", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L721", "weight": 1.0}, {"source": "services_oa_engine_get_instance_detail", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L722", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_instance_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L769", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L771", "weight": 1.0}, {"source": "services_oa_engine_list_tasks", "target": "services_oa_engine_task_to_dict", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L774", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L788", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L802", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L814", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L851", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_flow_root", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L889", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_loads", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L889", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_find_node", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L890", "weight": 1.0}, {"source": "services_oa_engine_complete_task", "target": "services_oa_engine_advance_from", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L893", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L914", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L920", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L931", "weight": 1.0}, {"source": "services_oa_engine_add_sign", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1008", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1014", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_oaengineerror", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1016", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_advanced", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1024", "weight": 1.0}, {"source": "services_oa_engine_withdraw_instance", "target": "services_oa_engine_get_instance_detail", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1043", "weight": 1.0}, {"source": "services_oa_engine_rationale_375", "target": "services_oa_engine_preview_start_flow", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L375", "weight": 1.0}, {"source": "services_oa_engine_rationale_531", "target": "services_oa_engine_advance_from", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L531", "weight": 1.0}, {"source": "services_oa_engine_rationale_907", "target": "services_oa_engine_add_sign", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L907", "weight": 1.0}], "raw_calls": [{"caller_nid": "services_oa_engine_loads", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L24"}, {"caller_nid": "services_oa_engine_loads", "callee": "loads", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L27"}, {"caller_nid": "services_oa_engine_dumps", "callee": "dumps", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L33"}, {"caller_nid": "services_oa_engine_node_type", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_node_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L37"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L41"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_flow_root", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L43"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L51"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L53"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L54"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L58"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_find_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L59"}, {"caller_nid": "services_oa_engine_advanced", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L68"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L69"}, {"caller_nid": "services_oa_engine_advanced", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L70"}, {"caller_nid": "services_oa_engine_advanced", "callee": "update", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L71"}, {"caller_nid": "services_oa_engine_check_initiator_scope", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L76"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L95"}, {"caller_nid": "services_oa_engine_instance_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L96"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L113"}, {"caller_nid": "services_oa_engine_task_to_dict", "callee": "strftime", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L114"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L119"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L122"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L122"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L122"}, {"caller_nid": "services_oa_engine_user_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L122"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L128"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L130"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L130"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L135"}, {"caller_nid": "services_oa_engine_list_templates", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L142"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L159"}, {"caller_nid": "services_oa_engine_get_template_detail", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L163"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L191"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L191"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L191"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L191"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "upper", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L192"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L192"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L192"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L192"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L192"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L195"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L195"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L195"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L196"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "extend", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L199"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L202"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L202"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L202"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L205"}, {"caller_nid": "services_oa_engine_role_name_map", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L213"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L218"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L218"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L218"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L219"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L224"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L224"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L225"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L225"}, {"caller_nid": "services_oa_engine_assignee_meta", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L228"}, {"caller_nid": "services_oa_engine_preview_people", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L236"}, {"caller_nid": "services_oa_engine_preview_people", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L236"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L252"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L256"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L258"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L260"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L268"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L272"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L274"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L276"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L287"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L289"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L291"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L293"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L293"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L295"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L303"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L304"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L315"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L319"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L320"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L320"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L320"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L321"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L321"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L321"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L331"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L331"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L331"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L336"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L347"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L348"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L350"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L352"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L360"}, {"caller_nid": "services_oa_engine_walk_preview_nodes", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L363"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L376"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L380"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L385"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L385"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L385"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L393"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L398"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L398"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L399"}, {"caller_nid": "services_oa_engine_preview_start_flow", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L400"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L426"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L435"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "resolve_assignees", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L438"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L448"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L450"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L450"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L450"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L451"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L455"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L456"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L458"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L459"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L476"}, {"caller_nid": "services_oa_engine_create_tasks_for_node", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L477"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L484"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L486"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L487"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L489"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L493"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L495"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L499"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L501"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L502"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L503"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "isinstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L506"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L507"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L509"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L510"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "eval_formula", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L515"}, {"caller_nid": "services_oa_engine_match_condition_group", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L515"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L548"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L550"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L558"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L559"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L562"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L575"}, {"caller_nid": "services_oa_engine_advance_from", "callee": "next_node", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L581"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L600"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "_find_latest_published", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L604"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L609"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "apply_formulas_and_linkages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L611"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L616"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L616"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L616"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L620"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L622"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaInstance", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L623"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L624"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L627"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L642"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L645"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L648"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "OaRelation", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L649"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L650"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L674"}, {"caller_nid": "services_oa_engine_start_instance", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L675"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L681"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L681"}, {"caller_nid": "services_oa_engine_get_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L681"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get_app", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L692"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L694"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L694"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L694"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L699"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L699"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L699"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L699"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "asc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L701"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L705"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L705"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L705"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L715"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L717"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L722"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "bool", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L723"}, {"caller_nid": "services_oa_engine_get_instance_detail", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L723"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L734"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L736"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L736"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L744"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L744"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L749"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L752"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L752"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L760"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L760"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L760"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L760"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L766"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L773"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L773"}, {"caller_nid": "services_oa_engine_list_tasks", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L773"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L786"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L791"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L791"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L791"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L807"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L807"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L807"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L815"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L815"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L818"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L819"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L823"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "flush", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L826"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L831"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L831"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L831"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L845"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L849"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L850"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L854"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L856"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L856"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L856"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L868"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L874"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L874"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L874"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L887"}, {"caller_nid": "services_oa_engine_complete_task", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L894"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L909"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L909"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L909"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L925"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L925"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L925"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L932"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L936"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L938"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L941"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L942"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L948"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L948"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L948"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L957"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L964"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L964"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L964"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L975"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "OaTask", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L976"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "generate_uuid", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L977"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L989"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1003"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1006"}, {"caller_nid": "services_oa_engine_add_sign", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1007"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1020"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1020"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1020"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1024"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1025"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "now", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1028"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1032"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1034"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1034"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1034"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1041"}, {"caller_nid": "services_oa_engine_withdraw_instance", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/services/oa_engine.py", "source_location": "L1042"}]} \ No newline at end of file diff --git a/backend/app/graphify-out/cache/ast/f4e21297604372f823007b030f8df5b7d2b1490d187b6841e48d58285d267f4c.json b/backend/app/graphify-out/cache/ast/f4e21297604372f823007b030f8df5b7d2b1490d187b6841e48d58285d267f4c.json new file mode 100644 index 00000000..bcf6a521 --- /dev/null +++ b/backend/app/graphify-out/cache/ast/f4e21297604372f823007b030f8df5b7d2b1490d187b6841e48d58285d267f4c.json @@ -0,0 +1 @@ +{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "label": "admin.py", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1"}, {"id": "api_admin_list_roles_for_select", "label": "list_roles_for_select()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L41"}, {"id": "api_admin_list_users_for_select", "label": "list_users_for_select()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L73"}, {"id": "api_admin_list_roles_for_designer", "label": "list_roles_for_designer()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L106"}, {"id": "api_admin_tenantcreatebody", "label": "TenantCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L126"}, {"id": "basemodel", "label": "BaseModel", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "api_admin_tenantupdatebody", "label": "TenantUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L137"}, {"id": "api_admin_list_tenants", "label": "list_tenants()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L149"}, {"id": "api_admin_create_tenant", "label": "create_tenant()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L170"}, {"id": "api_admin_update_tenant", "label": "update_tenant()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L192"}, {"id": "api_admin_delete_tenant", "label": "delete_tenant()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L217"}, {"id": "api_admin_get_tenant_no", "label": "_get_tenant_no()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L234"}, {"id": "api_admin_usercreatebody", "label": "UserCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L247"}, {"id": "api_admin_userupdatebody", "label": "UserUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L265"}, {"id": "api_admin_list_users", "label": "list_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L282"}, {"id": "api_admin_get_user_by_id", "label": "get_user_by_id()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L347"}, {"id": "api_admin_create_user", "label": "create_user()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L363"}, {"id": "api_admin_update_user", "label": "update_user()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L397"}, {"id": "api_admin_delete_user", "label": "delete_user()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L428"}, {"id": "api_admin_reset_user_password", "label": "reset_user_password()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L441"}, {"id": "api_admin_dicttypecreatebody", "label": "DictTypeCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L458"}, {"id": "api_admin_dicttypeupdatebody", "label": "DictTypeUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L467"}, {"id": "api_admin_list_dict_types", "label": "list_dict_types()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L477"}, {"id": "api_admin_create_dict_type", "label": "create_dict_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L493"}, {"id": "api_admin_update_dict_type", "label": "update_dict_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L515"}, {"id": "api_admin_delete_dict_type", "label": "delete_dict_type()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L540"}, {"id": "api_admin_dictdatacreatebody", "label": "DictDataCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L557"}, {"id": "api_admin_dictdataupdatebody", "label": "DictDataUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L567"}, {"id": "api_admin_list_dict_data", "label": "list_dict_data()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L577"}, {"id": "api_admin_create_dict_data", "label": "create_dict_data()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L594"}, {"id": "api_admin_update_dict_data", "label": "update_dict_data()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L617"}, {"id": "api_admin_delete_dict_data", "label": "delete_dict_data()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L640"}, {"id": "api_admin_dict_data_options", "label": "dict_data_options()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L653"}, {"id": "api_admin_deptcreatebody", "label": "DeptCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L668"}, {"id": "api_admin_deptupdatebody", "label": "DeptUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L682"}, {"id": "api_admin_list_depts", "label": "list_depts()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L696"}, {"id": "api_admin_create_dept", "label": "create_dept()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L707"}, {"id": "api_admin_update_dept", "label": "update_dept()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L734"}, {"id": "api_admin_delete_dept", "label": "delete_dept()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L761"}, {"id": "api_admin_sitecreatebody", "label": "SiteCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L778"}, {"id": "api_admin_siteupdatebody", "label": "SiteUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L794"}, {"id": "api_admin_list_sites", "label": "list_sites()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L811"}, {"id": "api_admin_create_site", "label": "create_site()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L825"}, {"id": "api_admin_update_site", "label": "update_site()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L854"}, {"id": "api_admin_delete_site", "label": "delete_site()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L884"}, {"id": "api_admin_postcreatebody", "label": "PostCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L901"}, {"id": "api_admin_postupdatebody", "label": "PostUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L911"}, {"id": "api_admin_list_posts", "label": "list_posts()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L922"}, {"id": "api_admin_create_post", "label": "create_post()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L936"}, {"id": "api_admin_update_post", "label": "update_post()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L959"}, {"id": "api_admin_delete_post", "label": "delete_post()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L983"}, {"id": "api_admin_postusersupdatebody", "label": "PostUsersUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L995"}, {"id": "api_admin_list_post_bound_users", "label": "list_post_bound_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1002"}, {"id": "api_admin_update_post_bound_users", "label": "update_post_bound_users()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1016"}, {"id": "api_admin_itemunitcreatebody", "label": "ItemUnitCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1040"}, {"id": "api_admin_itemunitupdatebody", "label": "ItemUnitUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1049"}, {"id": "api_admin_list_item_units", "label": "list_item_units()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1059"}, {"id": "api_admin_create_item_unit", "label": "create_item_unit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1073"}, {"id": "api_admin_update_item_unit", "label": "update_item_unit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1095"}, {"id": "api_admin_delete_item_unit", "label": "delete_item_unit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1118"}, {"id": "api_admin_expresscompanycreatebody", "label": "ExpressCompanyCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1135"}, {"id": "api_admin_expresscompanyupdatebody", "label": "ExpressCompanyUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1145"}, {"id": "api_admin_list_express_companies", "label": "list_express_companies()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1156"}, {"id": "api_admin_create_express_company", "label": "create_express_company()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1170"}, {"id": "api_admin_update_express_company", "label": "update_express_company()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1193"}, {"id": "api_admin_delete_express_company", "label": "delete_express_company()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1217"}, {"id": "api_admin_menucreatebody", "label": "MenuCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1234"}, {"id": "api_admin_menuupdatebody", "label": "MenuUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1250"}, {"id": "api_admin_list_menus", "label": "list_menus()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1267"}, {"id": "api_admin_create_menu", "label": "create_menu()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1278"}, {"id": "api_admin_update_menu", "label": "update_menu()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1307"}, {"id": "api_admin_delete_menu", "label": "delete_menu()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1337"}, {"id": "api_admin_rolecreatebody", "label": "RoleCreateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1354"}, {"id": "api_admin_roleupdatebody", "label": "RoleUpdateBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1364"}, {"id": "api_admin_rolemenubody", "label": "RoleMenuBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1374"}, {"id": "api_admin_roledatascopebody", "label": "RoleDataScopeBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1378"}, {"id": "api_admin_list_role_management", "label": "list_role_management()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1386"}, {"id": "api_admin_create_role_management", "label": "create_role_management()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1400"}, {"id": "api_admin_update_role_management", "label": "update_role_management()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1423"}, {"id": "api_admin_delete_role_management", "label": "delete_role_management()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1447"}, {"id": "api_admin_get_role_menus", "label": "get_role_menus()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1460"}, {"id": "api_admin_update_role_menus", "label": "update_role_menus()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1470"}, {"id": "api_admin_get_role_data_scope", "label": "get_role_data_scope()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1485"}, {"id": "api_admin_update_role_data_scope", "label": "update_role_data_scope()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1498"}, {"id": "api_admin_format_file_size", "label": "_format_file_size()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1524"}, {"id": "api_admin_upload_attachment", "label": "upload_attachment()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1534"}, {"id": "api_admin_attachmentdownloadurlbody", "label": "AttachmentDownloadUrlBody", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1580"}, {"id": "api_admin_attachment_download_url", "label": "attachment_download_url()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1587"}, {"id": "api_admin_rationale_45", "label": "\u8fd4\u56de\u8fd0\u8425\u7aef\u89d2\u8272\u4e0b\u62c9\u9009\u9879\uff08label=\u5e93\u4e2d\u89d2\u8272\u540d\uff0cvalue=Web \u89d2\u8272\u7801\uff09\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L45"}, {"id": "api_admin_rationale_78", "label": "\u8fd4\u56de\u7528\u6237\u4e0b\u62c9\u9009\u9879\uff08label=\u6635\u79f0\uff0cvalue=\u7528\u6237ID\uff09\uff0c\u4f9b\u6d41\u7a0b\u8bbe\u8ba1\u5668\u5ba1\u6279\u4eba\u9009\u62e9\u4f7f\u7528\u3002 \u53ef\u9009 roleName\uff1a\u6309 sys_role.role_na", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L78"}, {"id": "api_admin_rationale_110", "label": "\u8fd4\u56de\u89d2\u8272\u4e0b\u62c9\u9009\u9879\uff08label=\u89d2\u8272\u540d\uff0cvalue=\u89d2\u8272ID UUID\uff09\uff0c\u4f9b\u6d41\u7a0b\u8bbe\u8ba1\u5668\u5ba1\u6279\u4eba\u9009\u62e9\u4f7f\u7528\u3002 \u4e0e /roles \u4e0d\u540c\uff0c\u6b64\u7aef\u70b9\u8fd4\u56de\u89d2\u8272 UUID", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L110"}, {"id": "api_admin_rationale_1592", "label": "\u8fd4\u56de\u5e26 Content-Disposition \u7684\u4e0b\u8f7d URL\uff0c\u4fdd\u8bc1\u6d4f\u89c8\u5668\u4f7f\u7528\u539f\u59cb\u6587\u4ef6\u540d\u3002", "file_type": "rationale", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1592"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "os", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "uuid", "relation": "imports", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L3", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "typing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L4", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "fastapi", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L6", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "pydantic", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L7", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "sqlalchemy", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L8", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "sqlalchemy_orm", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L9", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_core_config", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_core_data_scope", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L12", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_core_database", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_core_menu_guard", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_core_response", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_core_storage", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L19", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L20", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L25", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_crud", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L27", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_crud_collection_protocol", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L28", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_models_models", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L29", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "app_services_web_auth_roles", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L30", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_list_roles_for_select", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_list_users_for_select", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L73", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_list_roles_for_designer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L106", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_tenantcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L126", "weight": 1.0}, {"source": "api_admin_tenantcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L126", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_tenantupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L137", "weight": 1.0}, {"source": "api_admin_tenantupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L137", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_list_tenants", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L149", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_create_tenant", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L170", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_update_tenant", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L192", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_delete_tenant", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L217", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_get_tenant_no", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L234", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_usercreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L247", "weight": 1.0}, {"source": "api_admin_usercreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L247", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_userupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L265", "weight": 1.0}, {"source": "api_admin_userupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L265", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_list_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L282", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_get_user_by_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L347", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_create_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L363", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_update_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L397", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_delete_user", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L428", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_reset_user_password", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L441", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_dicttypecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L458", "weight": 1.0}, {"source": "api_admin_dicttypecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L458", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_dicttypeupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L467", "weight": 1.0}, {"source": "api_admin_dicttypeupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L467", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_list_dict_types", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L477", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_create_dict_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L493", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_update_dict_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L515", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_delete_dict_type", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L540", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_dictdatacreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L557", "weight": 1.0}, {"source": "api_admin_dictdatacreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L557", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_dictdataupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L567", "weight": 1.0}, {"source": "api_admin_dictdataupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L567", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_list_dict_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L577", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_create_dict_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L594", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_update_dict_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L617", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_delete_dict_data", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L640", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_dict_data_options", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L653", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_deptcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L668", "weight": 1.0}, {"source": "api_admin_deptcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L668", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_deptupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L682", "weight": 1.0}, {"source": "api_admin_deptupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L682", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_list_depts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L696", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_create_dept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L707", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_update_dept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L734", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_delete_dept", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L761", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_sitecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L778", "weight": 1.0}, {"source": "api_admin_sitecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L778", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_siteupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L794", "weight": 1.0}, {"source": "api_admin_siteupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L794", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_list_sites", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L811", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_create_site", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L825", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_update_site", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L854", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_delete_site", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L884", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_postcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L901", "weight": 1.0}, {"source": "api_admin_postcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L901", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_postupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L911", "weight": 1.0}, {"source": "api_admin_postupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L911", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_list_posts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L922", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_create_post", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L936", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_update_post", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L959", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_delete_post", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L983", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_postusersupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L995", "weight": 1.0}, {"source": "api_admin_postusersupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L995", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_list_post_bound_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1002", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_update_post_bound_users", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1016", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_itemunitcreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1040", "weight": 1.0}, {"source": "api_admin_itemunitcreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1040", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_itemunitupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1049", "weight": 1.0}, {"source": "api_admin_itemunitupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1049", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_list_item_units", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1059", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_create_item_unit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1073", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_update_item_unit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1095", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_delete_item_unit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1118", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_expresscompanycreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1135", "weight": 1.0}, {"source": "api_admin_expresscompanycreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1135", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_expresscompanyupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1145", "weight": 1.0}, {"source": "api_admin_expresscompanyupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1145", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_list_express_companies", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1156", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_create_express_company", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1170", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_update_express_company", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1193", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_delete_express_company", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1217", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_menucreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1234", "weight": 1.0}, {"source": "api_admin_menucreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1234", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_menuupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1250", "weight": 1.0}, {"source": "api_admin_menuupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1250", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_list_menus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1267", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_create_menu", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1278", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_update_menu", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1307", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_delete_menu", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1337", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_rolecreatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1354", "weight": 1.0}, {"source": "api_admin_rolecreatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1354", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_roleupdatebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1364", "weight": 1.0}, {"source": "api_admin_roleupdatebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1364", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_rolemenubody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1374", "weight": 1.0}, {"source": "api_admin_rolemenubody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1374", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_roledatascopebody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1378", "weight": 1.0}, {"source": "api_admin_roledatascopebody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1378", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_list_role_management", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1386", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_create_role_management", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1400", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_update_role_management", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1423", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_delete_role_management", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1447", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_get_role_menus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1460", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_update_role_menus", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1470", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_get_role_data_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1485", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_update_role_data_scope", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1498", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_format_file_size", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1524", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_upload_attachment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1534", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_attachmentdownloadurlbody", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1580", "weight": 1.0}, {"source": "api_admin_attachmentdownloadurlbody", "target": "basemodel", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1580", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_backend_app_api_admin_py", "target": "api_admin_attachment_download_url", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1587", "weight": 1.0}, {"source": "api_admin_list_users", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L292", "weight": 1.0}, {"source": "api_admin_get_user_by_id", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L352", "weight": 1.0}, {"source": "api_admin_create_user", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L369", "weight": 1.0}, {"source": "api_admin_list_dict_types", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L484", "weight": 1.0}, {"source": "api_admin_create_dict_type", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L499", "weight": 1.0}, {"source": "api_admin_update_dict_type", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L522", "weight": 1.0}, {"source": "api_admin_list_dict_data", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L585", "weight": 1.0}, {"source": "api_admin_create_dict_data", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L600", "weight": 1.0}, {"source": "api_admin_dict_data_options", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L658", "weight": 1.0}, {"source": "api_admin_list_depts", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L701", "weight": 1.0}, {"source": "api_admin_create_dept", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L713", "weight": 1.0}, {"source": "api_admin_list_sites", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L818", "weight": 1.0}, {"source": "api_admin_create_site", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L831", "weight": 1.0}, {"source": "api_admin_list_posts", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L929", "weight": 1.0}, {"source": "api_admin_create_post", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L942", "weight": 1.0}, {"source": "api_admin_list_post_bound_users", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1007", "weight": 1.0}, {"source": "api_admin_update_post_bound_users", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1022", "weight": 1.0}, {"source": "api_admin_list_item_units", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1066", "weight": 1.0}, {"source": "api_admin_create_item_unit", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1079", "weight": 1.0}, {"source": "api_admin_list_express_companies", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1163", "weight": 1.0}, {"source": "api_admin_create_express_company", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1176", "weight": 1.0}, {"source": "api_admin_list_menus", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1272", "weight": 1.0}, {"source": "api_admin_create_menu", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1284", "weight": 1.0}, {"source": "api_admin_list_role_management", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1393", "weight": 1.0}, {"source": "api_admin_create_role_management", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1406", "weight": 1.0}, {"source": "api_admin_update_role_menus", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1477", "weight": 1.0}, {"source": "api_admin_update_role_data_scope", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1505", "weight": 1.0}, {"source": "api_admin_upload_attachment", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1553", "weight": 1.0}, {"source": "api_admin_upload_attachment", "target": "api_admin_format_file_size", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1572", "weight": 1.0}, {"source": "api_admin_attachment_download_url", "target": "api_admin_get_tenant_no", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1596", "weight": 1.0}, {"source": "api_admin_rationale_45", "target": "api_admin_list_roles_for_select", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L45", "weight": 1.0}, {"source": "api_admin_rationale_78", "target": "api_admin_list_users_for_select", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L78", "weight": 1.0}, {"source": "api_admin_rationale_110", "target": "api_admin_list_roles_for_designer", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L110", "weight": 1.0}, {"source": "api_admin_rationale_1592", "target": "api_admin_attachment_download_url", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1592", "weight": 1.0}], "raw_calls": [{"caller_nid": "api_admin_list_roles_for_select", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L47"}, {"caller_nid": "api_admin_list_roles_for_select", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L47"}, {"caller_nid": "api_admin_list_roles_for_select", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L47"}, {"caller_nid": "api_admin_list_roles_for_select", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L47"}, {"caller_nid": "api_admin_list_roles_for_select", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L49"}, {"caller_nid": "api_admin_list_roles_for_select", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L52"}, {"caller_nid": "api_admin_list_roles_for_select", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L55"}, {"caller_nid": "api_admin_list_roles_for_select", "callee": "_map_role_name_to_web", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L58"}, {"caller_nid": "api_admin_list_roles_for_select", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L62"}, {"caller_nid": "api_admin_list_roles_for_select", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L63"}, {"caller_nid": "api_admin_list_roles_for_select", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L69"}, {"caller_nid": "api_admin_list_users_for_select", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L82"}, {"caller_nid": "api_admin_list_users_for_select", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L83"}, {"caller_nid": "api_admin_list_users_for_select", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L83"}, {"caller_nid": "api_admin_list_users_for_select", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L85"}, {"caller_nid": "api_admin_list_users_for_select", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L86"}, {"caller_nid": "api_admin_list_users_for_select", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L89"}, {"caller_nid": "api_admin_list_users_for_select", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L89"}, {"caller_nid": "api_admin_list_users_for_select", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L89"}, {"caller_nid": "api_admin_list_users_for_select", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L99"}, {"caller_nid": "api_admin_list_users_for_select", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L100"}, {"caller_nid": "api_admin_list_users_for_select", "callee": "distinct", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L100"}, {"caller_nid": "api_admin_list_users_for_select", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L100"}, {"caller_nid": "api_admin_list_users_for_select", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L100"}, {"caller_nid": "api_admin_list_users_for_select", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L102"}, {"caller_nid": "api_admin_list_roles_for_designer", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L112"}, {"caller_nid": "api_admin_list_roles_for_designer", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L113"}, {"caller_nid": "api_admin_list_roles_for_designer", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L113"}, {"caller_nid": "api_admin_list_roles_for_designer", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L115"}, {"caller_nid": "api_admin_list_roles_for_designer", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L116"}, {"caller_nid": "api_admin_list_roles_for_designer", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L116"}, {"caller_nid": "api_admin_list_roles_for_designer", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L116"}, {"caller_nid": "api_admin_list_roles_for_designer", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L117"}, {"caller_nid": "api_admin_list_roles_for_designer", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L117"}, {"caller_nid": "api_admin_list_roles_for_designer", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L118"}, {"caller_nid": "api_admin_list_tenants", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L157"}, {"caller_nid": "api_admin_list_tenants", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L158"}, {"caller_nid": "api_admin_create_tenant", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L184"}, {"caller_nid": "api_admin_create_tenant", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L186"}, {"caller_nid": "api_admin_create_tenant", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L186"}, {"caller_nid": "api_admin_create_tenant", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L188"}, {"caller_nid": "api_admin_create_tenant", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L188"}, {"caller_nid": "api_admin_update_tenant", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L199"}, {"caller_nid": "api_admin_update_tenant", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L203"}, {"caller_nid": "api_admin_update_tenant", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L204"}, {"caller_nid": "api_admin_update_tenant", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L205"}, {"caller_nid": "api_admin_update_tenant", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L206"}, {"caller_nid": "api_admin_update_tenant", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L207"}, {"caller_nid": "api_admin_update_tenant", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L208"}, {"caller_nid": "api_admin_update_tenant", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L209"}, {"caller_nid": "api_admin_update_tenant", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L211"}, {"caller_nid": "api_admin_update_tenant", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L211"}, {"caller_nid": "api_admin_update_tenant", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L213"}, {"caller_nid": "api_admin_update_tenant", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L213"}, {"caller_nid": "api_admin_delete_tenant", "callee": "soft_delete_tenant", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L223"}, {"caller_nid": "api_admin_delete_tenant", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L224"}, {"caller_nid": "api_admin_delete_tenant", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L226"}, {"caller_nid": "api_admin_delete_tenant", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L226"}, {"caller_nid": "api_admin_get_tenant_no", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L235"}, {"caller_nid": "api_admin_get_tenant_no", "callee": "first", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L238"}, {"caller_nid": "api_admin_get_tenant_no", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L238"}, {"caller_nid": "api_admin_get_tenant_no", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L238"}, {"caller_nid": "api_admin_list_users", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L293"}, {"caller_nid": "api_admin_list_users", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L293"}, {"caller_nid": "api_admin_list_users", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L297"}, {"caller_nid": "api_admin_list_users", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L300"}, {"caller_nid": "api_admin_list_users", "callee": "or_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L301"}, {"caller_nid": "api_admin_list_users", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L302"}, {"caller_nid": "api_admin_list_users", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L303"}, {"caller_nid": "api_admin_list_users", "callee": "like", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L304"}, {"caller_nid": "api_admin_list_users", "callee": "_get_child_dept_ids", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L308"}, {"caller_nid": "api_admin_list_users", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L309"}, {"caller_nid": "api_admin_list_users", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L309"}, {"caller_nid": "api_admin_list_users", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L311"}, {"caller_nid": "api_admin_list_users", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L312"}, {"caller_nid": "api_admin_list_users", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L315"}, {"caller_nid": "api_admin_list_users", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L315"}, {"caller_nid": "api_admin_list_users", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L315"}, {"caller_nid": "api_admin_list_users", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L324"}, {"caller_nid": "api_admin_list_users", "callee": "apply_data_scope", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L325"}, {"caller_nid": "api_admin_list_users", "callee": "count", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L326"}, {"caller_nid": "api_admin_list_users", "callee": "distinct", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L326"}, {"caller_nid": "api_admin_list_users", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L328"}, {"caller_nid": "api_admin_list_users", "callee": "limit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L328"}, {"caller_nid": "api_admin_list_users", "callee": "offset", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L328"}, {"caller_nid": "api_admin_list_users", "callee": "order_by", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L328"}, {"caller_nid": "api_admin_list_users", "callee": "distinct", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L328"}, {"caller_nid": "api_admin_list_users", "callee": "desc", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L329"}, {"caller_nid": "api_admin_list_users", "callee": "list", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L334"}, {"caller_nid": "api_admin_list_users", "callee": "all", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L337"}, {"caller_nid": "api_admin_list_users", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L337"}, {"caller_nid": "api_admin_list_users", "callee": "query", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L337"}, {"caller_nid": "api_admin_list_users", "callee": "in_", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L337"}, {"caller_nid": "api_admin_list_users", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L340"}, {"caller_nid": "api_admin_list_users", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L340"}, {"caller_nid": "api_admin_list_users", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L342"}, {"caller_nid": "api_admin_list_users", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L343"}, {"caller_nid": "api_admin_get_user_by_id", "callee": "get_user", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L353"}, {"caller_nid": "api_admin_get_user_by_id", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L355"}, {"caller_nid": "api_admin_get_user_by_id", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L356"}, {"caller_nid": "api_admin_get_user_by_id", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L357"}, {"caller_nid": "api_admin_get_user_by_id", "callee": "get_user_with_relations", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L358"}, {"caller_nid": "api_admin_get_user_by_id", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L359"}, {"caller_nid": "api_admin_create_user", "callee": "user_no_exists", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L370"}, {"caller_nid": "api_admin_create_user", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L371"}, {"caller_nid": "api_admin_create_user", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L387"}, {"caller_nid": "api_admin_create_user", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L391"}, {"caller_nid": "api_admin_create_user", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L391"}, {"caller_nid": "api_admin_create_user", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L393"}, {"caller_nid": "api_admin_create_user", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L393"}, {"caller_nid": "api_admin_update_user", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L404"}, {"caller_nid": "api_admin_update_user", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L408"}, {"caller_nid": "api_admin_update_user", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L409"}, {"caller_nid": "api_admin_update_user", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L410"}, {"caller_nid": "api_admin_update_user", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L411"}, {"caller_nid": "api_admin_update_user", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L412"}, {"caller_nid": "api_admin_update_user", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L413"}, {"caller_nid": "api_admin_update_user", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L414"}, {"caller_nid": "api_admin_update_user", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L415"}, {"caller_nid": "api_admin_update_user", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L416"}, {"caller_nid": "api_admin_update_user", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L417"}, {"caller_nid": "api_admin_update_user", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L418"}, {"caller_nid": "api_admin_update_user", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L419"}, {"caller_nid": "api_admin_update_user", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L420"}, {"caller_nid": "api_admin_update_user", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L422"}, {"caller_nid": "api_admin_update_user", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L422"}, {"caller_nid": "api_admin_update_user", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L424"}, {"caller_nid": "api_admin_update_user", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L424"}, {"caller_nid": "api_admin_delete_user", "callee": "soft_delete_user", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L434"}, {"caller_nid": "api_admin_delete_user", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L435"}, {"caller_nid": "api_admin_delete_user", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L437"}, {"caller_nid": "api_admin_delete_user", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L437"}, {"caller_nid": "api_admin_reset_user_password", "callee": "reset_password", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L447"}, {"caller_nid": "api_admin_reset_user_password", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L448"}, {"caller_nid": "api_admin_reset_user_password", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L450"}, {"caller_nid": "api_admin_reset_user_password", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L450"}, {"caller_nid": "api_admin_list_dict_types", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L488"}, {"caller_nid": "api_admin_list_dict_types", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L489"}, {"caller_nid": "api_admin_create_dict_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L507"}, {"caller_nid": "api_admin_create_dict_type", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L509"}, {"caller_nid": "api_admin_create_dict_type", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L509"}, {"caller_nid": "api_admin_create_dict_type", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L511"}, {"caller_nid": "api_admin_create_dict_type", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L511"}, {"caller_nid": "api_admin_update_dict_type", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L523"}, {"caller_nid": "api_admin_update_dict_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L527"}, {"caller_nid": "api_admin_update_dict_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L528"}, {"caller_nid": "api_admin_update_dict_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L529"}, {"caller_nid": "api_admin_update_dict_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L530"}, {"caller_nid": "api_admin_update_dict_type", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L531"}, {"caller_nid": "api_admin_update_dict_type", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L534"}, {"caller_nid": "api_admin_update_dict_type", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L534"}, {"caller_nid": "api_admin_update_dict_type", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L536"}, {"caller_nid": "api_admin_update_dict_type", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L536"}, {"caller_nid": "api_admin_delete_dict_type", "callee": "soft_delete_dict_type", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L546"}, {"caller_nid": "api_admin_delete_dict_type", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L547"}, {"caller_nid": "api_admin_delete_dict_type", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L549"}, {"caller_nid": "api_admin_delete_dict_type", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L549"}, {"caller_nid": "api_admin_list_dict_data", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L589"}, {"caller_nid": "api_admin_list_dict_data", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L590"}, {"caller_nid": "api_admin_create_dict_data", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L609"}, {"caller_nid": "api_admin_create_dict_data", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L611"}, {"caller_nid": "api_admin_create_dict_data", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L611"}, {"caller_nid": "api_admin_create_dict_data", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L613"}, {"caller_nid": "api_admin_create_dict_data", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L613"}, {"caller_nid": "api_admin_update_dict_data", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L624"}, {"caller_nid": "api_admin_update_dict_data", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L628"}, {"caller_nid": "api_admin_update_dict_data", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L629"}, {"caller_nid": "api_admin_update_dict_data", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L630"}, {"caller_nid": "api_admin_update_dict_data", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L631"}, {"caller_nid": "api_admin_update_dict_data", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L632"}, {"caller_nid": "api_admin_update_dict_data", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L634"}, {"caller_nid": "api_admin_update_dict_data", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L634"}, {"caller_nid": "api_admin_update_dict_data", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L636"}, {"caller_nid": "api_admin_update_dict_data", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L636"}, {"caller_nid": "api_admin_delete_dict_data", "callee": "soft_delete_dict_data", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L646"}, {"caller_nid": "api_admin_delete_dict_data", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L647"}, {"caller_nid": "api_admin_delete_dict_data", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L649"}, {"caller_nid": "api_admin_delete_dict_data", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L649"}, {"caller_nid": "api_admin_dict_data_options", "callee": "list_dict_data_options", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L659"}, {"caller_nid": "api_admin_dict_data_options", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L660"}, {"caller_nid": "api_admin_list_depts", "callee": "list_depts_tree", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L702"}, {"caller_nid": "api_admin_list_depts", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L703"}, {"caller_nid": "api_admin_create_dept", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L726"}, {"caller_nid": "api_admin_create_dept", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L728"}, {"caller_nid": "api_admin_create_dept", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L728"}, {"caller_nid": "api_admin_create_dept", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L730"}, {"caller_nid": "api_admin_create_dept", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L730"}, {"caller_nid": "api_admin_update_dept", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L741"}, {"caller_nid": "api_admin_update_dept", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L745"}, {"caller_nid": "api_admin_update_dept", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L746"}, {"caller_nid": "api_admin_update_dept", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L747"}, {"caller_nid": "api_admin_update_dept", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L748"}, {"caller_nid": "api_admin_update_dept", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L749"}, {"caller_nid": "api_admin_update_dept", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L750"}, {"caller_nid": "api_admin_update_dept", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L751"}, {"caller_nid": "api_admin_update_dept", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L752"}, {"caller_nid": "api_admin_update_dept", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L753"}, {"caller_nid": "api_admin_update_dept", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L755"}, {"caller_nid": "api_admin_update_dept", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L755"}, {"caller_nid": "api_admin_update_dept", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L757"}, {"caller_nid": "api_admin_update_dept", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L757"}, {"caller_nid": "api_admin_delete_dept", "callee": "soft_delete_dept", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L767"}, {"caller_nid": "api_admin_delete_dept", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L768"}, {"caller_nid": "api_admin_delete_dept", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L770"}, {"caller_nid": "api_admin_delete_dept", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L770"}, {"caller_nid": "api_admin_list_sites", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L820"}, {"caller_nid": "api_admin_list_sites", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L821"}, {"caller_nid": "api_admin_create_site", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L846"}, {"caller_nid": "api_admin_create_site", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L848"}, {"caller_nid": "api_admin_create_site", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L848"}, {"caller_nid": "api_admin_create_site", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L850"}, {"caller_nid": "api_admin_create_site", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L850"}, {"caller_nid": "api_admin_update_site", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L861"}, {"caller_nid": "api_admin_update_site", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L865"}, {"caller_nid": "api_admin_update_site", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L866"}, {"caller_nid": "api_admin_update_site", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L867"}, {"caller_nid": "api_admin_update_site", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L868"}, {"caller_nid": "api_admin_update_site", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L869"}, {"caller_nid": "api_admin_update_site", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L870"}, {"caller_nid": "api_admin_update_site", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L871"}, {"caller_nid": "api_admin_update_site", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L872"}, {"caller_nid": "api_admin_update_site", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L873"}, {"caller_nid": "api_admin_update_site", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L874"}, {"caller_nid": "api_admin_update_site", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L875"}, {"caller_nid": "api_admin_update_site", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L876"}, {"caller_nid": "api_admin_update_site", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L878"}, {"caller_nid": "api_admin_update_site", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L878"}, {"caller_nid": "api_admin_update_site", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L880"}, {"caller_nid": "api_admin_update_site", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L880"}, {"caller_nid": "api_admin_delete_site", "callee": "soft_delete_site", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L890"}, {"caller_nid": "api_admin_delete_site", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L891"}, {"caller_nid": "api_admin_delete_site", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L893"}, {"caller_nid": "api_admin_delete_site", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L893"}, {"caller_nid": "api_admin_list_posts", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L931"}, {"caller_nid": "api_admin_list_posts", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L932"}, {"caller_nid": "api_admin_create_post", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L951"}, {"caller_nid": "api_admin_create_post", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L953"}, {"caller_nid": "api_admin_create_post", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L953"}, {"caller_nid": "api_admin_create_post", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L955"}, {"caller_nid": "api_admin_create_post", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L955"}, {"caller_nid": "api_admin_update_post", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L966"}, {"caller_nid": "api_admin_update_post", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L970"}, {"caller_nid": "api_admin_update_post", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L971"}, {"caller_nid": "api_admin_update_post", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L972"}, {"caller_nid": "api_admin_update_post", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L973"}, {"caller_nid": "api_admin_update_post", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L974"}, {"caller_nid": "api_admin_update_post", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L975"}, {"caller_nid": "api_admin_update_post", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L977"}, {"caller_nid": "api_admin_update_post", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L977"}, {"caller_nid": "api_admin_update_post", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L979"}, {"caller_nid": "api_admin_update_post", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L979"}, {"caller_nid": "api_admin_delete_post", "callee": "soft_delete_post", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L989"}, {"caller_nid": "api_admin_delete_post", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L990"}, {"caller_nid": "api_admin_delete_post", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L992"}, {"caller_nid": "api_admin_delete_post", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L992"}, {"caller_nid": "api_admin_list_post_bound_users", "callee": "get_post", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1008"}, {"caller_nid": "api_admin_list_post_bound_users", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1010"}, {"caller_nid": "api_admin_list_post_bound_users", "callee": "list_user_ids_bound_to_post", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1011"}, {"caller_nid": "api_admin_list_post_bound_users", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1012"}, {"caller_nid": "api_admin_update_post_bound_users", "callee": "get_post", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1023"}, {"caller_nid": "api_admin_update_post_bound_users", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1025"}, {"caller_nid": "api_admin_update_post_bound_users", "callee": "sync_post_user_bindings", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1027"}, {"caller_nid": "api_admin_update_post_bound_users", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1028"}, {"caller_nid": "api_admin_update_post_bound_users", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1030"}, {"caller_nid": "api_admin_update_post_bound_users", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1032"}, {"caller_nid": "api_admin_update_post_bound_users", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1032"}, {"caller_nid": "api_admin_list_item_units", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1068"}, {"caller_nid": "api_admin_list_item_units", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1069"}, {"caller_nid": "api_admin_create_item_unit", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1087"}, {"caller_nid": "api_admin_create_item_unit", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1089"}, {"caller_nid": "api_admin_create_item_unit", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1089"}, {"caller_nid": "api_admin_create_item_unit", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1091"}, {"caller_nid": "api_admin_create_item_unit", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1091"}, {"caller_nid": "api_admin_update_item_unit", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1102"}, {"caller_nid": "api_admin_update_item_unit", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1106"}, {"caller_nid": "api_admin_update_item_unit", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1107"}, {"caller_nid": "api_admin_update_item_unit", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1108"}, {"caller_nid": "api_admin_update_item_unit", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1109"}, {"caller_nid": "api_admin_update_item_unit", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1110"}, {"caller_nid": "api_admin_update_item_unit", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1112"}, {"caller_nid": "api_admin_update_item_unit", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1112"}, {"caller_nid": "api_admin_update_item_unit", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1114"}, {"caller_nid": "api_admin_update_item_unit", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1114"}, {"caller_nid": "api_admin_delete_item_unit", "callee": "soft_delete_item_unit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1124"}, {"caller_nid": "api_admin_delete_item_unit", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1125"}, {"caller_nid": "api_admin_delete_item_unit", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1127"}, {"caller_nid": "api_admin_delete_item_unit", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1127"}, {"caller_nid": "api_admin_list_express_companies", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1165"}, {"caller_nid": "api_admin_list_express_companies", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1166"}, {"caller_nid": "api_admin_create_express_company", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1185"}, {"caller_nid": "api_admin_create_express_company", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1187"}, {"caller_nid": "api_admin_create_express_company", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1187"}, {"caller_nid": "api_admin_create_express_company", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1189"}, {"caller_nid": "api_admin_create_express_company", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1189"}, {"caller_nid": "api_admin_update_express_company", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1200"}, {"caller_nid": "api_admin_update_express_company", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1204"}, {"caller_nid": "api_admin_update_express_company", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1205"}, {"caller_nid": "api_admin_update_express_company", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1206"}, {"caller_nid": "api_admin_update_express_company", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1207"}, {"caller_nid": "api_admin_update_express_company", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1208"}, {"caller_nid": "api_admin_update_express_company", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1209"}, {"caller_nid": "api_admin_update_express_company", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1211"}, {"caller_nid": "api_admin_update_express_company", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1211"}, {"caller_nid": "api_admin_update_express_company", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1213"}, {"caller_nid": "api_admin_update_express_company", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1213"}, {"caller_nid": "api_admin_delete_express_company", "callee": "soft_delete_express_company", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1223"}, {"caller_nid": "api_admin_delete_express_company", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1224"}, {"caller_nid": "api_admin_delete_express_company", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1226"}, {"caller_nid": "api_admin_delete_express_company", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1226"}, {"caller_nid": "api_admin_list_menus", "callee": "list_menus_tree", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1273"}, {"caller_nid": "api_admin_list_menus", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1274"}, {"caller_nid": "api_admin_create_menu", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1299"}, {"caller_nid": "api_admin_create_menu", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1301"}, {"caller_nid": "api_admin_create_menu", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1301"}, {"caller_nid": "api_admin_create_menu", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1303"}, {"caller_nid": "api_admin_create_menu", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1303"}, {"caller_nid": "api_admin_update_menu", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1314"}, {"caller_nid": "api_admin_update_menu", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1318"}, {"caller_nid": "api_admin_update_menu", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1319"}, {"caller_nid": "api_admin_update_menu", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1320"}, {"caller_nid": "api_admin_update_menu", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1321"}, {"caller_nid": "api_admin_update_menu", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1322"}, {"caller_nid": "api_admin_update_menu", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1323"}, {"caller_nid": "api_admin_update_menu", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1324"}, {"caller_nid": "api_admin_update_menu", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1325"}, {"caller_nid": "api_admin_update_menu", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1326"}, {"caller_nid": "api_admin_update_menu", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1327"}, {"caller_nid": "api_admin_update_menu", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1328"}, {"caller_nid": "api_admin_update_menu", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1329"}, {"caller_nid": "api_admin_update_menu", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1331"}, {"caller_nid": "api_admin_update_menu", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1331"}, {"caller_nid": "api_admin_update_menu", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1333"}, {"caller_nid": "api_admin_update_menu", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1333"}, {"caller_nid": "api_admin_delete_menu", "callee": "soft_delete_menu", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1343"}, {"caller_nid": "api_admin_delete_menu", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1344"}, {"caller_nid": "api_admin_delete_menu", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1346"}, {"caller_nid": "api_admin_delete_menu", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1346"}, {"caller_nid": "api_admin_list_role_management", "callee": "list_roles", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1394"}, {"caller_nid": "api_admin_list_role_management", "callee": "total_pages", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1395"}, {"caller_nid": "api_admin_list_role_management", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1396"}, {"caller_nid": "api_admin_create_role_management", "callee": "create_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1407"}, {"caller_nid": "api_admin_create_role_management", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1415"}, {"caller_nid": "api_admin_create_role_management", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1417"}, {"caller_nid": "api_admin_create_role_management", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1417"}, {"caller_nid": "api_admin_create_role_management", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1419"}, {"caller_nid": "api_admin_create_role_management", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1419"}, {"caller_nid": "api_admin_update_role_management", "callee": "model_dump", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1430"}, {"caller_nid": "api_admin_update_role_management", "callee": "update_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1431"}, {"caller_nid": "api_admin_update_role_management", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1434"}, {"caller_nid": "api_admin_update_role_management", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1435"}, {"caller_nid": "api_admin_update_role_management", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1436"}, {"caller_nid": "api_admin_update_role_management", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1437"}, {"caller_nid": "api_admin_update_role_management", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1438"}, {"caller_nid": "api_admin_update_role_management", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1439"}, {"caller_nid": "api_admin_update_role_management", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1441"}, {"caller_nid": "api_admin_update_role_management", "callee": "_row_to_dict", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1441"}, {"caller_nid": "api_admin_update_role_management", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1443"}, {"caller_nid": "api_admin_update_role_management", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1443"}, {"caller_nid": "api_admin_delete_role_management", "callee": "soft_delete_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1453"}, {"caller_nid": "api_admin_delete_role_management", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1454"}, {"caller_nid": "api_admin_delete_role_management", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1456"}, {"caller_nid": "api_admin_delete_role_management", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1456"}, {"caller_nid": "api_admin_get_role_menus", "callee": "get_role_menu_ids", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1465"}, {"caller_nid": "api_admin_get_role_menus", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1466"}, {"caller_nid": "api_admin_update_role_menus", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1478"}, {"caller_nid": "api_admin_update_role_menus", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1479"}, {"caller_nid": "api_admin_update_role_menus", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1481"}, {"caller_nid": "api_admin_update_role_menus", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1481"}, {"caller_nid": "api_admin_get_role_data_scope", "callee": "get_role", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1490"}, {"caller_nid": "api_admin_get_role_data_scope", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1492"}, {"caller_nid": "api_admin_get_role_data_scope", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1494"}, {"caller_nid": "api_admin_update_role_data_scope", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1512"}, {"caller_nid": "api_admin_update_role_data_scope", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1514"}, {"caller_nid": "api_admin_update_role_data_scope", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1516"}, {"caller_nid": "api_admin_update_role_data_scope", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1516"}, {"caller_nid": "api_admin_upload_attachment", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1541"}, {"caller_nid": "api_admin_upload_attachment", "callee": "read", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1543"}, {"caller_nid": "api_admin_upload_attachment", "callee": "upload_file", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1544"}, {"caller_nid": "api_admin_upload_attachment", "callee": "rstrip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1545"}, {"caller_nid": "api_admin_upload_attachment", "callee": "startswith", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1546"}, {"caller_nid": "api_admin_upload_attachment", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1547"}, {"caller_nid": "api_admin_upload_attachment", "callee": "len", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1550"}, {"caller_nid": "api_admin_upload_attachment", "callee": "lstrip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1551"}, {"caller_nid": "api_admin_upload_attachment", "callee": "splitext", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1551"}, {"caller_nid": "api_admin_upload_attachment", "callee": "BizAttachment", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1554"}, {"caller_nid": "api_admin_upload_attachment", "callee": "uuid4", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1555"}, {"caller_nid": "api_admin_upload_attachment", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1562"}, {"caller_nid": "api_admin_upload_attachment", "callee": "add", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1564"}, {"caller_nid": "api_admin_upload_attachment", "callee": "commit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1565"}, {"caller_nid": "api_admin_upload_attachment", "callee": "refresh", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1566"}, {"caller_nid": "api_admin_upload_attachment", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1567"}, {"caller_nid": "api_admin_upload_attachment", "callee": "rollback", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1576"}, {"caller_nid": "api_admin_upload_attachment", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1577"}, {"caller_nid": "api_admin_upload_attachment", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1577"}, {"caller_nid": "api_admin_attachment_download_url", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1593"}, {"caller_nid": "api_admin_attachment_download_url", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1595"}, {"caller_nid": "api_admin_attachment_download_url", "callee": "_lookup_attachment_by_url", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1597"}, {"caller_nid": "api_admin_attachment_download_url", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1598"}, {"caller_nid": "api_admin_attachment_download_url", "callee": "strip", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1600"}, {"caller_nid": "api_admin_attachment_download_url", "callee": "rsplit", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1602"}, {"caller_nid": "api_admin_attachment_download_url", "callee": "presigned_download_url", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1604"}, {"caller_nid": "api_admin_attachment_download_url", "callee": "success_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1605"}, {"caller_nid": "api_admin_attachment_download_url", "callee": "error_response", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1607"}, {"caller_nid": "api_admin_attachment_download_url", "callee": "str", "source_file": "/Users/wuzilong/work/00code/zkxw/backend/app/api/admin.py", "source_location": "L1607"}]} \ No newline at end of file diff --git a/backend/app/main.py b/backend/app/main.py index 8b7fe4ee..80db824e 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -13,7 +13,7 @@ from app.core.database import SessionLocal from app.core.api_request_log_middleware import ApiRequestLogMiddleware from app.core.api_crypto_middleware import ApiCryptoMiddleware from app.models import models # noqa: F401 -from app.api import public_router, menu_router, admin_router, workflow_router, basic_info_router, collection_protocol_router, leave_router, operations_router, ethnic_router, sample_reception_router, sample_production_reception_router, qc_router, research_donation_router, production_router, pilot_service_router, insurance_company_router, material_router, storage_release_review_router, sample_sms_notification_router, storage_entry_sms_notification_router, qc_sms_notification_router, protocol_sample_collection_router, research_donation_sample_collection_router, pilot_application_router, pilot_checkup_router, pilot_delivery_router, pilot_infusion_confirm_router, pilot_infusion_schedule_mgmt_router, outbound_release_review_router, clinical_payment_router, env_detect_router, cleanroom_garment_router, market_router, pre_transit_sample_router +from app.api import public_router, menu_router, admin_router, workflow_router, basic_info_router, collection_protocol_router, leave_router, operations_router, ethnic_router, sample_reception_router, sample_production_reception_router, qc_router, research_donation_router, production_router, pilot_service_router, insurance_company_router, material_router, storage_release_review_router, sample_sms_notification_router, storage_entry_sms_notification_router, qc_sms_notification_router, protocol_sample_collection_router, research_donation_sample_collection_router, pilot_application_router, pilot_checkup_router, pilot_delivery_router, pilot_infusion_confirm_router, pilot_infusion_schedule_mgmt_router, outbound_release_review_router, clinical_payment_router, env_detect_router, cleanroom_garment_router, market_router, pre_transit_sample_router, oa_approval_router @asynccontextmanager @@ -132,6 +132,7 @@ app.include_router(env_detect_router, prefix=settings.API_V1_PREFIX) app.include_router(cleanroom_garment_router, prefix=settings.API_V1_PREFIX) app.include_router(market_router, prefix=settings.API_V1_PREFIX) app.include_router(pre_transit_sample_router, prefix=settings.API_V1_PREFIX) +app.include_router(oa_approval_router, prefix=settings.API_V1_PREFIX) def _mask_secret(value: str) -> str: diff --git a/backend/app/services/oa_assignee.py b/backend/app/services/oa_assignee.py new file mode 100644 index 00000000..80715bd3 --- /dev/null +++ b/backend/app/services/oa_assignee.py @@ -0,0 +1,179 @@ +"""OA 审批人解析(不读 sys_role)""" +from __future__ import annotations + +from typing import Any, Dict, List, Optional, Tuple + +from sqlalchemy.orm import Session + +from app.crud import oa_approval as oa_crud +from app.models.models import SysDept, SysUser + + +class AssigneeResolveError(ValueError): + """审批人解析失败""" + + +def _active_user_id(db: Session, user_id: Optional[str], tenant_no: str) -> Optional[str]: + uid = (user_id or "").strip() + if not uid: + return None + u = ( + db.query(SysUser) + .filter( + SysUser.id == uid, + SysUser.tenant_no == tenant_no, + SysUser.del_flag == 0, + SysUser.status == "1", + ) + .first() + ) + return u.id if u else None + + +def resolve_dept_leader( + db: Session, *, tenant_no: str, initiator_dept_id: Optional[str] +) -> Tuple[List[str], Dict[str, Any]]: + dept_id = (initiator_dept_id or "").strip() + if not dept_id: + raise AssigneeResolveError("发起人部门为空,无法解析部门负责人") + dept = ( + db.query(SysDept) + .filter(SysDept.id == dept_id, SysDept.tenant_no == tenant_no, SysDept.del_flag == 0) + .first() + ) + if not dept: + raise AssigneeResolveError("发起人部门不存在") + leader_uid = _active_user_id(db, getattr(dept, "leader_user_id", None), tenant_no) + if not leader_uid: + raise AssigneeResolveError("部门负责人未配置或用户无效,请在组织管理中维护负责人") + return [leader_uid], {"resolve_source": "dept_leader"} + + +def resolve_direct_supervisor( + db: Session, + *, + tenant_no: str, + initiator_user_id: str, + initiator_dept_id: Optional[str], + fallback_to_dept_leader: bool = True, +) -> Tuple[List[str], Dict[str, Any]]: + initiator = ( + db.query(SysUser) + .filter( + SysUser.id == initiator_user_id, + SysUser.tenant_no == tenant_no, + SysUser.del_flag == 0, + ) + .first() + ) + if not initiator: + raise AssigneeResolveError("发起人不存在") + supervisor_uid = _active_user_id( + db, getattr(initiator, "supervisor_user_id", None), tenant_no + ) + if supervisor_uid: + if supervisor_uid == initiator_user_id: + raise AssigneeResolveError("直属主管不能是发起人本人,请修正用户主管配置") + return [supervisor_uid], {"resolve_source": "direct_supervisor"} + if fallback_to_dept_leader: + users, meta = resolve_dept_leader( + db, tenant_no=tenant_no, initiator_dept_id=initiator_dept_id or initiator.dept_id + ) + meta = {**meta, "resolve_source": "supervisor_fallback_dept_leader"} + return users, meta + raise AssigneeResolveError("未配置直属主管,且未开启回退部门负责人") + + +def resolve_assignees( + db: Session, + *, + tenant_no: str, + assignee_config: Dict[str, Any], + initiator_user_id: str, + initiator_dept_id: Optional[str] = None, + advanced: Optional[Dict[str, Any]] = None, + initiator_select_user_ids: Optional[List[str]] = None, +) -> Tuple[List[str], Dict[str, Any]]: + """ + 按节点 approverConfig 解析处理人。 + assigneeType: users | oa_roles | dept_leader | direct_supervisor | initiator_select + """ + cfg = assignee_config or {} + assignee_type = (cfg.get("assigneeType") or cfg.get("assignee_type") or "").strip() + advanced = advanced or {} + fallback = advanced.get("supervisorFallbackToDeptLeader", True) + if isinstance(fallback, str): + fallback = fallback.lower() in ("1", "true", "yes") + + if assignee_type == "users": + ids = cfg.get("userIds") or cfg.get("user_ids") or [] + out: List[str] = [] + seen = set() + for uid in ids: + real = _active_user_id(db, uid, tenant_no) + if real and real not in seen: + seen.add(real) + out.append(real) + if not out: + raise AssigneeResolveError("指定成员为空或均无效") + return out, {"resolve_source": "users"} + + if assignee_type == "oa_roles": + role_ids = cfg.get("oaRoleIds") or cfg.get("oa_role_ids") or [] + # 也支持按编码 + codes = cfg.get("oaRoleCodes") or cfg.get("oa_role_codes") or [] + if codes: + from app.models.models import OaRole + + extra = ( + db.query(OaRole.id) + .filter( + OaRole.tenant_no == tenant_no, + OaRole.role_code.in_([c.upper() for c in codes]), + OaRole.del_flag == 0, + OaRole.status == "1", + ) + .all() + ) + role_ids = list(role_ids) + [r.id for r in extra] + users = oa_crud.list_oa_role_user_ids(db, list(role_ids), tenant_no) + # 过滤停用用户 + out = [] + seen = set() + for uid in users: + real = _active_user_id(db, uid, tenant_no) + if real and real not in seen: + seen.add(real) + out.append(real) + if not out: + raise AssigneeResolveError("工作流角色成员为空或均无效") + return out, {"resolve_source": "oa_roles"} + + if assignee_type == "dept_leader": + return resolve_dept_leader( + db, tenant_no=tenant_no, initiator_dept_id=initiator_dept_id + ) + + if assignee_type == "direct_supervisor": + return resolve_direct_supervisor( + db, + tenant_no=tenant_no, + initiator_user_id=initiator_user_id, + initiator_dept_id=initiator_dept_id, + fallback_to_dept_leader=bool(fallback), + ) + + if assignee_type == "initiator_select": + ids = initiator_select_user_ids or cfg.get("userIds") or [] + out = [] + seen = set() + for uid in ids: + real = _active_user_id(db, uid, tenant_no) + if real and real not in seen: + seen.add(real) + out.append(real) + if not out: + raise AssigneeResolveError("发起人未选择审批人") + return out, {"resolve_source": "initiator_select"} + + raise AssigneeResolveError(f"不支持的审批人类型: {assignee_type or '(空)'}") diff --git a/backend/app/services/oa_engine.py b/backend/app/services/oa_engine.py index 364d61b3..bb793de0 100644 --- a/backend/app/services/oa_engine.py +++ b/backend/app/services/oa_engine.py @@ -353,6 +353,127 @@ def _task_to_dict(t: OaTask, *, assignee_user_name: str = "") -> Dict[str, Any]: } +_INSTANCE_STATUS_NODE_LABEL = { + "completed": "已完成", + "rejected": "已拒绝", + "returned": "已打回", + "cancelled": "已撤销", +} + + +def _instance_progress_summary( + inst: OaInstance, + *, + app_name: str, + initiator_user_name: str, + pending_approval_tasks: List[OaTask], + name_map: Dict[str, str], +) -> Dict[str, Any]: + status = (inst.status or "").strip() + apply_time = ( + inst.create_time.strftime("%Y-%m-%d %H:%M:%S") if inst.create_time else "" + ) + if status == "running": + node_names: List[str] = [] + seen_nodes = set() + approver_names: List[str] = [] + for t in pending_approval_tasks: + nn = (t.node_name or t.node_key or "").strip() + if nn and nn not in seen_nodes: + seen_nodes.add(nn) + node_names.append(nn) + uid = (t.assignee_user_id or "").strip() + if uid: + approver_names.append(name_map.get(uid, uid)) + current_node = "、".join(node_names) if node_names else "-" + current_approvers = "、".join(approver_names) if approver_names else "-" + else: + current_node = _INSTANCE_STATUS_NODE_LABEL.get(status, status or "-") + current_approvers = "-" + return { + "appName": app_name or (inst.title or ""), + "initiatorUserId": inst.initiator_user_id or "", + "initiatorUserName": initiator_user_name + or name_map.get(inst.initiator_user_id or "", inst.initiator_user_id or ""), + "applyTime": apply_time, + "instanceStatus": status, + "currentNodeName": current_node, + "currentApproverNames": current_approvers, + } + + +def _enrich_list_rows( + db: Session, + *, + tenant_no: str, + rows: List[Dict[str, Any]], + instances: List[OaInstance], +) -> List[Dict[str, Any]]: + if not rows: + return [] + inst_by_id = {i.id: i for i in instances} + app_ids = list({i.app_id for i in instances if i.app_id}) + apps = ( + db.query(OaApp) + .filter( + OaApp.id.in_(app_ids), + OaApp.tenant_no == tenant_no, + OaApp.del_flag == 0, + ) + .all() + if app_ids + else [] + ) + app_name_by_id = {a.id: (a.app_name or "") for a in apps} + + inst_ids = list(inst_by_id.keys()) + pending_tasks = ( + db.query(OaTask) + .filter( + OaTask.tenant_no == tenant_no, + OaTask.del_flag == 0, + OaTask.instance_id.in_(inst_ids), + OaTask.task_type == "approval", + OaTask.status == "pending", + ) + .order_by(OaTask.create_time.asc()) + .all() + if inst_ids + else [] + ) + pending_by_inst: Dict[str, List[OaTask]] = {} + for t in pending_tasks: + pending_by_inst.setdefault(t.instance_id, []).append(t) + + user_ids: List[str] = [] + for i in instances: + if i.initiator_user_id: + user_ids.append(i.initiator_user_id) + for t in pending_tasks: + if t.assignee_user_id: + user_ids.append(t.assignee_user_id) + name_map = _user_name_map(db, user_ids) + + out: List[Dict[str, Any]] = [] + for row in rows: + iid = row.get("instanceId") or row.get("id") + inst = inst_by_id.get(iid) + if not inst: + out.append(row) + continue + summary = _instance_progress_summary( + inst, + app_name=app_name_by_id.get(inst.app_id, ""), + initiator_user_name=name_map.get(inst.initiator_user_id or "", ""), + pending_approval_tasks=pending_by_inst.get(inst.id, []), + name_map=name_map, + ) + merged = dict(row) + merged.update(summary) + out.append(merged) + return out + + def _user_name_map(db: Session, user_ids: List[str]) -> Dict[str, str]: ids = [uid for uid in {str(u or "").strip() for u in user_ids} if uid] if not ids: @@ -1052,12 +1173,26 @@ def list_tasks( .order_by(OaInstance.create_time.desc()) .all() ) - return [_instance_to_dict(i) for i in insts] + rows = [_instance_to_dict(i) for i in insts] + return _enrich_list_rows(db, tenant_no=tenant_no, rows=rows, instances=insts) else: raise OaEngineError(f"不支持的列表类型: {kind}") - rows = q.order_by(OaTask.create_time.desc()).all() - return [_task_to_dict(t) for t in rows] + rows_orm = q.order_by(OaTask.create_time.desc()).all() + rows = [_task_to_dict(t) for t in rows_orm] + inst_ids = list({t.instance_id for t in rows_orm if t.instance_id}) + insts = ( + db.query(OaInstance) + .filter( + OaInstance.tenant_no == tenant_no, + OaInstance.del_flag == 0, + OaInstance.id.in_(inst_ids), + ) + .all() + if inst_ids + else [] + ) + return _enrich_list_rows(db, tenant_no=tenant_no, rows=rows, instances=insts) def complete_task( diff --git a/backend/app/services/oa_formula.py b/backend/app/services/oa_formula.py new file mode 100644 index 00000000..e0341907 --- /dev/null +++ b/backend/app/services/oa_formula.py @@ -0,0 +1,281 @@ +"""OA 表单公式与数据联动(禁止任意 eval)""" +from __future__ import annotations + +import ast +import operator +import re +from typing import Any, Dict, List, Optional, Tuple, Union + +Number = Union[int, float] + +_BIN_OPS = { + ast.Add: operator.add, + ast.Sub: operator.sub, + ast.Mult: operator.mul, + ast.Div: operator.truediv, + ast.Mod: operator.mod, +} + +_CMP_OPS = { + ast.Eq: operator.eq, + ast.NotEq: operator.ne, + ast.Lt: operator.lt, + ast.LtE: operator.le, + ast.Gt: operator.gt, + ast.GtE: operator.ge, +} + +# 字段引用:{field} 或 field(Ident) +_FIELD_BRACE = re.compile(r"\{([A-Za-z_][A-Za-z0-9_]*)\}") + + +class FormulaError(ValueError): + """公式非法或求值失败""" + + +def _to_number(v: Any) -> Number: + if v is None or v == "": + return 0 + if isinstance(v, bool): + return int(v) + if isinstance(v, (int, float)): + return v + if isinstance(v, str): + s = v.strip() + if not s: + return 0 + try: + if "." in s: + return float(s) + return int(s) + except ValueError as e: + raise FormulaError(f"无法将「{v}」转为数字") from e + raise FormulaError(f"不支持的数值类型: {type(v).__name__}") + + +def _truthy(v: Any) -> bool: + if v is None: + return False + if isinstance(v, (int, float)): + return v != 0 + if isinstance(v, str): + return v.strip() != "" + if isinstance(v, (list, dict)): + return len(v) > 0 + return bool(v) + + +def preprocess_formula(expr: str) -> str: + """将 {field} 转为合法标识符引用 field。""" + text = (expr or "").strip() + if not text: + raise FormulaError("公式为空") + return _FIELD_BRACE.sub(r"\1", text) + + +class _SafeEval(ast.NodeVisitor): + def __init__(self, form_data: Dict[str, Any]): + self.form_data = form_data or {} + + def visit(self, node): # type: ignore[override] + method = "visit_" + node.__class__.__name__ + visitor = getattr(self, method, None) + if visitor is None: + raise FormulaError(f"不支持的语法: {node.__class__.__name__}") + return visitor(node) + + def visit_Expression(self, node: ast.Expression): + return self.visit(node.body) + + def visit_Constant(self, node: ast.Constant): + if isinstance(node.value, (int, float, str, bool)) or node.value is None: + return node.value + raise FormulaError("不支持的常量类型") + + # Py3.9 可能仍有 Num/Str/NameConstant + def visit_Num(self, node): # pragma: no cover + return node.n + + def visit_Str(self, node): # pragma: no cover + return node.s + + def visit_NameConstant(self, node): # pragma: no cover + return node.value + + def visit_Name(self, node: ast.Name): + if not isinstance(node.ctx, ast.Load): + raise FormulaError("仅允许读取字段") + key = node.id + if key not in self.form_data: + # 未填视为 0 / 空:数字上下文由运算再转 + return self.form_data.get(key) + return self.form_data.get(key) + + def visit_UnaryOp(self, node: ast.UnaryOp): + val = self.visit(node.operand) + if isinstance(node.op, ast.UAdd): + return +_to_number(val) + if isinstance(node.op, ast.USub): + return -_to_number(val) + if isinstance(node.op, ast.Not): + return not _truthy(val) + raise FormulaError("不支持的一元运算") + + def visit_BinOp(self, node: ast.BinOp): + op_type = type(node.op) + if op_type not in _BIN_OPS: + raise FormulaError("仅支持 + - * / %") + left = _to_number(self.visit(node.left)) + right = _to_number(self.visit(node.right)) + if op_type is ast.Div and right == 0: + raise FormulaError("除数不能为 0") + if op_type is ast.Mod and right == 0: + raise FormulaError("模运算除数不能为 0") + return _BIN_OPS[op_type](left, right) + + def visit_Compare(self, node: ast.Compare): + left = self.visit(node.left) + for op, comp in zip(node.ops, node.comparators): + op_type = type(op) + if op_type not in _CMP_OPS: + raise FormulaError("不支持的比较运算") + right = self.visit(comp) + # 两侧能数字则按数字比 + try: + l2, r2 = _to_number(left), _to_number(right) + ok = _CMP_OPS[op_type](l2, r2) + except FormulaError: + ok = _CMP_OPS[op_type](left, right) + if not ok: + return False + left = right + return True + + def visit_BoolOp(self, node: ast.BoolOp): + if isinstance(node.op, ast.And): + val = True + for v in node.values: + val = _truthy(self.visit(v)) + if not val: + return False + return True + if isinstance(node.op, ast.Or): + for v in node.values: + if _truthy(self.visit(v)): + return True + return False + raise FormulaError("不支持的逻辑运算") + + def visit_IfExp(self, node: ast.IfExp): + return self.visit(node.body) if _truthy(self.visit(node.test)) else self.visit(node.orelse) + + def visit_Call(self, node: ast.Call): + if not isinstance(node.func, ast.Name): + raise FormulaError("仅支持白名单函数") + fname = node.func.id.upper() + if node.keywords: + raise FormulaError("函数不支持关键字参数") + args = [self.visit(a) for a in node.args] + if fname == "IF": + if len(args) != 3: + raise FormulaError("IF 需要 3 个参数") + return args[1] if _truthy(args[0]) else args[2] + if fname == "SUM": + total: Number = 0 + for a in args: + if isinstance(a, list): + for item in a: + total = total + _to_number(item) + else: + total = total + _to_number(a) + return total + if fname == "ABS": + if len(args) != 1: + raise FormulaError("ABS 需要 1 个参数") + return abs(_to_number(args[0])) + raise FormulaError(f"函数未开放: {node.func.id}") + + def visit_List(self, node: ast.List): + return [self.visit(e) for e in node.elts] + + +def eval_formula(expr: str, form_data: Optional[Dict[str, Any]] = None) -> Any: + text = preprocess_formula(expr) + try: + tree = ast.parse(text, mode="eval") + except SyntaxError as e: + raise FormulaError(f"公式语法错误: {e.msg}") from e + return _SafeEval(form_data or {}).visit(tree) + + +def _extract_rules(form_schema: Any) -> List[Dict[str, Any]]: + if isinstance(form_schema, list): + return [r for r in form_schema if isinstance(r, dict)] + if isinstance(form_schema, dict): + rules = form_schema.get("rule") or form_schema.get("rules") or form_schema.get("fields") + if isinstance(rules, list): + return [r for r in rules if isinstance(r, dict)] + return [] + + +def _walk_rules(rules: List[Dict[str, Any]], out: List[Dict[str, Any]]) -> None: + for rule in rules: + out.append(rule) + children = rule.get("children") or [] + if isinstance(children, list): + _walk_rules([c for c in children if isinstance(c, dict)], out) + + +def apply_formulas_and_linkages( + schema: Any, form_data: Optional[Dict[str, Any]] = None +) -> Dict[str, Any]: + """ + 按 schema 中字段 props.formula / props.linkage 回填 form_data。 + linkage 示例: { "when": "{days} > 3", "set": { "needGm": true } } + 或列表 form。 + """ + data: Dict[str, Any] = dict(form_data or {}) + flat: List[Dict[str, Any]] = [] + _walk_rules(_extract_rules(schema), flat) + + # 多轮公式:处理依赖(有上限) + for _ in range(5): + changed = False + for rule in flat: + field = rule.get("field") + if not field: + continue + props = rule.get("props") or {} + formula = props.get("formula") or rule.get("formula") + if formula: + try: + val = eval_formula(str(formula), data) + except FormulaError: + raise + if data.get(field) != val: + data[field] = val + changed = True + if not changed: + break + + for rule in flat: + props = rule.get("props") or {} + linkages = props.get("linkage") or rule.get("linkage") + if not linkages: + continue + items = linkages if isinstance(linkages, list) else [linkages] + for link in items: + if not isinstance(link, dict): + continue + when = link.get("when") or link.get("condition") + sets = link.get("set") or link.get("assign") or {} + if when is None: + continue + try: + ok = _truthy(eval_formula(str(when), data)) + except FormulaError: + continue + if ok and isinstance(sets, dict): + for k, v in sets.items(): + data[k] = v + return data diff --git a/backend/app/services/oa_publish.py b/backend/app/services/oa_publish.py new file mode 100644 index 00000000..cd2eeb1b --- /dev/null +++ b/backend/app/services/oa_publish.py @@ -0,0 +1,405 @@ +"""OA 审批应用发布校验与发布落库""" +from __future__ import annotations + +from typing import Any, Dict, List, Optional, Set, Tuple + +from sqlalchemy.orm import Session + +from app.crud import oa_approval as oa_crud +from app.models.models import OaRole + +# 可填控件(FormCreate / 自建控件字典交集;布局类不计) +FILLABLE_TYPES = frozenset( + { + "input", + "textarea", + "inputNumber", + "number", + "radio", + "checkbox", + "select", + "switch", + "datePicker", + "date", + "dateRange", + "timePicker", + "time", + "phone", + "image", + "upload", + "attachment", + "oaAttachment", + "money", + "dept", + "region", + "formula", + "relatedApproval", + "rate", + "slider", + "cascader", + } +) + +LAYOUT_TYPES = frozenset( + { + "fcRow", + "col", + "column", + "fcTable", + "html", + "divider", + "card", + "space", + "tabs", + "tabPane", + "group", + "object", + } +) + +VALID_ASSIGNEE_TYPES = frozenset( + { + "users", + "oa_roles", + "dept_leader", + "direct_supervisor", + "initiator_select", + } +) + +VALID_NODE_TYPES = frozenset({"start", "approval", "cc", "condition", "end"}) + +# 发布允许的控件 type(未知 type 拒绝) +ALLOWED_CONTROL_TYPES = FILLABLE_TYPES | LAYOUT_TYPES | frozenset({"oaAttachment"}) + + +def _extract_rules(form_schema: Any) -> List[Dict[str, Any]]: + if form_schema is None: + return [] + if isinstance(form_schema, list): + return [r for r in form_schema if isinstance(r, dict)] + if isinstance(form_schema, dict): + rules = form_schema.get("rule") or form_schema.get("rules") or form_schema.get("fields") + if isinstance(rules, list): + return [r for r in rules if isinstance(r, dict)] + # 单字段对象 + if form_schema.get("type") or form_schema.get("field"): + return [form_schema] + return [] + + +def _walk_form_rules(rules: List[Dict[str, Any]], out: List[Dict[str, Any]]) -> None: + for rule in rules: + out.append(rule) + children = rule.get("children") or rule.get("props", {}).get("rule") or [] + if isinstance(children, list): + _walk_form_rules([c for c in children if isinstance(c, dict)], out) + + +def count_fillable_fields(form_schema: Any) -> int: + flat: List[Dict[str, Any]] = [] + _walk_form_rules(_extract_rules(form_schema), flat) + n = 0 + for rule in flat: + t = (rule.get("type") or "").strip() + if t in LAYOUT_TYPES: + continue + field = rule.get("field") or rule.get("name") + if t in FILLABLE_TYPES or (field and t and t not in LAYOUT_TYPES): + n += 1 + return n + + +def _node_type(node: Dict[str, Any]) -> str: + return (node.get("type") or node.get("nodeType") or "").strip() + + +def validate_flow_tree(flow_tree: Any) -> List[str]: + errors: List[str] = [] + if not flow_tree or not isinstance(flow_tree, dict): + return ["流程树不能为空"] + + root = flow_tree + # 兼容 { root: node } 包装 + if "root" in flow_tree and isinstance(flow_tree["root"], dict): + root = flow_tree["root"] + + if _node_type(root) != "start": + errors.append("流程树根节点必须是发起人(start)") + + seen_end = False + + def walk(node: Optional[Dict[str, Any]], path: str) -> None: + nonlocal seen_end + if not node or not isinstance(node, dict): + errors.append(f"{path}:节点缺失") + return + ntype = _node_type(node) + if ntype not in VALID_NODE_TYPES: + errors.append(f"{path}:不支持的节点类型「{ntype or '(空)'}」") + return + + if ntype == "end": + seen_end = True + if node.get("child"): + errors.append(f"{path}:结束节点后不应再有子节点") + return + + if ntype in ("approval", "cc"): + cfg = node.get("approverConfig") or node.get("approver_config") or {} + if not isinstance(cfg, dict): + cfg = {} + # 抄送也需要明确接收人策略 + at = (cfg.get("assigneeType") or cfg.get("assignee_type") or "").strip() + if not at: + errors.append(f"{path}:未配置审批人/抄送人策略") + elif at not in VALID_ASSIGNEE_TYPES: + errors.append(f"{path}:不支持的审批人类型「{at}」") + elif at == "users": + ids = cfg.get("userIds") or cfg.get("user_ids") or [] + if not ids: + errors.append(f"{path}:指定成员不能为空") + elif at == "oa_roles": + rids = cfg.get("oaRoleIds") or cfg.get("oa_role_ids") or [] + codes = cfg.get("oaRoleCodes") or cfg.get("oa_role_codes") or [] + if not rids and not codes: + errors.append(f"{path}:工作流角色不能为空") + # dept_leader / direct_supervisor / initiator_select:类型本身即完备 + + if ntype == "condition": + groups = node.get("conditionGroups") or node.get("condition_groups") or [] + if not isinstance(groups, list) or len(groups) < 1: + errors.append(f"{path}:条件分支至少需要一组出线") + else: + for i, g in enumerate(groups): + if not isinstance(g, dict): + errors.append(f"{path}.条件组[{i}]:格式非法") + continue + child = g.get("child") + if not child: + errors.append(f"{path}.条件组[{i}]:缺少下游节点") + else: + gname = g.get("name") or f"分支{i + 1}" + walk(child if isinstance(child, dict) else None, f"{path}/{gname}") + # 条件节点也可有默认 child(部分设计);若无 groups 已报错 + return + + child = node.get("child") + if child is None: + if ntype != "end": + errors.append(f"{path}:须连接到后续节点直至结束") + return + if not isinstance(child, dict): + errors.append(f"{path}:子节点格式非法") + return + cname = child.get("name") or _node_type(child) or "next" + walk(child, f"{path}/{cname}") + + walk(root, root.get("name") or "发起人") + if not seen_end: + errors.append("流程树未能到达结束节点") + return errors + + +def validate_oa_roles_referenced( + db: Session, *, tenant_no: str, flow_tree: Any +) -> List[str]: + role_ids: Set[str] = set() + role_codes: Set[str] = set() + + def collect(node: Optional[Dict[str, Any]]) -> None: + if not node or not isinstance(node, dict): + return + cfg = node.get("approverConfig") or {} + if isinstance(cfg, dict): + at = (cfg.get("assigneeType") or "").strip() + if at == "oa_roles": + for rid in cfg.get("oaRoleIds") or cfg.get("oa_role_ids") or []: + if rid: + role_ids.add(str(rid)) + for code in cfg.get("oaRoleCodes") or cfg.get("oa_role_codes") or []: + if code: + role_codes.add(str(code).upper()) + child = node.get("child") + if isinstance(child, dict): + collect(child) + for g in node.get("conditionGroups") or []: + if isinstance(g, dict) and isinstance(g.get("child"), dict): + collect(g["child"]) + + root = flow_tree + if isinstance(flow_tree, dict) and isinstance(flow_tree.get("root"), dict): + root = flow_tree["root"] + collect(root if isinstance(root, dict) else None) + + errors: List[str] = [] + if role_ids: + rows = ( + db.query(OaRole) + .filter( + OaRole.id.in_(list(role_ids)), + OaRole.tenant_no == tenant_no, + OaRole.del_flag == 0, + ) + .all() + ) + found = {r.id: r for r in rows} + for rid in role_ids: + r = found.get(rid) + if not r: + errors.append(f"引用的工作流角色不存在:{rid}") + elif r.status != "1": + errors.append(f"工作流角色已停用:{r.role_name or rid}") + if role_codes: + rows = ( + db.query(OaRole) + .filter( + OaRole.role_code.in_(list(role_codes)), + OaRole.tenant_no == tenant_no, + OaRole.del_flag == 0, + ) + .all() + ) + found_codes = {r.role_code.upper(): r for r in rows} + for code in role_codes: + r = found_codes.get(code) + if not r: + errors.append(f"引用的工作流角色编码不存在:{code}") + elif r.status != "1": + errors.append(f"工作流角色已停用:{r.role_name or code}") + return errors + + +def validate_control_types(form_schema: Any) -> List[str]: + flat: List[Dict[str, Any]] = [] + _walk_form_rules(_extract_rules(form_schema), flat) + errors: List[str] = [] + unknown: Set[str] = set() + for rule in flat: + t = (rule.get("type") or "").strip() + if not t: + continue + if t not in ALLOWED_CONTROL_TYPES: + unknown.add(t) + for t in sorted(unknown): + errors.append(f"不支持的表单控件类型:{t}") + return errors + + +def validate_draft_for_publish( + db: Session, + *, + tenant_no: str, + form_schema: Any, + flow_tree: Any, + basic: Optional[Dict[str, Any]] = None, +) -> List[str]: + errors: List[str] = [] + app_name = "" + if basic and isinstance(basic, dict): + app_name = (basic.get("appName") or "").strip() + if not app_name: + # 校验侧也可能只传 schema;名称在 publish 时再查 app + pass + if count_fillable_fields(form_schema) < 1: + errors.append("表单至少需要 1 个可填字段") + errors.extend(validate_control_types(form_schema)) + errors.extend(validate_flow_tree(flow_tree)) + errors.extend(validate_oa_roles_referenced(db, tenant_no=tenant_no, flow_tree=flow_tree)) + return errors + + +def publish_app( + db: Session, + app_id: str, + *, + tenant_no: str, + user_id: Optional[str] = None, +) -> Tuple[Dict[str, Any], List[str]]: + """ + 校验并发布当前草稿。 + 成功返回 (draft_dict_like_published_info, []); + 失败返回 ({}, errors)。 + """ + app = oa_crud.get_app(db, app_id, tenant_no) + if not app: + return {}, ["应用不存在"] + if not (app.app_name or "").strip(): + return {}, ["应用名称不能为空"] + + draft_payload = oa_crud.get_or_create_draft(db, app_id, tenant_no=tenant_no, user_id=user_id) + form_schema = draft_payload.get("formSchemaJson") + flow_tree = draft_payload.get("flowTreeJson") + errors = validate_draft_for_publish( + db, + tenant_no=tenant_no, + form_schema=form_schema, + flow_tree=flow_tree, + basic=draft_payload.get("basic"), + ) + if errors: + return {}, errors + + draft = oa_crud._find_draft(db, app_id, tenant_no) + if not draft: + return {}, ["草稿不存在"] + + from datetime import datetime + + from app.models.models import OaAppVersion + + now = datetime.now() + olds = ( + db.query(OaAppVersion) + .filter( + OaAppVersion.app_id == app_id, + OaAppVersion.tenant_no == tenant_no, + OaAppVersion.is_latest_published == "1", + OaAppVersion.del_flag == 0, + ) + .all() + ) + for old in olds: + old.is_latest_published = "0" + old.update_by = user_id + old.update_time = now + db.add(old) + + draft.status = "published" + draft.is_latest_published = "1" + draft.update_by = user_id + draft.update_time = now + db.add(draft) + + # 发布后不应再残留其它草稿(并发/重复创建等);否则列表 hasDraft 仍为 true + leftover_drafts = ( + db.query(OaAppVersion) + .filter( + OaAppVersion.app_id == app_id, + OaAppVersion.tenant_no == tenant_no, + OaAppVersion.status == "draft", + OaAppVersion.del_flag == 0, + OaAppVersion.id != draft.id, + ) + .all() + ) + for leftover in leftover_drafts: + leftover.del_flag = 1 + leftover.update_by = user_id + leftover.update_time = now + db.add(leftover) + + app.update_by = user_id + app.update_time = now + db.add(app) + db.commit() + db.refresh(draft) + + return { + "appId": app.id, + "versionId": draft.id, + "versionNo": draft.version_no, + "status": draft.status, + "isLatestPublished": draft.is_latest_published, + "appName": app.app_name, + }, [] diff --git a/backend/graphify-out/.graphify_analysis.json b/backend/graphify-out/.graphify_analysis.json index ae455b13..11702aa6 100644 --- a/backend/graphify-out/.graphify_analysis.json +++ b/backend/graphify-out/.graphify_analysis.json @@ -131,11 +131,11 @@ "api_clinical_payment_api_submit_refund", "api_clinical_payment_get_tenant_no", "api_clinical_payment_py", - "api_collection_protocol_batchrefundfinancesubmitbody", "api_collection_protocol_complete_protocol_invoice_request", "api_collection_protocol_create_collection_protocol", "api_collection_protocol_delete_collection_protocol", "api_collection_protocol_draft_fields_from_body", + "api_collection_protocol_ensure_customer_for_mother", "api_collection_protocol_get_collection_protocol_detail", "api_collection_protocol_get_current_user_id", "api_collection_protocol_get_invoice_eligible_payments", @@ -165,7 +165,6 @@ "api_collection_protocol_protocol_invoice_pending_count", "api_collection_protocol_put_payment_detail_draft", "api_collection_protocol_py", - "api_collection_protocol_refundfinancesubmitbody", "api_collection_protocol_resolve_consent_form_urls", "api_collection_protocol_resolve_health_survey_form_urls", "api_collection_protocol_resolve_protocol_attachments", @@ -346,6 +345,7 @@ "api_pilot_application_api_list_plans", "api_pilot_application_api_list_schedules", "api_pilot_application_api_mark_complete", + "api_pilot_application_api_save_application", "api_pilot_application_api_save_patient", "api_pilot_application_api_start_application", "api_pilot_application_api_update_application", @@ -783,7 +783,6 @@ "api_sample_reception_post_sample_reception", "api_sample_reception_put_sample_reception", "api_sample_reception_py", - "api_sample_reception_rationale_272", "api_sample_reception_update_check_item", "api_sample_sms_notification_generate_sms", "api_sample_sms_notification_get_current_user_id", @@ -849,33 +848,54 @@ "core_response_rationale_40", "core_response_success_response", "core_utils_parse_datetime", + "core_wechat_pay_rationale_254", + "core_wechat_pay_wechatpayclient_refund", "crud_base_crudbase_get", - "crud_clean_room_access_log_to_dict", "crud_cleanroom_garment_get_garment_detail", + "crud_clinical_payment_apply_submit_receipt", + "crud_clinical_payment_batch_submit_receipt", + "crud_clinical_payment_batch_submit_refund", + "crud_clinical_payment_confirm_receipt", + "crud_clinical_payment_confirm_refund", + "crud_clinical_payment_enrich_payment", + "crud_clinical_payment_get_or_raise", + "crud_clinical_payment_get_payment_by_schedule", + "crud_clinical_payment_get_payment_detail", "crud_clinical_payment_list_payments", + "crud_clinical_payment_map_payments_by_schedule_id", + "crud_clinical_payment_map_payments_by_schedule_ids", + "crud_clinical_payment_py", + "crud_clinical_payment_reject_receipt", + "crud_clinical_payment_reject_refund", "crud_clinical_payment_row_to_dict", + "crud_clinical_payment_submit_receipt", + "crud_clinical_payment_submit_refund", + "crud_collection_protocol_apply_submit_refund_finance", "crud_collection_protocol_attachments_to_urls", + "crud_collection_protocol_batch_submit_refund_finance", "crud_collection_protocol_no_enrich_issued_user_names", + "crud_collection_protocol_submit_refund_finance", "crud_collection_region_region_to_dict", "crud_exhibition_appointment_total_pages", "crud_leave_update_leave_status", - "crud_material_stock_check_parse_optional_date", - "crud_material_stock_check_save_unused_lines", + "crud_material_stock_check_create_check", + "crud_material_stock_check_parse_check_time", "crud_oa_approval_group_to_dict", "crud_oa_approval_list_groups", "crud_oa_approval_list_role_users", "crud_oa_approval_list_roles", "crud_oa_approval_member_count_map", "crud_oa_approval_role_to_dict", - "crud_pilot_checkup_get_checkup_by_application", + "crud_pilot_application_auto_generate_schedules", + "crud_pilot_application_create_application", + "crud_pilot_application_resolve_application_attachment_payload", + "crud_pilot_application_update_application", + "crud_pilot_delivery_save_delivery_materials", "crud_pilot_delivery_save_delivery_method", - "crud_pilot_infusion_schedule_mgmt_update_infusion_schedule_mgmt", "crud_pilot_service_enrich_finance_operate_fields", "crud_pilot_service_normalize_txn_product_item", "crud_pilot_service_row_to_dict_channel_agreement", "crud_pilot_service_row_to_dict_checkup_institution", - "crud_pilot_service_row_to_dict_checkup_institution_invoice", - "crud_pilot_service_row_to_dict_project_system_item", "crud_pilot_service_row_to_dict_service_order", "crud_pilot_service_row_to_dict_service_order_txn", "crud_pilot_service_service_order_txn_to_response_dict", @@ -883,24 +903,27 @@ "crud_process_route_route_row_to_dict", "crud_process_route_update_step", "crud_production_task_build_process_library_for_editor", - "crud_production_task_enrich_assignee_names", + "crud_production_task_delete_task_step", "crud_production_task_get_production_task_editor_init", + "crud_production_task_replace_step_configured_reagents", + "crud_production_task_replace_step_consumables", + "crud_production_task_replace_step_data_collections", + "crud_production_task_replace_step_outputs", + "crud_production_task_replace_step_reagents", + "crud_production_task_require_requisition_for_catalog_material", + "crud_production_task_set_task_inputs", + "crud_production_task_soft_delete_sub", "crud_production_task_update_task_step", "crud_qc_material_batch_stock_in", "crud_qc_material_batch_stock_out", - "crud_qc_material_options_list", "crud_qc_material_rationale_345", "crud_qc_material_rationale_492", "crud_qc_material_stock_batch_batch_discard", - "crud_qc_material_stock_batch_batch_options", - "crud_qc_material_stock_batch_batch_row_to_dict", - "crud_qc_material_stock_batch_fmt_date", - "crud_qc_material_stock_batch_list_batches", "crud_qc_material_usage_mark_requisition_fully_used", - "crud_research_donation_batch_delete_donations", + "crud_qc_work_order_create_outbound_qc_work_order", + "crud_qc_work_order_resolve_outbound_biz_type_for_schedule", "crud_research_donation_change_status", "crud_research_donation_donation_to_dict", - "crud_sample_sms_notification_toggle_notification_status", "crud_workflow_get_all_tasks_for_business", "schemas_order_adjust_adjuststatus", "schemas_order_adjust_adjusttype", @@ -911,9 +934,15 @@ "str" ], "1": [ - "api_collection_protocol_ensure_customer_for_mother", "core_utils_generate_uuid", - "crud_base_crudbase_update", + "crud_base_crudbase_exists", + "crud_biz_no_generator_allocate_next_biz_no", + "crud_biz_no_generator_format_biz_no", + "crud_biz_no_generator_prefix_for", + "crud_biz_no_generator_py", + "crud_biz_no_generator_rationale_1", + "crud_biz_no_generator_rationale_35", + "crud_cell_product_create_cell_product", "crud_cell_sample_type_create_cell_sample_type", "crud_cell_sample_type_get_cell_sample_type", "crud_cell_sample_type_list_cell_sample_types", @@ -924,6 +953,7 @@ "crud_cell_sample_type_total_pages", "crud_cell_sample_type_type_code_exists", "crud_cell_sample_type_update_cell_sample_type", + "crud_clean_room_access_log_to_dict", "crud_clean_room_calc_duration_minutes", "crud_clean_room_create_access_log", "crud_clean_room_create_clean_room", @@ -976,24 +1006,8 @@ "crud_cleanroom_garment_update_sterilize_log", "crud_cleanroom_garment_update_wash_log", "crud_cleanroom_garment_wash_log_to_dict", - "crud_clinical_payment_apply_submit_receipt", - "crud_clinical_payment_auto_create_payment", - "crud_clinical_payment_batch_submit_receipt", - "crud_clinical_payment_batch_submit_refund", - "crud_clinical_payment_confirm_receipt", - "crud_clinical_payment_confirm_refund", - "crud_clinical_payment_enrich_payment", - "crud_clinical_payment_get_or_raise", - "crud_clinical_payment_get_payment_by_schedule", - "crud_clinical_payment_get_payment_detail", - "crud_clinical_payment_map_payments_by_schedule_id", - "crud_clinical_payment_py", - "crud_clinical_payment_reject_receipt", - "crud_clinical_payment_reject_refund", - "crud_clinical_payment_submit_receipt", - "crud_clinical_payment_submit_refund", + "crud_collection_protocol_create_collection_protocol", "crud_collection_protocol_create_invoice_request", - "crud_collection_protocol_get_protocol_nos_used_in_protocols", "crud_collection_protocol_no_batch_generate_protocol_nos", "crud_collection_protocol_no_batch_issue_protocol_nos", "crud_collection_protocol_no_batch_revoke_protocol_nos", @@ -1071,19 +1085,6 @@ "crud_customer_total_pages", "crud_customer_update_customer", "crud_dept_create_dept", - "crud_dict_data_create_dict_data", - "crud_dict_data_get_dict_data", - "crud_dict_data_is_dict_value_valid", - "crud_dict_data_list_dict_data", - "crud_dict_data_list_dict_data_options", - "crud_dict_data_normalize_transfer_type", - "crud_dict_data_normalize_void_type", - "crud_dict_data_py", - "crud_dict_data_rationale_1", - "crud_dict_data_row_to_dict", - "crud_dict_data_soft_delete_dict_data", - "crud_dict_data_total_pages", - "crud_dict_data_update_dict_data", "crud_dict_type_create_dict_type", "crud_dict_type_dict_type_code_exists", "crud_dict_type_get_dict_type", @@ -1113,6 +1114,20 @@ "crud_env_detect_record_resolve_item_snapshot", "crud_env_detect_record_soft_delete_env_detect_record", "crud_env_detect_record_update_env_detect_record", + "crud_equipment_create_equipment", + "crud_equipment_dec", + "crud_equipment_equipment_code_exists", + "crud_equipment_equipment_is_referenced", + "crud_equipment_get_equipment", + "crud_equipment_list_equipments", + "crud_equipment_norm_status", + "crud_equipment_parse_date", + "crud_equipment_py", + "crud_equipment_rationale_1", + "crud_equipment_row_to_dict", + "crud_equipment_soft_delete_equipment", + "crud_equipment_total_pages", + "crud_equipment_update_equipment", "crud_exhibition_appointment_create_exhibition_appointment", "crud_express_company_create_express_company", "crud_express_company_express_code_exists", @@ -1164,30 +1179,9 @@ "crud_material_stock_batch_usage_batch_snapshots", "crud_material_stock_batch_validate_discard_reason", "crud_menu_create_menu", - "crud_oa_approval_app_to_dict", - "crud_oa_approval_create_app", "crud_oa_approval_create_group", "crud_oa_approval_create_role", - "crud_oa_approval_create_version", - "crud_oa_approval_delete_app", - "crud_oa_approval_delete_group", - "crud_oa_approval_delete_role", - "crud_oa_approval_dumps", - "crud_oa_approval_ensure_presets", - "crud_oa_approval_find_draft", - "crud_oa_approval_get_app", - "crud_oa_approval_get_group", - "crud_oa_approval_get_or_create_draft", - "crud_oa_approval_get_role", - "crud_oa_approval_list_apps", - "crud_oa_approval_loads", - "crud_oa_approval_py", "crud_oa_approval_replace_role_users", - "crud_oa_approval_save_draft", - "crud_oa_approval_update_app", - "crud_oa_approval_update_group", - "crud_oa_approval_update_role", - "crud_oa_approval_version_draft_to_dict", "crud_output_type_create_output_type", "crud_output_type_get_output_type", "crud_output_type_list_output_types", @@ -1210,7 +1204,6 @@ "crud_pilot_delivery_row_to_dict_delivery", "crud_pilot_delivery_row_to_dict_delivery_material", "crud_pilot_delivery_row_to_dict_delivery_method", - "crud_pilot_delivery_save_delivery_materials", "crud_pilot_delivery_soft_delete_delivery", "crud_pilot_service_activate_channel_agreement", "crud_pilot_service_apply_gmcp_order_quotas", @@ -1277,10 +1270,10 @@ "crud_pilot_service_list_channel_product_quotas", "crud_pilot_service_list_channel_service_orders", "crud_pilot_service_list_channels", + "crud_pilot_service_list_checkup_institution_invoices", "crud_pilot_service_list_checkup_institution_packages", - "crud_pilot_service_list_checkup_institution_projects", - "crud_pilot_service_list_checkup_institutions", "crud_pilot_service_list_package_items_raw", + "crud_pilot_service_list_project_system_items", "crud_pilot_service_list_project_systems", "crud_pilot_service_list_service_order_txns", "crud_pilot_service_normalize_date_bound", @@ -1304,10 +1297,11 @@ "crud_pilot_service_row_to_dict_channel_invoice", "crud_pilot_service_row_to_dict_channel_mail_address", "crud_pilot_service_row_to_dict_channel_product_quota", + "crud_pilot_service_row_to_dict_checkup_institution_invoice", "crud_pilot_service_row_to_dict_checkup_institution_package", "crud_pilot_service_row_to_dict_checkup_institution_package_item", - "crud_pilot_service_row_to_dict_checkup_institution_project", "crud_pilot_service_row_to_dict_project_system", + "crud_pilot_service_row_to_dict_project_system_item", "crud_pilot_service_row_to_dict_service_order_product", "crud_pilot_service_save_gmcp_product_rows", "crud_pilot_service_soft_delete_cell_product_price", @@ -1421,17 +1415,96 @@ "crud_production_material_rationale_530", "crud_production_material_row_to_dict", "crud_production_material_soft_delete_material", + "crud_production_material_stock_batch_batch_discard", + "crud_production_material_stock_batch_batch_options", + "crud_production_material_stock_batch_batch_row_to_dict", + "crud_production_material_stock_batch_batch_stock_in", + "crud_production_material_stock_batch_batch_stock_out", + "crud_production_material_stock_batch_create_batch_and_usage", + "crud_production_material_stock_batch_delete_batch", + "crud_production_material_stock_batch_discard_batch", + "crud_production_material_stock_batch_fmt_date", + "crud_production_material_stock_batch_get_batch", + "crud_production_material_stock_batch_get_material_for_update", + "crud_production_material_stock_batch_list_batches", + "crud_production_material_stock_batch_optional_str", + "crud_production_material_stock_batch_parse_date", + "crud_production_material_stock_batch_parse_expire_date", + "crud_production_material_stock_batch_parse_optional_date", + "crud_production_material_stock_batch_py", + "crud_production_material_stock_batch_require_decimal", + "crud_production_material_stock_batch_require_str", + "crud_production_material_stock_batch_stock_in_no_exists", + "crud_production_material_stock_batch_stock_in_one", + "crud_production_material_stock_batch_stock_out_batch", + "crud_production_material_stock_batch_update_batch", + "crud_production_material_stock_batch_usage_batch_snapshots", + "crud_production_material_stock_batch_validate_discard_reason", "crud_production_material_stock_in", "crud_production_material_stock_out", "crud_production_material_total_pages", "crud_production_material_update_material", - "crud_production_work_order_create_production_work_order_from_reception", - "crud_qc_item_param_list_params_by_item", - "crud_qc_item_param_parse_options_list", - "crud_qc_item_param_py", - "crud_qc_item_param_row_to_dict", - "crud_qc_item_param_save_params_for_item", - "crud_qc_item_param_validate_param", + "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_qc_inspection_batch_allocate_batch_name", + "crud_qc_inspection_batch_apply_assignees_to_batch_tasks", + "crud_qc_inspection_batch_assignee_names", + "crud_qc_inspection_batch_batch_assignee_user_ids", + "crud_qc_inspection_batch_batch_has_blocking_tasks", + "crud_qc_inspection_batch_batch_item_ids", + "crud_qc_inspection_batch_batch_to_dict", + "crud_qc_inspection_batch_build_inspection_batch_list", + "crud_qc_inspection_batch_configure_work_order_batches", + "crud_qc_inspection_batch_dec", + "crud_qc_inspection_batch_is_voided_work_order", + "crud_qc_inspection_batch_list_inspection_batches_by_work_order_ids", + "crud_qc_inspection_batch_next_batch_no", + "crud_qc_inspection_batch_normalize_legacy_configure_to_batches", + "crud_qc_inspection_batch_order_source_for_wo", + "crud_qc_inspection_batch_py", + "crud_qc_inspection_batch_soft_delete_batch", + "crud_qc_inspection_batch_sync_batch_assignees", + "crud_qc_inspection_batch_sync_batch_lab_items", + "crud_qc_inspection_batch_sync_batch_third_items", + "crud_qc_inspection_batch_unique_ids", + "crud_qc_inspection_batch_validate_batch_payload", + "crud_qc_lab_test_item_create_lab_item", + "crud_qc_lab_test_item_get_lab_item", + "crud_qc_lab_test_item_item_code_exists", + "crud_qc_lab_test_item_list_active_lab_items", + "crud_qc_lab_test_item_list_lab_items", + "crud_qc_lab_test_item_py", + "crud_qc_lab_test_item_row_to_dict", + "crud_qc_lab_test_item_soft_delete_lab_item", + "crud_qc_lab_test_item_update_lab_item", + "crud_qc_material_build_manual_out_remark", + "crud_qc_material_code_exists", + "crud_qc_material_create_material", + "crud_qc_material_dec", + "crud_qc_material_fmt_dt", + "crud_qc_material_get_material", + "crud_qc_material_is_enabled_status", + "crud_qc_material_list_materials", + "crud_qc_material_norm_status", + "crud_qc_material_options_list", + "crud_qc_material_py", + "crud_qc_material_rationale_26", + "crud_qc_material_row_to_dict", + "crud_qc_material_soft_delete_material", + "crud_qc_material_stock_in", + "crud_qc_material_stock_out", + "crud_qc_material_total_pages", + "crud_qc_material_update_material", + "crud_qc_task_assignee_rationale_63", + "crud_qc_task_assignee_sync_assignees_for_task", + "crud_qc_task_assignee_validate_assignee_user_ids", + "crud_qc_task_create_task_for_line", "crud_qc_third_party_company_company_code_exists", "crud_qc_third_party_company_create_company", "crud_qc_third_party_company_get_company", @@ -1452,6 +1525,12 @@ "crud_qc_third_party_item_row_to_dict", "crud_qc_third_party_item_soft_delete_item", "crud_qc_third_party_item_update_item", + "crud_qc_work_order_apply_item_assignees", + "crud_qc_work_order_configure_temp_qc_work_order", + "crud_qc_work_order_get_task_by_source_line_id", + "crud_qc_work_order_soft_delete_tasks_by_source_line_ids", + "crud_qc_work_order_sync_work_order_lab_items", + "crud_qc_work_order_sync_work_order_third_party_items", "crud_reagent_batch_stock_in", "crud_reagent_batch_stock_out", "crud_reagent_create_reagent", @@ -1468,6 +1547,7 @@ "crud_reagent_stock_out", "crud_reagent_total_pages", "crud_reagent_update_reagent", + "crud_research_donation_convert_from_storage", "crud_research_donation_submit_audit", "crud_role_create_role", "crud_role_get_role", @@ -1482,7 +1562,6 @@ "crud_role_total_pages", "crud_role_update_role", "crud_role_update_role_data_scope", - "crud_role_update_role_menus", "crud_sample_code_batch_generate_sample_codes", "crud_sample_code_batch_issue_sample_codes", "crud_sample_code_batch_revoke_sample_codes", @@ -1499,15 +1578,6 @@ "crud_sample_code_soft_delete_sample_code", "crud_sample_code_total_pages", "crud_sample_code_update_sample_code", - "crud_sample_production_reception_apply_payload_to_row", - "crud_sample_production_reception_create_production_reception", - "crud_sample_production_reception_get_qc_reception", - "crud_sample_production_reception_int_val", - "crud_sample_production_reception_py", - "crud_sample_production_reception_resolve_field_profile", - "crud_sample_production_reception_update_production_reception", - "crud_sample_production_reception_validate_handler_user_id", - "crud_sample_production_reception_validate_payload", "crud_sample_reception_check_item_create_check_item", "crud_sample_reception_check_item_get_check_item", "crud_sample_reception_check_item_item_code_exists", @@ -1518,25 +1588,6 @@ "crud_sample_reception_check_item_row_to_dict", "crud_sample_reception_check_item_soft_delete_check_item", "crud_sample_reception_check_item_update_check_item", - "crud_sample_reception_check_result_save_reception_check_results", - "crud_sample_reception_check_result_soft_delete_reception_check_results", - "crud_sample_reception_check_result_sync_legacy_columns_from_results", - "crud_sample_reception_create_sample_reception", - "crud_sample_reception_lab_code_allocate_lab_storage_codes", - "crud_sample_reception_lab_code_allocate_one_seq", - "crud_sample_reception_lab_code_assert_lab_storage_code_available", - "crud_sample_reception_lab_code_format_lab_storage_code", - "crud_sample_reception_lab_code_max_existing_seq", - "crud_sample_reception_lab_code_parse_reception_date", - "crud_sample_reception_lab_code_py", - "crud_sample_reception_lab_code_rationale_1", - "crud_sample_reception_lab_code_rationale_165", - "crud_sample_reception_lab_code_rationale_177", - "crud_sample_reception_lab_code_sync_lab_storage_seq_after_use", - "crud_sample_reception_lab_code_sync_sequence_from_existing", - "crud_sample_reception_lab_code_validate_and_parse_lab_storage_code", - "crud_sample_reception_lab_code_validate_lab_storage_code", - "crud_sample_reception_update_sample_reception", "crud_site_create_site", "crud_site_get_site", "crud_site_list_sites", @@ -1556,8 +1607,7 @@ "crud_sop_document_sop_code_exists", "crud_sop_document_total_pages", "crud_sop_document_update_sop_document", - "crud_storage_facility_clear_slots_by_facility_node", - "crud_storage_release_review_create_review_from_reception", + "crud_storage_facility_create_slot", "crud_tenant_create_tenant", "crud_tenant_get_tenant", "crud_tenant_list_tenants", @@ -1606,8 +1656,6 @@ "schemas_cell_product_validate_passage", "schemas_cell_product_validate_status", "schemas_cell_product_validate_viability", - "services_oa_publish_publish_app", - "services_oa_publish_rationale_319", "valueerror" ], "2": [ @@ -1681,6 +1729,7 @@ "api_clinical_payment_submitrefundbody", "api_collection_protocol_auditcreatebody", "api_collection_protocol_batchdetailidsbody", + "api_collection_protocol_batchrefundfinancesubmitbody", "api_collection_protocol_financeconfirmbody", "api_collection_protocol_fullmoontodoinsurancebody", "api_collection_protocol_invoicerequestcompletebody", @@ -1689,6 +1738,7 @@ "api_collection_protocol_protocolcreatebody", "api_collection_protocol_protocolupdatebody", "api_collection_protocol_refundfinanceconfirmbody", + "api_collection_protocol_refundfinancesubmitbody", "api_env_detect_envdetectitembody", "api_env_detect_envdetectitemupdatebody", "api_env_detect_envdetectrecordbody", @@ -1885,6 +1935,7 @@ "api_sample_reception_allocatelabstoragecodesbody", "api_sample_reception_checkitembody", "api_sample_reception_checkitemupdatebody", + "api_sample_reception_rationale_272", "api_sample_reception_receptionchecksubmit", "api_sample_reception_samplereceptioncreatebody", "api_sample_reception_samplereceptionupdatebody", @@ -1897,7 +1948,6 @@ "api_workflow_startinstancebody", "api_workflow_taskactionbody", "basemodel", - "core_data_scope_get_child_dept_ids", "core_data_scope_rationale_1", "core_data_scope_rationale_113", "core_data_scope_rationale_28", @@ -1907,21 +1957,16 @@ "core_response_pageresult", "core_response_py", "core_response_responsemodel", + "crud_base_crudbase", + "crud_base_crudbase_get_all", + "crud_base_crudbase_get_multi", + "crud_base_crudbase_init", "crud_collection_protocol_no_rationale_34", "crud_production_task_step_assignee_rationale_104", "crud_production_task_step_assignee_rationale_152", - "crud_qc_material_amount_auth_assert_user_in_auth_dept", - "crud_qc_material_amount_auth_get_amount_view_role", - "crud_qc_material_amount_auth_get_auth_dept_id", - "crud_qc_material_amount_auth_grant_amount_view_role", - "crud_qc_material_amount_auth_list_authorized_users", - "crud_qc_material_amount_auth_py", "crud_qc_material_amount_auth_rationale_1", "crud_qc_material_amount_auth_rationale_159", "crud_qc_material_amount_auth_rationale_207", - "crud_qc_material_amount_auth_revoke_amount_view_role", - "crud_qc_material_amount_auth_row_to_dict", - "crud_qc_material_amount_auth_user_has_role_binding", "crud_user_rationale_1", "crud_user_rationale_135", "crud_user_rationale_182", @@ -2803,28 +2848,26 @@ "models_research_donation_rationale_68", "services_oa_engine_rationale_101", "services_oa_engine_rationale_114", - "services_oa_engine_rationale_1193", - "services_oa_engine_rationale_1308", - "services_oa_engine_rationale_1390", + "services_oa_engine_rationale_1328", + "services_oa_engine_rationale_1443", + "services_oa_engine_rationale_1525", "services_oa_engine_rationale_203", - "services_oa_engine_rationale_613", + "services_oa_engine_rationale_734", "services_oa_engine_rationale_76", - "services_oa_engine_rationale_773", + "services_oa_engine_rationale_894", "services_qc_work_order_fee_summary_rationale_1", "services_workflow_engine_rationale_1" ], "4": [ "api_basic_info_normalize_date_bound", "api_collection_protocol_persist_protocol_sub_resources", - "api_sample_production_reception_body_to_payload", - "api_sample_production_reception_get_current_user_id", - "api_sample_production_reception_get_production_reception_by_sample_code", - "api_sample_production_reception_get_production_reception_detail", - "api_sample_production_reception_get_tenant_no", - "api_sample_production_reception_post_production_reception", - "api_sample_production_reception_put_production_reception", - "api_sample_production_reception_py", - "api_sample_production_reception_resolve_reception_id", + "api_ethnic_list_ethnics_for_select", + "api_ethnic_py", + "core_data_scope_apply_data_scope", + "core_data_scope_get_child_dept_ids", + "core_data_scope_get_user_dept_id", + "core_data_scope_py", + "core_data_scope_resolve_user_role_scopes", "core_utils_format_date", "core_utils_format_datetime", "core_utils_generate_id", @@ -2835,35 +2878,26 @@ "core_utils_parse_date", "core_utils_py", "core_utils_rationale_71", + "crud_api_request_log_apirequestlogcrud", + "crud_api_request_log_delete", + "crud_api_request_log_get", + "crud_api_request_log_get_multi_with_filters", + "crud_api_request_log_py", "crud_base_camel_to_snake", - "crud_base_crudbase", + "crud_base_crudbase_count", "crud_base_crudbase_create", - "crud_base_crudbase_delete", - "crud_base_crudbase_exists", - "crud_base_crudbase_get_all", - "crud_base_crudbase_get_multi", - "crud_base_crudbase_hard_delete", - "crud_base_crudbase_init", "crud_base_get_model_attr", "crud_base_historycrud", "crud_base_historycrud_create_history", "crud_base_py", - "crud_biz_no_generator_allocate_next_biz_no", - "crud_biz_no_generator_format_biz_no", - "crud_biz_no_generator_prefix_for", - "crud_biz_no_generator_py", - "crud_biz_no_generator_rationale_1", - "crud_biz_no_generator_rationale_35", "crud_collection_protocol_active_invoiced_payment_detail_ids", "crud_collection_protocol_add_months_yyyymmdd", "crud_collection_protocol_align_fq_payment_details_payload", "crud_collection_protocol_apply_payment_detail_draft_fields", "crud_collection_protocol_apply_payment_detail_list_filters", "crud_collection_protocol_apply_submit_receipt_finance", - "crud_collection_protocol_apply_submit_refund_finance", "crud_collection_protocol_audit_to_dict", "crud_collection_protocol_batch_submit_receipt_finance", - "crud_collection_protocol_batch_submit_refund_finance", "crud_collection_protocol_build_installment_summary", "crud_collection_protocol_calc_installment_due_amounts", "crud_collection_protocol_classify_installment_warning", @@ -2875,12 +2909,10 @@ "crud_collection_protocol_confirm_refund", "crud_collection_protocol_count_pending_protocol_invoice_requests", "crud_collection_protocol_create_audit", - "crud_collection_protocol_create_collection_protocol", "crud_collection_protocol_dec", "crud_collection_protocol_detail_query_with_protocol", "crud_collection_protocol_detail_to_dict", "crud_collection_protocol_fmt_dt", - "crud_collection_protocol_format_attachment_file_size", "crud_collection_protocol_format_newborn_info", "crud_collection_protocol_format_sample_collect_summary", "crud_collection_protocol_format_storage_cert_sample_info", @@ -2951,7 +2983,6 @@ "crud_collection_protocol_storage_cert_to_dict", "crud_collection_protocol_storage_in_date_to_yyyymmdd", "crud_collection_protocol_submit_receipt_finance", - "crud_collection_protocol_submit_refund_finance", "crud_collection_protocol_today_yyyymmdd", "crud_collection_protocol_total_pages", "crud_collection_protocol_transport_to_dict", @@ -2962,17 +2993,70 @@ "crud_collection_protocol_upsert_party_customer", "crud_collection_protocol_upsert_payment", "crud_collection_protocol_upsert_storage_cert", - "crud_collection_protocol_urls_to_attachment_list", "crud_collection_protocol_user_nick_name_map", "crud_collection_protocol_validate_receipt_finance_submit_ready", "crud_collection_protocol_validate_sample_codes_not_used", "crud_collection_protocol_yyyymmdd_from_date_param", + "crud_dict_data_create_dict_data", + "crud_dict_data_get_dict_data", + "crud_dict_data_is_dict_value_valid", + "crud_dict_data_list_dict_data", + "crud_dict_data_list_dict_data_options", + "crud_dict_data_normalize_transfer_type", + "crud_dict_data_normalize_void_type", + "crud_dict_data_py", + "crud_dict_data_rationale_1", + "crud_dict_data_row_to_dict", + "crud_dict_data_soft_delete_dict_data", + "crud_dict_data_total_pages", + "crud_dict_data_update_dict_data", "crud_env_detect_record_list_env_detect_records", "crud_env_detect_record_row_to_dict", "crud_env_detect_record_split_csv", + "crud_ethnic_list_ethnics", + "crud_ethnic_py", + "crud_ethnic_rationale_1", + "crud_ethnic_row_to_dict", "crud_inbound_sample_special_py", "crud_inbound_sample_special_rationale_1", "crud_inbound_sample_special_update_inbound_sample_special_mark", + "crud_leave_create_leave", + "crud_leave_get_leave", + "crud_leave_list_leaves", + "crud_leave_py", + "crud_leave_row_to_dict", + "crud_leave_soft_delete_leave", + "crud_leave_total_pages", + "crud_leave_update_leave", + "crud_material_stock_log_dec", + "crud_material_stock_log_fmt_dt", + "crud_material_stock_log_list_stock_logs", + "crud_material_stock_log_py", + "crud_material_stock_log_row_to_dict", + "crud_material_stock_log_user_nick_name_map", + "crud_material_usage_amount_for_row", + "crud_material_usage_batch_map", + "crud_material_usage_display_remark", + "crud_material_usage_fmt_date_val", + "crud_material_usage_list_stock_check_requisitions", + "crud_material_usage_list_usages", + "crud_material_usage_list_usages_query", + "crud_material_usage_mark_requisition_fully_used", + "crud_material_usage_paginate_usages", + "crud_material_usage_parse_receiver_purpose_from_remark", + "crud_material_usage_py", + "crud_material_usage_rationale_302", + "crud_material_usage_receiver_display_map", + "crud_material_usage_resolve_receiver_purpose", + "crud_material_usage_row_to_dict", + "crud_material_usage_stock_in_date_for_row", + "crud_material_usage_unit_price_for_row", + "crud_material_usage_usage_unit_label", + "crud_material_usage_user_nick_name_map", + "crud_pilot_service_list_channel_agreements", + "crud_pilot_service_list_checkup_institution_projects", + "crud_pilot_service_list_checkup_institutions", + "crud_pilot_service_row_to_dict_checkup_institution_project", "crud_pre_transit_sample_apply_collection_keyword", "crud_pre_transit_sample_apply_collection_sample_collect_time_filter", "crud_pre_transit_sample_apply_create_time_filter", @@ -2997,14 +3081,54 @@ "crud_pre_transit_sample_sort_key_pre_delivery", "crud_pre_transit_sample_summarize_in_transit_items", "crud_pre_transit_sample_summarize_pre_delivery", - "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_production_material_filter_material_type", + "crud_production_material_usage_amount_for_row", + "crud_production_material_usage_batch_map", + "crud_production_material_usage_deduct_step_usage_legacy_batch", + "crud_production_material_usage_display_remark", + "crud_production_material_usage_fmt_date_val", + "crud_production_material_usage_list_available_requisitions_for_prep", + "crud_production_material_usage_list_linked_step_usages", + "crud_production_material_usage_list_my_prep_consumptions", + "crud_production_material_usage_list_my_usages", + "crud_production_material_usage_list_prep_consumptions", + "crud_production_material_usage_list_requisition_options", + "crud_production_material_usage_list_stock_check_requisitions", + "crud_production_material_usage_list_usages", + "crud_production_material_usage_list_usages_by_step", + "crud_production_material_usage_list_usages_query", + "crud_production_material_usage_mark_requisition_fully_used", + "crud_production_material_usage_mine_usage_filter", + "crud_production_material_usage_paginate_usages", + "crud_production_material_usage_parse_receiver_purpose_from_remark", + "crud_production_material_usage_prep_consumption_to_dict", + "crud_production_material_usage_py", + "crud_production_material_usage_rationale_1064", + "crud_production_material_usage_rationale_1233", + "crud_production_material_usage_rationale_1312", + "crud_production_material_usage_rationale_195", + "crud_production_material_usage_rationale_20", + "crud_production_material_usage_rationale_367", + "crud_production_material_usage_rationale_391", + "crud_production_material_usage_rationale_42", + "crud_production_material_usage_rationale_448", + "crud_production_material_usage_rationale_524", + "crud_production_material_usage_rationale_595", + "crud_production_material_usage_rationale_773", + "crud_production_material_usage_rationale_878", + "crud_production_material_usage_rationale_934", + "crud_production_material_usage_receiver_display_map", + "crud_production_material_usage_record_step_usage_from_requisition", + "crud_production_material_usage_register_step_usage_from_requisition", + "crud_production_material_usage_resolve_receiver_purpose", + "crud_production_material_usage_revert_step_material_usages", + "crud_production_material_usage_row_to_dict", + "crud_production_material_usage_step_consumed_qty_map", + "crud_production_material_usage_stock_in_date_for_row", + "crud_production_material_usage_unit_price_for_row", + "crud_production_material_usage_usage_unit_label", + "crud_production_material_usage_user_nick_name_map", + "crud_production_task_base_active_step_count_query", "crud_protocol_sample_collection_apply_sample_status_filter", "crud_protocol_sample_collection_base_query", "crud_protocol_sample_collection_fmt_dt", @@ -3013,9 +3137,29 @@ "crud_protocol_sample_collection_row_to_dict", "crud_protocol_sample_collection_sample_status_label", "crud_protocol_sample_collection_total_pages", + "crud_qc_sms_notification_apply_qc_status_filter", + "crud_qc_sms_notification_base_query", + "crud_qc_sms_notification_derive_qc_conclusion", + "crud_qc_sms_notification_ensure_notification", + "crud_qc_sms_notification_eq_ci", + "crud_qc_sms_notification_fetch_completed_tasks", + "crud_qc_sms_notification_fmt_dt", + "crud_qc_sms_notification_generate_sms_content", + "crud_qc_sms_notification_list_notifications", + "crud_qc_sms_notification_normalize_date_bound", + "crud_qc_sms_notification_py", + "crud_qc_sms_notification_qc_complete_time", + "crud_qc_sms_notification_qc_status_label", + "crud_qc_sms_notification_resolve_notification", + "crud_qc_sms_notification_row_to_dict", + "crud_qc_sms_notification_task_stats_subquery", + "crud_qc_sms_notification_toggle_notification_status", + "crud_qc_sms_notification_total_pages", + "crud_qc_sms_notification_unicode_ci", + "crud_qc_work_order_count_unfinished_work_orders_by_tab", "crud_research_donation_audit_to_dict", + "crud_research_donation_batch_delete_donations", "crud_research_donation_collection_to_dict", - "crud_research_donation_convert_from_storage", "crud_research_donation_convert_to_storage", "crud_research_donation_create_collection", "crud_research_donation_create_donation", @@ -3061,61 +3205,12 @@ "crud_research_donation_transport_to_dict", "crud_research_donation_update_donation", "crud_research_donation_user_nick_name_map", - "crud_sample_production_reception_dec", - "crud_sample_production_reception_fmt_dt", - "crud_sample_production_reception_get_by_id", - "crud_sample_production_reception_get_by_reception_id", - "crud_sample_production_reception_get_map_by_reception_ids", - "crud_sample_production_reception_row_to_dict", - "crud_sample_reception_attach_production_reception", - "crud_sample_reception_check_result_get_check_results_for_reception", - "crud_sample_reception_check_result_legacy_results_from_reception", - "crud_sample_reception_check_result_list_results_by_reception_ids", - "crud_sample_reception_check_result_py", - "crud_sample_reception_check_result_result_to_dict", - "crud_sample_reception_dec", - "crud_sample_reception_donation_ids_matching_lab_storage_keyword", - "crud_sample_reception_donation_rows_to_sample_list_items", - "crud_sample_reception_donation_sample_detail_rows_query", - "crud_sample_reception_donation_sample_id_col", - "crud_sample_reception_donation_sample_pending_query", - "crud_sample_reception_finalize_reception_detail", - "crud_sample_reception_fmt_dt", - "crud_sample_reception_format_lab_storage_codes_csv", "crud_sample_reception_get_lab_storage_code_map_by_sample_codes", - "crud_sample_reception_get_reception_by_id", - "crud_sample_reception_get_reception_by_sample_code", - "crud_sample_reception_get_receptions_map_for_donation_samples", - "crud_sample_reception_get_receptions_map_for_samples", - "crud_sample_reception_lab_storage_keyword_like", - "crud_sample_reception_list_pending_protocol_samples", - "crud_sample_reception_list_received_protocol_samples", - "crud_sample_reception_normalize_date_bound", - "crud_sample_reception_protocol_ids_matching_lab_storage_keyword", - "crud_sample_reception_py", - "crud_sample_reception_reception_detail_item", - "crud_sample_reception_reception_detail_item_with_production", - "crud_sample_reception_reception_ids_matching_lab_storage_keyword", - "crud_sample_reception_reception_sample_code", - "crud_sample_reception_reception_to_dict", - "crud_sample_reception_rows_to_sample_list_items", - "crud_sample_reception_sample_codes_matching_lab_storage_keyword", - "crud_sample_reception_sample_detail_rows_query", - "crud_sample_reception_sample_pending_query", - "crud_storage_entry_sms_notification_base_query", - "crud_storage_entry_sms_notification_ensure_notification", - "crud_storage_entry_sms_notification_fetch_sample_type_name", - "crud_storage_entry_sms_notification_fmt_dt", - "crud_storage_entry_sms_notification_generate_sms_content", - "crud_storage_entry_sms_notification_list_notifications", - "crud_storage_entry_sms_notification_normalize_date_bound", - "crud_storage_entry_sms_notification_py", - "crud_storage_entry_sms_notification_resolve_notification", - "crud_storage_entry_sms_notification_row_to_dict", - "crud_storage_entry_sms_notification_storage_status_label", - "crud_storage_entry_sms_notification_toggle_notification_status", - "crud_storage_entry_sms_notification_total_pages", - "crud_storage_entry_sms_notification_unicode_ci", + "crud_workflow_list_completed_tasks", + "crud_workflow_list_my_instances", + "crud_workflow_list_pending_tasks", + "crud_workflow_task_row_to_dict", + "models_production_material_bizproductionmaterialprep", "services_protocol_payment_installment_add_days_yyyymmdd", "services_protocol_payment_installment_add_interval_months_yyyymmdd", "services_protocol_payment_installment_add_months_yyyymmdd", @@ -3149,18 +3244,6 @@ "core_db_collation_rationale_12", "core_db_collation_rationale_7", "core_db_collation_unicode_ci", - "crud_api_request_log_apirequestlogcrud", - "crud_api_request_log_delete", - "crud_api_request_log_get", - "crud_api_request_log_get_multi_with_filters", - "crud_api_request_log_py", - "crud_base_crudbase_count", - "crud_material_stock_log_dec", - "crud_material_stock_log_fmt_dt", - "crud_material_stock_log_list_stock_logs", - "crud_material_stock_log_py", - "crud_material_stock_log_row_to_dict", - "crud_material_stock_log_user_nick_name_map", "crud_outbound_release_review_batch_review", "crud_outbound_release_review_dec", "crud_outbound_release_review_fmt_dt", @@ -3174,12 +3257,14 @@ "crud_outbound_release_review_total_pages", "crud_production_task_spawn_temporary_work_order_from_task", "crud_production_work_order_accept_conclusion_label", + "crud_production_work_order_apply_exclude_inactive_protocol_filter", "crud_production_work_order_apply_planned_start_time_step_filter", "crud_production_work_order_attach_outbound_detail", "crud_production_work_order_attach_reception_detail", "crud_production_work_order_complete_production_work_order", "crud_production_work_order_configure_temp_production_work_order", "crud_production_work_order_create_outbound_production_work_order", + "crud_production_work_order_create_production_work_order_from_reception", "crud_production_work_order_create_production_work_order_manual", "crud_production_work_order_create_temp_production_work_order", "crud_production_work_order_dec_price", @@ -3209,38 +3294,7 @@ "crud_production_work_order_update_production_work_order", "crud_production_work_order_wo_to_dict", "crud_production_work_order_wo_to_response_dict", - "crud_qc_inspection_batch_allocate_batch_name", - "crud_qc_inspection_batch_apply_assignees_to_batch_tasks", - "crud_qc_inspection_batch_assignee_names", - "crud_qc_inspection_batch_batch_assignee_user_ids", - "crud_qc_inspection_batch_batch_has_blocking_tasks", - "crud_qc_inspection_batch_batch_item_ids", - "crud_qc_inspection_batch_batch_to_dict", - "crud_qc_inspection_batch_build_inspection_batch_list", - "crud_qc_inspection_batch_configure_work_order_batches", - "crud_qc_inspection_batch_dec", - "crud_qc_inspection_batch_is_voided_work_order", "crud_qc_inspection_batch_list_inspection_batches", - "crud_qc_inspection_batch_list_inspection_batches_by_work_order_ids", - "crud_qc_inspection_batch_next_batch_no", - "crud_qc_inspection_batch_normalize_legacy_configure_to_batches", - "crud_qc_inspection_batch_order_source_for_wo", - "crud_qc_inspection_batch_py", - "crud_qc_inspection_batch_soft_delete_batch", - "crud_qc_inspection_batch_sync_batch_assignees", - "crud_qc_inspection_batch_sync_batch_lab_items", - "crud_qc_inspection_batch_sync_batch_third_items", - "crud_qc_inspection_batch_unique_ids", - "crud_qc_inspection_batch_validate_batch_payload", - "crud_qc_lab_test_item_create_lab_item", - "crud_qc_lab_test_item_get_lab_item", - "crud_qc_lab_test_item_item_code_exists", - "crud_qc_lab_test_item_list_active_lab_items", - "crud_qc_lab_test_item_list_lab_items", - "crud_qc_lab_test_item_py", - "crud_qc_lab_test_item_row_to_dict", - "crud_qc_lab_test_item_soft_delete_lab_item", - "crud_qc_lab_test_item_update_lab_item", "crud_qc_task_apply_task_result", "crud_qc_task_assert_task_assignee", "crud_qc_task_assignee_active_users_in_tenant", @@ -3248,14 +3302,10 @@ "crud_qc_task_assignee_is_user_assignee", "crud_qc_task_assignee_list_assignees_by_task_ids", "crud_qc_task_assignee_py", - "crud_qc_task_assignee_rationale_63", "crud_qc_task_assignee_soft_delete_assignees_by_task_ids", - "crud_qc_task_assignee_sync_assignees_for_task", - "crud_qc_task_assignee_validate_assignee_user_ids", "crud_qc_task_complete_task", "crud_qc_task_conclusion_label", "crud_qc_task_create_qc_task_manual", - "crud_qc_task_create_task_for_line", "crud_qc_task_dec", "crud_qc_task_delete_qc_task", "crud_qc_task_enrich_mine_tasks_with_work_order_summaries", @@ -3278,14 +3328,10 @@ "crud_qc_task_update_task_attachments", "crud_qc_work_order_accept_conclusion_label", "crud_qc_work_order_aggregate_qc_tab_counts", - "crud_qc_work_order_apply_item_assignees", "crud_qc_work_order_build_outbound_pilot_context_by_schedule", "crud_qc_work_order_build_work_order_list_summaries", - "crud_qc_work_order_configure_temp_qc_work_order", "crud_qc_work_order_configure_work_order", "crud_qc_work_order_count_mine_unfinished_work_orders_by_tab", - "crud_qc_work_order_count_unfinished_work_orders_by_tab", - "crud_qc_work_order_create_outbound_qc_work_order", "crud_qc_work_order_create_qc_work_order_from_production", "crud_qc_work_order_create_qc_work_order_manual", "crud_qc_work_order_create_temp_qc_work_order", @@ -3313,7 +3359,6 @@ "crud_qc_work_order_get_production_work_order_qc_info", "crud_qc_work_order_get_qc_info_map_for_samples", "crud_qc_work_order_get_schedule_gate_qc_info", - "crud_qc_work_order_get_task_by_source_line_id", "crud_qc_work_order_get_temp_qc_work_order", "crud_qc_work_order_get_temp_qc_work_order_detail", "crud_qc_work_order_get_work_order", @@ -3339,14 +3384,10 @@ "crud_qc_work_order_qc_info_item", "crud_qc_work_order_reception_source_label", "crud_qc_work_order_resolve_cell_product_id_by_barcode", - "crud_qc_work_order_resolve_outbound_biz_type_for_schedule", "crud_qc_work_order_resolve_reception_id_for_work_order_detail", "crud_qc_work_order_resolve_wo_tab_key", "crud_qc_work_order_sample_type_name_for_item", "crud_qc_work_order_sample_type_name_for_reception", - "crud_qc_work_order_soft_delete_tasks_by_source_line_ids", - "crud_qc_work_order_sync_work_order_lab_items", - "crud_qc_work_order_sync_work_order_third_party_items", "crud_qc_work_order_temp_lab_lines", "crud_qc_work_order_temp_tasks", "crud_qc_work_order_temp_third_lines", @@ -3520,6 +3561,12 @@ "core_storage_rationale_38", "core_storage_rationale_53", "core_storage_rationale_83", + "crud_qc_item_param_list_params_by_item", + "crud_qc_item_param_parse_options_list", + "crud_qc_item_param_py", + "crud_qc_item_param_row_to_dict", + "crud_qc_item_param_save_params_for_item", + "crud_qc_item_param_validate_param", "crud_qc_task_result_list_results_by_task", "crud_qc_task_result_list_saved_results_by_task", "crud_qc_task_result_merge_saved_into_template", @@ -3536,16 +3583,12 @@ "crud_workflow_get_process_def", "crud_workflow_get_task", "crud_workflow_get_transitions_by_version", - "crud_workflow_list_completed_tasks", - "crud_workflow_list_my_instances", - "crud_workflow_list_pending_tasks", "crud_workflow_list_process_defs", "crud_workflow_list_versions", "crud_workflow_process_code_exists", "crud_workflow_py", "crud_workflow_row_to_dict", "crud_workflow_soft_delete_process_def", - "crud_workflow_task_row_to_dict", "crud_workflow_total_pages", "crud_workflow_update_instance_status", "crud_workflow_update_process_def", @@ -3577,337 +3620,6 @@ "services_workflow_engine_workflowengine_start_process" ], "7": [ - "crud_material_stock_check_batch_line_to_dict", - "crud_material_stock_check_cancel_check", - "crud_material_stock_check_check_header_to_dict", - "crud_material_stock_check_complete_check", - "crud_material_stock_check_create_check", - "crud_material_stock_check_get_check", - "crud_material_stock_check_get_check_detail", - "crud_material_stock_check_line_counts", - "crud_material_stock_check_list_checks", - "crud_material_stock_check_parse_check_time", - "crud_material_stock_check_py", - "crud_material_stock_check_resolve_unused_item_fields", - "crud_material_stock_check_status_label", - "crud_material_stock_check_unused_amount", - "crud_material_stock_check_unused_line_to_dict", - "crud_material_stock_check_user_nick_name_map", - "crud_outbound_handover_inventory_apply_handover_inventory", - "crud_outbound_handover_inventory_deduct_market_material_for_handover", - "crud_outbound_handover_inventory_get_cell_product_locked", - "crud_outbound_handover_inventory_handover_usage_remark", - "crud_outbound_handover_inventory_handover_usage_remark_prefix", - "crud_outbound_handover_inventory_py", - "crud_outbound_handover_inventory_remove_cell_occupancy_no_commit", - "crud_outbound_handover_inventory_restore_cell_occupancy_no_commit", - "crud_outbound_handover_inventory_revert_handover_inventory", - "crud_outbound_handover_inventory_revert_legacy_qc_handover_usages", - "crud_outbound_handover_inventory_revert_market_handover_usages", - "crud_production_material_prep_batch_map_for_prep_lines", - "crud_production_material_prep_cancel_prep", - "crud_production_material_prep_complete_prep", - "crud_production_material_prep_create_auto_stock_out", - "crud_production_material_prep_create_prep", - "crud_production_material_prep_create_quick_prep", - "crud_production_material_prep_delete_prep", - "crud_production_material_prep_fmt_date", - "crud_production_material_prep_generate_prep_no", - "crud_production_material_prep_generate_stock_in_no", - "crud_production_material_prep_get_or_create_configured_material", - "crud_production_material_prep_get_prep_detail", - "crud_production_material_prep_get_prep_row", - "crud_production_material_prep_header_to_dict", - "crud_production_material_prep_line_to_dict", - "crud_production_material_prep_list_available_material_batches", - "crud_production_material_prep_list_preps", - "crud_production_material_prep_parse_prep_lines", - "crud_production_material_prep_parse_quick_prep_lines", - "crud_production_material_prep_py", - "crud_production_material_prep_rationale_1296", - "crud_production_material_prep_rationale_523", - "crud_production_material_prep_rationale_893", - "crud_production_material_prep_rationale_948", - "crud_production_material_prep_require_draft", - "crud_production_material_prep_status_label", - "crud_production_material_prep_update_prep", - "crud_production_material_prep_user_nick_name_map", - "crud_production_material_prep_validate_requisition", - "crud_production_material_prep_write_prep_consume_usage", - "crud_production_material_prep_write_quick_prep_consume_usage", - "crud_production_material_stock_batch_batch_discard", - "crud_production_material_stock_batch_batch_options", - "crud_production_material_stock_batch_batch_row_to_dict", - "crud_production_material_stock_batch_batch_stock_in", - "crud_production_material_stock_batch_batch_stock_out", - "crud_production_material_stock_batch_create_batch_and_usage", - "crud_production_material_stock_batch_delete_batch", - "crud_production_material_stock_batch_discard_batch", - "crud_production_material_stock_batch_fmt_date", - "crud_production_material_stock_batch_get_batch", - "crud_production_material_stock_batch_get_material_for_update", - "crud_production_material_stock_batch_list_batches", - "crud_production_material_stock_batch_optional_str", - "crud_production_material_stock_batch_parse_date", - "crud_production_material_stock_batch_parse_expire_date", - "crud_production_material_stock_batch_parse_optional_date", - "crud_production_material_stock_batch_py", - "crud_production_material_stock_batch_require_decimal", - "crud_production_material_stock_batch_require_str", - "crud_production_material_stock_batch_stock_in_no_exists", - "crud_production_material_stock_batch_stock_in_one", - "crud_production_material_stock_batch_stock_out_batch", - "crud_production_material_stock_batch_update_batch", - "crud_production_material_stock_batch_usage_batch_snapshots", - "crud_production_material_stock_batch_validate_discard_reason", - "crud_production_material_stock_check_batch_line_to_dict", - "crud_production_material_stock_check_cancel_check", - "crud_production_material_stock_check_check_header_to_dict", - "crud_production_material_stock_check_complete_check", - "crud_production_material_stock_check_create_check", - "crud_production_material_stock_check_get_check", - "crud_production_material_stock_check_get_check_detail", - "crud_production_material_stock_check_line_counts", - "crud_production_material_stock_check_list_checks", - "crud_production_material_stock_check_parse_check_time", - "crud_production_material_stock_check_parse_optional_date", - "crud_production_material_stock_check_py", - "crud_production_material_stock_check_resolve_unused_item_fields", - "crud_production_material_stock_check_save_unused_lines", - "crud_production_material_stock_check_status_label", - "crud_production_material_stock_check_unused_amount", - "crud_production_material_stock_check_unused_line_to_dict", - "crud_production_material_stock_check_user_nick_name_map", - "crud_qc_material_build_manual_out_remark", - "crud_qc_material_code_exists", - "crud_qc_material_create_material", - "crud_qc_material_dec", - "crud_qc_material_fmt_dt", - "crud_qc_material_get_material", - "crud_qc_material_is_enabled_status", - "crud_qc_material_list_materials", - "crud_qc_material_norm_status", - "crud_qc_material_py", - "crud_qc_material_rationale_26", - "crud_qc_material_row_to_dict", - "crud_qc_material_soft_delete_material", - "crud_qc_material_stock_batch_append_batch_qty_adjust", - "crud_qc_material_stock_batch_batch_stock_in", - "crud_qc_material_stock_batch_batch_stock_out", - "crud_qc_material_stock_batch_create_batch_and_usage", - "crud_qc_material_stock_batch_delete_batch", - "crud_qc_material_stock_batch_discard_batch", - "crud_qc_material_stock_batch_get_batch", - "crud_qc_material_stock_batch_get_batch_detail", - "crud_qc_material_stock_batch_get_material_for_update", - "crud_qc_material_stock_batch_parse_date", - "crud_qc_material_stock_batch_parse_expire_date", - "crud_qc_material_stock_batch_py", - "crud_qc_material_stock_batch_require_decimal", - "crud_qc_material_stock_batch_require_str", - "crud_qc_material_stock_batch_stock_in_no_exists", - "crud_qc_material_stock_batch_stock_in_one", - "crud_qc_material_stock_batch_stock_out_batch", - "crud_qc_material_stock_batch_sum_batch_out_total", - "crud_qc_material_stock_batch_update_batch", - "crud_qc_material_stock_batch_usage_batch_snapshots", - "crud_qc_material_stock_batch_validate_discard_reason", - "crud_qc_material_stock_check_batch_line_to_dict", - "crud_qc_material_stock_check_cancel_check", - "crud_qc_material_stock_check_check_header_to_dict", - "crud_qc_material_stock_check_complete_check", - "crud_qc_material_stock_check_create_check", - "crud_qc_material_stock_check_get_check", - "crud_qc_material_stock_check_get_check_detail", - "crud_qc_material_stock_check_line_counts", - "crud_qc_material_stock_check_list_checks", - "crud_qc_material_stock_check_parse_check_time", - "crud_qc_material_stock_check_parse_optional_date", - "crud_qc_material_stock_check_py", - "crud_qc_material_stock_check_rationale_363", - "crud_qc_material_stock_check_resolve_unused_item_fields", - "crud_qc_material_stock_check_save_unused_lines", - "crud_qc_material_stock_check_status_label", - "crud_qc_material_stock_check_unused_amount", - "crud_qc_material_stock_check_unused_line_to_dict", - "crud_qc_material_stock_check_user_nick_name_map", - "crud_qc_material_stock_in", - "crud_qc_material_stock_out", - "crud_qc_material_total_pages", - "crud_qc_material_update_material", - "models_production_material_bizproductionmaterialprepline", - "models_qc_material_bizqcmaterialstockcheck", - "models_qc_material_bizqcmaterialstockcheckbatchline", - "models_qc_material_bizqcmaterialstockcheckunusedline", - "models_qc_material_py", - "services_protocol_pay_mode_switch_dec", - "services_protocol_pay_mode_switch_py", - "services_protocol_pay_mode_switch_rationale_1", - "services_protocol_pay_mode_switch_validate_payment_details_for_save" - ], - "8": [ - "api_ethnic_list_ethnics_for_select", - "api_ethnic_py", - "core_data_scope_apply_data_scope", - "core_data_scope_get_user_dept_id", - "core_data_scope_py", - "core_data_scope_resolve_user_role_scopes", - "crud_dept_build_tree", - "crud_dept_cascade_soft_delete", - "crud_dept_collect_with_ancestors", - "crud_dept_get_dept", - "crud_dept_list_depts", - "crud_dept_list_depts_tree", - "crud_dept_py", - "crud_dept_rationale_42", - "crud_dept_row_to_dict", - "crud_dept_soft_delete_dept", - "crud_dept_update_dept", - "crud_ethnic_list_ethnics", - "crud_ethnic_py", - "crud_ethnic_rationale_1", - "crud_ethnic_row_to_dict", - "crud_leave_create_leave", - "crud_leave_get_leave", - "crud_leave_list_leaves", - "crud_leave_py", - "crud_leave_row_to_dict", - "crud_leave_soft_delete_leave", - "crud_leave_total_pages", - "crud_leave_update_leave", - "crud_material_usage_amount_for_row", - "crud_material_usage_batch_map", - "crud_material_usage_display_remark", - "crud_material_usage_fmt_date_val", - "crud_material_usage_list_stock_check_requisitions", - "crud_material_usage_list_usages", - "crud_material_usage_list_usages_query", - "crud_material_usage_mark_requisition_fully_used", - "crud_material_usage_paginate_usages", - "crud_material_usage_parse_receiver_purpose_from_remark", - "crud_material_usage_py", - "crud_material_usage_rationale_302", - "crud_material_usage_receiver_display_map", - "crud_material_usage_resolve_receiver_purpose", - "crud_material_usage_row_to_dict", - "crud_material_usage_stock_in_date_for_row", - "crud_material_usage_unit_price_for_row", - "crud_material_usage_usage_unit_label", - "crud_material_usage_user_nick_name_map", - "crud_menu_build_tree", - "crud_menu_cascade_soft_delete", - "crud_menu_get_menu", - "crud_menu_list_menus", - "crud_menu_list_menus_tree", - "crud_menu_menu_name_exists", - "crud_menu_py", - "crud_menu_row_to_dict", - "crud_menu_soft_delete_menu", - "crud_menu_update_menu", - "crud_pilot_service_list_channel_agreements", - "crud_pilot_service_list_checkup_institution_invoices", - "crud_pilot_service_list_project_system_items", - "crud_production_material_filter_material_type", - "crud_production_material_usage_amount_for_row", - "crud_production_material_usage_batch_map", - "crud_production_material_usage_deduct_step_usage_legacy_batch", - "crud_production_material_usage_display_remark", - "crud_production_material_usage_fmt_date_val", - "crud_production_material_usage_list_available_requisitions_for_prep", - "crud_production_material_usage_list_linked_step_usages", - "crud_production_material_usage_list_my_prep_consumptions", - "crud_production_material_usage_list_my_usages", - "crud_production_material_usage_list_prep_consumptions", - "crud_production_material_usage_list_requisition_options", - "crud_production_material_usage_list_stock_check_requisitions", - "crud_production_material_usage_list_usages", - "crud_production_material_usage_list_usages_by_step", - "crud_production_material_usage_list_usages_query", - "crud_production_material_usage_mark_requisition_fully_used", - "crud_production_material_usage_mine_usage_filter", - "crud_production_material_usage_paginate_usages", - "crud_production_material_usage_parse_receiver_purpose_from_remark", - "crud_production_material_usage_prep_consumption_to_dict", - "crud_production_material_usage_py", - "crud_production_material_usage_rationale_1064", - "crud_production_material_usage_rationale_1233", - "crud_production_material_usage_rationale_1312", - "crud_production_material_usage_rationale_195", - "crud_production_material_usage_rationale_20", - "crud_production_material_usage_rationale_367", - "crud_production_material_usage_rationale_391", - "crud_production_material_usage_rationale_42", - "crud_production_material_usage_rationale_448", - "crud_production_material_usage_rationale_524", - "crud_production_material_usage_rationale_595", - "crud_production_material_usage_rationale_773", - "crud_production_material_usage_rationale_934", - "crud_production_material_usage_receiver_display_map", - "crud_production_material_usage_record_step_usage_from_requisition", - "crud_production_material_usage_resolve_receiver_purpose", - "crud_production_material_usage_revert_step_material_usages", - "crud_production_material_usage_row_to_dict", - "crud_production_material_usage_step_consumed_qty_map", - "crud_production_material_usage_stock_in_date_for_row", - "crud_production_material_usage_unit_price_for_row", - "crud_production_material_usage_usage_unit_label", - "crud_production_material_usage_user_nick_name_map", - "crud_qc_material_usage_amount_for_row", - "crud_qc_material_usage_batch_map", - "crud_qc_material_usage_deduct_for_task", - "crud_qc_material_usage_deduct_task_usage_legacy_batch", - "crud_qc_material_usage_display_remark", - "crud_qc_material_usage_fmt_date_val", - "crud_qc_material_usage_linked_qc_task_no_map", - "crud_qc_material_usage_list_linked_task_usages", - "crud_qc_material_usage_list_my_usages", - "crud_qc_material_usage_list_requisition_options", - "crud_qc_material_usage_list_stock_check_requisitions", - "crud_qc_material_usage_list_usages", - "crud_qc_material_usage_list_usages_by_task", - "crud_qc_material_usage_list_usages_query", - "crud_qc_material_usage_mine_usage_filter", - "crud_qc_material_usage_paginate_usages", - "crud_qc_material_usage_parse_receiver_purpose_from_remark", - "crud_qc_material_usage_py", - "crud_qc_material_usage_rationale_181", - "crud_qc_material_usage_rationale_19", - "crud_qc_material_usage_rationale_222", - "crud_qc_material_usage_rationale_408", - "crud_qc_material_usage_rationale_41", - "crud_qc_material_usage_rationale_431", - "crud_qc_material_usage_rationale_488", - "crud_qc_material_usage_rationale_537", - "crud_qc_material_usage_rationale_607", - "crud_qc_material_usage_rationale_774", - "crud_qc_material_usage_rationale_874", - "crud_qc_material_usage_rationale_959", - "crud_qc_material_usage_receiver_display_map", - "crud_qc_material_usage_record_task_usage_from_requisition", - "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_stock_in_date_for_row", - "crud_qc_material_usage_task_consumed_qty_map", - "crud_qc_material_usage_unit_price_for_row", - "crud_qc_material_usage_usage_unit_label", - "crud_qc_material_usage_user_nick_name_map", - "crud_sample_sms_notification_accept_conclusion_label", - "crud_sample_sms_notification_base_query", - "crud_sample_sms_notification_ensure_notification", - "crud_sample_sms_notification_fetch_sample_type_name", - "crud_sample_sms_notification_fmt_dt", - "crud_sample_sms_notification_generate_sms_content", - "crud_sample_sms_notification_list_notifications", - "crud_sample_sms_notification_normalize_date_bound", - "crud_sample_sms_notification_py", - "crud_sample_sms_notification_resolve_notification", - "crud_sample_sms_notification_row_to_dict", - "crud_sample_sms_notification_total_pages", - "crud_sample_sms_notification_unicode_ci", - "models_production_material_bizproductionmaterialprep" - ], - "9": [ "api_production_get_next_cell_product_code", "core_protocol_status_display_build_void_type_label_map", "core_protocol_status_display_format_protocol_status_label", @@ -3920,7 +3632,6 @@ "crud_cell_product_build_descendant_chain", "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", @@ -3960,14 +3671,22 @@ "crud_equipment_snapshot_rationale_1", "crud_equipment_snapshot_rationale_29", "crud_equipment_snapshot_resolve_equipment_list_snapshot", - "crud_production_material_usage_rationale_878", - "crud_production_material_usage_register_step_usage_from_requisition", + "crud_outbound_handover_inventory_apply_handover_inventory", + "crud_outbound_handover_inventory_deduct_market_material_for_handover", + "crud_outbound_handover_inventory_get_cell_product_locked", + "crud_outbound_handover_inventory_handover_usage_remark", + "crud_outbound_handover_inventory_handover_usage_remark_prefix", + "crud_outbound_handover_inventory_py", + "crud_outbound_handover_inventory_remove_cell_occupancy_no_commit", + "crud_outbound_handover_inventory_restore_cell_occupancy_no_commit", + "crud_outbound_handover_inventory_revert_handover_inventory", + "crud_outbound_handover_inventory_revert_legacy_qc_handover_usages", + "crud_outbound_handover_inventory_revert_market_handover_usages", "crud_production_task_add_task_step", "crud_production_task_aggregate_production_tab_step_field", "crud_production_task_assert_step_assignee_for_write", "crud_production_task_assert_task_assignee", "crud_production_task_assert_task_step_assignee_or_legacy", - "crud_production_task_base_active_step_count_query", "crud_production_task_batch_load_step_sub_tables", "crud_production_task_clone_route_to_task", "crud_production_task_clone_step_consumables", @@ -3982,10 +3701,10 @@ "crud_production_task_create_occupancy_for_product", "crud_production_task_create_production_task", "crud_production_task_delete_production_task", - "crud_production_task_delete_task_step", "crud_production_task_dispatch_task_steps", "crud_production_task_empty_production_tab_step_counts", "crud_production_task_empty_step_sub_tables", + "crud_production_task_enrich_assignee_names", "crud_production_task_enrich_handover_times", "crud_production_task_enrich_outbound_task_items", "crud_production_task_enrich_tasks_with_step_summaries", @@ -4005,17 +3724,9 @@ "crud_production_task_reassign_production_task", "crud_production_task_record_task_handover", "crud_production_task_reorder_task_steps", - "crud_production_task_replace_step_configured_reagents", - "crud_production_task_replace_step_consumables", - "crud_production_task_replace_step_data_collections", - "crud_production_task_replace_step_outputs", - "crud_production_task_replace_step_reagents", - "crud_production_task_require_requisition_for_catalog_material", "crud_production_task_resolve_production_tab_key", "crud_production_task_resolve_sub_table_order_num", - "crud_production_task_set_task_inputs", "crud_production_task_set_task_outputs", - "crud_production_task_soft_delete_sub", "crud_production_task_step_assignee_active_users_in_tenant", "crud_production_task_step_assignee_active_users_with_role_in_tenant", "crud_production_task_step_assignee_enrich_step_assignees", @@ -4040,7 +3751,6 @@ "crud_production_task_update_production_task", "crud_production_task_update_task_status", "crud_production_task_validate_assignee_user_id", - "crud_production_work_order_apply_exclude_inactive_protocol_filter", "crud_production_work_order_sync_production_work_order_status_from_tasks", "crud_storage_occupancy_add_stored_occupancy_no_commit", "crud_storage_occupancy_assert_batch_slots_unique", @@ -4064,7 +3774,497 @@ "crud_storage_occupancy_remove_occupancy", "crud_storage_occupancy_row_to_dict" ], + "8": [ + "crud_base_crudbase_update", + "crud_clinical_payment_auto_create_payment", + "crud_collection_protocol_get_protocol_nos_used_in_protocols", + "crud_outbound_handover_fmt_dt", + "crud_outbound_handover_get_handover_by_schedule", + "crud_outbound_handover_get_outbound_handover", + "crud_outbound_handover_get_outbound_handover_view", + "crud_outbound_handover_handover_row_to_dict", + "crud_outbound_handover_handover_view_dict", + "crud_outbound_handover_parse_handover_time", + "crud_outbound_handover_py", + "crud_outbound_handover_rationale_103", + "crud_outbound_handover_rationale_113", + "crud_outbound_handover_rationale_147", + "crud_outbound_handover_save_outbound_handover", + "crud_outbound_release_material_cell_row_to_dict", + "crud_outbound_release_material_enrich_cell_dicts_with_live_status", + "crud_outbound_release_material_find_outbound_cell_row", + "crud_outbound_release_material_find_outbound_qc_material_row", + "crud_outbound_release_material_fmt_dt", + "crud_outbound_release_material_get_outbound_material", + "crud_outbound_release_material_get_schedule", + "crud_outbound_release_material_legacy_paper_rows_from_attachments", + "crud_outbound_release_material_material_header_to_dict", + "crud_outbound_release_material_paper_row_to_dict", + "crud_outbound_release_material_py", + "crud_outbound_release_material_qc_material_row_to_dict", + "crud_outbound_release_material_save_outbound_material", + "crud_outbound_release_material_soft_delete_outbound_cells_not_in", + "crud_outbound_release_material_soft_delete_outbound_qc_materials_not_in", + "crud_pilot_application_complete_application", + "crud_pilot_application_create_basic_experiment_sale_schedules", + "crud_pilot_application_create_infusion_plan", + "crud_pilot_application_create_schedule", + "crud_pilot_application_create_schedule_products", + "crud_pilot_application_format_yyyy_mm_dd", + "crud_pilot_application_generate_application_no", + "crud_pilot_application_get_application", + "crud_pilot_application_get_or_create_infusion_plan", + "crud_pilot_application_get_patient_by_application", + "crud_pilot_application_get_schedule_for_plan", + "crud_pilot_application_list_applications", + "crud_pilot_application_list_infusion_plans", + "crud_pilot_application_list_schedules_by_plan", + "crud_pilot_application_mark_schedule_complete", + "crud_pilot_application_normalize_infusion_status_code", + "crud_pilot_application_normalize_yyyymmdd", + "crud_pilot_application_parse_infusion_datetime", + "crud_pilot_application_prepare_infusion_plan_payload", + "crud_pilot_application_py", + "crud_pilot_application_release_application_no_for_soft_delete", + "crud_pilot_application_row_to_dict_application", + "crud_pilot_application_row_to_dict_infusion_plan", + "crud_pilot_application_row_to_dict_infusion_schedule", + "crud_pilot_application_row_to_dict_patient", + "crud_pilot_application_row_to_dict_schedule_product", + "crud_pilot_application_save_application_infusion", + "crud_pilot_application_save_patient", + "crud_pilot_application_schedule_deletable", + "crud_pilot_application_schedule_has_blocking_links", + "crud_pilot_application_schedule_infusion_editable", + "crud_pilot_application_schedule_locked", + "crud_pilot_application_soft_delete_application", + "crud_pilot_application_soft_delete_infusion_plan", + "crud_pilot_application_soft_delete_schedule", + "crud_pilot_application_start_application", + "crud_pilot_application_update_infusion_plan", + "crud_pilot_application_update_schedule", + "crud_pilot_application_update_schedule_editable", + "crud_pilot_application_update_schedule_order_only", + "crud_pilot_application_upsert_application_infusion", + "crud_pilot_application_upsert_schedule_products", + "crud_pilot_application_void_application", + "crud_pilot_checkup_batch_create_checkups", + "crud_pilot_checkup_create_checkup", + "crud_pilot_checkup_delete_actual_item", + "crud_pilot_checkup_delete_reserve_item", + "crud_pilot_checkup_ensure_checkup_for_patient", + "crud_pilot_checkup_generate_checkup_no", + "crud_pilot_checkup_get_checkup_by_application", + "crud_pilot_checkup_get_checkup_by_id", + "crud_pilot_checkup_list_actual_items", + "crud_pilot_checkup_list_checkups_paginated", + "crud_pilot_checkup_list_pending_patients", + "crud_pilot_checkup_list_reserve_items", + "crud_pilot_checkup_mark_checkup_checked", + "crud_pilot_checkup_parse_optional_datetime", + "crud_pilot_checkup_py", + "crud_pilot_checkup_remove_checkup_for_patient", + "crud_pilot_checkup_row_to_dict_actual_item", + "crud_pilot_checkup_row_to_dict_checkup", + "crud_pilot_checkup_row_to_dict_reserve_item", + "crud_pilot_checkup_save_actual_items", + "crud_pilot_checkup_save_reserve_items", + "crud_pilot_checkup_settle_checkup_fee", + "crud_pilot_checkup_soft_delete_checkup", + "crud_pilot_checkup_update_checkup", + "crud_pilot_infusion_confirm_confirm_infusion", + "crud_pilot_infusion_confirm_create_infusion_confirm", + "crud_pilot_infusion_confirm_delete_infusion_confirm", + "crud_pilot_infusion_confirm_get_confirm_by_id", + "crud_pilot_infusion_confirm_get_confirm_by_schedule", + "crud_pilot_infusion_confirm_list_confirms_by_application", + "crud_pilot_infusion_confirm_py", + "crud_pilot_infusion_confirm_rationale_113", + "crud_pilot_infusion_confirm_row_to_dict", + "crud_pilot_infusion_confirm_update_infusion_confirm", + "crud_pilot_infusion_schedule_mgmt_create_settlement_txn", + "crud_pilot_infusion_schedule_mgmt_deduct_fee_on_complete", + "crud_pilot_infusion_schedule_mgmt_find_existing_settlement_txn", + "crud_pilot_infusion_schedule_mgmt_find_service_order_product", + "crud_pilot_infusion_schedule_mgmt_get_infusion_schedule_detail", + "crud_pilot_infusion_schedule_mgmt_get_plan_schedule_course_meta", + "crud_pilot_infusion_schedule_mgmt_get_products_for_schedule", + "crud_pilot_infusion_schedule_mgmt_list_infusion_schedules_mgmt", + "crud_pilot_infusion_schedule_mgmt_py", + "crud_pilot_infusion_schedule_mgmt_resolve_course_display", + "crud_pilot_infusion_schedule_mgmt_resolve_yfk_unit_price", + "crud_pilot_infusion_schedule_mgmt_row_to_dict_product", + "crud_pilot_infusion_schedule_mgmt_row_to_dict_schedule", + "crud_pilot_infusion_schedule_mgmt_schedule_product_to_txn_item", + "crud_pilot_infusion_schedule_mgmt_settlement_remark_marker", + "crud_pilot_infusion_schedule_mgmt_settlement_remark_markers_for_lookup", + "crud_pilot_infusion_schedule_mgmt_update_infusion_schedule_mgmt", + "crud_pilot_infusion_schedule_mgmt_update_infusion_status", + "crud_pilot_infusion_schedule_mgmt_update_qc_status", + "crud_pilot_outbound_status_sync_get_schedule", + "crud_pilot_outbound_status_sync_is_pilot_outbound_production", + "crud_pilot_outbound_status_sync_is_pilot_outbound_qc", + "crud_pilot_outbound_status_sync_py", + "crud_pilot_outbound_status_sync_sync_pilot_outbound_from_schedule", + "crud_pilot_outbound_status_sync_sync_production_work_order_from_schedule", + "crud_pilot_outbound_status_sync_sync_qc_work_order_from_schedule", + "crud_pilot_outbound_status_sync_sync_schedule_from_production_work_order", + "crud_pilot_outbound_status_sync_sync_schedule_from_qc_work_order", + "crud_pilot_outbound_status_sync_touch", + "crud_qc_material_amount_auth_assert_user_in_auth_dept", + "crud_qc_material_amount_auth_get_amount_view_role", + "crud_qc_material_amount_auth_get_auth_dept_id", + "crud_qc_material_amount_auth_grant_amount_view_role", + "crud_qc_material_amount_auth_list_authorized_users", + "crud_qc_material_amount_auth_py", + "crud_qc_material_amount_auth_revoke_amount_view_role", + "crud_qc_material_amount_auth_row_to_dict", + "crud_qc_material_amount_auth_user_has_role_binding" + ], + "9": [ + "crud_material_stock_check_batch_line_to_dict", + "crud_material_stock_check_cancel_check", + "crud_material_stock_check_check_header_to_dict", + "crud_material_stock_check_complete_check", + "crud_material_stock_check_get_check", + "crud_material_stock_check_get_check_detail", + "crud_material_stock_check_line_counts", + "crud_material_stock_check_list_checks", + "crud_material_stock_check_parse_optional_date", + "crud_material_stock_check_py", + "crud_material_stock_check_resolve_unused_item_fields", + "crud_material_stock_check_save_unused_lines", + "crud_material_stock_check_status_label", + "crud_material_stock_check_unused_amount", + "crud_material_stock_check_unused_line_to_dict", + "crud_material_stock_check_user_nick_name_map", + "crud_production_material_prep_batch_map_for_prep_lines", + "crud_production_material_prep_cancel_prep", + "crud_production_material_prep_complete_prep", + "crud_production_material_prep_create_auto_stock_out", + "crud_production_material_prep_create_prep", + "crud_production_material_prep_create_quick_prep", + "crud_production_material_prep_delete_prep", + "crud_production_material_prep_fmt_date", + "crud_production_material_prep_generate_prep_no", + "crud_production_material_prep_generate_stock_in_no", + "crud_production_material_prep_get_or_create_configured_material", + "crud_production_material_prep_get_prep_detail", + "crud_production_material_prep_get_prep_row", + "crud_production_material_prep_header_to_dict", + "crud_production_material_prep_line_to_dict", + "crud_production_material_prep_list_available_material_batches", + "crud_production_material_prep_list_preps", + "crud_production_material_prep_parse_prep_lines", + "crud_production_material_prep_parse_quick_prep_lines", + "crud_production_material_prep_py", + "crud_production_material_prep_rationale_1296", + "crud_production_material_prep_rationale_523", + "crud_production_material_prep_rationale_893", + "crud_production_material_prep_rationale_948", + "crud_production_material_prep_require_draft", + "crud_production_material_prep_status_label", + "crud_production_material_prep_update_prep", + "crud_production_material_prep_user_nick_name_map", + "crud_production_material_prep_validate_requisition", + "crud_production_material_prep_write_prep_consume_usage", + "crud_production_material_prep_write_quick_prep_consume_usage", + "crud_production_material_stock_check_batch_line_to_dict", + "crud_production_material_stock_check_cancel_check", + "crud_production_material_stock_check_check_header_to_dict", + "crud_production_material_stock_check_complete_check", + "crud_production_material_stock_check_create_check", + "crud_production_material_stock_check_get_check", + "crud_production_material_stock_check_get_check_detail", + "crud_production_material_stock_check_line_counts", + "crud_production_material_stock_check_list_checks", + "crud_production_material_stock_check_parse_check_time", + "crud_production_material_stock_check_parse_optional_date", + "crud_production_material_stock_check_py", + "crud_production_material_stock_check_resolve_unused_item_fields", + "crud_production_material_stock_check_save_unused_lines", + "crud_production_material_stock_check_status_label", + "crud_production_material_stock_check_unused_amount", + "crud_production_material_stock_check_unused_line_to_dict", + "crud_production_material_stock_check_user_nick_name_map", + "crud_qc_material_stock_batch_append_batch_qty_adjust", + "crud_qc_material_stock_batch_batch_options", + "crud_qc_material_stock_batch_batch_row_to_dict", + "crud_qc_material_stock_batch_batch_stock_in", + "crud_qc_material_stock_batch_batch_stock_out", + "crud_qc_material_stock_batch_create_batch_and_usage", + "crud_qc_material_stock_batch_delete_batch", + "crud_qc_material_stock_batch_discard_batch", + "crud_qc_material_stock_batch_fmt_date", + "crud_qc_material_stock_batch_get_batch", + "crud_qc_material_stock_batch_get_batch_detail", + "crud_qc_material_stock_batch_get_material_for_update", + "crud_qc_material_stock_batch_list_batches", + "crud_qc_material_stock_batch_parse_date", + "crud_qc_material_stock_batch_parse_expire_date", + "crud_qc_material_stock_batch_py", + "crud_qc_material_stock_batch_require_decimal", + "crud_qc_material_stock_batch_require_str", + "crud_qc_material_stock_batch_stock_in_no_exists", + "crud_qc_material_stock_batch_stock_in_one", + "crud_qc_material_stock_batch_stock_out_batch", + "crud_qc_material_stock_batch_sum_batch_out_total", + "crud_qc_material_stock_batch_update_batch", + "crud_qc_material_stock_batch_usage_batch_snapshots", + "crud_qc_material_stock_batch_validate_discard_reason", + "crud_qc_material_stock_check_batch_line_to_dict", + "crud_qc_material_stock_check_cancel_check", + "crud_qc_material_stock_check_check_header_to_dict", + "crud_qc_material_stock_check_complete_check", + "crud_qc_material_stock_check_create_check", + "crud_qc_material_stock_check_get_check", + "crud_qc_material_stock_check_get_check_detail", + "crud_qc_material_stock_check_line_counts", + "crud_qc_material_stock_check_list_checks", + "crud_qc_material_stock_check_parse_check_time", + "crud_qc_material_stock_check_parse_optional_date", + "crud_qc_material_stock_check_py", + "crud_qc_material_stock_check_rationale_363", + "crud_qc_material_stock_check_resolve_unused_item_fields", + "crud_qc_material_stock_check_save_unused_lines", + "crud_qc_material_stock_check_status_label", + "crud_qc_material_stock_check_unused_amount", + "crud_qc_material_stock_check_unused_line_to_dict", + "crud_qc_material_stock_check_user_nick_name_map", + "models_production_material_bizproductionmaterialprepline", + "models_qc_material_bizqcmaterialstockcheck", + "models_qc_material_bizqcmaterialstockcheckbatchline", + "models_qc_material_bizqcmaterialstockcheckunusedline", + "models_qc_material_py", + "services_protocol_pay_mode_switch_dec", + "services_protocol_pay_mode_switch_py", + "services_protocol_pay_mode_switch_rationale_1", + "services_protocol_pay_mode_switch_validate_payment_details_for_save" + ], "10": [ + "crud_oa_approval_app_to_dict", + "crud_oa_approval_create_app", + "crud_oa_approval_create_version", + "crud_oa_approval_delete_app", + "crud_oa_approval_delete_group", + "crud_oa_approval_delete_role", + "crud_oa_approval_dumps", + "crud_oa_approval_ensure_presets", + "crud_oa_approval_find_draft", + "crud_oa_approval_find_latest_published", + "crud_oa_approval_get_app", + "crud_oa_approval_get_group", + "crud_oa_approval_get_or_create_draft", + "crud_oa_approval_get_role", + "crud_oa_approval_list_apps", + "crud_oa_approval_list_oa_role_user_ids", + "crud_oa_approval_loads", + "crud_oa_approval_py", + "crud_oa_approval_save_draft", + "crud_oa_approval_update_app", + "crud_oa_approval_update_group", + "crud_oa_approval_update_role", + "crud_oa_approval_version_draft_to_dict", + "services_oa_assignee_active_user_id", + "services_oa_assignee_assigneeresolveerror", + "services_oa_assignee_py", + "services_oa_assignee_rationale_1", + "services_oa_assignee_rationale_97", + "services_oa_assignee_resolve_assignees", + "services_oa_assignee_resolve_dept_leader", + "services_oa_assignee_resolve_direct_supervisor", + "services_oa_engine_add_instance_event", + "services_oa_engine_add_sign", + "services_oa_engine_advance_from", + "services_oa_engine_advanced", + "services_oa_engine_append_pending_nodes", + "services_oa_engine_assignee_meta", + "services_oa_engine_build_progress_items", + "services_oa_engine_check_initiator_scope", + "services_oa_engine_complete_task", + "services_oa_engine_create_tasks_for_node", + "services_oa_engine_dumps", + "services_oa_engine_enrich_list_rows", + "services_oa_engine_find_node", + "services_oa_engine_flow_node_key_order", + "services_oa_engine_flow_root", + "services_oa_engine_fmt_dt", + "services_oa_engine_get_instance", + "services_oa_engine_get_instance_detail", + "services_oa_engine_get_template_detail", + "services_oa_engine_instance_progress_summary", + "services_oa_engine_instance_to_dict", + "services_oa_engine_list_tasks", + "services_oa_engine_list_templates", + "services_oa_engine_loads", + "services_oa_engine_next_task_order_num", + "services_oa_engine_node_type", + "services_oa_engine_oaengineerror", + "services_oa_engine_preview_people", + "services_oa_engine_preview_start_flow", + "services_oa_engine_py", + "services_oa_engine_resubmit_instance", + "services_oa_engine_return_task", + "services_oa_engine_role_name_map", + "services_oa_engine_sort_tasks_for_detail", + "services_oa_engine_start_instance", + "services_oa_engine_task_round", + "services_oa_engine_terminal_item", + "services_oa_engine_user_name_map", + "services_oa_engine_walk_preview_nodes", + "services_oa_engine_withdraw_instance", + "services_oa_formula_apply_formulas_and_linkages", + "services_oa_formula_eval_formula", + "services_oa_formula_extract_rules", + "services_oa_formula_formulaerror", + "services_oa_formula_preprocess_formula", + "services_oa_formula_py", + "services_oa_formula_rationale_1", + "services_oa_formula_rationale_232", + "services_oa_formula_rationale_69", + "services_oa_formula_safeeval", + "services_oa_formula_safeeval_init", + "services_oa_formula_safeeval_visit", + "services_oa_formula_safeeval_visit_binop", + "services_oa_formula_safeeval_visit_boolop", + "services_oa_formula_safeeval_visit_call", + "services_oa_formula_safeeval_visit_compare", + "services_oa_formula_safeeval_visit_constant", + "services_oa_formula_safeeval_visit_expression", + "services_oa_formula_safeeval_visit_ifexp", + "services_oa_formula_safeeval_visit_list", + "services_oa_formula_safeeval_visit_name", + "services_oa_formula_safeeval_visit_nameconstant", + "services_oa_formula_safeeval_visit_num", + "services_oa_formula_safeeval_visit_str", + "services_oa_formula_safeeval_visit_unaryop", + "services_oa_formula_to_number", + "services_oa_formula_truthy", + "services_oa_formula_walk_rules", + "services_oa_publish_count_fillable_fields", + "services_oa_publish_extract_rules", + "services_oa_publish_node_type", + "services_oa_publish_publish_app", + "services_oa_publish_py", + "services_oa_publish_rationale_319", + "services_oa_publish_validate_control_types", + "services_oa_publish_validate_draft_for_publish", + "services_oa_publish_validate_flow_tree", + "services_oa_publish_validate_oa_roles_referenced", + "services_oa_publish_walk_form_rules" + ], + "11": [ + "api_sample_production_reception_body_to_payload", + "api_sample_production_reception_get_current_user_id", + "api_sample_production_reception_get_production_reception_by_sample_code", + "api_sample_production_reception_get_production_reception_detail", + "api_sample_production_reception_get_tenant_no", + "api_sample_production_reception_post_production_reception", + "api_sample_production_reception_put_production_reception", + "api_sample_production_reception_py", + "api_sample_production_reception_resolve_reception_id", + "crud_collection_protocol_format_attachment_file_size", + "crud_collection_protocol_urls_to_attachment_list", + "crud_sample_production_reception_apply_payload_to_row", + "crud_sample_production_reception_create_production_reception", + "crud_sample_production_reception_dec", + "crud_sample_production_reception_fmt_dt", + "crud_sample_production_reception_get_by_id", + "crud_sample_production_reception_get_by_reception_id", + "crud_sample_production_reception_get_map_by_reception_ids", + "crud_sample_production_reception_get_qc_reception", + "crud_sample_production_reception_int_val", + "crud_sample_production_reception_py", + "crud_sample_production_reception_resolve_field_profile", + "crud_sample_production_reception_row_to_dict", + "crud_sample_production_reception_update_production_reception", + "crud_sample_production_reception_validate_handler_user_id", + "crud_sample_production_reception_validate_payload", + "crud_sample_reception_attach_production_reception", + "crud_sample_reception_can_edit_sample_reception", + "crud_sample_reception_check_result_get_check_results_for_reception", + "crud_sample_reception_check_result_legacy_results_from_reception", + "crud_sample_reception_check_result_list_results_by_reception_ids", + "crud_sample_reception_check_result_py", + "crud_sample_reception_check_result_result_to_dict", + "crud_sample_reception_check_result_save_reception_check_results", + "crud_sample_reception_check_result_soft_delete_reception_check_results", + "crud_sample_reception_check_result_sync_legacy_columns_from_results", + "crud_sample_reception_create_sample_reception", + "crud_sample_reception_dec", + "crud_sample_reception_donation_ids_matching_lab_storage_keyword", + "crud_sample_reception_donation_rows_to_sample_list_items", + "crud_sample_reception_donation_sample_detail_rows_query", + "crud_sample_reception_donation_sample_id_col", + "crud_sample_reception_donation_sample_pending_query", + "crud_sample_reception_finalize_reception_detail", + "crud_sample_reception_fmt_dt", + "crud_sample_reception_format_lab_storage_codes_csv", + "crud_sample_reception_get_reception_by_id", + "crud_sample_reception_get_reception_by_sample_code", + "crud_sample_reception_get_receptions_map_for_donation_samples", + "crud_sample_reception_get_receptions_map_for_samples", + "crud_sample_reception_lab_code_allocate_lab_storage_codes", + "crud_sample_reception_lab_code_allocate_one_seq", + "crud_sample_reception_lab_code_assert_lab_storage_code_available", + "crud_sample_reception_lab_code_format_lab_storage_code", + "crud_sample_reception_lab_code_max_existing_seq", + "crud_sample_reception_lab_code_parse_reception_date", + "crud_sample_reception_lab_code_py", + "crud_sample_reception_lab_code_rationale_1", + "crud_sample_reception_lab_code_rationale_165", + "crud_sample_reception_lab_code_rationale_177", + "crud_sample_reception_lab_code_sync_lab_storage_seq_after_use", + "crud_sample_reception_lab_code_sync_sequence_from_existing", + "crud_sample_reception_lab_code_validate_and_parse_lab_storage_code", + "crud_sample_reception_lab_code_validate_lab_storage_code", + "crud_sample_reception_lab_storage_keyword_like", + "crud_sample_reception_list_pending_protocol_samples", + "crud_sample_reception_list_received_protocol_samples", + "crud_sample_reception_normalize_date_bound", + "crud_sample_reception_protocol_ids_matching_lab_storage_keyword", + "crud_sample_reception_py", + "crud_sample_reception_reception_detail_item", + "crud_sample_reception_reception_detail_item_with_production", + "crud_sample_reception_reception_ids_matching_lab_storage_keyword", + "crud_sample_reception_reception_sample_code", + "crud_sample_reception_reception_to_dict", + "crud_sample_reception_rows_to_sample_list_items", + "crud_sample_reception_sample_codes_matching_lab_storage_keyword", + "crud_sample_reception_sample_detail_rows_query", + "crud_sample_reception_sample_pending_query", + "crud_sample_reception_update_sample_reception", + "crud_sample_sms_notification_accept_conclusion_label", + "crud_sample_sms_notification_base_query", + "crud_sample_sms_notification_ensure_notification", + "crud_sample_sms_notification_fetch_sample_type_name", + "crud_sample_sms_notification_fmt_dt", + "crud_sample_sms_notification_generate_sms_content", + "crud_sample_sms_notification_list_notifications", + "crud_sample_sms_notification_normalize_date_bound", + "crud_sample_sms_notification_py", + "crud_sample_sms_notification_resolve_notification", + "crud_sample_sms_notification_row_to_dict", + "crud_sample_sms_notification_toggle_notification_status", + "crud_sample_sms_notification_total_pages", + "crud_sample_sms_notification_unicode_ci", + "crud_storage_entry_sms_notification_base_query", + "crud_storage_entry_sms_notification_ensure_notification", + "crud_storage_entry_sms_notification_fetch_sample_type_name", + "crud_storage_entry_sms_notification_fmt_dt", + "crud_storage_entry_sms_notification_generate_sms_content", + "crud_storage_entry_sms_notification_list_notifications", + "crud_storage_entry_sms_notification_normalize_date_bound", + "crud_storage_entry_sms_notification_py", + "crud_storage_entry_sms_notification_resolve_notification", + "crud_storage_entry_sms_notification_row_to_dict", + "crud_storage_entry_sms_notification_storage_status_label", + "crud_storage_entry_sms_notification_toggle_notification_status", + "crud_storage_entry_sms_notification_total_pages", + "crud_storage_entry_sms_notification_unicode_ci", + "crud_storage_release_review_create_review_from_reception" + ], + "12": [ "api_operations_accesslogcreatebody", "api_operations_accesslogupdatebody", "api_operations_cleanroomcreatebody", @@ -4103,10 +4303,10 @@ "crud_storage_facility_batch_create_slots", "crud_storage_facility_build_node_path_cache", "crud_storage_facility_build_slot_keyword_sql_filters", + "crud_storage_facility_clear_slots_by_facility_node", "crud_storage_facility_collect_descendant_ids", "crud_storage_facility_collect_slot_host_node_ids", "crud_storage_facility_create_facility", - "crud_storage_facility_create_slot", "crud_storage_facility_ensure_slot_layout_order", "crud_storage_facility_exact_node_ids_for_path", "crud_storage_facility_facility_node_ids_matching_keyword", @@ -4172,7 +4372,7 @@ "services_storage_facility_code_refresh_outbound_release_cell_slot_names", "services_storage_facility_code_validate_node_code" ], - "11": [ + "13": [ "api_public_avatar_url_field", "api_public_build_current_user_payload", "api_public_build_user_info_payload", @@ -4242,7 +4442,9 @@ "core_security_py", "core_security_rationale_5", "core_security_verify_password", - "crud_sample_reception_can_edit_sample_reception", + "crud_base_crudbase_delete", + "crud_base_crudbase_hard_delete", + "crud_role_update_role_menus", "crud_user_usercrudcompat_get_by_user_no", "schemas_auth_profileupdaterequest", "schemas_auth_rationale_55", @@ -4256,167 +4458,6 @@ "tasks_init_py", "tasks_init_shutdown_scheduler" ], - "12": [ - "api_pilot_application_api_save_application", - "crud_pilot_application_auto_generate_schedules", - "crud_pilot_application_complete_application", - "crud_pilot_application_create_application", - "crud_pilot_application_create_basic_experiment_sale_schedules", - "crud_pilot_application_create_infusion_plan", - "crud_pilot_application_create_schedule", - "crud_pilot_application_create_schedule_products", - "crud_pilot_application_format_yyyy_mm_dd", - "crud_pilot_application_generate_application_no", - "crud_pilot_application_get_application", - "crud_pilot_application_get_or_create_infusion_plan", - "crud_pilot_application_get_patient_by_application", - "crud_pilot_application_get_schedule_for_plan", - "crud_pilot_application_list_applications", - "crud_pilot_application_list_infusion_plans", - "crud_pilot_application_list_schedules_by_plan", - "crud_pilot_application_mark_schedule_complete", - "crud_pilot_application_normalize_infusion_status_code", - "crud_pilot_application_normalize_yyyymmdd", - "crud_pilot_application_parse_infusion_datetime", - "crud_pilot_application_prepare_infusion_plan_payload", - "crud_pilot_application_py", - "crud_pilot_application_release_application_no_for_soft_delete", - "crud_pilot_application_resolve_application_attachment_payload", - "crud_pilot_application_row_to_dict_application", - "crud_pilot_application_row_to_dict_infusion_plan", - "crud_pilot_application_row_to_dict_infusion_schedule", - "crud_pilot_application_row_to_dict_patient", - "crud_pilot_application_row_to_dict_schedule_product", - "crud_pilot_application_save_application_infusion", - "crud_pilot_application_save_patient", - "crud_pilot_application_schedule_deletable", - "crud_pilot_application_schedule_has_blocking_links", - "crud_pilot_application_schedule_infusion_editable", - "crud_pilot_application_schedule_locked", - "crud_pilot_application_soft_delete_application", - "crud_pilot_application_soft_delete_infusion_plan", - "crud_pilot_application_soft_delete_schedule", - "crud_pilot_application_start_application", - "crud_pilot_application_update_application", - "crud_pilot_application_update_infusion_plan", - "crud_pilot_application_update_schedule", - "crud_pilot_application_update_schedule_editable", - "crud_pilot_application_update_schedule_order_only", - "crud_pilot_application_upsert_application_infusion", - "crud_pilot_application_upsert_schedule_products", - "crud_pilot_application_void_application", - "crud_pilot_checkup_batch_create_checkups", - "crud_pilot_checkup_create_checkup", - "crud_pilot_checkup_delete_actual_item", - "crud_pilot_checkup_delete_reserve_item", - "crud_pilot_checkup_ensure_checkup_for_patient", - "crud_pilot_checkup_generate_checkup_no", - "crud_pilot_checkup_get_checkup_by_id", - "crud_pilot_checkup_list_actual_items", - "crud_pilot_checkup_list_checkups_paginated", - "crud_pilot_checkup_list_pending_patients", - "crud_pilot_checkup_list_reserve_items", - "crud_pilot_checkup_mark_checkup_checked", - "crud_pilot_checkup_parse_optional_datetime", - "crud_pilot_checkup_py", - "crud_pilot_checkup_remove_checkup_for_patient", - "crud_pilot_checkup_row_to_dict_actual_item", - "crud_pilot_checkup_row_to_dict_checkup", - "crud_pilot_checkup_row_to_dict_reserve_item", - "crud_pilot_checkup_save_actual_items", - "crud_pilot_checkup_save_reserve_items", - "crud_pilot_checkup_settle_checkup_fee", - "crud_pilot_checkup_soft_delete_checkup", - "crud_pilot_checkup_update_checkup", - "crud_pilot_outbound_status_sync_get_schedule", - "crud_pilot_outbound_status_sync_is_pilot_outbound_production", - "crud_pilot_outbound_status_sync_is_pilot_outbound_qc", - "crud_pilot_outbound_status_sync_py", - "crud_pilot_outbound_status_sync_sync_pilot_outbound_from_schedule", - "crud_pilot_outbound_status_sync_sync_production_work_order_from_schedule", - "crud_pilot_outbound_status_sync_sync_qc_work_order_from_schedule", - "crud_pilot_outbound_status_sync_sync_schedule_from_production_work_order", - "crud_pilot_outbound_status_sync_sync_schedule_from_qc_work_order", - "crud_pilot_outbound_status_sync_touch" - ], - "13": [ - "crud_oa_approval_find_latest_published", - "crud_oa_approval_list_oa_role_user_ids", - "services_oa_assignee_active_user_id", - "services_oa_assignee_assigneeresolveerror", - "services_oa_assignee_py", - "services_oa_assignee_rationale_1", - "services_oa_assignee_rationale_97", - "services_oa_assignee_resolve_assignees", - "services_oa_assignee_resolve_dept_leader", - "services_oa_assignee_resolve_direct_supervisor", - "services_oa_engine_add_instance_event", - "services_oa_engine_add_sign", - "services_oa_engine_advance_from", - "services_oa_engine_advanced", - "services_oa_engine_append_pending_nodes", - "services_oa_engine_assignee_meta", - "services_oa_engine_build_progress_items", - "services_oa_engine_check_initiator_scope", - "services_oa_engine_complete_task", - "services_oa_engine_create_tasks_for_node", - "services_oa_engine_dumps", - "services_oa_engine_find_node", - "services_oa_engine_flow_node_key_order", - "services_oa_engine_flow_root", - "services_oa_engine_fmt_dt", - "services_oa_engine_get_instance", - "services_oa_engine_get_instance_detail", - "services_oa_engine_get_template_detail", - "services_oa_engine_instance_to_dict", - "services_oa_engine_list_tasks", - "services_oa_engine_list_templates", - "services_oa_engine_loads", - "services_oa_engine_next_task_order_num", - "services_oa_engine_node_type", - "services_oa_engine_oaengineerror", - "services_oa_engine_preview_people", - "services_oa_engine_preview_start_flow", - "services_oa_engine_py", - "services_oa_engine_resubmit_instance", - "services_oa_engine_return_task", - "services_oa_engine_role_name_map", - "services_oa_engine_sort_tasks_for_detail", - "services_oa_engine_start_instance", - "services_oa_engine_task_round", - "services_oa_engine_terminal_item", - "services_oa_engine_user_name_map", - "services_oa_engine_walk_preview_nodes", - "services_oa_engine_withdraw_instance", - "services_oa_formula_apply_formulas_and_linkages", - "services_oa_formula_eval_formula", - "services_oa_formula_extract_rules", - "services_oa_formula_formulaerror", - "services_oa_formula_preprocess_formula", - "services_oa_formula_py", - "services_oa_formula_rationale_1", - "services_oa_formula_rationale_232", - "services_oa_formula_rationale_69", - "services_oa_formula_safeeval", - "services_oa_formula_safeeval_init", - "services_oa_formula_safeeval_visit", - "services_oa_formula_safeeval_visit_binop", - "services_oa_formula_safeeval_visit_boolop", - "services_oa_formula_safeeval_visit_call", - "services_oa_formula_safeeval_visit_compare", - "services_oa_formula_safeeval_visit_constant", - "services_oa_formula_safeeval_visit_expression", - "services_oa_formula_safeeval_visit_ifexp", - "services_oa_formula_safeeval_visit_list", - "services_oa_formula_safeeval_visit_name", - "services_oa_formula_safeeval_visit_nameconstant", - "services_oa_formula_safeeval_visit_num", - "services_oa_formula_safeeval_visit_str", - "services_oa_formula_safeeval_visit_unaryop", - "services_oa_formula_to_number", - "services_oa_formula_truthy", - "services_oa_formula_walk_rules" - ], "14": [ "api_production_batchstockinbody", "api_production_batchstockinitem", @@ -4492,62 +4533,46 @@ "schemas_qc_work_order_productionqcworkordercreatebody" ], "15": [ - "crud_clinical_payment_map_payments_by_schedule_ids", - "crud_outbound_handover_fmt_dt", - "crud_outbound_handover_get_handover_by_schedule", - "crud_outbound_handover_get_outbound_handover", - "crud_outbound_handover_get_outbound_handover_view", - "crud_outbound_handover_handover_row_to_dict", - "crud_outbound_handover_handover_view_dict", - "crud_outbound_handover_parse_handover_time", - "crud_outbound_handover_py", - "crud_outbound_handover_rationale_103", - "crud_outbound_handover_rationale_113", - "crud_outbound_handover_rationale_147", - "crud_outbound_handover_save_outbound_handover", - "crud_outbound_release_material_cell_row_to_dict", - "crud_outbound_release_material_enrich_cell_dicts_with_live_status", - "crud_outbound_release_material_find_outbound_cell_row", - "crud_outbound_release_material_find_outbound_qc_material_row", - "crud_outbound_release_material_fmt_dt", - "crud_outbound_release_material_get_outbound_material", - "crud_outbound_release_material_get_schedule", - "crud_outbound_release_material_legacy_paper_rows_from_attachments", - "crud_outbound_release_material_material_header_to_dict", - "crud_outbound_release_material_paper_row_to_dict", - "crud_outbound_release_material_py", - "crud_outbound_release_material_qc_material_row_to_dict", - "crud_outbound_release_material_save_outbound_material", - "crud_outbound_release_material_soft_delete_outbound_cells_not_in", - "crud_outbound_release_material_soft_delete_outbound_qc_materials_not_in", - "crud_pilot_infusion_confirm_confirm_infusion", - "crud_pilot_infusion_confirm_create_infusion_confirm", - "crud_pilot_infusion_confirm_delete_infusion_confirm", - "crud_pilot_infusion_confirm_get_confirm_by_id", - "crud_pilot_infusion_confirm_get_confirm_by_schedule", - "crud_pilot_infusion_confirm_list_confirms_by_application", - "crud_pilot_infusion_confirm_py", - "crud_pilot_infusion_confirm_rationale_113", - "crud_pilot_infusion_confirm_row_to_dict", - "crud_pilot_infusion_confirm_update_infusion_confirm", - "crud_pilot_infusion_schedule_mgmt_create_settlement_txn", - "crud_pilot_infusion_schedule_mgmt_deduct_fee_on_complete", - "crud_pilot_infusion_schedule_mgmt_find_existing_settlement_txn", - "crud_pilot_infusion_schedule_mgmt_find_service_order_product", - "crud_pilot_infusion_schedule_mgmt_get_infusion_schedule_detail", - "crud_pilot_infusion_schedule_mgmt_get_plan_schedule_course_meta", - "crud_pilot_infusion_schedule_mgmt_get_products_for_schedule", - "crud_pilot_infusion_schedule_mgmt_list_infusion_schedules_mgmt", - "crud_pilot_infusion_schedule_mgmt_py", - "crud_pilot_infusion_schedule_mgmt_resolve_course_display", - "crud_pilot_infusion_schedule_mgmt_resolve_yfk_unit_price", - "crud_pilot_infusion_schedule_mgmt_row_to_dict_product", - "crud_pilot_infusion_schedule_mgmt_row_to_dict_schedule", - "crud_pilot_infusion_schedule_mgmt_schedule_product_to_txn_item", - "crud_pilot_infusion_schedule_mgmt_settlement_remark_marker", - "crud_pilot_infusion_schedule_mgmt_settlement_remark_markers_for_lookup", - "crud_pilot_infusion_schedule_mgmt_update_infusion_status", - "crud_pilot_infusion_schedule_mgmt_update_qc_status" + "crud_qc_material_usage_amount_for_row", + "crud_qc_material_usage_batch_map", + "crud_qc_material_usage_deduct_for_task", + "crud_qc_material_usage_deduct_task_usage_legacy_batch", + "crud_qc_material_usage_display_remark", + "crud_qc_material_usage_fmt_date_val", + "crud_qc_material_usage_linked_qc_task_no_map", + "crud_qc_material_usage_list_linked_task_usages", + "crud_qc_material_usage_list_my_usages", + "crud_qc_material_usage_list_requisition_options", + "crud_qc_material_usage_list_stock_check_requisitions", + "crud_qc_material_usage_list_usages", + "crud_qc_material_usage_list_usages_by_task", + "crud_qc_material_usage_list_usages_query", + "crud_qc_material_usage_mine_usage_filter", + "crud_qc_material_usage_paginate_usages", + "crud_qc_material_usage_parse_receiver_purpose_from_remark", + "crud_qc_material_usage_py", + "crud_qc_material_usage_rationale_181", + "crud_qc_material_usage_rationale_19", + "crud_qc_material_usage_rationale_222", + "crud_qc_material_usage_rationale_408", + "crud_qc_material_usage_rationale_41", + "crud_qc_material_usage_rationale_431", + "crud_qc_material_usage_rationale_488", + "crud_qc_material_usage_rationale_537", + "crud_qc_material_usage_rationale_607", + "crud_qc_material_usage_rationale_774", + "crud_qc_material_usage_rationale_874", + "crud_qc_material_usage_rationale_959", + "crud_qc_material_usage_receiver_display_map", + "crud_qc_material_usage_record_task_usage_from_requisition", + "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_stock_in_date_for_row", + "crud_qc_material_usage_task_consumed_qty_map", + "crud_qc_material_usage_unit_price_for_row", + "crud_qc_material_usage_usage_unit_label", + "crud_qc_material_usage_user_nick_name_map" ], "16": [ "core_wechat_pay_get_wechat_pay_client", @@ -4555,7 +4580,6 @@ "core_wechat_pay_py", "core_wechat_pay_rationale_1", "core_wechat_pay_rationale_131", - "core_wechat_pay_rationale_254", "core_wechat_pay_rationale_410", "core_wechat_pay_rationale_443", "core_wechat_pay_rationale_60", @@ -4569,7 +4593,6 @@ "core_wechat_pay_wechatpayclient_init", "core_wechat_pay_wechatpayclient_make_request", "core_wechat_pay_wechatpayclient_query_order", - "core_wechat_pay_wechatpayclient_refund", "core_wechat_pay_wechatpayclient_unified_order", "core_wechat_pay_wechatpayv2client", "core_wechat_pay_wechatpayv2client_build_miniprogram_pay_params", @@ -4631,43 +4654,6 @@ "crud_process_update_process" ], "19": [ - "crud_qc_sms_notification_apply_qc_status_filter", - "crud_qc_sms_notification_base_query", - "crud_qc_sms_notification_derive_qc_conclusion", - "crud_qc_sms_notification_ensure_notification", - "crud_qc_sms_notification_eq_ci", - "crud_qc_sms_notification_fetch_completed_tasks", - "crud_qc_sms_notification_fmt_dt", - "crud_qc_sms_notification_generate_sms_content", - "crud_qc_sms_notification_list_notifications", - "crud_qc_sms_notification_normalize_date_bound", - "crud_qc_sms_notification_py", - "crud_qc_sms_notification_qc_complete_time", - "crud_qc_sms_notification_qc_status_label", - "crud_qc_sms_notification_resolve_notification", - "crud_qc_sms_notification_row_to_dict", - "crud_qc_sms_notification_task_stats_subquery", - "crud_qc_sms_notification_toggle_notification_status", - "crud_qc_sms_notification_total_pages", - "crud_qc_sms_notification_unicode_ci" - ], - "20": [ - "crud_equipment_create_equipment", - "crud_equipment_dec", - "crud_equipment_equipment_code_exists", - "crud_equipment_equipment_is_referenced", - "crud_equipment_get_equipment", - "crud_equipment_list_equipments", - "crud_equipment_norm_status", - "crud_equipment_parse_date", - "crud_equipment_py", - "crud_equipment_rationale_1", - "crud_equipment_row_to_dict", - "crud_equipment_soft_delete_equipment", - "crud_equipment_total_pages", - "crud_equipment_update_equipment" - ], - "21": [ "core_wechat_message_py", "core_wechat_message_rationale_1", "core_wechat_message_rationale_86", @@ -4682,7 +4668,7 @@ "core_wechat_message_wechatmessageservice_init", "core_wechat_message_wechatmessageservice_send_template_message" ], - "22": [ + "20": [ "crud_reagent_stock_log_deduct_for_step", "crud_reagent_stock_log_display_remark", "crud_reagent_stock_log_list_stock_logs", @@ -4696,7 +4682,7 @@ "crud_reagent_stock_log_row_to_dict", "crud_reagent_stock_log_user_nick_name_map" ], - "23": [ + "21": [ "crud_consumable_stock_log_deduct_for_step", "crud_consumable_stock_log_display_remark", "crud_consumable_stock_log_list_stock_logs", @@ -4710,18 +4696,32 @@ "crud_consumable_stock_log_row_to_dict", "crud_consumable_stock_log_user_nick_name_map" ], - "24": [ - "services_oa_publish_count_fillable_fields", - "services_oa_publish_extract_rules", - "services_oa_publish_node_type", - "services_oa_publish_py", - "services_oa_publish_validate_control_types", - "services_oa_publish_validate_draft_for_publish", - "services_oa_publish_validate_flow_tree", - "services_oa_publish_validate_oa_roles_referenced", - "services_oa_publish_walk_form_rules" + "22": [ + "crud_dept_build_tree", + "crud_dept_cascade_soft_delete", + "crud_dept_collect_with_ancestors", + "crud_dept_get_dept", + "crud_dept_list_depts", + "crud_dept_list_depts_tree", + "crud_dept_py", + "crud_dept_rationale_42", + "crud_dept_row_to_dict", + "crud_dept_soft_delete_dept", + "crud_dept_update_dept" ], - "25": [ + "23": [ + "crud_menu_build_tree", + "crud_menu_cascade_soft_delete", + "crud_menu_get_menu", + "crud_menu_list_menus", + "crud_menu_list_menus_tree", + "crud_menu_menu_name_exists", + "crud_menu_py", + "crud_menu_row_to_dict", + "crud_menu_soft_delete_menu", + "crud_menu_update_menu" + ], + "24": [ "models_base_basemodel", "models_base_basemodel_to_dict", "models_base_get_active", @@ -4731,7 +4731,7 @@ "models_base_softdeletemodel_soft_delete", "models_base_tablename" ], - "26": [ + "25": [ "core_order_status_compat_derive_legacy_status_from_three", "core_order_status_compat_derive_three_status_from_legacy", "core_order_status_compat_py", @@ -4740,69 +4740,69 @@ "core_order_status_compat_threestatus", "core_order_status_compat_to_decimal" ], - "27": [ + "26": [ "basesettings", "core_config_config", "core_config_py", "core_config_settings" ], - "28": [ + "27": [ "core_database_auto_fill_create_dept_id", "core_database_get_db", "core_database_py", "core_database_rationale_31" ], - "29": [ + "28": [ "api_menu_get_menu_list", "api_menu_py", "api_menu_rationale_1" ], - "30": [ + "29": [ "core_qc_material_amount_auth_constants_py", "core_qc_material_amount_auth_constants_rationale_1" ], - "31": [ + "30": [ "core_context_py", "core_context_rationale_1" ], - "32": [ + "31": [ "api_init_py", "api_init_rationale_1" ], - "33": [ + "32": [ "init_py" ], - "34": [ + "33": [ "core_init_py" ], - "35": [ + "34": [ "core_wechat_message_rationale_143" ], - "36": [ + "35": [ "core_wechat_message_rationale_179" ], - "37": [ + "36": [ "core_wechat_message_rationale_215" ], - "38": [ + "37": [ "core_wechat_message_rationale_251" ], - "39": [ + "38": [ "core_wechat_message_rationale_289" ], - "40": [ + "39": [ "core_wechat_message_rationale_325" ], - "41": [ + "40": [ "models_init_py" ], - "42": [ + "41": [ "schemas_init_py" ], - "43": [ + "42": [ "crud_init_py" ], - "44": [ + "43": [ "ws_init_py" ] }, @@ -4816,27 +4816,27 @@ "6": 0.02, "7": 0.03, "8": 0.03, - "9": 0.03, + "9": 0.04, "10": 0.05, - "11": 0.05, + "11": 0.04, "12": 0.05, - "13": 0.07, + "13": 0.05, "14": 0.45, - "15": 0.07, + "15": 0.11, "16": 0.12, "17": 0.16, "18": 0.21, - "19": 0.23, - "20": 0.27, + "19": 0.24, + "20": 0.24, "21": 0.24, - "22": 0.24, - "23": 0.24, - "24": 0.47, - "25": 0.29, - "26": 0.38, + "22": 0.31, + "23": 0.33, + "24": 0.29, + "25": 0.38, + "26": 0.5, "27": 0.5, - "28": 0.5, - "29": 0.67, + "28": 0.67, + "29": 1.0, "30": 1.0, "31": 1.0, "32": 1.0, @@ -4850,8 +4850,7 @@ "40": 1.0, "41": 1.0, "42": 1.0, - "43": 1.0, - "44": 1.0 + "43": 1.0 }, "gods": [ { @@ -4928,6 +4927,17 @@ "relation": "calls", "why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities; peripheral node `get_menu_list()` unexpectedly reaches hub `success_response()`" }, + { + "source": "sync_lab_storage_seq_after_use()", + "target": "generate_uuid()", + "source_files": [ + "crud/sample_reception_lab_code.py", + "core/utils.py" + ], + "confidence": "INFERRED", + "relation": "calls", + "why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities; peripheral node `sync_lab_storage_seq_after_use()` unexpectedly reaches hub `generate_uuid()`" + }, { "source": "\u4fdd\u7559\u5339\u914d\u8282\u70b9\u53ca\u5176\u5168\u90e8\u4e0a\u7ea7\uff0c\u4f9b\u5173\u952e\u8bcd\u68c0\u7d22\u540e\u4ecd\u80fd\u6b63\u786e\u7ec4\u6811\u3002", "target": "SysDept", @@ -4949,17 +4959,6 @@ "confidence": "INFERRED", "relation": "uses", "why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities; peripheral node `\u7269\u54c1\u5355\u4f4d CRUD\uff08biz_item_unit\uff09` unexpectedly reaches hub `BizItemUnit`" - }, - { - "source": "\u5feb\u9012\u516c\u53f8 CRUD\uff08biz_express_company\uff09", - "target": "BizExpressCompany", - "source_files": [ - "crud/express_company.py", - "models/models.py" - ], - "confidence": "INFERRED", - "relation": "uses", - "why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities; peripheral node `\u5feb\u9012\u516c\u53f8 CRUD\uff08biz_express_company\uff09` unexpectedly reaches hub `BizExpressCompany`" } ] } \ No newline at end of file diff --git a/backend/graphify-out/.graphify_extract.json b/backend/graphify-out/.graphify_extract.json index 630b384d..bdfe8f41 100644 --- a/backend/graphify-out/.graphify_extract.json +++ b/backend/graphify-out/.graphify_extract.json @@ -32326,145 +32326,159 @@ "source_file": "services/oa_engine.py", "source_location": "L338" }, + { + "id": "services_oa_engine_instance_progress_summary", + "label": "_instance_progress_summary()", + "file_type": "code", + "source_file": "services/oa_engine.py", + "source_location": "L364" + }, + { + "id": "services_oa_engine_enrich_list_rows", + "label": "_enrich_list_rows()", + "file_type": "code", + "source_file": "services/oa_engine.py", + "source_location": "L405" + }, { "id": "services_oa_engine_user_name_map", "label": "_user_name_map()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L356" + "source_location": "L477" }, { "id": "services_oa_engine_list_templates", "label": "list_templates()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L364" + "source_location": "L485" }, { "id": "services_oa_engine_get_template_detail", "label": "get_template_detail()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L394" + "source_location": "L515" }, { "id": "services_oa_engine_role_name_map", "label": "_role_name_map()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L427" + "source_location": "L548" }, { "id": "services_oa_engine_assignee_meta", "label": "_assignee_meta()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L455" + "source_location": "L576" }, { "id": "services_oa_engine_preview_people", "label": "_preview_people()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L470" + "source_location": "L591" }, { "id": "services_oa_engine_walk_preview_nodes", "label": "_walk_preview_nodes()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L478" + "source_location": "L599" }, { "id": "services_oa_engine_preview_start_flow", "label": "preview_start_flow()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L604" + "source_location": "L725" }, { "id": "services_oa_engine_create_tasks_for_node", "label": "_create_tasks_for_node()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L654" + "source_location": "L775" }, { "id": "services_oa_engine_match_condition_group", "label": "_match_condition_group()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L723" + "source_location": "L844" }, { "id": "services_oa_engine_advance_from", "label": "advance_from()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L764" + "source_location": "L885" }, { "id": "services_oa_engine_start_instance", "label": "start_instance()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L834" + "source_location": "L955" }, { "id": "services_oa_engine_get_instance", "label": "_get_instance()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L938" + "source_location": "L1059" }, { "id": "services_oa_engine_get_instance_detail", "label": "get_instance_detail()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L949" + "source_location": "L1070" }, { "id": "services_oa_engine_list_tasks", "label": "list_tasks()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L1013" + "source_location": "L1134" }, { "id": "services_oa_engine_complete_task", "label": "complete_task()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L1063" + "source_location": "L1198" }, { "id": "services_oa_engine_add_sign", "label": "add_sign()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L1184" + "source_location": "L1319" }, { "id": "services_oa_engine_return_task", "label": "return_task()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L1300" + "source_location": "L1435" }, { "id": "services_oa_engine_resubmit_instance", "label": "resubmit_instance()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L1381" + "source_location": "L1516" }, { "id": "services_oa_engine_withdraw_instance", "label": "withdraw_instance()", "file_type": "code", "source_file": "services/oa_engine.py", - "source_location": "L1395" + "source_location": "L1530" }, { "id": "services_oa_engine_rationale_76", @@ -32495,39 +32509,39 @@ "source_location": "L203" }, { - "id": "services_oa_engine_rationale_613", + "id": "services_oa_engine_rationale_734", "label": "\u53d1\u8d77\u524d\u9884\u89c8\u5ba1\u6279\u94fe\uff08\u89e3\u6790\u5177\u4f53\u4eba\u5458\uff1b\u6761\u4ef6\u5206\u652f\u5c55\u5f00\u5c55\u793a\uff09\u3002", "file_type": "rationale", "source_file": "services/oa_engine.py", - "source_location": "L613" + "source_location": "L734" }, { - "id": "services_oa_engine_rationale_773", + "id": "services_oa_engine_rationale_894", "label": "\u4ece\u67d0\u8282\u70b9\u7684\u4e0b\u4e00\u8df3\u5f00\u59cb\u63a8\u8fdb\uff1bfrom_node \u4e3a None \u8868\u793a\u4ece start \u8fdb\u5165\u3002", "file_type": "rationale", "source_file": "services/oa_engine.py", - "source_location": "L773" + "source_location": "L894" }, { - "id": "services_oa_engine_rationale_1193", + "id": "services_oa_engine_rationale_1328", "label": "\u5f53\u524d\u5f85\u529e\u5904\u7406\u4eba\u52a0\u7b7e\uff1a\u4e3a\u540c\u8282\u70b9\u65b0\u589e\u5f85\u529e\u5ba1\u6279\u4eba\u3002", "file_type": "rationale", "source_file": "services/oa_engine.py", - "source_location": "L1193" + "source_location": "L1328" }, { - "id": "services_oa_engine_rationale_1308", + "id": "services_oa_engine_rationale_1443", "label": "\u5ba1\u6279\u4eba\u6253\u56de\uff1a\u672c\u5355\u7ec8\u6001 returned\uff1b\u518d\u529e\u987b\u590d\u5236\u8868\u5355\u5f00\u65b0\u5b9e\u4f8b\u3002", "file_type": "rationale", "source_file": "services/oa_engine.py", - "source_location": "L1308" + "source_location": "L1443" }, { - "id": "services_oa_engine_rationale_1390", + "id": "services_oa_engine_rationale_1525", "label": "\u5df2\u5e9f\u5f03\uff1a\u540c\u5b9e\u4f8b\u518d\u6b21\u63d0\u4ea4\u3002\u8bf7\u590d\u5236\u8868\u5355\u91cd\u65b0\u53d1\u8d77\u65b0\u5b9e\u4f8b\u3002", "file_type": "rationale", "source_file": "services/oa_engine.py", - "source_location": "L1390" + "source_location": "L1525" }, { "id": "services_workflow_callback_py", @@ -118667,29 +118681,47 @@ }, { "source": "services_oa_engine_py", - "target": "services_oa_engine_user_name_map", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "services/oa_engine.py", - "source_location": "L356", - "weight": 1.0 - }, - { - "source": "services_oa_engine_py", - "target": "services_oa_engine_list_templates", + "target": "services_oa_engine_instance_progress_summary", "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", "source_location": "L364", "weight": 1.0 }, + { + "source": "services_oa_engine_py", + "target": "services_oa_engine_enrich_list_rows", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "services/oa_engine.py", + "source_location": "L405", + "weight": 1.0 + }, + { + "source": "services_oa_engine_py", + "target": "services_oa_engine_user_name_map", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "services/oa_engine.py", + "source_location": "L477", + "weight": 1.0 + }, + { + "source": "services_oa_engine_py", + "target": "services_oa_engine_list_templates", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "services/oa_engine.py", + "source_location": "L485", + "weight": 1.0 + }, { "source": "services_oa_engine_py", "target": "services_oa_engine_get_template_detail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L394", + "source_location": "L515", "weight": 1.0 }, { @@ -118698,7 +118730,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L427", + "source_location": "L548", "weight": 1.0 }, { @@ -118707,7 +118739,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L455", + "source_location": "L576", "weight": 1.0 }, { @@ -118716,7 +118748,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L470", + "source_location": "L591", "weight": 1.0 }, { @@ -118725,7 +118757,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L478", + "source_location": "L599", "weight": 1.0 }, { @@ -118734,7 +118766,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L604", + "source_location": "L725", "weight": 1.0 }, { @@ -118743,7 +118775,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L654", + "source_location": "L775", "weight": 1.0 }, { @@ -118752,7 +118784,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L723", + "source_location": "L844", "weight": 1.0 }, { @@ -118761,7 +118793,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L764", + "source_location": "L885", "weight": 1.0 }, { @@ -118770,7 +118802,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L834", + "source_location": "L955", "weight": 1.0 }, { @@ -118779,7 +118811,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L938", + "source_location": "L1059", "weight": 1.0 }, { @@ -118788,7 +118820,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L949", + "source_location": "L1070", "weight": 1.0 }, { @@ -118797,7 +118829,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1013", + "source_location": "L1134", "weight": 1.0 }, { @@ -118806,7 +118838,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1063", + "source_location": "L1198", "weight": 1.0 }, { @@ -118815,7 +118847,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1184", + "source_location": "L1319", "weight": 1.0 }, { @@ -118824,7 +118856,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1300", + "source_location": "L1435", "weight": 1.0 }, { @@ -118833,7 +118865,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1381", + "source_location": "L1516", "weight": 1.0 }, { @@ -118842,7 +118874,7 @@ "relation": "contains", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1395", + "source_location": "L1530", "weight": 1.0 }, { @@ -118971,13 +119003,31 @@ "source_location": "L329", "weight": 1.0 }, + { + "source": "services_oa_engine_enrich_list_rows", + "target": "services_oa_engine_user_name_map", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "services/oa_engine.py", + "source_location": "L455", + "weight": 1.0 + }, + { + "source": "services_oa_engine_enrich_list_rows", + "target": "services_oa_engine_instance_progress_summary", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "services/oa_engine.py", + "source_location": "L464", + "weight": 1.0 + }, { "source": "services_oa_engine_list_templates", "target": "services_oa_engine_check_initiator_scope", "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L377", + "source_location": "L498", "weight": 1.0 }, { @@ -118986,7 +119036,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L399", + "source_location": "L520", "weight": 1.0 }, { @@ -118995,7 +119045,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L400", + "source_location": "L521", "weight": 1.0 }, { @@ -119004,7 +119054,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L412", + "source_location": "L533", "weight": 1.0 }, { @@ -119013,7 +119063,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L414", + "source_location": "L535", "weight": 1.0 }, { @@ -119022,7 +119072,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L459", + "source_location": "L580", "weight": 1.0 }, { @@ -119031,7 +119081,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L471", + "source_location": "L592", "weight": 1.0 }, { @@ -119040,7 +119090,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L491", + "source_location": "L612", "weight": 1.0 }, { @@ -119049,7 +119099,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L493", + "source_location": "L614", "weight": 1.0 }, { @@ -119058,7 +119108,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L564", + "source_location": "L685", "weight": 1.0 }, { @@ -119067,7 +119117,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L616", + "source_location": "L737", "weight": 1.0 }, { @@ -119076,7 +119126,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L617", + "source_location": "L738", "weight": 1.0 }, { @@ -119085,7 +119135,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L635", + "source_location": "L756", "weight": 1.0 }, { @@ -119094,7 +119144,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L641", + "source_location": "L762", "weight": 1.0 }, { @@ -119103,7 +119153,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L647", + "source_location": "L768", "weight": 1.0 }, { @@ -119112,7 +119162,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L664", + "source_location": "L785", "weight": 1.0 }, { @@ -119121,7 +119171,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L675", + "source_location": "L796", "weight": 1.0 }, { @@ -119130,7 +119180,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L687", + "source_location": "L808", "weight": 1.0 }, { @@ -119139,7 +119189,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L692", + "source_location": "L813", "weight": 1.0 }, { @@ -119148,7 +119198,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L774", + "source_location": "L895", "weight": 1.0 }, { @@ -119157,7 +119207,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L774", + "source_location": "L895", "weight": 1.0 }, { @@ -119166,7 +119216,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L790", + "source_location": "L911", "weight": 1.0 }, { @@ -119175,7 +119225,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L795", + "source_location": "L916", "weight": 1.0 }, { @@ -119184,7 +119234,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L809", + "source_location": "L930", "weight": 1.0 }, { @@ -119193,7 +119243,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L824", + "source_location": "L945", "weight": 1.0 }, { @@ -119202,7 +119252,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L851", + "source_location": "L972", "weight": 1.0 }, { @@ -119211,7 +119261,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L852", + "source_location": "L973", "weight": 1.0 }, { @@ -119220,7 +119270,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L857", + "source_location": "L978", "weight": 1.0 }, { @@ -119229,7 +119279,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L880", + "source_location": "L1001", "weight": 1.0 }, { @@ -119238,7 +119288,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L918", + "source_location": "L1039", "weight": 1.0 }, { @@ -119247,7 +119297,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L925", + "source_location": "L1046", "weight": 1.0 }, { @@ -119256,7 +119306,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L935", + "source_location": "L1056", "weight": 1.0 }, { @@ -119265,7 +119315,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L945", + "source_location": "L1066", "weight": 1.0 }, { @@ -119274,7 +119324,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L950", + "source_location": "L1071", "weight": 1.0 }, { @@ -119283,7 +119333,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L965", + "source_location": "L1086", "weight": 1.0 }, { @@ -119292,7 +119342,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L965", + "source_location": "L1086", "weight": 1.0 }, { @@ -119301,7 +119351,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L968", + "source_location": "L1089", "weight": 1.0 }, { @@ -119310,7 +119360,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L974", + "source_location": "L1095", "weight": 1.0 }, { @@ -119319,7 +119369,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L979", + "source_location": "L1100", "weight": 1.0 }, { @@ -119328,7 +119378,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L982", + "source_location": "L1103", "weight": 1.0 }, { @@ -119337,7 +119387,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L987", + "source_location": "L1108", "weight": 1.0 }, { @@ -119346,7 +119396,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1000", + "source_location": "L1121", "weight": 1.0 }, { @@ -119355,7 +119405,16 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1055", + "source_location": "L1176", + "weight": 1.0 + }, + { + "source": "services_oa_engine_list_tasks", + "target": "services_oa_engine_enrich_list_rows", + "relation": "calls", + "confidence": "EXTRACTED", + "source_file": "services/oa_engine.py", + "source_location": "L1177", "weight": 1.0 }, { @@ -119364,7 +119423,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1057", + "source_location": "L1179", "weight": 1.0 }, { @@ -119373,7 +119432,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1060", + "source_location": "L1182", "weight": 1.0 }, { @@ -119382,7 +119441,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1074", + "source_location": "L1209", "weight": 1.0 }, { @@ -119391,7 +119450,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1088", + "source_location": "L1223", "weight": 1.0 }, { @@ -119400,7 +119459,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1100", + "source_location": "L1235", "weight": 1.0 }, { @@ -119409,7 +119468,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1137", + "source_location": "L1272", "weight": 1.0 }, { @@ -119418,7 +119477,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1175", + "source_location": "L1310", "weight": 1.0 }, { @@ -119427,7 +119486,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1175", + "source_location": "L1310", "weight": 1.0 }, { @@ -119436,7 +119495,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1176", + "source_location": "L1311", "weight": 1.0 }, { @@ -119445,7 +119504,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1179", + "source_location": "L1314", "weight": 1.0 }, { @@ -119454,7 +119513,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1200", + "source_location": "L1335", "weight": 1.0 }, { @@ -119463,7 +119522,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1206", + "source_location": "L1341", "weight": 1.0 }, { @@ -119472,7 +119531,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1217", + "source_location": "L1352", "weight": 1.0 }, { @@ -119481,7 +119540,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1245", + "source_location": "L1380", "weight": 1.0 }, { @@ -119490,7 +119549,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1297", + "source_location": "L1432", "weight": 1.0 }, { @@ -119499,7 +119558,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1315", + "source_location": "L1450", "weight": 1.0 }, { @@ -119508,7 +119567,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1321", + "source_location": "L1456", "weight": 1.0 }, { @@ -119517,7 +119576,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1332", + "source_location": "L1467", "weight": 1.0 }, { @@ -119526,7 +119585,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1367", + "source_location": "L1502", "weight": 1.0 }, { @@ -119535,7 +119594,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1378", + "source_location": "L1513", "weight": 1.0 }, { @@ -119544,7 +119603,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1392", + "source_location": "L1527", "weight": 1.0 }, { @@ -119553,7 +119612,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1398", + "source_location": "L1533", "weight": 1.0 }, { @@ -119562,7 +119621,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1400", + "source_location": "L1535", "weight": 1.0 }, { @@ -119571,7 +119630,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1408", + "source_location": "L1543", "weight": 1.0 }, { @@ -119580,7 +119639,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1426", + "source_location": "L1561", "weight": 1.0 }, { @@ -119589,7 +119648,7 @@ "relation": "calls", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1434", + "source_location": "L1569", "weight": 1.0 }, { @@ -119629,48 +119688,48 @@ "weight": 1.0 }, { - "source": "services_oa_engine_rationale_613", + "source": "services_oa_engine_rationale_734", "target": "services_oa_engine_preview_start_flow", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L613", + "source_location": "L734", "weight": 1.0 }, { - "source": "services_oa_engine_rationale_773", + "source": "services_oa_engine_rationale_894", "target": "services_oa_engine_advance_from", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L773", + "source_location": "L894", "weight": 1.0 }, { - "source": "services_oa_engine_rationale_1193", + "source": "services_oa_engine_rationale_1328", "target": "services_oa_engine_add_sign", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1193", + "source_location": "L1328", "weight": 1.0 }, { - "source": "services_oa_engine_rationale_1308", + "source": "services_oa_engine_rationale_1443", "target": "services_oa_engine_return_task", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1308", + "source_location": "L1443", "weight": 1.0 }, { - "source": "services_oa_engine_rationale_1390", + "source": "services_oa_engine_rationale_1525", "target": "services_oa_engine_resubmit_instance", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "services/oa_engine.py", - "source_location": "L1390", + "source_location": "L1525", "weight": 1.0 }, { @@ -231814,7 +231873,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_613", + "source": "services_oa_engine_rationale_734", "target": "models_models_oaapp", "relation": "uses", "confidence": "INFERRED", @@ -231823,7 +231882,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_773", + "source": "services_oa_engine_rationale_894", "target": "models_models_oaapp", "relation": "uses", "confidence": "INFERRED", @@ -231832,7 +231891,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1193", + "source": "services_oa_engine_rationale_1328", "target": "models_models_oaapp", "relation": "uses", "confidence": "INFERRED", @@ -231841,7 +231900,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1308", + "source": "services_oa_engine_rationale_1443", "target": "models_models_oaapp", "relation": "uses", "confidence": "INFERRED", @@ -231850,7 +231909,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1390", + "source": "services_oa_engine_rationale_1525", "target": "models_models_oaapp", "relation": "uses", "confidence": "INFERRED", @@ -231904,7 +231963,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_613", + "source": "services_oa_engine_rationale_734", "target": "models_models_oaappversion", "relation": "uses", "confidence": "INFERRED", @@ -231913,7 +231972,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_773", + "source": "services_oa_engine_rationale_894", "target": "models_models_oaappversion", "relation": "uses", "confidence": "INFERRED", @@ -231922,7 +231981,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1193", + "source": "services_oa_engine_rationale_1328", "target": "models_models_oaappversion", "relation": "uses", "confidence": "INFERRED", @@ -231931,7 +231990,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1308", + "source": "services_oa_engine_rationale_1443", "target": "models_models_oaappversion", "relation": "uses", "confidence": "INFERRED", @@ -231940,7 +231999,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1390", + "source": "services_oa_engine_rationale_1525", "target": "models_models_oaappversion", "relation": "uses", "confidence": "INFERRED", @@ -231994,7 +232053,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_613", + "source": "services_oa_engine_rationale_734", "target": "models_models_oainstance", "relation": "uses", "confidence": "INFERRED", @@ -232003,7 +232062,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_773", + "source": "services_oa_engine_rationale_894", "target": "models_models_oainstance", "relation": "uses", "confidence": "INFERRED", @@ -232012,7 +232071,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1193", + "source": "services_oa_engine_rationale_1328", "target": "models_models_oainstance", "relation": "uses", "confidence": "INFERRED", @@ -232021,7 +232080,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1308", + "source": "services_oa_engine_rationale_1443", "target": "models_models_oainstance", "relation": "uses", "confidence": "INFERRED", @@ -232030,7 +232089,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1390", + "source": "services_oa_engine_rationale_1525", "target": "models_models_oainstance", "relation": "uses", "confidence": "INFERRED", @@ -232084,7 +232143,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_613", + "source": "services_oa_engine_rationale_734", "target": "models_models_oainstanceevent", "relation": "uses", "confidence": "INFERRED", @@ -232093,7 +232152,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_773", + "source": "services_oa_engine_rationale_894", "target": "models_models_oainstanceevent", "relation": "uses", "confidence": "INFERRED", @@ -232102,7 +232161,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1193", + "source": "services_oa_engine_rationale_1328", "target": "models_models_oainstanceevent", "relation": "uses", "confidence": "INFERRED", @@ -232111,7 +232170,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1308", + "source": "services_oa_engine_rationale_1443", "target": "models_models_oainstanceevent", "relation": "uses", "confidence": "INFERRED", @@ -232120,7 +232179,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1390", + "source": "services_oa_engine_rationale_1525", "target": "models_models_oainstanceevent", "relation": "uses", "confidence": "INFERRED", @@ -232174,7 +232233,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_613", + "source": "services_oa_engine_rationale_734", "target": "models_models_oarelation", "relation": "uses", "confidence": "INFERRED", @@ -232183,7 +232242,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_773", + "source": "services_oa_engine_rationale_894", "target": "models_models_oarelation", "relation": "uses", "confidence": "INFERRED", @@ -232192,7 +232251,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1193", + "source": "services_oa_engine_rationale_1328", "target": "models_models_oarelation", "relation": "uses", "confidence": "INFERRED", @@ -232201,7 +232260,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1308", + "source": "services_oa_engine_rationale_1443", "target": "models_models_oarelation", "relation": "uses", "confidence": "INFERRED", @@ -232210,7 +232269,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1390", + "source": "services_oa_engine_rationale_1525", "target": "models_models_oarelation", "relation": "uses", "confidence": "INFERRED", @@ -232264,7 +232323,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_613", + "source": "services_oa_engine_rationale_734", "target": "models_models_oarole", "relation": "uses", "confidence": "INFERRED", @@ -232273,7 +232332,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_773", + "source": "services_oa_engine_rationale_894", "target": "models_models_oarole", "relation": "uses", "confidence": "INFERRED", @@ -232282,7 +232341,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1193", + "source": "services_oa_engine_rationale_1328", "target": "models_models_oarole", "relation": "uses", "confidence": "INFERRED", @@ -232291,7 +232350,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1308", + "source": "services_oa_engine_rationale_1443", "target": "models_models_oarole", "relation": "uses", "confidence": "INFERRED", @@ -232300,7 +232359,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1390", + "source": "services_oa_engine_rationale_1525", "target": "models_models_oarole", "relation": "uses", "confidence": "INFERRED", @@ -232354,7 +232413,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_613", + "source": "services_oa_engine_rationale_734", "target": "models_models_oatask", "relation": "uses", "confidence": "INFERRED", @@ -232363,7 +232422,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_773", + "source": "services_oa_engine_rationale_894", "target": "models_models_oatask", "relation": "uses", "confidence": "INFERRED", @@ -232372,7 +232431,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1193", + "source": "services_oa_engine_rationale_1328", "target": "models_models_oatask", "relation": "uses", "confidence": "INFERRED", @@ -232381,7 +232440,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1308", + "source": "services_oa_engine_rationale_1443", "target": "models_models_oatask", "relation": "uses", "confidence": "INFERRED", @@ -232390,7 +232449,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1390", + "source": "services_oa_engine_rationale_1525", "target": "models_models_oatask", "relation": "uses", "confidence": "INFERRED", @@ -232444,7 +232503,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_613", + "source": "services_oa_engine_rationale_734", "target": "models_models_sysuser", "relation": "uses", "confidence": "INFERRED", @@ -232453,7 +232512,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_773", + "source": "services_oa_engine_rationale_894", "target": "models_models_sysuser", "relation": "uses", "confidence": "INFERRED", @@ -232462,7 +232521,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1193", + "source": "services_oa_engine_rationale_1328", "target": "models_models_sysuser", "relation": "uses", "confidence": "INFERRED", @@ -232471,7 +232530,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1308", + "source": "services_oa_engine_rationale_1443", "target": "models_models_sysuser", "relation": "uses", "confidence": "INFERRED", @@ -232480,7 +232539,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1390", + "source": "services_oa_engine_rationale_1525", "target": "models_models_sysuser", "relation": "uses", "confidence": "INFERRED", @@ -232534,7 +232593,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_613", + "source": "services_oa_engine_rationale_734", "target": "services_oa_assignee_assigneeresolveerror", "relation": "uses", "confidence": "INFERRED", @@ -232543,7 +232602,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_773", + "source": "services_oa_engine_rationale_894", "target": "services_oa_assignee_assigneeresolveerror", "relation": "uses", "confidence": "INFERRED", @@ -232552,7 +232611,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1193", + "source": "services_oa_engine_rationale_1328", "target": "services_oa_assignee_assigneeresolveerror", "relation": "uses", "confidence": "INFERRED", @@ -232561,7 +232620,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1308", + "source": "services_oa_engine_rationale_1443", "target": "services_oa_assignee_assigneeresolveerror", "relation": "uses", "confidence": "INFERRED", @@ -232570,7 +232629,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1390", + "source": "services_oa_engine_rationale_1525", "target": "services_oa_assignee_assigneeresolveerror", "relation": "uses", "confidence": "INFERRED", @@ -232624,7 +232683,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_613", + "source": "services_oa_engine_rationale_734", "target": "services_oa_formula_formulaerror", "relation": "uses", "confidence": "INFERRED", @@ -232633,7 +232692,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_773", + "source": "services_oa_engine_rationale_894", "target": "services_oa_formula_formulaerror", "relation": "uses", "confidence": "INFERRED", @@ -232642,7 +232701,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1193", + "source": "services_oa_engine_rationale_1328", "target": "services_oa_formula_formulaerror", "relation": "uses", "confidence": "INFERRED", @@ -232651,7 +232710,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1308", + "source": "services_oa_engine_rationale_1443", "target": "services_oa_formula_formulaerror", "relation": "uses", "confidence": "INFERRED", @@ -232660,7 +232719,7 @@ "weight": 0.8 }, { - "source": "services_oa_engine_rationale_1390", + "source": "services_oa_engine_rationale_1525", "target": "services_oa_formula_formulaerror", "relation": "uses", "confidence": "INFERRED", @@ -290865,6 +290924,36 @@ "source_location": "L307", "weight": 1.0 }, + { + "source": "services_oa_engine_instance_progress_summary", + "target": "crud_base_crudbase_get", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "services/oa_engine.py", + "source_location": "L387", + "weight": 1.0 + }, + { + "source": "services_oa_engine_enrich_list_rows", + "target": "crud_base_crudbase_get", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "services/oa_engine.py", + "source_location": "L459", + "weight": 1.0 + }, + { + "source": "services_oa_engine_enrich_list_rows", + "target": "crud_base_crudbase_update", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "services/oa_engine.py", + "source_location": "L472", + "weight": 1.0 + }, { "source": "services_oa_engine_user_name_map", "target": "str", @@ -290872,7 +290961,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L357", + "source_location": "L478", "weight": 1.0 }, { @@ -290882,7 +290971,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L373", + "source_location": "L494", "weight": 1.0 }, { @@ -290892,7 +290981,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L397", + "source_location": "L518", "weight": 1.0 }, { @@ -290902,7 +290991,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L401", + "source_location": "L522", "weight": 1.0 }, { @@ -290912,7 +291001,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L429", + "source_location": "L550", "weight": 1.0 }, { @@ -290922,7 +291011,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L456", + "source_location": "L577", "weight": 1.0 }, { @@ -290932,7 +291021,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L474", + "source_location": "L595", "weight": 1.0 }, { @@ -290942,7 +291031,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L496", + "source_location": "L617", "weight": 1.0 }, { @@ -290952,7 +291041,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L569", + "source_location": "L690", "weight": 1.0 }, { @@ -290962,7 +291051,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L574", + "source_location": "L695", "weight": 1.0 }, { @@ -290972,7 +291061,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L614", + "source_location": "L735", "weight": 1.0 }, { @@ -290982,7 +291071,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L618", + "source_location": "L739", "weight": 1.0 }, { @@ -290992,7 +291081,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L636", + "source_location": "L757", "weight": 1.0 }, { @@ -291002,7 +291091,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L674", + "source_location": "L795", "weight": 1.0 }, { @@ -291012,7 +291101,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L677", + "source_location": "L798", "weight": 1.0 }, { @@ -291022,7 +291111,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L687", + "source_location": "L808", "weight": 1.0 }, { @@ -291032,7 +291121,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L695", + "source_location": "L816", "weight": 1.0 }, { @@ -291042,7 +291131,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L696", + "source_location": "L817", "weight": 1.0 }, { @@ -291052,7 +291141,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L728", + "source_location": "L849", "weight": 1.0 }, { @@ -291062,7 +291151,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L757", + "source_location": "L878", "weight": 1.0 }, { @@ -291072,7 +291161,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L757", + "source_location": "L878", "weight": 1.0 }, { @@ -291082,7 +291171,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L849", + "source_location": "L970", "weight": 1.0 }, { @@ -291092,7 +291181,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L853", + "source_location": "L974", "weight": 1.0 }, { @@ -291102,7 +291191,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L860", + "source_location": "L981", "weight": 1.0 }, { @@ -291112,7 +291201,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L873", + "source_location": "L994", "weight": 1.0 }, { @@ -291122,7 +291211,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L874", + "source_location": "L995", "weight": 1.0 }, { @@ -291132,7 +291221,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L901", + "source_location": "L1022", "weight": 1.0 }, { @@ -291142,7 +291231,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L951", + "source_location": "L1072", "weight": 1.0 }, { @@ -291152,29 +291241,29 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L980", - "weight": 1.0 - }, - { - "source": "services_oa_engine_get_instance_detail", - "target": "crud_base_crudbase_update", - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "services/oa_engine.py", - "source_location": "L999", - "weight": 1.0 - }, - { - "source": "services_oa_engine_complete_task", - "target": "crud_base_crudbase_get", - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "services/oa_engine.py", "source_location": "L1101", "weight": 1.0 }, + { + "source": "services_oa_engine_get_instance_detail", + "target": "crud_base_crudbase_update", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "services/oa_engine.py", + "source_location": "L1120", + "weight": 1.0 + }, + { + "source": "services_oa_engine_complete_task", + "target": "crud_base_crudbase_get", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "services/oa_engine.py", + "source_location": "L1236", + "weight": 1.0 + }, { "source": "services_oa_engine_complete_task", "target": "crud_base_crudbase_count", @@ -291182,7 +291271,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L1142", + "source_location": "L1277", "weight": 1.0 }, { @@ -291192,7 +291281,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L1218", + "source_location": "L1353", "weight": 1.0 }, { @@ -291202,7 +291291,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L1263", + "source_location": "L1398", "weight": 1.0 }, { @@ -291212,7 +291301,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L1264", + "source_location": "L1399", "weight": 1.0 }, { @@ -291222,7 +291311,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L1333", + "source_location": "L1468", "weight": 1.0 }, { @@ -291232,7 +291321,7 @@ "confidence": "INFERRED", "confidence_score": 0.8, "source_file": "services/oa_engine.py", - "source_location": "L1409", + "source_location": "L1544", "weight": 1.0 }, { diff --git a/backend/graphify-out/GRAPH_REPORT.md b/backend/graphify-out/GRAPH_REPORT.md index 91de6e6a..3fdec832 100644 --- a/backend/graphify-out/GRAPH_REPORT.md +++ b/backend/graphify-out/GRAPH_REPORT.md @@ -1,11 +1,11 @@ # Graph Report - app (2026-07-15) ## Corpus Check -- Large corpus: 225 files · ~277,357 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only. +- Large corpus: 225 files · ~277,712 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only. ## Summary -- 4715 nodes · 25954 edges · 39 communities detected -- Extraction: 31% EXTRACTED · 69% INFERRED · 0% AMBIGUOUS · INFERRED: 17782 edges (avg confidence: 0.6) +- 4717 nodes · 25962 edges · 38 communities detected +- Extraction: 31% EXTRACTED · 69% INFERRED · 0% AMBIGUOUS · INFERRED: 17785 edges (avg confidence: 0.6) - Token cost: 0 input · 0 output ## Community Hubs (Navigation) @@ -41,13 +41,12 @@ - [[_COMMUNITY_Community 29|Community 29]] - [[_COMMUNITY_Community 30|Community 30]] - [[_COMMUNITY_Community 31|Community 31]] -- [[_COMMUNITY_Community 32|Community 32]] +- [[_COMMUNITY_Community 34|Community 34]] - [[_COMMUNITY_Community 35|Community 35]] - [[_COMMUNITY_Community 36|Community 36]] - [[_COMMUNITY_Community 37|Community 37]] - [[_COMMUNITY_Community 38|Community 38]] - [[_COMMUNITY_Community 39|Community 39]] -- [[_COMMUNITY_Community 40|Community 40]] ## God Nodes (most connected - your core abstractions) 1. `success_response()` - 707 edges @@ -66,26 +65,26 @@ core/api_request_log_middleware.py → models/models.py - `get_menu_list()` --calls--> `success_response()` [INFERRED] api/menu.py → core/response.py +- `sync_lab_storage_seq_after_use()` --calls--> `generate_uuid()` [INFERRED] + crud/sample_reception_lab_code.py → core/utils.py - `保留匹配节点及其全部上级,供关键词检索后仍能正确组树。` --uses--> `SysDept` [INFERRED] crud/dept.py → models/models.py - `物品单位 CRUD(biz_item_unit)` --uses--> `BizItemUnit` [INFERRED] crud/item_unit.py → models/models.py -- `快递公司 CRUD(biz_express_company)` --uses--> `BizExpressCompany` [INFERRED] - crud/express_company.py → models/models.py ## Communities ### Community 0 - "Community 0" Cohesion: 0.01 -Nodes (874): attachment_download_url(), create_dept(), create_dict_data(), create_dict_type(), create_express_company(), create_item_unit(), create_menu(), create_post() (+866 more) +Nodes (895): attachment_download_url(), create_dept(), create_dict_data(), create_dict_type(), create_express_company(), create_item_unit(), create_menu(), create_post() (+887 more) ### Community 1 - "Community 1" Cohesion: 0.01 -Nodes (629): _ensure_customer_for_mother(), generate_uuid(), 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() (+621 more) +Nodes (651): generate_uuid(), allocate_next_biz_no(), _format_biz_no(), _prefix_for(), 业务协议号自动生成:XBCC / JZCC + YYYYMMDD + 6 位序号, 原子分配下一个业务协议号。 须在 create 事务内调用;使用 MySQL LAST_INSERT_ID 保证并发安全。, create_cell_product(), create_cell_sample_type() (+643 more) ### Community 2 - "Community 2" Cohesion: 0.01 -Nodes (622): AttachmentDownloadUrlBody, DeptCreateBody, DeptUpdateBody, DictDataCreateBody, DictDataUpdateBody, DictTypeCreateBody, DictTypeUpdateBody, ExpressCompanyCreateBody (+614 more) +Nodes (617): AttachmentDownloadUrlBody, DeptCreateBody, DeptUpdateBody, DictDataCreateBody, DictDataUpdateBody, DictTypeCreateBody, DictTypeUpdateBody, ExpressCompanyCreateBody (+609 more) ### Community 3 - "Community 3" Cohesion: 0.06 @@ -93,55 +92,55 @@ Nodes (536): 细胞存储 — 采集协议单 / 审核 / 财务确认 / 分期 ### Community 4 - "Community 4" Cohesion: 0.01 -Nodes (287): _normalize_date_bound(), _persist_protocol_sub_resources(), _body_to_payload(), _get_current_user_id(), get_production_reception_by_sample_code(), get_production_reception_detail(), _get_tenant_no(), post_production_reception() (+279 more) +Nodes (335): _normalize_date_bound(), _persist_protocol_sub_resources(), list_ethnics_for_select(), apply_data_scope(), _get_child_dept_ids(), get_user_dept_id(), _resolve_user_role_scopes(), format_date() (+327 more) ### Community 5 - "Community 5" Cohesion: 0.02 -Nodes (241): eq_unicode(), like_unicode(), MySQL 字符串比较/模糊匹配时统一排序规则,避免 Illegal mix of collations。, 跨表字符串等值比较(JOIN / WHERE)时统一为 utf8mb4_unicode_ci。, 将列显式设为 utf8mb4_unicode_ci。, unicode_ci(), ApiRequestLogCRUD, delete() (+233 more) +Nodes (194): eq_unicode(), like_unicode(), MySQL 字符串比较/模糊匹配时统一排序规则,避免 Illegal mix of collations。, 跨表字符串等值比较(JOIN / WHERE)时统一为 utf8mb4_unicode_ci。, 将列显式设为 utf8mb4_unicode_ci。, unicode_ci(), batch_review(), _dec() (+186 more) ### Community 6 - "Community 6" Cohesion: 0.02 -Nodes (105): get_designer_data(), _error_json(), 数据库异常:返回 JSON 并保留 CORS 头,避免浏览器只报跨域错误, 未捕获异常:统一 JSON 500,确保跨域场景下仍有 Access-Control-Allow-Origin, sqlalchemy_exception_handler(), unhandled_exception_handler(), BaseHTTPMiddleware, ApiCryptoError (+97 more) +Nodes (106): get_designer_data(), _error_json(), 数据库异常:返回 JSON 并保留 CORS 头,避免浏览器只报跨域错误, 未捕获异常:统一 JSON 500,确保跨域场景下仍有 Access-Control-Allow-Origin, sqlalchemy_exception_handler(), unhandled_exception_handler(), BaseHTTPMiddleware, ApiCryptoError (+98 more) ### Community 7 - "Community 7" Cohesion: 0.03 -Nodes (156): _batch_line_to_dict(), cancel_check(), _check_header_to_dict(), complete_check(), create_check(), _get_check(), get_check_detail(), _line_counts() (+148 more) +Nodes (143): get_next_cell_product_code(), build_void_type_label_map(), format_protocol_status_label(), resolve_void_type_label(), _ancestor_link_from_cell_product_input(), _ancestor_sample_chain_link(), _apply_cell_product_status_change(), _build_ancestor_chain() (+135 more) ### Community 8 - "Community 8" Cohesion: 0.03 -Nodes (145): list_ethnics_for_select(), apply_data_scope(), get_user_dept_id(), _resolve_user_role_scopes(), _build_tree(), _cascade_soft_delete(), _collect_with_ancestors(), get_dept() (+137 more) +Nodes (135): auto_create_payment(), get_protocol_nos_used_in_protocols(), _fmt_dt(), get_handover_by_schedule(), get_outbound_handover(), get_outbound_handover_view(), _handover_row_to_dict(), _handover_view_dict() (+127 more) ### Community 9 - "Community 9" -Cohesion: 0.03 -Nodes (146): get_next_cell_product_code(), build_void_type_label_map(), format_protocol_status_label(), resolve_void_type_label(), _ancestor_link_from_cell_product_input(), _ancestor_sample_chain_link(), _apply_cell_product_status_change(), _build_ancestor_chain() (+138 more) +Cohesion: 0.04 +Nodes (111): _batch_line_to_dict(), cancel_check(), _check_header_to_dict(), complete_check(), _get_check(), get_check_detail(), _line_counts(), list_checks() (+103 more) ### Community 10 - "Community 10" Cohesion: 0.05 -Nodes (103): AccessLogCreateBody, AccessLogUpdateBody, CleanRoomCreateBody, CleanRoomUpdateBody, ExhibitionAppointmentCreateBody, ExhibitionAppointmentUpdateBody, list_storage_slot_stats(), OccupancyCreateBody (+95 more) +Nodes (89): _app_to_dict(), create_app(), _create_version(), delete_app(), delete_group(), delete_role(), _dumps(), ensure_presets() (+81 more) ### Community 11 - "Community 11" -Cohesion: 0.05 -Nodes (73): _avatar_url_field(), _build_current_user_payload(), _build_user_info_payload(), get_current_user_profile(), _jwt_user_payload(), logout(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/zkxw.sql 基线), Web 端登录用 RSA 公钥(PKCS#1 v1.5,与 JSEncrypt 一致) (+65 more) +Cohesion: 0.04 +Nodes (98): _body_to_payload(), _get_current_user_id(), get_production_reception_by_sample_code(), get_production_reception_detail(), _get_tenant_no(), post_production_reception(), put_production_reception(), _resolve_reception_id() (+90 more) ### Community 12 - "Community 12" Cohesion: 0.05 -Nodes (77): api_save_application(), auto_generate_schedules(), complete_application(), create_application(), create_basic_experiment_sale_schedules(), create_infusion_plan(), create_schedule(), _create_schedule_products() (+69 more) +Nodes (103): AccessLogCreateBody, AccessLogUpdateBody, CleanRoomCreateBody, CleanRoomUpdateBody, ExhibitionAppointmentCreateBody, ExhibitionAppointmentUpdateBody, list_storage_slot_stats(), OccupancyCreateBody (+95 more) ### Community 13 - "Community 13" -Cohesion: 0.07 -Nodes (57): _find_latest_published(), list_oa_role_user_ids(), _active_user_id(), AssigneeResolveError, OA 审批人解析(不读 sys_role), 按节点 approverConfig 解析处理人。 assigneeType: users | oa_roles | dept_leader | dir, resolve_assignees(), resolve_dept_leader() (+49 more) +Cohesion: 0.05 +Nodes (73): _avatar_url_field(), _build_current_user_payload(), _build_user_info_payload(), get_current_user_profile(), _jwt_user_payload(), logout(), 公共接口(Web 登录、刷新 Token、登出;用户模型对齐 docs/sql/zkxw.sql 基线), Web 端登录用 RSA 公钥(PKCS#1 v1.5,与 JSEncrypt 一致) (+65 more) ### Community 14 - "Community 14" Cohesion: 0.45 Nodes (69): BatchStockInBody, BatchStockInItem, BatchStockOutBody, BatchStockOutItem, ConsumableCreateBody, ConsumablePackCreateBody, ConsumablePackUpdateBody, ConsumableUpdateBody (+61 more) ### Community 15 - "Community 15" -Cohesion: 0.07 -Nodes (52): map_payments_by_schedule_ids(), _fmt_dt(), get_handover_by_schedule(), get_outbound_handover(), get_outbound_handover_view(), _handover_row_to_dict(), _handover_view_dict(), _parse_handover_time() (+44 more) +Cohesion: 0.11 +Nodes (39): _amount_for_row(), _batch_map(), deduct_for_task(), _deduct_task_usage_legacy_batch(), _display_remark(), _fmt_date_val(), _linked_qc_task_no_map(), list_linked_task_usages() (+31 more) ### Community 16 - "Community 16" 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) +Nodes (10): 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, 小程序调起支付的二次签名参数(与公众号 JSAPI 规则一致), 统一下单 (V2 API) Args: out_trade_no: 商户订单号 tot, 生成签名 V3 (SHA256 with RSA), wechat_pay() (+2 more) ### Community 17 - "Community 17" Cohesion: 0.16 @@ -152,122 +151,118 @@ 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 19 - "Community 19" -Cohesion: 0.23 -Nodes (17): _apply_qc_status_filter(), _base_query(), _derive_qc_conclusion(), _ensure_notification(), _eq_ci(), _fetch_completed_tasks(), _fmt_dt(), generate_sms_content() (+9 more) - -### Community 20 - "Community 20" -Cohesion: 0.27 -Nodes (12): create_equipment(), _dec(), equipment_code_exists(), equipment_is_referenced(), get_equipment(), list_equipments(), _norm_status(), _parse_date() (+4 more) - -### 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 22 - "Community 22" +### Community 20 - "Community 20" Cohesion: 0.24 Nodes (11): deduct_for_step(), _display_remark(), list_stock_logs(), _parse_receiver_purpose_from_remark(), 试剂变动记录 CRUD(biz_reagent_stock_log), 撤销步骤此前 step_save 扣减,便于重新填报。, 扣减试剂库存并生成变动记录。调用方控制事务,本函数不 commit。, _resolve_receiver_purpose() (+3 more) -### Community 23 - "Community 23" +### Community 21 - "Community 21" Cohesion: 0.24 Nodes (11): deduct_for_step(), _display_remark(), list_stock_logs(), _parse_receiver_purpose_from_remark(), 耗材变动记录 CRUD(biz_consumable_stock_log), 撤销步骤此前 step_save 扣减,便于重新填报。, 扣减耗材库存并生成变动记录。调用方控制事务,本函数不 commit。, _resolve_receiver_purpose() (+3 more) -### Community 24 - "Community 24" -Cohesion: 0.47 -Nodes (8): count_fillable_fields(), _extract_rules(), _node_type(), validate_control_types(), validate_draft_for_publish(), validate_flow_tree(), validate_oa_roles_referenced(), _walk_form_rules() +### Community 22 - "Community 22" +Cohesion: 0.31 +Nodes (10): _build_tree(), _cascade_soft_delete(), _collect_with_ancestors(), get_dept(), list_depts(), list_depts_tree(), 保留匹配节点及其全部上级,供关键词检索后仍能正确组树。, _row_to_dict() (+2 more) -### Community 25 - "Community 25" +### Community 23 - "Community 23" +Cohesion: 0.33 +Nodes (8): _build_tree(), _cascade_soft_delete(), get_menu(), list_menus(), list_menus_tree(), _row_to_dict(), soft_delete_menu(), update_menu() + +### Community 24 - "Community 24" Cohesion: 0.29 Nodes (2): BaseModel, SoftDeleteModel -### Community 26 - "Community 26" +### Community 25 - "Community 25" Cohesion: 0.38 Nodes (6): derive_legacy_status_from_three(), derive_three_status_from_legacy(), 阶段A兼容:从旧 status 推导三字段。 约束:旧 status 本身混合了支付/配送/订单生命周期,因此只能尽力推断; 若业务侧已有更精确, 阶段A兼容:从三字段反推旧 status(用于旧前端/旧筛选参数兼容)。, ThreeStatus, _to_decimal() -### Community 27 - "Community 27" +### Community 26 - "Community 26" Cohesion: 0.5 Nodes (3): BaseSettings, Config, Settings -### Community 28 - "Community 28" +### Community 27 - "Community 27" Cohesion: 0.5 Nodes (2): _auto_fill_create_dept_id(), ORM before_insert 钩子:当 create_dept_id 为空时,自动从请求上下文填充当前用户部门 ID -### Community 29 - "Community 29" +### Community 28 - "Community 28" Cohesion: 0.67 Nodes (2): get_menu_list(), 运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,5 个一级菜单分组) -### Community 30 - "Community 30" +### Community 29 - "Community 29" Cohesion: 1.0 Nodes (1): 质检物料金额查看授权:专用角色与菜单权限常量。 -### Community 31 - "Community 31" +### Community 30 - "Community 30" Cohesion: 1.0 Nodes (1): 请求级别的用户上下文变量 通过 contextvars 在请求处理链路中传递当前用户信息, 供 SQLAlchemy 事件监听器等底层机制使用,避免逐层手动传 -### Community 32 - "Community 32" +### Community 31 - "Community 31" Cohesion: 1.0 Nodes (1): API 路由包(骨架:公共鉴权 + 静态菜单 + 运营端占位) -### Community 35 - "Community 35" +### Community 34 - "Community 34" Cohesion: 1.0 Nodes (1): 发送订单状态通知 Args: openid: 用户openid ord -### Community 36 - "Community 36" +### Community 35 - "Community 35" Cohesion: 1.0 Nodes (1): 发送支付成功通知 Args: openid: 用户openid ord -### Community 37 - "Community 37" +### Community 36 - "Community 36" Cohesion: 1.0 Nodes (1): 发送配送通知 Args: openid: 配送员openid task -### Community 38 - "Community 38" +### Community 37 - "Community 37" Cohesion: 1.0 Nodes (1): 发送配送时效预警 Args: openid: 配送员openid ta -### Community 39 - "Community 39" +### Community 38 - "Community 38" Cohesion: 1.0 Nodes (1): 发送退款结果通知 Args: openid: 用户openid ord -### Community 40 - "Community 40" +### Community 39 - "Community 39" Cohesion: 1.0 Nodes (1): 发送催单通知给配送员 Args: deliver_openid: 配送员openid ## Knowledge Gaps - **134 isolated node(s):** `刷新会话 TTL(refreshToken 续期;已登录用户每次 API 校验通过后滑动续期)`, `写入 refreshToken(用于 one-time 使用/吊销)`, `根据 token 获取当前用户(包含 Redis 会话校验;会话滑动续期)`, `登录凭据 RSA 解密(与前端 JSEncrypt PKCS#1 v1.5 兼容)。`, `加载 RSA 密钥对:优先环境变量,否则使用内置固定默认密钥。` (+129 more) These have ≤1 connection - possible missing edges or undocumented components. -- **Thin community `Community 25`** (8 nodes): `BaseModel`, `.to_dict()`, `get_active()`, `base.py`, `SoftDeleteModel`, `.restore()`, `.soft_delete()`, `__tablename__()` +- **Thin community `Community 24`** (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 28`** (4 nodes): `_auto_fill_create_dept_id()`, `get_db()`, `database.py`, `ORM before_insert 钩子:当 create_dept_id 为空时,自动从请求上下文填充当前用户部门 ID` +- **Thin community `Community 27`** (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 29`** (3 nodes): `get_menu_list()`, `menu.py`, `运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,5 个一级菜单分组)` +- **Thin community `Community 28`** (3 nodes): `get_menu_list()`, `menu.py`, `运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,5 个一级菜单分组)` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 30`** (2 nodes): `qc_material_amount_auth_constants.py`, `质检物料金额查看授权:专用角色与菜单权限常量。` +- **Thin community `Community 29`** (2 nodes): `qc_material_amount_auth_constants.py`, `质检物料金额查看授权:专用角色与菜单权限常量。` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 31`** (2 nodes): `context.py`, `请求级别的用户上下文变量 通过 contextvars 在请求处理链路中传递当前用户信息, 供 SQLAlchemy 事件监听器等底层机制使用,避免逐层手动传` +- **Thin community `Community 30`** (2 nodes): `context.py`, `请求级别的用户上下文变量 通过 contextvars 在请求处理链路中传递当前用户信息, 供 SQLAlchemy 事件监听器等底层机制使用,避免逐层手动传` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 32`** (2 nodes): `__init__.py`, `API 路由包(骨架:公共鉴权 + 静态菜单 + 运营端占位)` +- **Thin community `Community 31`** (2 nodes): `__init__.py`, `API 路由包(骨架:公共鉴权 + 静态菜单 + 运营端占位)` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 35`** (1 nodes): `发送订单状态通知 Args: openid: 用户openid ord` +- **Thin community `Community 34`** (1 nodes): `发送订单状态通知 Args: openid: 用户openid ord` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 36`** (1 nodes): `发送支付成功通知 Args: openid: 用户openid ord` +- **Thin community `Community 35`** (1 nodes): `发送支付成功通知 Args: openid: 用户openid ord` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 37`** (1 nodes): `发送配送通知 Args: openid: 配送员openid task` +- **Thin community `Community 36`** (1 nodes): `发送配送通知 Args: openid: 配送员openid task` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 38`** (1 nodes): `发送配送时效预警 Args: openid: 配送员openid ta` +- **Thin community `Community 37`** (1 nodes): `发送配送时效预警 Args: openid: 配送员openid ta` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 39`** (1 nodes): `发送退款结果通知 Args: openid: 用户openid ord` +- **Thin community `Community 38`** (1 nodes): `发送退款结果通知 Args: openid: 用户openid ord` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 40`** (1 nodes): `发送催单通知给配送员 Args: deliver_openid: 配送员openid` +- **Thin community `Community 39`** (1 nodes): `发送催单通知给配送员 Args: deliver_openid: 配送员openid` Too small to be a meaningful cluster - may be noise or needs more connections extracted. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ -- **Why does `SysUser` connect `Community 2` to `Community 0`, `Community 1`, `Community 3`, `Community 5`, `Community 6`, `Community 7`, `Community 8`, `Community 9`, `Community 10`, `Community 11`, `Community 13`, `Community 14`, `Community 15`, `Community 17`, `Community 22`, `Community 23`?** - _High betweenness centrality (0.126) - this node is a cross-community bridge._ -- **Why does `success_response()` connect `Community 0` to `Community 2`, `Community 4`, `Community 6`, `Community 8`, `Community 9`, `Community 10`, `Community 11`, `Community 12`, `Community 29`?** +- **Why does `SysUser` connect `Community 2` to `Community 0`, `Community 1`, `Community 3`, `Community 4`, `Community 6`, `Community 8`, `Community 9`, `Community 10`, `Community 12`, `Community 13`, `Community 14`, `Community 15`, `Community 17`, `Community 20`, `Community 21`?** + _High betweenness centrality (0.127) - this node is a cross-community bridge._ +- **Why does `success_response()` connect `Community 0` to `Community 2`, `Community 4`, `Community 6`, `Community 7`, `Community 11`, `Community 12`, `Community 13`, `Community 28`?** _High betweenness centrality (0.051) - this node is a cross-community bridge._ -- **Why does `generate_uuid()` connect `Community 1` to `Community 0`, `Community 2`, `Community 4`, `Community 5`, `Community 6`, `Community 7`, `Community 8`, `Community 9`, `Community 10`, `Community 11`, `Community 13`, `Community 15`, `Community 17`, `Community 18`, `Community 19`, `Community 20`, `Community 22`, `Community 23`?** - _High betweenness centrality (0.029) - this node is a cross-community bridge._ +- **Why does `generate_uuid()` connect `Community 1` to `Community 0`, `Community 4`, `Community 5`, `Community 6`, `Community 7`, `Community 8`, `Community 9`, `Community 10`, `Community 11`, `Community 12`, `Community 13`, `Community 15`, `Community 17`, `Community 18`, `Community 20`, `Community 21`?** + _High betweenness centrality (0.027) - this node is a cross-community bridge._ - **Are the 776 inferred relationships involving `str` (e.g. with `unhandled_exception_handler()` and `get_current_user_by_token()`) actually correct?** _`str` has 776 INFERRED edges - model-reasoned connections that need verification._ - **Are the 706 inferred relationships involving `success_response()` (e.g. with `list_storage_release_reviews()` and `get_storage_release_review_detail()`) actually correct?** diff --git a/backend/graphify-out/graph.html b/backend/graphify-out/graph.html index 0eab1ee2..8218532e 100644 --- a/backend/graphify-out/graph.html +++ b/backend/graphify-out/graph.html @@ -57,12 +57,12 @@
-
4715 nodes · 25954 edges · 45 communities
+
4717 nodes · 25962 edges · 44 communities
+ + diff --git a/docs/mockups/oa-approval-apps-card-demo.html b/docs/mockups/oa-approval-apps-card-demo.html new file mode 100644 index 00000000..544366f4 --- /dev/null +++ b/docs/mockups/oa-approval-apps-card-demo.html @@ -0,0 +1,638 @@ + + + + + + 审批管理 · 钉钉式卡片 Demo(Fresh Mint) + + + +
+
+
+ 审批管理 · 卡片布局 Demo + 图标:打开「新增」弹窗即随机一个默认并预填;用户不改则按该默认保存 iconUrl +
+ Fresh Mint · 非列表 +
+ +
+ 用户上传 · 实图封面(如「人事审批」「用章申请」) + 系统默认 · 打开新增弹窗时预填随机预设;不改则原样保存 +
+ +
+ +
+ +
+ +
+
+ 没有找到合适的审批单? + 创建审批表单 +
+
+ + +
+
+ +
+ +
+ +
+ + + + diff --git a/docs/mockups/oa-approval-dingtalk-screens-demo.html b/docs/mockups/oa-approval-dingtalk-screens-demo.html new file mode 100644 index 00000000..80c37784 --- /dev/null +++ b/docs/mockups/oa-approval-dingtalk-screens-demo.html @@ -0,0 +1,654 @@ + + + + + + OA 审批 · 前端界面规划 Demo(Fresh Mint) + + + +
+ +
+
+

界面规划总览

+ Fresh Mint · 仿钉钉交互 +
+
+ + +
+
+ 产品前端规划:侧栏 7 个菜单入口 + 配置 4 步设计器 + 1 个详情页(无独立菜单)= 共 12 个主要界面视图。 + 下方可点卡片跳转各 Demo 屏(线框级示意,非像素级还原)。 +
+
+

配置侧 · 4 个入口 / 视图

+
+
01审批管理应用列表,新增/编辑进入设计器
+
02工作流角色自定义角色 + 预置总经理/董事长
+
03–06四步设计器基础 → 表单 → 流程 → 高级
+
+
+
+

办理侧 · 6 个入口 / 视图

+
+
07发起审批模板宫格 → 填单提交
+
08待处理我的审批待办列表
+
09已处理我已办过的任务
+
10我发起的我提交的申请
+
11抄送我的知会只读
+
12审批详情表单+进度+操作(无菜单)
+
+
+
+ + +
+
+

审批管理

+

管理系统内所有审批应用(模板)。点「新建」或「设计」进入四步配置。

+
+ 已选 0 项 + + +
+ + + + + + + + + + + + + + +
应用名称分组状态更新时间操作
请假申请人事已发布2026-07-14设计 · 停用
用章申请行政草稿2026-07-13设计 · 发布
+
+
+ + +
+
+

工作流角色

+

独立于系统菜单角色。预置「总经理 / 董事长」不可删,只维护成员;另可自定义如「财务审批」。

+
+ +
+ + + + + + + +
名称编码类型成员数操作
总经理GM预置1维护成员
董事长CHAIRMAN预置1维护成员
财务审批FINANCE自定义3编辑 · 成员 · 删除
+
+
+ + +
+
+
+
+
① 基础设置
+
② 表单设计
+
③ 流程设计
+
④ 高级设置
+
+
+ + +
+
+ +
+

基础设置

+
+ + + + + + + +
+  
+ +
+  
+
+
+ + + + + + +
+
+ + +
+
+

发起审批

+

按分组展示模板 → 打开填单(Schema 渲染,含附件)→ 提交。

+

人事

+
+
📋
请假申请
+
📝
加班申请
+
+

行政

+
+
🔏
用章申请
+
+
+
+ + +
+
+

待处理

+

当前用户待审批任务。点进详情可同意/拒绝/加签。

+ + + + + + +
标题发起人类型到达时间
张三的请假申请张三请假07-14 10:20处理
李四的用章申请李四用章07-14 09:01处理
+
+
+ + +
+
+

已处理

+

我已审批过的任务,详情只读。

+ + + + + +
标题结论处理时间
王五的请假已同意07-13 18:00
+
+
+
+
+

我发起的

+

我提交的申请;按高级设置可撤销进行中的单。

+ + + + + +
标题状态发起时间
我的请假申请审批中07-14 11:00撤销 · 详情
+
+
+
+
+

抄送我的

+

知会类任务,只读查看。

+ + + + + +
标题发起人抄送时间
赵六的用章申请赵六07-12 15:30
+
+
+ + +
+
+

审批详情

+

无独立侧栏菜单,从列表进入。表单回显 + 进度时间轴 + 操作区。

+
+
+
请假类型
年假
+
日期
2026-07-20 ~ 2026-07-22
+
事由
回家办事
+
附件
行程单.pdf(预览 / 下载)
+
+ + + +
+
+
+ 审批进度 +
+
发起人 · 张三
07-14 10:00 已提交
+
部门负责人 · 赵六
待处理(部门负责人)
+
总经理
未到达
+
+
+
+
+
+ +
+
+
+ + + diff --git a/docs/mockups/oa-approval-form-designer-demo.html b/docs/mockups/oa-approval-form-designer-demo.html new file mode 100644 index 00000000..8676e558 --- /dev/null +++ b/docs/mockups/oa-approval-form-designer-demo.html @@ -0,0 +1,591 @@ + + + + + + 表单设计 · 三栏布局 Demo(Fresh Mint) + + + +
+ + +
+ +
+ + +
+
+ +
+ + + + +
+ +

拖拽左侧控件到中间画布;顶部可切换 PC / 手机预览。选中控件后在右侧配置属性。

+ +
+ + + + + + + +
+
+
+ + + + + + +
+ +
+
+
+
+ +
请选择 ▾
+
+
+ +
2026-07-20
+
+
+ +
请输入
+
+
拖拽左侧控件到此处
+
+
+
+ + + +
+
+ + + + diff --git a/docs/mockups/oa-approval-start-flow-preview-demo.html b/docs/mockups/oa-approval-start-flow-preview-demo.html new file mode 100644 index 00000000..7dfe328a --- /dev/null +++ b/docs/mockups/oa-approval-start-flow-preview-demo.html @@ -0,0 +1,614 @@ + + + + + + 发起审批 · 表单底部审批流预览 Demo(Fresh Mint) + + + +
+
+
+ 发起审批 · 方案 B(紧凑卡片) + 解析到具体人名;节点卡片缩小以适配弹窗滚动区 +
+ Fresh Mint · Demo +
+ +
+ + + +
+ +
+ +
+ +
+ 文件路径:docs/mockups/oa-approval-start-flow-preview-demo.html
+ 落地建议:在 oa-approval/start/index.vue 弹窗内、表单下方增加只读流程预览;自选审批人可内嵌到对应节点,替代现在顶部独立字段。 + 用上方三个按钮切换 A / B / C 方案对比。 +
+
+ + + + diff --git a/docs/sql/migrate-donation-infectious-disease-report.sql b/docs/sql/migrate-donation-infectious-disease-report.sql deleted file mode 100644 index 242f063d..00000000 --- a/docs/sql/migrate-donation-infectious-disease-report.sql +++ /dev/null @@ -1,5 +0,0 @@ --- 科研捐赠单:传染病检测报告附件字段 --- 2026-07-13 - -ALTER TABLE `biz_research_donation` - ADD COLUMN `infectious_disease_report_urls` text COLLATE utf8mb4_unicode_ci COMMENT '传染病检测报告附件URL(逗号分隔)' AFTER `attachment_urls`; diff --git a/docs/sql/migrate-estimated-duration-min-to-h.sql b/docs/sql/migrate-estimated-duration-min-to-h.sql deleted file mode 100644 index 23335084..00000000 --- a/docs/sql/migrate-estimated-duration-min-to-h.sql +++ /dev/null @@ -1,279 +0,0 @@ --- 预估耗时单位:分钟 → 小时 --- 适用表:biz_process、biz_process_route_step、biz_production_task_step --- 执行前请先备份,并用下方预检语句确认数据格式。 --- --- 生产预检样例(2026-06):biz_production_task_step 存在 '6h'(5 条), --- 属「已是小时、仅去单位后缀」,不可 ÷60。 --- --- 迁移规则: --- 1) 纯数字(如 30、480) → ÷60,视为原分钟值 --- 2) 带 h/小时(如 6h、2.5 小时) → 去掉单位,数值不变 --- 3) 带 min/分钟(如 30min) → 去掉单位后 ÷60 --- 4) 其它格式 → 不自动处理,需人工核对 - --- ---------- 预检:迁移前查看当前值(只读,可直接执行)---------- --- 注意:biz_production_task_step 与其它两表 collation 可能不一致,UNION 时需显式 COLLATE - --- A. 三表汇总:各值、条数、迁移动作、迁移后预览(小时) -SELECT - src_table, - estimated_duration, - row_cnt, - CASE - WHEN estimated_duration REGEXP '^[0-9]+(\\.[0-9]+)?$' THEN '会换算(÷60)' COLLATE utf8mb4_unicode_ci - WHEN LOWER(TRIM(estimated_duration)) REGEXP '^[0-9]+(\\.[0-9]+)?\\s*(h|小时)$' THEN '规范化(去h)' COLLATE utf8mb4_unicode_ci - WHEN LOWER(TRIM(estimated_duration)) REGEXP '^[0-9]+(\\.[0-9]+)?\\s*(min|分钟)$' THEN '会换算(去min÷60)' COLLATE utf8mb4_unicode_ci - ELSE '跳过(需人工)' COLLATE utf8mb4_unicode_ci - END AS migrate_action, - CASE - WHEN estimated_duration REGEXP '^[0-9]+(\\.[0-9]+)?$' THEN TRIM( - TRAILING '.' - FROM TRIM( - TRAILING '0' - FROM CAST(CAST(estimated_duration AS DECIMAL(12, 4)) / 60 AS CHAR) - ) - ) - WHEN LOWER(TRIM(estimated_duration)) REGEXP '^[0-9]+(\\.[0-9]+)?\\s*(h|小时)$' THEN TRIM( - TRAILING '.' - FROM TRIM( - TRAILING '0' - FROM CAST( - CAST( - TRIM( - REPLACE(REPLACE(LOWER(TRIM(estimated_duration)), '小时', ''), 'h', '') - ) AS DECIMAL(12, 4) - ) AS CHAR - ) - ) - ) - WHEN LOWER(TRIM(estimated_duration)) REGEXP '^[0-9]+(\\.[0-9]+)?\\s*(min|分钟)$' THEN TRIM( - TRAILING '.' - FROM TRIM( - TRAILING '0' - FROM CAST( - CAST( - TRIM( - REPLACE(REPLACE(LOWER(TRIM(estimated_duration)), '分钟', ''), 'min', '') - ) AS DECIMAL(12, 4) - ) / 60 AS CHAR - ) - ) - ) - ELSE NULL - END AS after_migration_h -FROM ( - SELECT 'biz_process' COLLATE utf8mb4_unicode_ci AS src_table, - estimated_duration COLLATE utf8mb4_unicode_ci AS estimated_duration, - COUNT(*) AS row_cnt - FROM biz_process - WHERE del_flag = 0 AND estimated_duration IS NOT NULL AND estimated_duration != '' - GROUP BY estimated_duration - UNION ALL - SELECT 'biz_process_route_step' COLLATE utf8mb4_unicode_ci, - estimated_duration COLLATE utf8mb4_unicode_ci, - COUNT(*) - FROM biz_process_route_step - WHERE del_flag = 0 AND estimated_duration IS NOT NULL AND estimated_duration != '' - GROUP BY estimated_duration - UNION ALL - SELECT 'biz_production_task_step' COLLATE utf8mb4_unicode_ci, - estimated_duration COLLATE utf8mb4_unicode_ci, - COUNT(*) - FROM biz_production_task_step - WHERE del_flag = 0 AND estimated_duration IS NOT NULL AND estimated_duration != '' - GROUP BY estimated_duration -) t -ORDER BY src_table, row_cnt DESC, estimated_duration; - --- B. 明细:带工序代码/名称,便于逐条核对 -SELECT 'biz_process' COLLATE utf8mb4_unicode_ci AS src_table, - id COLLATE utf8mb4_unicode_ci AS id, - process_code COLLATE utf8mb4_unicode_ci AS process_code, - process_name COLLATE utf8mb4_unicode_ci AS process_name, - estimated_duration COLLATE utf8mb4_unicode_ci AS estimated_duration -FROM biz_process -WHERE del_flag = 0 AND estimated_duration IS NOT NULL AND estimated_duration != '' -UNION ALL -SELECT 'biz_process_route_step' COLLATE utf8mb4_unicode_ci, - id COLLATE utf8mb4_unicode_ci, - process_code COLLATE utf8mb4_unicode_ci, - process_name COLLATE utf8mb4_unicode_ci, - estimated_duration COLLATE utf8mb4_unicode_ci -FROM biz_process_route_step -WHERE del_flag = 0 AND estimated_duration IS NOT NULL AND estimated_duration != '' -UNION ALL -SELECT 'biz_production_task_step' COLLATE utf8mb4_unicode_ci, - id COLLATE utf8mb4_unicode_ci, - process_code COLLATE utf8mb4_unicode_ci, - process_name COLLATE utf8mb4_unicode_ci, - estimated_duration COLLATE utf8mb4_unicode_ci -FROM biz_production_task_step -WHERE del_flag = 0 AND estimated_duration IS NOT NULL AND estimated_duration != '' -ORDER BY src_table, process_code, id; - --- ---------- 迁移(确认预检结果后再执行下方 UPDATE)---------- --- 每张表按 ①纯数字÷60 → ②去min÷60 → ③去h 顺序执行 - --- biz_process -UPDATE `biz_process` -SET `estimated_duration` = TRIM( - TRAILING '.' - FROM TRIM( - TRAILING '0' - FROM CAST(CAST(`estimated_duration` AS DECIMAL(12, 4)) / 60 AS CHAR) - ) -) -WHERE `del_flag` = 0 - AND `estimated_duration` IS NOT NULL - AND `estimated_duration` != '' - AND `estimated_duration` REGEXP '^[0-9]+(\\.[0-9]+)?$'; - -UPDATE `biz_process` -SET `estimated_duration` = TRIM( - TRAILING '.' - FROM TRIM( - TRAILING '0' - FROM CAST( - CAST( - TRIM( - REPLACE(REPLACE(LOWER(TRIM(`estimated_duration`)), '分钟', ''), 'min', '') - ) AS DECIMAL(12, 4) - ) / 60 AS CHAR - ) - ) -) -WHERE `del_flag` = 0 - AND `estimated_duration` IS NOT NULL - AND `estimated_duration` != '' - AND LOWER(TRIM(`estimated_duration`)) REGEXP '^[0-9]+(\\.[0-9]+)?\\s*(min|分钟)$'; - -UPDATE `biz_process` -SET `estimated_duration` = TRIM( - TRAILING '.' - FROM TRIM( - TRAILING '0' - FROM CAST( - CAST( - TRIM( - REPLACE(REPLACE(LOWER(TRIM(`estimated_duration`)), '小时', ''), 'h', '') - ) AS DECIMAL(12, 4) - ) AS CHAR - ) - ) -) -WHERE `del_flag` = 0 - AND `estimated_duration` IS NOT NULL - AND `estimated_duration` != '' - AND LOWER(TRIM(`estimated_duration`)) REGEXP '^[0-9]+(\\.[0-9]+)?\\s*(h|小时)$'; - --- biz_process_route_step -UPDATE `biz_process_route_step` -SET `estimated_duration` = TRIM( - TRAILING '.' - FROM TRIM( - TRAILING '0' - FROM CAST(CAST(`estimated_duration` AS DECIMAL(12, 4)) / 60 AS CHAR) - ) -) -WHERE `del_flag` = 0 - AND `estimated_duration` IS NOT NULL - AND `estimated_duration` != '' - AND `estimated_duration` REGEXP '^[0-9]+(\\.[0-9]+)?$'; - -UPDATE `biz_process_route_step` -SET `estimated_duration` = TRIM( - TRAILING '.' - FROM TRIM( - TRAILING '0' - FROM CAST( - CAST( - TRIM( - REPLACE(REPLACE(LOWER(TRIM(`estimated_duration`)), '分钟', ''), 'min', '') - ) AS DECIMAL(12, 4) - ) / 60 AS CHAR - ) - ) -) -WHERE `del_flag` = 0 - AND `estimated_duration` IS NOT NULL - AND `estimated_duration` != '' - AND LOWER(TRIM(`estimated_duration`)) REGEXP '^[0-9]+(\\.[0-9]+)?\\s*(min|分钟)$'; - -UPDATE `biz_process_route_step` -SET `estimated_duration` = TRIM( - TRAILING '.' - FROM TRIM( - TRAILING '0' - FROM CAST( - CAST( - TRIM( - REPLACE(REPLACE(LOWER(TRIM(`estimated_duration`)), '小时', ''), 'h', '') - ) AS DECIMAL(12, 4) - ) AS CHAR - ) - ) -) -WHERE `del_flag` = 0 - AND `estimated_duration` IS NOT NULL - AND `estimated_duration` != '' - AND LOWER(TRIM(`estimated_duration`)) REGEXP '^[0-9]+(\\.[0-9]+)?\\s*(h|小时)$'; - --- biz_production_task_step(生产环境存在 6h 等值,走第 3 步「去h」) -UPDATE `biz_production_task_step` -SET `estimated_duration` = TRIM( - TRAILING '.' - FROM TRIM( - TRAILING '0' - FROM CAST(CAST(`estimated_duration` AS DECIMAL(12, 4)) / 60 AS CHAR) - ) -) -WHERE `del_flag` = 0 - AND `estimated_duration` IS NOT NULL - AND `estimated_duration` != '' - AND `estimated_duration` REGEXP '^[0-9]+(\\.[0-9]+)?$'; - -UPDATE `biz_production_task_step` -SET `estimated_duration` = TRIM( - TRAILING '.' - FROM TRIM( - TRAILING '0' - FROM CAST( - CAST( - TRIM( - REPLACE(REPLACE(LOWER(TRIM(`estimated_duration`)), '分钟', ''), 'min', '') - ) AS DECIMAL(12, 4) - ) / 60 AS CHAR - ) - ) -) -WHERE `del_flag` = 0 - AND `estimated_duration` IS NOT NULL - AND `estimated_duration` != '' - AND LOWER(TRIM(`estimated_duration`)) REGEXP '^[0-9]+(\\.[0-9]+)?\\s*(min|分钟)$'; - -UPDATE `biz_production_task_step` -SET `estimated_duration` = TRIM( - TRAILING '.' - FROM TRIM( - TRAILING '0' - FROM CAST( - CAST( - TRIM( - REPLACE(REPLACE(LOWER(TRIM(`estimated_duration`)), '小时', ''), 'h', '') - ) AS DECIMAL(12, 4) - ) AS CHAR - ) - ) -) -WHERE `del_flag` = 0 - AND `estimated_duration` IS NOT NULL - AND `estimated_duration` != '' - AND LOWER(TRIM(`estimated_duration`)) REGEXP '^[0-9]+(\\.[0-9]+)?\\s*(h|小时)$'; - --- 列注释同步(可选,与语义一致) -ALTER TABLE `biz_process` - MODIFY COLUMN `estimated_duration` varchar(100) DEFAULT NULL COMMENT '预估耗时(小时)'; -ALTER TABLE `biz_process_route_step` - MODIFY COLUMN `estimated_duration` varchar(100) DEFAULT NULL COMMENT '预估耗时(小时)'; -ALTER TABLE `biz_production_task_step` - MODIFY COLUMN `estimated_duration` varchar(100) DEFAULT NULL COMMENT '预估耗时(小时)'; diff --git a/docs/sql/migrate-material-usage-operator-name.sql b/docs/sql/migrate-material-usage-operator-name.sql deleted file mode 100644 index 1198da20..00000000 --- a/docs/sql/migrate-material-usage-operator-name.sql +++ /dev/null @@ -1,5 +0,0 @@ --- 市场物料变动记录:入库/出库/废弃经办人 --- 2026-07-01 - -ALTER TABLE `biz_material_usage` - ADD COLUMN `operator_name` varchar(100) DEFAULT NULL COMMENT '经办人姓名' AFTER `receiver`; diff --git a/docs/sql/migrate-protocol-consent-health-survey.sql b/docs/sql/migrate-protocol-consent-health-survey.sql deleted file mode 100644 index 8ab1f7a5..00000000 --- a/docs/sql/migrate-protocol-consent-health-survey.sql +++ /dev/null @@ -1,6 +0,0 @@ --- 采集协议单:知情同意书、孕妇健康调查表附件字段 --- 2026-07-13 - -ALTER TABLE `biz_collection_protocol` - ADD COLUMN `consent_form_urls` varchar(4000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '知情同意书附件URL(逗号分隔)' AFTER `protocol_attachments`, - ADD COLUMN `health_survey_form_urls` varchar(4000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '孕妇健康调查表附件URL(逗号分隔)' AFTER `consent_form_urls`; diff --git a/docs/sql/migrate-protocol-void-type.sql b/docs/sql/migrate-protocol-void-type.sql deleted file mode 100644 index 33435371..00000000 --- a/docs/sql/migrate-protocol-void-type.sql +++ /dev/null @@ -1,29 +0,0 @@ --- 协议作废类型(采集协议单 / 捐赠协议单) --- 2026-07-01 - -ALTER TABLE `biz_collection_protocol` - ADD COLUMN `void_type` varchar(32) DEFAULT NULL COMMENT '协议作废类型(字典 xyzflx)' AFTER `void_desc`; - -ALTER TABLE `biz_research_donation` - ADD COLUMN `void_type` varchar(32) DEFAULT NULL COMMENT '作废类型(字典 xyzflx)' AFTER `void_desc`; - -INSERT INTO `sys_dict_type` ( - `id`, `dict_name`, `dict_type`, `tenant_no`, `order_num`, `remark`, - `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag` -) VALUES ( - 'TDP000000000000000000000000000096', '协议作废类型', 'xyzflx', 'zkxw', 0, NULL, - NULL, '', NOW(), NULL, NOW(), 0 -); - -INSERT INTO `sys_dict_data` ( - `id`, `dict_label`, `dict_value`, `dict_type`, `tenant_no`, `order_num`, `remark`, - `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag` -) VALUES -( - 'DDP000000000000000000000000000201', '客户毁存', 'khhc', 'xyzflx', 'zkxw', 1, NULL, - NULL, '', NOW(), NULL, NOW(), 0 -), -( - 'DDP000000000000000000000000000202', '检测不合格', 'jcbhg', 'xyzflx', 'zkxw', 2, NULL, - NULL, '', NOW(), NULL, NOW(), 0 -); diff --git a/docs/sql/migrate-qc-material-amount-auth.sql b/docs/sql/migrate-qc-material-amount-auth.sql deleted file mode 100644 index 228df0d9..00000000 --- a/docs/sql/migrate-qc-material-amount-auth.sql +++ /dev/null @@ -1,82 +0,0 @@ --- 质检物料金额查看授权:专用角色 + viewAmount 按钮菜单 + 授权管理页 --- 2026-07-13 - --- 1. 按钮权限(F,visible=0,仅用于权限解析) -INSERT INTO `sys_menu` - (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) -VALUES - ('95100000000000000000000000000002', '查看质检物料金额', '70000000000000000000000000000009', 'F', '', NULL, 'biz:qcMaterial:viewAmount', 1, '0', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0), - ('95100000000000000000000000000003', '查看我的物料领用金额', '92000000000000000000000000000001', 'F', '', NULL, 'biz:myQcMaterialUsage:viewAmount', 1, '0', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0) -ON DUPLICATE KEY UPDATE - `menu_name` = VALUES(`menu_name`), - `parent_id` = VALUES(`parent_id`), - `menu_type` = VALUES(`menu_type`), - `perms` = VALUES(`perms`), - `visible` = VALUES(`visible`), - `status` = VALUES(`status`), - `del_flag` = 0; - --- 2. 授权管理页(C,挂在质检基础信息下) -INSERT INTO `sys_menu` - (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) -VALUES - ('95100000000000000000000000000001', '质检物料金额查看授权', 'QCB00000000000000000000000000001', 'C', 'qc-material-amount-auth', '/quality-inspection/qc-material-amount-auth/index', 'biz:qcMaterialAmountAuth:list', 1, '1', '1', 'zkxw', 10, NULL, NULL, '', NOW(), NULL, NOW(), 0) -ON DUPLICATE KEY UPDATE - `menu_name` = VALUES(`menu_name`), - `parent_id` = VALUES(`parent_id`), - `menu_type` = VALUES(`menu_type`), - `path` = VALUES(`path`), - `component` = VALUES(`component`), - `perms` = VALUES(`perms`), - `visible` = VALUES(`visible`), - `status` = VALUES(`status`), - `order_num` = VALUES(`order_num`), - `del_flag` = 0; - --- 3. 专用角色 -INSERT INTO `sys_role` - (`id`, `role_name`, `data_scope`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) -VALUES - ('ROLE000000000000000000000000000011', '质检物料金额查看', '1', '1', 'zkxw', 0, '可查看/编辑质检物料库与我的物料领用记录中的单价与金额', NULL, '', NOW(), NULL, NOW(), 0) -ON DUPLICATE KEY UPDATE - `role_name` = VALUES(`role_name`), - `status` = VALUES(`status`), - `remark` = VALUES(`remark`), - `del_flag` = 0; - --- 4. 角色 ↔ 按钮权限 -INSERT INTO `sys_role_menu` - (`id`, `role_id`, `menu_id`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) -VALUES - ('RM000000000000000000000000000011', 'ROLE000000000000000000000000000011', '95100000000000000000000000000002', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0), - ('RM000000000000000000000000000012', 'ROLE000000000000000000000000000011', '95100000000000000000000000000003', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0) -ON DUPLICATE KEY UPDATE - `del_flag` = 0; - --- 5. 已拥有「质检物料库」菜单的角色,自动获得授权管理页 -INSERT INTO `sys_role_menu` - (`id`, `role_id`, `menu_id`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) -SELECT - CONCAT('RMAA', SUBSTRING(MD5(CONCAT(rm.role_id, '95100000000000000000000000000001')), 1, 28)), - rm.role_id, - '95100000000000000000000000000001', - 'zkxw', - 0, - NULL, - NULL, - '', - NOW(), - NULL, - NOW(), - 0 -FROM `sys_role_menu` rm -WHERE rm.menu_id = '70000000000000000000000000000009' - AND rm.del_flag = 0 - AND rm.tenant_no = 'zkxw' - AND NOT EXISTS ( - SELECT 1 - FROM `sys_role_menu` x - WHERE x.role_id = rm.role_id - AND x.menu_id = '95100000000000000000000000000001' - AND x.del_flag = 0 - ); diff --git a/docs/sql/migrate-special-sample-mark.sql b/docs/sql/migrate-special-sample-mark.sql deleted file mode 100644 index eee1620a..00000000 --- a/docs/sql/migrate-special-sample-mark.sql +++ /dev/null @@ -1,10 +0,0 @@ --- 样本特殊标记与特殊说明 --- 2026-07-01 - -ALTER TABLE `biz_protocol_sample` - ADD COLUMN `is_special` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否特殊样本:0否 1是' AFTER `storage_expire_date`, - ADD COLUMN `special_remark` varchar(256) DEFAULT NULL COMMENT '特殊说明' AFTER `is_special`; - -ALTER TABLE `biz_research_donation_sample` - ADD COLUMN `is_special` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否特殊样本:0否 1是' AFTER `storage_expire_date`, - ADD COLUMN `special_remark` varchar(256) DEFAULT NULL COMMENT '特殊说明' AFTER `is_special`; diff --git a/docs/sql/patch_2026-07-14_oa_approval.sql b/docs/sql/patch_2026-07-14_oa_approval.sql new file mode 100644 index 00000000..bc9e4312 --- /dev/null +++ b/docs/sql/patch_2026-07-14_oa_approval.sql @@ -0,0 +1,196 @@ +-- OA 审批(钉钉交互)增量脚本 — 2026-07-14 +-- 执行前请备份;可重复执行时注意 IGNORE 语义(部分语句非幂等) + +-- --------------------------------------------------------------------------- +-- 1. 组织字段:直属主管 / 部门负责人用户 ID +-- --------------------------------------------------------------------------- +ALTER TABLE sys_user + ADD COLUMN supervisor_user_id VARCHAR(64) NULL COMMENT '直属主管用户ID' AFTER dept_id; + +ALTER TABLE sys_dept + ADD COLUMN leader_user_id VARCHAR(64) NULL COMMENT '部门负责人用户ID' AFTER status; + +-- --------------------------------------------------------------------------- +-- 2. OA 审批核心表 +-- --------------------------------------------------------------------------- + +CREATE TABLE IF NOT EXISTS oa_app_group ( + id VARCHAR(64) NOT NULL COMMENT '主键ID', + group_name VARCHAR(100) NOT NULL COMMENT '分组名称', + tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', + order_num INT NULL COMMENT '排序号', + remark VARCHAR(512) NULL COMMENT '备注', + create_by VARCHAR(64) NULL COMMENT '创建人id', + create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', + create_time DATETIME NOT NULL COMMENT '创建时间', + update_by VARCHAR(64) NULL COMMENT '更新人id', + update_time DATETIME NOT NULL COMMENT '更新时间', + del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (id), + KEY idx_oa_app_group_tenant (tenant_no, del_flag) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA审批分组'; + +CREATE TABLE IF NOT EXISTS oa_app ( + id VARCHAR(64) NOT NULL COMMENT '主键ID', + group_id VARCHAR(64) NULL COMMENT '分组ID', + app_name VARCHAR(50) NOT NULL COMMENT '表单/应用名称', + icon_url VARCHAR(512) NULL COMMENT '图标', + description VARCHAR(100) NULL COMMENT '表单说明', + initiator_scope VARCHAR(32) NOT NULL DEFAULT 'all' COMMENT '发起范围 all/users', + initiator_user_ids TEXT NULL COMMENT '指定发起人JSON数组', + admin_scope VARCHAR(32) NOT NULL DEFAULT 'all_oa_admin' COMMENT '管理员范围', + admin_user_ids TEXT NULL COMMENT '指定管理员JSON数组', + status CHAR(1) NOT NULL DEFAULT '1' COMMENT '1启用 0停用', + tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', + order_num INT NULL COMMENT '排序号', + remark VARCHAR(512) NULL COMMENT '备注', + create_by VARCHAR(64) NULL COMMENT '创建人id', + create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', + create_time DATETIME NOT NULL COMMENT '创建时间', + update_by VARCHAR(64) NULL COMMENT '更新人id', + update_time DATETIME NOT NULL COMMENT '更新时间', + del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (id), + KEY idx_oa_app_tenant (tenant_no, del_flag), + KEY idx_oa_app_group (group_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA审批应用'; + +CREATE TABLE IF NOT EXISTS oa_app_version ( + id VARCHAR(64) NOT NULL COMMENT '主键ID', + app_id VARCHAR(64) NOT NULL COMMENT '应用ID', + version_no INT NOT NULL COMMENT '版本号', + status VARCHAR(16) NOT NULL DEFAULT 'draft' COMMENT 'draft/published', + is_latest_published CHAR(1) NOT NULL DEFAULT '0' COMMENT '是否最新已发布', + form_schema_json LONGTEXT NULL COMMENT '表单Schema JSON', + flow_tree_json LONGTEXT NULL COMMENT '流程树 JSON', + advanced_settings_json TEXT NULL COMMENT '高级设置 JSON', + tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', + order_num INT NULL COMMENT '排序号', + remark VARCHAR(512) NULL COMMENT '备注', + create_by VARCHAR(64) NULL COMMENT '创建人id', + create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', + create_time DATETIME NOT NULL COMMENT '创建时间', + update_by VARCHAR(64) NULL COMMENT '更新人id', + update_time DATETIME NOT NULL COMMENT '更新时间', + del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (id), + KEY idx_oa_app_ver_app (app_id, status, del_flag) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA审批应用版本'; + +CREATE TABLE IF NOT EXISTS oa_role ( + id VARCHAR(64) NOT NULL COMMENT '主键ID', + role_name VARCHAR(100) NOT NULL COMMENT '角色名称', + role_code VARCHAR(64) NOT NULL COMMENT '角色编码', + role_kind VARCHAR(16) NOT NULL DEFAULT 'custom' COMMENT 'custom/preset', + status CHAR(1) NOT NULL DEFAULT '1' COMMENT '1启用 0停用', + tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', + order_num INT NULL COMMENT '排序号', + remark VARCHAR(512) NULL COMMENT '备注', + create_by VARCHAR(64) NULL COMMENT '创建人id', + create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', + create_time DATETIME NOT NULL COMMENT '创建时间', + update_by VARCHAR(64) NULL COMMENT '更新人id', + update_time DATETIME NOT NULL COMMENT '更新时间', + del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (id), + UNIQUE KEY uk_oa_role_tenant_code (tenant_no, role_code, del_flag), + KEY idx_oa_role_tenant (tenant_no, del_flag) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA工作流角色'; + +CREATE TABLE IF NOT EXISTS oa_role_user ( + id VARCHAR(64) NOT NULL COMMENT '主键ID', + oa_role_id VARCHAR(64) NOT NULL COMMENT '工作流角色ID', + user_id VARCHAR(64) NOT NULL COMMENT '用户ID', + tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', + order_num INT NULL COMMENT '排序号', + remark VARCHAR(512) NULL COMMENT '备注', + create_by VARCHAR(64) NULL COMMENT '创建人id', + create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', + create_time DATETIME NOT NULL COMMENT '创建时间', + update_by VARCHAR(64) NULL COMMENT '更新人id', + update_time DATETIME NOT NULL COMMENT '更新时间', + del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (id), + KEY idx_oa_role_user_role (oa_role_id, del_flag), + KEY idx_oa_role_user_user (user_id, del_flag) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA工作流角色成员'; + +CREATE TABLE IF NOT EXISTS oa_instance ( + id VARCHAR(64) NOT NULL COMMENT '主键ID', + app_id VARCHAR(64) NOT NULL COMMENT '应用ID', + app_version_id VARCHAR(64) NOT NULL COMMENT '锁定的已发布版本ID', + title VARCHAR(200) NULL COMMENT '实例标题', + initiator_user_id VARCHAR(64) NOT NULL COMMENT '发起人', + initiator_dept_id VARCHAR(64) NULL COMMENT '发起人部门', + form_data_json LONGTEXT NULL COMMENT '表单数据 JSON', + status VARCHAR(32) NOT NULL DEFAULT 'running' COMMENT 'running/completed/rejected/cancelled', + tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', + order_num INT NULL COMMENT '排序号', + remark VARCHAR(512) NULL COMMENT '备注', + create_by VARCHAR(64) NULL COMMENT '创建人id', + create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', + create_time DATETIME NOT NULL COMMENT '创建时间', + update_by VARCHAR(64) NULL COMMENT '更新人id', + update_time DATETIME NOT NULL COMMENT '更新时间', + del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (id), + KEY idx_oa_inst_tenant (tenant_no, del_flag), + KEY idx_oa_inst_initiator (initiator_user_id, status), + KEY idx_oa_inst_app (app_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA审批实例'; + +CREATE TABLE IF NOT EXISTS oa_task ( + id VARCHAR(64) NOT NULL COMMENT '主键ID', + instance_id VARCHAR(64) NOT NULL COMMENT '实例ID', + node_key VARCHAR(64) NULL COMMENT '节点key', + node_name VARCHAR(200) NULL COMMENT '节点名称', + task_type VARCHAR(16) NOT NULL DEFAULT 'approval' COMMENT 'approval/cc', + assignee_user_id VARCHAR(64) NOT NULL COMMENT '处理人', + status VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT 'pending/approved/rejected/done', + comment_text VARCHAR(512) NULL COMMENT '意见', + resolve_source VARCHAR(64) NULL COMMENT '解析来源如 supervisor_fallback_dept_leader', + sign_mode VARCHAR(8) NULL COMMENT 'or/and', + tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', + order_num INT NULL COMMENT '排序号', + remark VARCHAR(512) NULL COMMENT '备注', + create_by VARCHAR(64) NULL COMMENT '创建人id', + create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', + create_time DATETIME NOT NULL COMMENT '创建时间', + update_by VARCHAR(64) NULL COMMENT '更新人id', + update_time DATETIME NOT NULL COMMENT '更新时间', + del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (id), + KEY idx_oa_task_assignee (assignee_user_id, status, del_flag), + KEY idx_oa_task_instance (instance_id, del_flag) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA审批任务'; + +CREATE TABLE IF NOT EXISTS oa_relation ( + id VARCHAR(64) NOT NULL COMMENT '主键ID', + from_instance_id VARCHAR(64) NOT NULL COMMENT '本实例ID', + to_instance_id VARCHAR(64) NOT NULL COMMENT '被关联实例ID', + field_key VARCHAR(64) NULL COMMENT '表单字段key', + tenant_no VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号', + order_num INT NULL COMMENT '排序号', + remark VARCHAR(512) NULL COMMENT '备注', + create_by VARCHAR(64) NULL COMMENT '创建人id', + create_dept_id VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', + create_time DATETIME NOT NULL COMMENT '创建时间', + update_by VARCHAR(64) NULL COMMENT '更新人id', + update_time DATETIME NOT NULL COMMENT '更新时间', + del_flag SMALLINT NOT NULL DEFAULT 0 COMMENT '删除标记', + PRIMARY KEY (id), + KEY idx_oa_rel_from (from_instance_id, del_flag) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OA关联审批'; + +-- 预置工作流角色(按租户手工或应用启动 ensure;此处示例 zkxw) +-- INSERT 由后端 ensure_presets 幂等完成,避免 UUID 硬编码冲突 + +-- --------------------------------------------------------------------------- +-- 3. 菜单说明 +-- --------------------------------------------------------------------------- +-- 侧栏路由已写入: +-- - web-admin/src/router/modules/sqxp.ts +-- - backend/app/api/menu.py(STATIC_MENU_TREE) +-- 角色权限用的 sys_menu 注册见: +-- docs/sql/patch_2026-07-15_oa_approval_sys_menu.sql +-- (含 OA审批 节点插入,以及旧「工作流管理」伪删除) diff --git a/docs/sql/patch_2026-07-15_oa_approval_sys_menu.sql b/docs/sql/patch_2026-07-15_oa_approval_sys_menu.sql new file mode 100644 index 00000000..d5a52a17 --- /dev/null +++ b/docs/sql/patch_2026-07-15_oa_approval_sys_menu.sql @@ -0,0 +1,158 @@ +-- ============================================================================= +-- OA 审批菜单注册 + 旧「工作流管理」伪删除 +-- 日期:2026-07-15 +-- 说明: +-- 1. 在「系统管理」顶级(TOP...00005)下注册「OA审批」及三级页面菜单, +-- id / path / component / perms 与 web-admin sqxp.ts、backend menu.py 对齐。 +-- 2. 伪删除旧「工作流管理」二级及其三级菜单(OA 已替代),并清理角色菜单关联。 +-- ============================================================================= + +SET NAMES utf8mb4; + +-- --------------------------------------------------------------------------- +-- 1. 伪删除旧「工作流管理」及其子菜单 +-- --------------------------------------------------------------------------- +UPDATE `sys_menu` +SET `del_flag` = 1, + `update_time` = NOW() +WHERE `del_flag` = 0 + AND ( + `id` = 'WKF00000000000000000000000000001' + OR `parent_id` = 'WKF00000000000000000000000000001' + OR `id` IN ( + '10000000000000000000000000000wf01', + '10000000000000000000000000000wf02', + '10000000000000000000000000000wf03', + '10000000000000000000000000000wf04', + '10000000000000000000000000000wf05' + ) + ); + +DELETE FROM `sys_role_menu` +WHERE `menu_id` IN ( + 'WKF00000000000000000000000000001', + '10000000000000000000000000000wf01', + '10000000000000000000000000000wf02', + '10000000000000000000000000000wf03', + '10000000000000000000000000000wf04', + '10000000000000000000000000000wf05' +); + +-- --------------------------------------------------------------------------- +-- 2. 注册「OA审批」二级目录(挂在系统管理顶级下) +-- --------------------------------------------------------------------------- +INSERT INTO `sys_menu` ( + `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, + `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, + `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag` +) +SELECT + 'OA000000000000000000000000000001', 'OA审批', 'TOP00000000000000000000000000005', 'M', + 'oa-approval', NULL, NULL, + 1, '1', '1', 'zkxw', 2, '钉钉式 OA 审批(替代旧工作流管理)', + NULL, '', NOW(), NULL, NOW(), 0 +FROM DUAL +WHERE NOT EXISTS ( + SELECT 1 FROM `sys_menu` WHERE `id` = 'OA000000000000000000000000000001' +); + +-- 若曾假删过同 id,则恢复 +UPDATE `sys_menu` +SET `del_flag` = 0, + `menu_name` = 'OA审批', + `parent_id` = 'TOP00000000000000000000000000005', + `menu_type` = 'M', + `path` = 'oa-approval', + `component` = NULL, + `perms` = NULL, + `visible` = '1', + `status` = '1', + `order_num` = 2, + `update_time` = NOW() +WHERE `id` = 'OA000000000000000000000000000001'; + +-- --------------------------------------------------------------------------- +-- 3. 注册 OA 三级菜单(可见页 + 隐藏详情/设计页) +-- --------------------------------------------------------------------------- +INSERT INTO `sys_menu` ( + `id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, + `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, + `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag` +) +SELECT * FROM ( + SELECT 'OA000000000000000000000000000101' AS id, '审批管理' AS menu_name, + 'OA000000000000000000000000000001' AS parent_id, 'C' AS menu_type, + 'apps' AS path, '/oa-approval/apps/index' AS component, 'oa:apps:list' AS perms, + 1 AS is_frame, '1' AS visible, '1' AS status, 'zkxw' AS tenant_no, 1 AS order_num, + NULL AS remark, NULL AS create_by, '' AS create_dept_id, NOW() AS create_time, + NULL AS update_by, NOW() AS update_time, 0 AS del_flag + UNION ALL + SELECT 'OA000000000000000000000000000102', '工作流角色', + 'OA000000000000000000000000000001', 'C', + 'roles', '/oa-approval/roles/index', 'oa:roles:list', + 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0 + UNION ALL + SELECT 'OA000000000000000000000000000103', '发起审批', + 'OA000000000000000000000000000001', 'C', + 'start', '/oa-approval/start/index', 'oa:start', + 1, '1', '1', 'zkxw', 3, NULL, NULL, '', NOW(), NULL, NOW(), 0 + UNION ALL + SELECT 'OA000000000000000000000000000104', '待办中心', + 'OA000000000000000000000000000001', 'C', + 'pending', '/oa-approval/pending/index', 'oa:pending', + 1, '1', '1', 'zkxw', 4, NULL, NULL, '', NOW(), NULL, NOW(), 0 + UNION ALL + SELECT 'OA000000000000000000000000000105', '已办中心', + 'OA000000000000000000000000000001', 'C', + 'done', '/oa-approval/done/index', 'oa:done', + 1, '1', '1', 'zkxw', 5, NULL, NULL, '', NOW(), NULL, NOW(), 0 + UNION ALL + SELECT 'OA000000000000000000000000000106', '我发起的', + 'OA000000000000000000000000000001', 'C', + 'mine', '/oa-approval/mine/index', 'oa:mine', + 1, '1', '1', 'zkxw', 6, NULL, NULL, '', NOW(), NULL, NOW(), 0 + UNION ALL + SELECT 'OA000000000000000000000000000107', '抄送我的', + 'OA000000000000000000000000000001', 'C', + 'cc', '/oa-approval/cc/index', 'oa:cc', + 1, '1', '1', 'zkxw', 7, NULL, NULL, '', NOW(), NULL, NOW(), 0 + UNION ALL + SELECT 'OA000000000000000000000000000201', '审批设计', + 'OA000000000000000000000000000001', 'C', + 'designer/:id', '/oa-approval/designer/index', 'oa:designer', + 1, '0', '1', 'zkxw', 8, '隐藏页:从审批管理进入', NULL, '', NOW(), NULL, NOW(), 0 + UNION ALL + SELECT 'OA000000000000000000000000000202', '审批详情', + 'OA000000000000000000000000000001', 'C', + 'instances/:id', '/oa-approval/instances/detail', 'oa:instance:detail', + 1, '0', '1', 'zkxw', 9, '隐藏页:从任务/列表进入', NULL, '', NOW(), NULL, NOW(), 0 +) AS t +WHERE NOT EXISTS ( + SELECT 1 FROM `sys_menu` m WHERE m.`id` = t.id +); + +-- 幂等:已存在则同步字段并取消伪删除 +UPDATE `sys_menu` m +JOIN ( + SELECT 'OA000000000000000000000000000101' AS id, '审批管理' AS menu_name, 'apps' AS path, + '/oa-approval/apps/index' AS component, 'oa:apps:list' AS perms, '1' AS visible, 1 AS order_num + UNION ALL SELECT 'OA000000000000000000000000000102', '工作流角色', 'roles', '/oa-approval/roles/index', 'oa:roles:list', '1', 2 + UNION ALL SELECT 'OA000000000000000000000000000103', '发起审批', 'start', '/oa-approval/start/index', 'oa:start', '1', 3 + UNION ALL SELECT 'OA000000000000000000000000000104', '待办中心', 'pending', '/oa-approval/pending/index', 'oa:pending', '1', 4 + UNION ALL SELECT 'OA000000000000000000000000000105', '已办中心', 'done', '/oa-approval/done/index', 'oa:done', '1', 5 + UNION ALL SELECT 'OA000000000000000000000000000106', '我发起的', 'mine', '/oa-approval/mine/index', 'oa:mine', '1', 6 + UNION ALL SELECT 'OA000000000000000000000000000107', '抄送我的', 'cc', '/oa-approval/cc/index', 'oa:cc', '1', 7 + UNION ALL SELECT 'OA000000000000000000000000000201', '审批设计', 'designer/:id', '/oa-approval/designer/index', 'oa:designer', '0', 8 + UNION ALL SELECT 'OA000000000000000000000000000202', '审批详情', 'instances/:id', '/oa-approval/instances/detail', 'oa:instance:detail', '0', 9 +) s ON m.id = s.id +SET m.`del_flag` = 0, + m.`parent_id` = 'OA000000000000000000000000000001', + m.`menu_type` = 'C', + m.`menu_name` = s.menu_name, + m.`path` = s.path, + m.`component` = s.component, + m.`perms` = s.perms, + m.`visible` = s.visible, + m.`status` = '1', + m.`order_num` = s.order_num, + m.`update_time` = NOW(); diff --git a/docs/sql/patch_2026-07-15_oa_menu_rename_pending_done.sql b/docs/sql/patch_2026-07-15_oa_menu_rename_pending_done.sql new file mode 100644 index 00000000..82430425 --- /dev/null +++ b/docs/sql/patch_2026-07-15_oa_menu_rename_pending_done.sql @@ -0,0 +1,14 @@ +-- OA 审批菜单重命名:待处理 → 待办中心,已处理 → 已办中心 +-- 已执行过 patch_2026-07-15_oa_approval_sys_menu.sql 的环境可单独跑本脚本。 + +UPDATE `sys_menu` +SET `menu_name` = '待办中心', + `update_time` = NOW() +WHERE `id` = 'OA000000000000000000000000000104' + AND `del_flag` = 0; + +UPDATE `sys_menu` +SET `menu_name` = '已办中心', + `update_time` = NOW() +WHERE `id` = 'OA000000000000000000000000000105' + AND `del_flag` = 0; diff --git a/docs/superpowers/plans/2026-07-14-oa-approval-checklist.md b/docs/superpowers/plans/2026-07-14-oa-approval-checklist.md new file mode 100644 index 00000000..1464a682 --- /dev/null +++ b/docs/superpowers/plans/2026-07-14-oa-approval-checklist.md @@ -0,0 +1,65 @@ +# OA 审批(钉钉)开发清单 + +> 跟踪文件:本清单 · 详细步骤见 `2026-07-14-oa-approval-dingtalk.md` +> 设计:`docs/superpowers/specs/2026-07-14-oa-approval-dingtalk-design.md` +> 分支:`feat/oa-approval-dingtalk` +> 更新:2026-07-14(主链路已通:加签 / 附件控件 / E2E 清单已补;本地需跑 SQL 与手工验收) + +图例:`[x]` 已完成 · `[ ]` 未开始 ·`[~]` 进行中 + +--- + +## Phase A — 数据与解析 + +- [x] **A0** FormCreate 依赖安装 + Spike 页(`/#/system/workflow/oa-form-designer-spike`) +- [x] **A1** `supervisor_user_id` / `leader_user_id`(SQL 片段 + 模型 + 用户/部门前后端) +- [x] **A2** `oa_*` 表 DDL(`docs/sql/patch_2026-07-14_oa_approval.sql`)+ SQLAlchemy 模型 +- [x] **A3** 工作流角色 CRUD API + 预置 GM / CHAIRMAN(ensure) +- [x] **A4** 审批人解析器 `oa_assignee` + 单元测试(含主管回退) + +## Phase B — 应用定义与发布 + +- [x] **B5** 分组 / 应用 / 草稿版本 API +- [x] **B6** 发布校验 `oa_publish` + publish 接口 + +## Phase C — 运行时引擎 + +- [x] **C7** 公式与数据联动 `oa_formula` + 测试 +- [x] **C8** 引擎发起 / 推进 / 审批任务 API + 测试(含加签 add-sign) + +## Phase D — 前端壳与配置台 + +- [x] **D9** 路由/菜单/API 模块 + 工作流角色页 + 应用列表页 +- [x] **D10** 四步设计器壳 + 基础设置 + 高级设置(表单/流程步进占位,见 E11/E12) + +## Phase E — 设计器 + +- [x] **E11** 表单设计器(FormCreate + 附件控件 `oaAttachment` + 发布控件字典校验) +- [x] **E12** 竖向流程树设计器(五种选人 + 或签/会签) + +## Phase F — 办理中心与收尾 + +- [x] **F13** 发起 / 待办 / 已办 / 我发起 / 抄送 / 详情(动态表单 + 时间轴 + 加签) +- [x] **F14** 旧工作流侧栏隐藏 + E2E 验收清单(`2026-07-14-oa-approval-e2e-checklist.md`);手工验收待你勾选 + +## 运维提醒 + +- [ ] 本地/测试库已执行 `docs/sql/patch_2026-07-14_oa_approval.sql` +- [ ] 后端重启后用户「直属主管」、部门「负责人 userId」可用 + +## 前端界面对照(产品 12 屏) + +| 屏 | 对应任务 | 状态 | +|----|----------|------| +| 审批管理 | D9 | [x] | +| 工作流角色 | A3 + D9 | [x] | +| 基础设置 | D10 | [x] | +| 表单设计 | E11 | [x] | +| 流程设计 | E12 | [x] | +| 高级设置 | D10 | [x] | +| 发起审批 | F13 | [x] | +| 待处理 | F13 | [x] | +| 已处理 | F13 | [x] | +| 我发起的 | F13 | [x] | +| 抄送我的 | F13 | [x] | +| 审批详情 | F13 | [x] | diff --git a/docs/superpowers/plans/2026-07-14-oa-approval-dingtalk.md b/docs/superpowers/plans/2026-07-14-oa-approval-dingtalk.md new file mode 100644 index 00000000..e1547c83 --- /dev/null +++ b/docs/superpowers/plans/2026-07-14-oa-approval-dingtalk.md @@ -0,0 +1,468 @@ +# OA 审批(钉钉交互)Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** 在 web-admin + Python 后端交付独立「OA审批」模块:四步配置(基础/表单/流程/高级)、工作流角色、审批中心办理;引擎按钉钉式流程树运行。 + +**Architecture:** 前端用 FormCreate(Element Plus)做表单设计器、自研竖向流程树(参考 AntFlow 交互)+ Fresh Mint;后端新建 `oa_*` 表与 `oa_approval` 引擎,实例锁定已发布版本;审批人不读 `sys_role`,用 `oa_role` / `dept_leader` / `direct_supervisor` 解析。旧 X6/`wf_*` 菜单废弃。 + +**Tech Stack:** FastAPI, SQLAlchemy, Pydantic v2, Vue 3, Element Plus, FormCreate (`@form-create/designer@^3` + `@form-create/element-ui@^3`), TypeScript, MinIO 附件上传, pytest + +**Spec:** `docs/superpowers/specs/2026-07-14-oa-approval-dingtalk-design.md` + +**V1 审批人选人(已定,不含连续多级主管/表单联系人):** +`users` | `oa_roles`(含预置 GM/CHAIRMAN)| `dept_leader` | `direct_supervisor`(无主管默认回退部门负责人)| `initiator_select`;节点级或签/会签。 + +**表单底座锁定:** FormCreate(Element Plus 版)。不在实现中途再切 VForm3,除非 spike 证明不可用(见 Task 0)。 + +--- + +## 分阶段交付(建议按序;每阶段可独立验收) + +| Phase | 产出 | 验收焦点 | +|-------|------|----------| +| **A** | 库表、组织字段、工作流角色、审批人解析器 | 解析单元测试绿 | +| **B** | 应用/分组/版本 API、发布校验 | 可用 API 创建草稿并发布最小流程 | +| **C** | 运行时:发起/审批/抄送/条件/公式/联动/关联/附件校验 | pytest + 手工 Postman | +| **D** | 前端:菜单、角色、应用列表、四步向导壳 | 可点通四步保存 | +| **E** | 表单设计器 + 流程树 + 高级设置 UI | 对齐钉钉交互 + Mint | +| **F** | 审批中心全页 + 旧模块下线 + 菜单 SQL | E2E 请假样例 | + +--- + +## File Structure + +### Backend(新建) + +- `backend/app/api/oa_approval.py` — 路由聚合 +- `backend/app/schemas/oa_approval.py` — Pydantic +- `backend/app/crud/oa_approval.py` — CRUD +- `backend/app/services/oa_assignee.py` — 审批人解析 +- `backend/app/services/oa_formula.py` — 公式/联动 +- `backend/app/services/oa_engine.py` — 发起与推进 +- `backend/app/services/oa_publish.py` — 发布校验 +- `backend/tests/test_oa_assignee.py` +- `backend/tests/test_oa_formula.py` +- `backend/tests/test_oa_engine.py` +- `docs/sql/patch_2026-07-14_oa_approval.sql` — 增量 DDL + 菜单种子说明 +- Modify: `backend/app/models/models.py` — `SysUser.supervisor_user_id`、`SysDept.leader_user_id`、全部 `Oa*` 模型 +- Modify: `backend/app/api/__init__.py`、`backend/app/main.py` — 注册路由 +- Modify: 用户/部门相关 schema·CRUD·前端表单(主管、负责人 ID) + +### Frontend(新建) + +- `web-admin/src/api/oaApproval.ts` +- `web-admin/src/types/oa-approval.d.ts`(或写入 `api.d.ts` 命名空间) +- `web-admin/src/views/oa-approval/apps/index.vue` — 应用列表 +- `web-admin/src/views/oa-approval/apps/designer/index.vue` — 四步壳 +- `web-admin/src/views/oa-approval/apps/designer/BasicSettings.vue` +- `web-admin/src/views/oa-approval/apps/designer/FormDesigner.vue` +- `web-admin/src/views/oa-approval/apps/designer/FlowDesigner.vue` +- `web-admin/src/views/oa-approval/apps/designer/AdvancedSettings.vue` +- `web-admin/src/views/oa-approval/roles/index.vue` — 工作流角色 +- `web-admin/src/views/oa-approval/start/index.vue` — 发起入口 +- `web-admin/src/views/oa-approval/tasks/pending.vue` | `done.vue` | `mine.vue` | `cc.vue` +- `web-admin/src/views/oa-approval/instances/detail.vue` +- `web-admin/src/components/oa-approval/OaAttachmentField.vue` — 附件卡片(对齐协议附件) +- `web-admin/src/components/oa-approval/flow-tree/*` — 竖向树节点组件 +- Modify: `web-admin/src/router/modules/sqxp.ts`(或独立 `oa-approval.ts` 并挂载) +- Modify: `web-admin/src/App.vue` — `panelTitleBarTextRules` 如需 +- Modify: 用户管理、部门管理页 — 主管 / `leader_user_id` +- Modify: 隐藏旧 `system/workflow/*` 菜单(SQL 或前端 filter) + +### 依赖 + +- `web-admin`: `@form-create/designer@3.5.0`、`@form-create/element-ui@3.3.1`(已安装;Vue3 + Element Plus) + +--- + +## Phase A — 数据与解析 + +### Task 0: FormCreate spike(半天内) + +**Files:** +- Modify: `web-admin/package.json`(确认可安装后再锁版本) + +- [x] **Step 1:** 在 `web-admin` 安装 FormCreate Vue3 + Element Plus 设计器依赖并跑通最小 demo 页(临时路由即可)。 + +```bash +cd web-admin +pnpm add @form-create/element-plus @form-create/designer +# 若包名因官方版本差异调整,以能渲染 designer 为准,并把最终包名/版本写回本计划「依赖」节 +pnpm dev +``` + +- [ ] **Step 2:** 确认:拖拽单行文本、必填、导出 JSON schema;主题可用 CSS 变量靠拢 Mint(主色替换即可)。 +- [ ] **Step 3:** 若不可用,才评估 VForm3;默认不得切换。记录锁定版本到本计划顶部「Tech Stack」。 +- [ ] **Step 4: Commit** + +```bash +git add web-admin/package.json web-admin/pnpm-lock.yaml +git commit -m "$(cat <<'EOF' +chore(web-admin): add FormCreate for OA approval form designer + +EOF +)" +``` + +### Task 1: 组织字段补齐(主管 / 部门负责人用户 ID) + +**Files:** +- Create: `docs/sql/patch_2026-07-14_oa_approval.sql`(本 Task 先写 ALTER 段) +- Modify: `backend/app/models/models.py` — `SysUser`、`SysDept` +- Modify: 用户/部门的 schema、CRUD、list/detail API、前端表单项 + +- [ ] **Step 1:** 在补丁 SQL 增加: + +```sql +-- 直属主管(发起人的主管) +ALTER TABLE sys_user + ADD COLUMN supervisor_user_id VARCHAR(64) NULL COMMENT '直属主管用户ID' AFTER dept_id; + +-- 部门负责人用户ID(发起人部门负责人);保留原 leader 姓名展示可用同步回填 +ALTER TABLE sys_dept + ADD COLUMN leader_user_id VARCHAR(64) NULL COMMENT '部门负责人用户ID' AFTER status; +``` + +- [ ] **Step 2:** 模型字段与前端:用户编辑增加「直属主管」用户选择器;部门编辑负责人写入 `leader_user_id`,并同步 `leader` 显示名为所选用户昵称(兼容旧列)。 +- [ ] **Step 3:** 手工:配张三主管=钱七、部门 A 负责人=赵六,接口返回新字段。 +- [ ] **Step 4: Commit** + +```bash +git commit -m "$(cat <<'EOF' +feat: add supervisor_user_id and dept leader_user_id for OA approval + +EOF +)" +``` + +### Task 2: `oa_*` 表 DDL + SQLAlchemy 模型 + +**Files:** +- Modify: `docs/sql/patch_2026-07-14_oa_approval.sql` +- Modify: `backend/app/models/models.py` + +- [ ] **Step 1:** 追加表(字段顺序:id → 业务 → 公共字段),至少包括: + +```text +oa_app_group, oa_app, oa_app_version, +oa_role, oa_role_user, +oa_instance, oa_task, oa_relation +``` + +关键列约定: + +```text +oa_role.role_code VARCHAR(64) -- 预置 GM / CHAIRMAN +oa_role.role_kind CHAR(16) -- custom | preset +oa_app_version.status -- draft | published +oa_app_version.form_schema_json / flow_tree_json / advanced_settings_json TEXT/LONGTEXT +oa_instance.initiator_user_id, initiator_dept_id, form_data_json, status +oa_task.assignee_user_id, node_key, task_type(approval|cc), status, comment_text, resolve_source(nullable) -- 如 supervisor_fallback_dept_leader +``` + +- [ ] **Step 2:** 在 `models.py` 增加对应 `Oa*` 类(命名与表名一致,风格对齐现有 `Wf*`/`Sys*`)。 +- [ ] **Step 3:** 本地执行补丁 SQL,确认表创建成功。 +- [ ] **Step 4: Commit** + +### Task 3: 工作流角色 CRUD + 预置种子 + +**Files:** +- Create: `backend/app/schemas/oa_approval.py`(角色段) +- Create: `backend/app/crud/oa_approval.py`(角色函数) +- Create: `backend/app/api/oa_approval.py` +- Modify: `backend/app/api/__init__.py`、`backend/app/main.py` + +- [ ] **Step 1:** API: + +```text +GET /api/admin/oa-approval/roles +POST /api/admin/oa-approval/roles +PUT /api/admin/oa-approval/roles/{id} +DELETE /api/admin/oa-approval/roles/{id} # preset → 403 +PUT /api/admin/oa-approval/roles/{id}/users body: { userIds: string[] } +POST /api/admin/oa-approval/roles/ensure-presets # 幂等写入 GM/CHAIRMAN +``` + +- [ ] **Step 2:** `ensure_presets(tenant_no)`:若不存在则插入 `role_kind=preset`、`role_code in (GM, CHAIRMAN)`。 +- [ ] **Step 3:** 租户首次访问角色列表时调用 ensure。 +- [ ] **Step 4:** 手工验证:删 GM 返回错误;可改成员。 +- [ ] **Step 5: Commit** + +### Task 4: 审批人解析器 + 单元测试 + +**Files:** +- Create: `backend/app/services/oa_assignee.py` +- Create: `backend/tests/test_oa_assignee.py` + +- [ ] **Step 1: 写失败测试**(无实现时) + +```python +# backend/tests/test_oa_assignee.py +def test_dept_leader_resolves_by_initiator_dept(db_session, tenant_no): + # 准备 dept A leader=U1, user initiator dept=A + from app.services.oa_assignee import resolve_assignees + cfg = {"assigneeType": "dept_leader"} + users, meta = resolve_assignees(db_session, tenant_no, cfg, initiator_user_id="zhang", initiator_dept_id="deptA", advanced={"supervisorFallbackToDeptLeader": True}, initiator_select_user_ids=None) + assert users == ["leaderA"] + +def test_direct_supervisor_fallback_to_dept_leader(db_session, tenant_no): + cfg = {"assigneeType": "direct_supervisor"} + users, meta = resolve_assignees(..., initiator_user_id="no_supervisor", initiator_dept_id="deptA", advanced={"supervisorFallbackToDeptLeader": True}, ...) + assert users == ["leaderA"] + assert meta.get("resolve_source") == "supervisor_fallback_dept_leader" + +def test_oa_role_gm(db_session, tenant_no): + cfg = {"assigneeType": "oa_roles", "oaRoleIds": [""]} + users, meta = resolve_assignees(...) + assert "gm_user" in users + +def test_never_reads_sys_role(db_session, tenant_no, monkeypatch): + # 仅绑定 sys_role 的用户不应因 assigneeType=oa_roles 被选中 + ... +``` + +- [ ] **Step 2:** 运行 `pytest backend/tests/test_oa_assignee.py -v` → 预期 FAIL(import/函数不存在)。 +- [ ] **Step 3:** 实现 `resolve_assignees(...)` 返回 `(list[str] user_ids, dict meta)`,覆盖五种 `assigneeType`;空结果抛业务错误。 +- [ ] **Step 4:** pytest 全绿。 +- [ ] **Step 5: Commit** + +```bash +git commit -m "$(cat <<'EOF' +feat(oa-approval): add assignee resolver with dept leader and supervisor fallback + +EOF +)" +``` + +--- + +## Phase B — 应用定义与发布 + +### Task 5: 分组,应用 / 草稿版本 API + +**Files:** +- Modify: `backend/app/schemas/oa_approval.py`、`crud/oa_approval.py`、`api/oa_approval.py` + +- [ ] **Step 1:** 实现: + +```text +CRUD /api/admin/oa-approval/groups +CRUD /api/admin/oa-approval/apps +GET/PUT /api/admin/oa-approval/apps/{id}/draft +# draft 体:basic + formSchemaJson + flowTreeJson + advancedSettingsJson +# 无草稿则从最新 published 克隆或新建 version_no=1 status=draft +``` + +- [ ] **Step 2:** `advancedSettingsJson` 默认: + +```json +{ + "supervisorFallbackToDeptLeader": true, + "allowWithdrawRunning": true, + "approverDedup": false, + "commentRequired": false, + "allowAddSign": true +} +``` + +- [ ] **Step 3:** 字段一致性:`_row_to_dict` 为可读真源;Create/Update 与之对齐。 +- [ ] **Step 4: Commit** + +### Task 6: 发布校验 + +**Files:** +- Create: `backend/app/services/oa_publish.py` +- Modify: API `POST /apps/{id}/publish` + +- [ ] **Step 1:** 校验规则(失败返回中文错误列表): + - 表单至少 1 个可填字段 + - 流程树从发起人可达结束 + - 条件分支完整 + - 每个审批节点 `assigneeType` 合法且引用非空(`dept_leader`/`direct_supervisor`/`initiator_select` 除外) +- [ ] **Step 2:** 通过后:`status=published`,`is_latest_published=1`,旧 published 取消 latest。 +- [ ] **Step 3:** 单测或手工:缺审批人策略时拒绝发布。 +- [ ] **Step 4: Commit** + +--- + +## Phase C — 运行时引擎 + +### Task 7: 公式与数据联动 + +**Files:** +- Create: `backend/app/services/oa_formula.py` +- Create: `backend/tests/test_oa_formula.py` + +- [ ] **Step 1:** 支持白名单 AST:字段引用、`+ - * /`、`IF`、`SUM`(明细后续可扩);**禁止** `eval` 任意代码。 +- [ ] **Step 2:** `apply_formulas_and_linkages(schema, form_data) -> form_data`;联动按字段 `props.linkage` 规则回填。 +- [ ] **Step 3:** 测试:合法公式;非法表达式抛错。 +- [ ] **Step 4: Commit** + +### Task 8: 引擎发起 / 推进 / 审批动作 + +**Files:** +- Create: `backend/app/services/oa_engine.py` +- Create: `backend/tests/test_oa_engine.py` +- Modify: `api/oa_approval.py` + +API: + +```text +GET /api/admin/oa-approval/templates +POST /api/admin/oa-approval/instances +GET /api/admin/oa-approval/instances/{id} +GET /api/admin/oa-approval/tasks/pending|done|mine|cc +POST /api/admin/oa-approval/tasks/{id}/approve +POST /api/admin/oa-approval/tasks/{id}/reject +POST /api/admin/oa-approval/tasks/{id}/add-sign +POST /api/admin/oa-approval/instances/{id}/withdraw +``` + +- [ ] **Step 1:** `start_instance`:鉴权发起范围 → 锁定 latest published → 校验附件 URL/必填 → 公式 → 写 instance/relations → 沿 `flow_tree_json` 推进建 task。 +- [ ] **Step 2:** `complete_task`:权限校验 → 或签/会签 → 条件分支 → 抄送 → 结束状态。 +- [ ] **Step 3:** 附件:`form_data` 中 attachment 字段为逗号分隔 URL;必填与数量在服务端再验。 +- [ ] **Step 4:** 关联审批:写 `oa_relation`;详情返回可跳转列表。 +- [ ] **Step 5:** pytest:直线审批;`dept_leader` 分部门;主管回退;GM 预置角色。 +- [ ] **Step 6: Commit** + +--- + +## Phase D — 前端壳与配置台 + +### Task 9: 路由、菜单、API 模块、工作流角色页 + +**Files:** +- Create: `web-admin/src/api/oaApproval.ts` +- Create: `web-admin/src/views/oa-approval/roles/index.vue`(对照 `system/user` 列表模式) +- Create: `web-admin/src/views/oa-approval/apps/index.vue`(对照 `system/unit`) +- Modify: router;`docs/sql/patch_...sql` 追加 `sys_menu` OA 审批节点 +- Hide: 旧 workflow 菜单 + +- [ ] **Step 1:** 菜单:OA审批 → 审批管理 / 工作流角色 / 发起审批 / 待处理 / 已处理 / 我发起的 / 抄送我的。 +- [ ] **Step 2:** 角色页:列表、新增自定义、成员绑定、预置不可删。 +- [ ] **Step 3:** 应用列表:新增 → 进设计器;发布状态 Tag。 +- [ ] **Step 4:** UI:P24 或扩展模式码写进 PR 说明;按钮带图标;状态用 `el-tag`。 +- [ ] **Step 5: Commit** + +### Task 10: 四步设计器壳 + 基础设置 + 高级设置 + +**Files:** +- Create: `designer/index.vue`、`BasicSettings.vue`、`AdvancedSettings.vue` + +- [ ] **Step 1:** 顶栏步骤:基础设置 | 表单设计 | 流程设计 | 高级设置;Mint 高亮;预览/发布按钮。 +- [ ] **Step 2:** 基础设置字段对齐钉钉截图(图标、名称 50、分组、说明 100、谁可发起、表单管理员)。 +- [ ] **Step 3:** 高级设置:撤销/去重/意见/加签 + **无直属主管回退部门负责人**开关(默认开)。 +- [ ] **Step 4:** PUT draft 自动/手动保存。 +- [ ] **Step 5: Commit** + +--- + +## Phase E — 设计器 + +### Task 11: 表单设计器(FormCreate) + +**Files:** +- Create: `FormDesigner.vue`、`OaAttachmentField.vue` + +- [ ] **Step 1:** 嵌入 FormCreate designer;导出 JSON 存 `formSchemaJson`。 +- [ ] **Step 2:** V1 控件以 Spec §4.5 为准:分栏、单行/多行/数字/单选/多选/日期/日期区间/说明/电话、图片/金额/附件/部门/省市区/计算公式/关联审批单;不做 AI/手写签名/身份证/联系人/外部联系人/行业通讯录部门;二期不做明细表格/地点/评分/级联。属性含数据联动配置入口。 +- [ ] **Step 3:** 附件组件:即时 `fetchUploadAttachment`;卡片布局对齐 `ProtocolFormDialog`;值=URL 逗号串。 +- [ ] **Step 4:** 落地 Spec **§4.6 兼容契约**:共享控件字典(稳定 `type`)+ `form_data` 值类型表(前后端镜像);PC/手机 375 预览;分栏窄屏强制单列。 +- [ ] **Step 5:** 发布校验拒绝未知 `type`;单测覆盖值类型序列化(多选数组、日期区间对象、附件逗号 URL 等)。 +- [ ] **Step 6:** 自检:无 File/DOM/组件实例进 Schema;部门/省市区/附件语义可映射移动端选择器与上传。 +- [ ] **Step 7: Commit** + +### Task 12: 竖向流程树设计器 + +**Files:** +- Create: `FlowDesigner.vue`、`components/oa-approval/flow-tree/*` + +- [ ] **Step 1:** 数据结构(存 `flowTreeJson`): + +```ts +type FlowNode = { + id: string + type: 'start' | 'approval' | 'cc' | 'condition' | 'end' + name: string + approverConfig?: { + assigneeType: 'users' | 'oa_roles' | 'dept_leader' | 'direct_supervisor' | 'initiator_select' + userIds?: string[] + oaRoleIds?: string[] + signMode?: 'or' | 'and' // 或签 | 会签 + } + conditionGroups?: { name: string; rules: unknown[]; child: FlowNode }[] + child?: FlowNode | null +} +``` + +- [ ] **Step 2:** UI:发起人 →「+」→ 审批/抄送/条件 → 结束;节点抽屉配置五种选人 + 或签会签。 +- [ ] **Step 3:** 工作流角色下拉:预置置顶(总经理/董事长)+ 自定义。 +- [ ] **Step 4:** 不使用 AntV X6。 +- [ ] **Step 5: Commit** + +--- + +## Phase F — 办理中心与收尾 + +### Task 13: 发起 / 待办 / 已办 / 我发起 / 抄送 / 详情 + +**Files:** +- Create: `start/index.vue`、`tasks/*.vue`、`instances/detail.vue` + +- [ ] **Step 1:** 发起:分组模板宫格 → 动态渲染 form schema → 附件上传 → 自选人 → 提交。 +- [ ] **Step 2:** 列表页:标准 list 骨架;状态 `el-tag`。 +- [ ] **Step 3:** 详情:表单只读、附件预览下载、进度时间轴、回退来源文案、关联审批跳转、同意/拒绝/加签/撤销。 +- [ ] **Step 4:** 对照 unit/order 模板页与 Fresh Mint 规范。 +- [ ] **Step 5: Commit** + +### Task 14: 用户/部门前端联调、旧工作流下线、图谱与基线 + +**Files:** +- Modify: 用户、部门页 +- Modify: 菜单 SQL / 路由隐藏 `system/workflow` +- Run: `./scripts/update-graph.sh all`(有新建代码时) +- Optional: 重导 `docs/sql/zkxw.sql` 或保留 patch 为权威增量 + +- [ ] **Step 1:** 用户可选直属主管;部门负责人写 `leader_user_id`。 +- [ ] **Step 2:** 旧工作流菜单隐藏或提示「请使用 OA审批」。 +- [ ] **Step 3:** `python scripts/check_field_consistency.py`(若脚本覆盖新实体)。 +- [ ] **Step 4:** `./scripts/update-graph.sh backend && ./scripts/update-graph.sh frontend` +- [ ] **Step 5:** E2E 手工清单(对应 Spec §10): + 1. 发布含条件+抄送的请假应用 + 2. A/B 部门 `dept_leader` + 3. 无主管回退部门负责人 + 4. GM/董事长预置角色 + 5. 附件上传与详情下载 + 6. 公式/联动不被前端篡改 + 7. 关联审批跳转 +- [ ] **Step 6: Commit** + +--- + +## Spec 覆盖自检 + +| Spec 要点 | Task | +|-----------|------| +| 四步配置 + Mint | 10–12 | +| FormCreate 表单 + 附件 MinIO | 0, 11 | +| Web/移动兼容契约(§4.6:同 Schema/form_data/校验/控件字典) | 6, 11, 8 | +| 竖向流程树(非 X6) | 12 | +| oa_role + GM/CHAIRMAN | 3, 12 | +| dept_leader / direct_supervisor + 默认回退 | 1, 4, 8, 10 | +| 公式/联动/关联审批 | 7, 8, 11, 13 | +| 审批中心六页能力 | 13 | +| 版本锁定 / 发布校验 | 5, 6, 8 | +| 不对接业务工单 / 不做 AI | 范围外,无 Task | +| 旧 wf 下线 | 14 | +| 租户隔离 | 全部 API CRUD | + +**未纳入 V1(明确):** 连续多级主管、表单内联系人、SQL 任意审批人、打印模板、自动化任务。 + +--- + +## 风险备忘 + +- `leader` 历史字符串与 `leader_user_id` 双写:部门保存时同步。 +- FormCreate 样式侵入:用业务包裹 class `oa-fc-mint` 覆盖主色。 +- 流程树条件 UI 复杂度:先支持简单规则列表(字段/op/value),与引擎 JSON 一致即可。 diff --git a/docs/superpowers/plans/2026-07-14-oa-approval-e2e-checklist.md b/docs/superpowers/plans/2026-07-14-oa-approval-e2e-checklist.md new file mode 100644 index 00000000..8d01e6d5 --- /dev/null +++ b/docs/superpowers/plans/2026-07-14-oa-approval-e2e-checklist.md @@ -0,0 +1,44 @@ +# OA 审批 E2E 验收清单 + +> 配套:`2026-07-14-oa-approval-checklist.md` · F14 +> 前置:执行 `docs/sql/patch_2026-07-14_oa_approval.sql` 并重启后端 + +## 1. 组织与角色 + +- [ ] 用户管理可维护「直属主管」 +- [ ] 组织管理可维护「负责人」userId +- [ ] 工作流角色页可见预置「总经理 / 董事长」,可绑成员,预置不可删 + +## 2. 配置与发布 + +- [ ] 审批管理 → 新增应用 → 进入四步设计器 +- [ ] 基础设置:名称/说明可保存 +- [ ] 表单设计:拖拽控件;菜单中有「附件」;PC/手机预览可切 +- [ ] 流程设计:发起人 →「+」加审批/抄送/条件;五种选人 + 或签会签 +- [ ] 高级设置:主管回退默认开;允许加签可关 +- [ ] 空表单 / 缺审批人发布失败并提示中文错误列表 +- [ ] 合法配置可成功发布,列表出现已发布版本 Tag + +## 3. 发起与办理 + +- [ ] 发起审批:分组宫格可见已发布模板 +- [ ] 打开模板:动态表单渲染;附件可上传(MinIO URL 逗号串) +- [ ] 流程含「发起人自选」时,发起页出现自选人控件且必填 +- [ ] 提交后跳转详情;发起人在「我发起的」可见 +- [ ] 待处理列表出现部门负责人/主管解析出的待办 +- [ ] 主管为空且回退开启时,任务 `resolveSource=supervisor_fallback_dept_leader` +- [ ] 同意后推进下一节点或结束;拒绝后实例 rejected +- [ ] 加签:待办人可加签他人,新人进入待办 +- [ ] 撤销:发起人可撤销 running 实例(高级设置允许时) + +## 4. 权限与隔离 + +- [ ] 非发起范围用户看不到模板 +- [ ] 非处理人不能同意/拒绝/加签 +- [ ] 旧「工作流管理」侧栏不可见(路由可直链保留) + +## 5. 回归注意 + +- [ ] Fresh Mint 主色,无小程序色值混用 +- [ ] 弹窗无 backdrop blur;表单 top label +- [ ] 列表工具栏「已选 N 项」在左,唯一主按钮实心 diff --git a/docs/superpowers/plans/2026-07-15-oa-task-list-columns.md b/docs/superpowers/plans/2026-07-15-oa-task-list-columns.md new file mode 100644 index 00000000..a0ed8409 --- /dev/null +++ b/docs/superpowers/plans/2026-07-15-oa-task-list-columns.md @@ -0,0 +1,687 @@ +# OA 办理中心列表整单进度字段 Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** 四类办理列表展示流程名称、申请人、申请时间、当前节点、当前审批人、流程状态;进度语义为整单此刻;前端四页独立实现。 + +**Architecture:** 后端在 `list_tasks` 内批量 enrichment(实例 / 应用 / 用户 / pending 审批任务),写入统一摘要字段;前端 `pending`/`done`/`mine`/`cc` 各写完整页面,删除 `RuntimeList` 依赖。 + +**Tech Stack:** FastAPI / SQLAlchemy / Vue 3 / Element Plus;单测 `backend/tests/test_oa_engine.py` + +**Spec:** `docs/superpowers/specs/2026-07-15-oa-task-list-columns-design.md` + +--- + +## File map + +| 文件 | 职责 | +|------|------| +| `backend/app/services/oa_engine.py` | `_INSTANCE_STATUS_NODE_LABEL`、`_enrich_list_rows`、改写 `list_tasks` | +| `backend/tests/test_oa_engine.py` | enrichment 单测(running / terminal / mine / done 整单进度) | +| `web-admin/src/views/oa-approval/pending/index.vue` | 待处理独立列表 | +| `web-admin/src/views/oa-approval/done/index.vue` | 已处理独立列表 | +| `web-admin/src/views/oa-approval/mine/index.vue` | 我发起的独立列表 + 复制并重新发起 | +| `web-admin/src/views/oa-approval/cc/index.vue` | 抄送我的独立列表 | +| `web-admin/src/views/oa-approval/_placeholder/RuntimeList.vue` | 删除 | + +--- + +### Task 1: 后端 — list_tasks enrichment + 单测 + +**Files:** +- Modify: `backend/app/services/oa_engine.py` +- Modify: `backend/tests/test_oa_engine.py` + +- [ ] **Step 1: 写失败单测** + +在 `backend/tests/test_oa_engine.py` 末尾新增: + +```python +class TestListTasksEnrichment(unittest.TestCase): + """list_tasks 返回整单此刻进度摘要字段。""" + + def setUp(self): + from sqlalchemy import create_engine + from sqlalchemy.orm import sessionmaker + from app.models.models import OaApp, OaAppVersion, OaInstance, OaTask, SysUser + + self.engine = create_engine("sqlite:///:memory:") + OaApp.__table__.create(self.engine) + OaAppVersion.__table__.create(self.engine) + OaInstance.__table__.create(self.engine) + OaTask.__table__.create(self.engine) + SysUser.__table__.create(self.engine) + Session = sessionmaker(bind=self.engine, autoflush=False, autocommit=False) + self.db = Session() + self.OaTask = OaTask + now = datetime(2026, 7, 15, 10, 0, 0) + self.db.add( + OaApp( + id="app1", + app_name="请假审批", + initiator_scope="all", + admin_scope="all_oa_admin", + status="1", + tenant_no="zkxw", + create_dept_id="", + create_time=now, + update_time=now, + del_flag=0, + ) + ) + self.db.add( + OaAppVersion( + id="v1", + app_id="app1", + version_no=1, + status="published", + is_latest_published="1", + form_schema_json="{}", + flow_tree_json="{}", + advanced_settings_json="{}", + tenant_no="zkxw", + create_dept_id="", + create_time=now, + update_time=now, + del_flag=0, + ) + ) + self.db.add( + SysUser( + id="u0", + user_no="initiator", + nick_name="发起人甲", + password="x", + tenant_no="zkxw", + create_dept_id="", + create_time=now, + update_time=now, + del_flag=0, + ) + ) + self.db.add( + SysUser( + id="u1", + user_no="approver1", + nick_name="审批人乙", + password="x", + tenant_no="zkxw", + create_dept_id="", + create_time=now, + update_time=now, + del_flag=0, + ) + ) + self.db.add( + SysUser( + id="u2", + user_no="approver2", + nick_name="审批人丙", + password="x", + tenant_no="zkxw", + create_dept_id="", + create_time=now, + update_time=now, + del_flag=0, + ) + ) + self.db.add( + OaInstance( + id="i1", + app_id="app1", + app_version_id="v1", + title="请假-忽略", + initiator_user_id="u0", + initiator_dept_id="d1", + form_data_json="{}", + status="running", + tenant_no="zkxw", + create_dept_id="", + create_time=now, + update_time=now, + del_flag=0, + ) + ) + # u1 已处理;同单仍有 u2 pending + self.db.add( + OaTask( + id="t-done", + instance_id="i1", + node_key="a1", + node_name="一级审批", + task_type="approval", + assignee_user_id="u1", + status="approved", + tenant_no="zkxw", + create_dept_id="", + create_time=now, + update_time=now, + del_flag=0, + ) + ) + self.db.add( + OaTask( + id="t-pending", + instance_id="i1", + node_key="a2", + node_name="二级审批", + task_type="approval", + assignee_user_id="u2", + status="pending", + tenant_no="zkxw", + create_dept_id="", + create_time=now, + update_time=now, + del_flag=0, + ) + ) + self.db.commit() + + def tearDown(self): + self.db.close() + self.engine.dispose() + + def test_done_list_shows_instance_current_progress(self): + from app.services.oa_engine import list_tasks + + done = list_tasks(self.db, tenant_no="zkxw", user_id="u1", kind="done") + self.assertEqual(len(done), 1) + row = done[0] + self.assertEqual(row["appName"], "请假审批") + self.assertEqual(row["initiatorUserName"], "发起人甲") + self.assertEqual(row["applyTime"], "2026-07-15 10:00:00") + self.assertEqual(row["instanceStatus"], "running") + self.assertEqual(row["currentNodeName"], "二级审批") + self.assertEqual(row["currentApproverNames"], "审批人丙") + # 任务级 status 仍保留 + self.assertEqual(row["status"], "approved") + + def test_mine_list_enrichment(self): + from app.services.oa_engine import list_tasks + + mine = list_tasks(self.db, tenant_no="zkxw", user_id="u0", kind="mine") + self.assertEqual(len(mine), 1) + row = mine[0] + self.assertEqual(row["appName"], "请假审批") + self.assertEqual(row["instanceStatus"], "running") + self.assertEqual(row["currentNodeName"], "二级审批") + self.assertEqual(row["currentApproverNames"], "审批人丙") + + def test_terminal_instance_labels(self): + from app.services.oa_engine import list_tasks + + inst = self.db.query( + __import__("app.models.models", fromlist=["OaInstance"]).OaInstance + ).filter_by(id="i1").first() + inst.status = "returned" + pending = self.db.query(self.OaTask).filter_by(id="t-pending").first() + pending.status = "cancelled" + self.db.commit() + + mine = list_tasks(self.db, tenant_no="zkxw", user_id="u0", kind="mine") + row = mine[0] + self.assertEqual(row["instanceStatus"], "returned") + self.assertEqual(row["currentNodeName"], "已打回") + self.assertEqual(row["currentApproverNames"], "-") +``` + +若 `SysUser` 必填字段与上不同,按 `backend/app/models/models.py` 中 `SysUser` 实际列调整 setUp(保持能 insert 即可)。 + +- [ ] **Step 2: 跑测确认失败** + +Run: + +```bash +cd backend && source venv/bin/activate && pytest tests/test_oa_engine.py::TestListTasksEnrichment -q +``` + +Expected: FAIL(缺 `appName` / `currentNodeName` 等) + +- [ ] **Step 3: 实现 enrichment** + +在 `oa_engine.py` 中 `_task_to_dict` 之后新增(字段名与 spec 一致): + +```python +_INSTANCE_STATUS_NODE_LABEL = { + "completed": "已完成", + "rejected": "已拒绝", + "returned": "已打回", + "cancelled": "已撤销", +} + + +def _instance_progress_summary( + inst: OaInstance, + *, + app_name: str, + initiator_user_name: str, + pending_approval_tasks: List[OaTask], + name_map: Dict[str, str], +) -> Dict[str, Any]: + status = (inst.status or "").strip() + apply_time = ( + inst.create_time.strftime("%Y-%m-%d %H:%M:%S") if inst.create_time else "" + ) + if status == "running": + node_names: List[str] = [] + seen_nodes = set() + approver_names: List[str] = [] + for t in pending_approval_tasks: + nn = (t.node_name or t.node_key or "").strip() + if nn and nn not in seen_nodes: + seen_nodes.add(nn) + node_names.append(nn) + uid = (t.assignee_user_id or "").strip() + if uid: + approver_names.append(name_map.get(uid, uid)) + current_node = "、".join(node_names) if node_names else "-" + current_approvers = "、".join(approver_names) if approver_names else "-" + else: + current_node = _INSTANCE_STATUS_NODE_LABEL.get(status, status or "-") + current_approvers = "-" + return { + "appName": app_name or (inst.title or ""), + "initiatorUserId": inst.initiator_user_id or "", + "initiatorUserName": initiator_user_name + or name_map.get(inst.initiator_user_id or "", inst.initiator_user_id or ""), + "applyTime": apply_time, + "instanceStatus": status, + "currentNodeName": current_node, + "currentApproverNames": current_approvers, + } + + +def _enrich_list_rows( + db: Session, + *, + tenant_no: str, + rows: List[Dict[str, Any]], + instances: List[OaInstance], +) -> List[Dict[str, Any]]: + if not rows: + return [] + inst_by_id = {i.id: i for i in instances} + app_ids = list({i.app_id for i in instances if i.app_id}) + apps = ( + db.query(OaApp).filter(OaApp.id.in_(app_ids), OaApp.del_flag == 0).all() + if app_ids + else [] + ) + app_name_by_id = {a.id: (a.app_name or "") for a in apps} + + inst_ids = list(inst_by_id.keys()) + pending_tasks = ( + db.query(OaTask) + .filter( + OaTask.tenant_no == tenant_no, + OaTask.del_flag == 0, + OaTask.instance_id.in_(inst_ids), + OaTask.task_type == "approval", + OaTask.status == "pending", + ) + .order_by(OaTask.create_time.asc()) + .all() + if inst_ids + else [] + ) + pending_by_inst: Dict[str, List[OaTask]] = {} + for t in pending_tasks: + pending_by_inst.setdefault(t.instance_id, []).append(t) + + user_ids: List[str] = [] + for i in instances: + if i.initiator_user_id: + user_ids.append(i.initiator_user_id) + for t in pending_tasks: + if t.assignee_user_id: + user_ids.append(t.assignee_user_id) + name_map = _user_name_map(db, user_ids) + + out: List[Dict[str, Any]] = [] + for row in rows: + iid = row.get("instanceId") or row.get("id") + inst = inst_by_id.get(iid) + if not inst: + out.append(row) + continue + summary = _instance_progress_summary( + inst, + app_name=app_name_by_id.get(inst.app_id, ""), + initiator_user_name=name_map.get(inst.initiator_user_id or "", ""), + pending_approval_tasks=pending_by_inst.get(inst.id, []), + name_map=name_map, + ) + merged = dict(row) + merged.update(summary) + # mine 行:保留 instance 自身 status,同时带 instanceStatus + if "instanceId" not in row and "status" in row: + # 实例行的 status 本就是 instance status,保持 + pass + out.append(merged) + return out +``` + +改写 `list_tasks` 尾部: + +```python +def list_tasks(...): + ... + elif kind == "mine": + insts = ( + db.query(OaInstance) + .filter( + OaInstance.tenant_no == tenant_no, + OaInstance.del_flag == 0, + OaInstance.initiator_user_id == user_id, + ) + .order_by(OaInstance.create_time.desc()) + .all() + ) + rows = [_instance_to_dict(i) for i in insts] + return _enrich_list_rows(db, tenant_no=tenant_no, rows=rows, instances=insts) + + rows_orm = q.order_by(OaTask.create_time.desc()).all() + rows = [_task_to_dict(t) for t in rows_orm] + inst_ids = list({t.instance_id for t in rows_orm if t.instance_id}) + insts = ( + db.query(OaInstance) + .filter( + OaInstance.tenant_no == tenant_no, + OaInstance.del_flag == 0, + OaInstance.id.in_(inst_ids), + ) + .all() + if inst_ids + else [] + ) + return _enrich_list_rows(db, tenant_no=tenant_no, rows=rows, instances=insts) +``` + +确认文件顶部已 import `OaApp`(与现有 `OaInstance`/`OaTask` 一并)。 + +- [ ] **Step 4: 跑测通过** + +```bash +cd backend && source venv/bin/activate && pytest tests/test_oa_engine.py::TestListTasksEnrichment tests/test_oa_engine.py::TestCompleteTaskOrSign::test_approve_keeps_approved_not_done -q +``` + +Expected: PASS + +- [ ] **Step 5: Commit(仅用户明确要求时再执行;本步可跳过)** + +```bash +git add backend/app/services/oa_engine.py backend/tests/test_oa_engine.py +git commit -m "$(cat <<'EOF' +feat(oa): enrich list_tasks with instance progress summary fields + +EOF +)" +``` + +--- + +### Task 2: 前端 — 待处理独立页 + +**Files:** +- Modify: `web-admin/src/views/oa-approval/pending/index.vue` + +- [ ] **Step 1: 用完整页面替换 RuntimeList 引用** + +将 `pending/index.vue` 写为自包含列表(勿 import RuntimeList): + +```vue + + + + +``` + +- [ ] **Step 2: 目视确认无 RuntimeList import;列齐全** + +- [ ] **Step 3: Commit(可选,用户要求时)** + +--- + +### Task 3: 前端 — 已处理独立页 + +**Files:** +- Modify: `web-admin/src/views/oa-approval/done/index.vue` + +- [ ] **Step 1: 复制 Task 2 结构,改为「已处理」** + +与 pending 相同列与逻辑,差异: + +- `defineOptions({ name: 'OaApprovalDone' })` +- 标题 `已处理` +- `fetchOaTasks('done')` +- 详情仍用 `row.instanceId` + +**注意:** 流程状态列必须用 `instanceStatus`(整单),不要用任务 `status`。 + +- [ ] **Step 2: Commit(可选)** + +--- + +### Task 4: 前端 — 我发起的独立页 + +**Files:** +- Modify: `web-admin/src/views/oa-approval/mine/index.vue` + +- [ ] **Step 1: 独立页 + 复制并重新发起** + +在 Task 2 列基础上: + +- 标题 `我发起的`;`fetchOaTasks('mine')` +- `openDetail` 用 `row.id`(实例主键) +- 操作列增加: + +```vue + + + 复制并重新发起 + +``` + +```ts +import { RefreshRight, View } from '@element-plus/icons-vue' + +function openDetail(row: any) { + if (!row?.id) return + router.push({ path: `/system-manage/oa-approval/instances/${row.id}` }) +} + +function openCopyRestart(row: any) { + if (!row?.appId || !row?.id) return + router.push({ + path: '/system-manage/oa-approval/start', + query: { appId: row.appId, copyFromInstanceId: row.id } + }) +} +``` + +`defineOptions({ name: 'OaApprovalMine' })` + +- [ ] **Step 2: Commit(可选)** + +--- + +### Task 5: 前端 — 抄送我的 + 删除 RuntimeList + +**Files:** +- Modify: `web-admin/src/views/oa-approval/cc/index.vue` +- Delete: `web-admin/src/views/oa-approval/_placeholder/RuntimeList.vue` + +- [ ] **Step 1: 按 Task 2 写 `cc/index.vue`** + +- 标题 `抄送我的`;`fetchOaTasks('cc')`;详情 `row.instanceId` +- `defineOptions({ name: 'OaApprovalCc' })` + +- [ ] **Step 2: 全局确认无 RuntimeList 引用后删除文件** + +```bash +rg "RuntimeList" web-admin/src +``` + +Expected: 无匹配(或仅残留注释)。然后删除 `_placeholder/RuntimeList.vue`。若 `_placeholder` 目录空,可一并删除空目录。 + +- [ ] **Step 3: Commit(可选)** + +--- + +### Task 6: 验收 + 图谱 + +- [x] **Step 1: 后端全量相关测** — `pytest tests/test_oa_engine.py -q` → 21 passed + +- [x] **Step 2: 更新图谱** — backend 增量更新;frontend force 覆盖(RuntimeList 已移除) + +- [x] **Step 3: 勾选 spec §7 验收项** + +--- + +## Spec coverage (self-review) + +| Spec 要求 | Task | +|-----------|------| +| 摘要字段 appName/initiator/applyTime/current*/instanceStatus | Task 1 | +| 整单此刻进度;done 不展示本人任务快照 | Task 1 `test_done_list_shows_instance_current_progress` | +| 终态节点文案 + 审批人 `-` | Task 1 `test_terminal_instance_labels` | +| 批量无 N+1 | Task 1 `_enrich_list_rows` | +| 四页独立列 | Task 2–5 | +| 删除 RuntimeList | Task 5 | +| 我发起终态复制再发 | Task 4 | +| 图谱 | Task 6 | diff --git a/docs/superpowers/specs/2026-07-14-oa-approval-dingtalk-design.md b/docs/superpowers/specs/2026-07-14-oa-approval-dingtalk-design.md index 53ed6722..006fb9de 100644 --- a/docs/superpowers/specs/2026-07-14-oa-approval-dingtalk-design.md +++ b/docs/superpowers/specs/2026-07-14-oa-approval-dingtalk-design.md @@ -1,7 +1,7 @@ # OA 审批模块设计文档(钉钉交互 · Fresh Mint 皮肤) **日期**: 2026-07-14 -**状态**: 待用户审阅 +**状态**: 已批准(实现计划见 `docs/superpowers/plans/2026-07-14-oa-approval-dingtalk.md`) **界面模式**: 对标钉钉「OA审批」;视觉遵循 `docs/web-admin-ui-spec-fresh-mint.md` **建设方案**: 方案 2 — 前端借用开源设计器能力改造,后端 Python 自研引擎 @@ -12,7 +12,11 @@ - 引擎必须用 Python;现有未使用工作流可整套按钉钉模型重做 - 表单底座:FormCreate 或 VForm3(实现计划中择一) - 流程设计器:AntFlow 式竖向树重写进本仓,废弃 AntV X6 -- V1 含:公式、数据联动、关联审批;不含 AI 与其它复杂能力(见范围) +- V1 含:公式、数据联动、关联审批、**附件上传**;不含 AI 与其它复杂能力(见范围) +- 附件走现有对象存储(MinIO)上传链路;表单字段与发起/详情展示均须支持多附件 +- **审批人不复用 `sys_role`**:另建独立「工作流角色」;动态审批人含「发起人部门负责人」「发起人的主管」;「总经理 / 董事长」等为预置工作流角色(全局成员,非按发起人部门变化) +- **发起人的主管**:无直属主管时**默认回退**为发起人部门负责人(可在高级设置关闭该回退) +- **表单双端**:`form_schema_json` 为唯一真相;Web 管理端先交付填报/审批;控件与交互须可适配移动端,为后续小程序/H5 复用同一 Schema(见 §4.6) **取代关系**: 本设计取代 `docs/superpowers/specs/2026-05-13-workflow-module-design.md` 作为后续实现权威;旧 `wf_*` / X6 路径标记废弃。 @@ -30,27 +34,34 @@ |------|------| | 审批分组与应用列表 | 类似钉钉模板管理入口 | | 四步配置向导 | 基础设置 → 表单设计 → 流程设计 → 高级设置 → 发布 | -| 基础表单控件 | 单行/多行、数字、单选/多选、日期/日期区间、说明文字、附件、图片 | -| 公式、数据联动 | 字段级配置;后端权威求值 | -| 关联审批 | 表单控件关联已有实例;详情可跳转;不自动串子流程 | +| 表单控件(V1 清单) | 见 **§4.5**;按钉钉控件库裁剪,排除 AI/手写签名/通讯录人员类/身份证等 | +| 附件上传 | 「附件」控件;发起/详情可上传、预览、下载、删除;存储 MinIO(见 §4.3) | +| 公式、数据联动 | 「计算公式」控件 + 字段级联动;后端权威求值 | +| 关联审批 | 「关联审批单」控件;详情可跳转;不自动串子流程 | | 竖向流程树 | 发起人、审批人、抄送人、条件分支、结束;中间「+」插入 | -| 审批人策略 | 指定成员、角色、发起人自选;或签 / 会签 | -| 高级设置(子集) | 撤销、审批人去重、意见是否必填、允许加签 | -| 审批中心 | 发起、待处理、已处理、我发起的、抄送我的、详情 | +| 工作流角色 | 独立于 `sys_role`:含自定义角色 + **预置角色**(总经理、董事长等,见 §3.3) | +| 审批人策略 | 指定成员、工作流角色(含预置)、**发起人部门负责人**、**发起人的主管**、发起人自选;或签 / 会签 | +| 高级设置(子集) | 撤销、审批人去重、意见是否必填、允许加签;**无直属主管时回退部门负责人(默认开)** | +| 审批中心 | 发起、待处理、已处理、我发起的、抄送我的、详情(**Web 先做**) | +| 表单双端适配 | 设计器 PC/手机预览;Schema 与控件语义可复用到移动端(见 §4.6);V1 移动端运行时可为占位/二期,但控件不得绑死仅 PC 组件 | | 租户隔离与版本锁定 | 发布版本;实例绑定发起时版本 | ### 1.3 V1 不包含 -- 全部 AI 能力(含表单 AI) +- 全部 AI 能力(含表单 **AI 控件**) - 发票 / 客户等业务控件 - 打印模板、审批结束后的自动化任务 -- 手写签名、限时提醒、子流程、外部联系人等 +- **手写签名**、限时提醒、子流程 +- **身份证、联系人、外部联系人、行业通讯录部门**(按产品确认不做) - 与现有业务工单(协议、出库等)对接 +- 用 `sys_role`(菜单/数据权限角色)作为审批人解析来源 +- 钉钉增强区未纳入 V1 的控件:明细/表格、地点、评分、级联/分类(见 §4.5「二期」) ### 1.4 非目标 - 引入 Java / .NET 工作流运行时作为生产引擎 - 迁移旧 `wf_*` 历史数据(当前未使用,可放弃) +- 将「所有部门主管」做成一个静态工作流角色来代替动态部门负责人(错误模型,V1 禁止作为实现路径) --- @@ -60,6 +71,7 @@ web-admin · 「OA审批」独立模块 ├── 审批管理(配置) │ ├── 应用列表 / 分组 +│ ├── 工作流角色管理(独立于系统角色) │ └── 四步向导 │ ├── 基础设置(自研) │ ├── 表单设计(FormCreate/VForm3 改造 + Mint) @@ -71,14 +83,15 @@ web-admin · 「OA审批」独立模块 └── 详情(表单回显 + 进度 + 关联审批) backend Python · oa_approval 子系统 -├── 定义层:应用、版本、分组、发布校验 -├── 运行时:发起、任务、条件、公式、联动、关联、高级设置生效 +├── 定义层:应用、版本、分组、工作流角色、发布校验 +├── 运行时:发起、任务、条件、公式、联动、关联、审批人解析、高级设置生效 └── 数据:oa_* 表(见第 3 节) ``` **边界**: - 配置产物统一为 JSON,由后端校验并持久化 - 前端设计器不执行不可信脚本;公式仅允许受控表达式 AST / 白名单函数 +- **`sys_role` 只负责菜单/数据权限**;审批人解析只读 `oa_role*` 与组织(`sys_dept` / 用户部门),不读 `sys_role` 成员 - 旧 `backend/app/**/workflow*` 与 `web-admin/src/views/system/workflow/**` 不再演进,菜单隐藏或提示迁移 --- @@ -92,7 +105,10 @@ backend Python · oa_approval 子系统 | `oa_app_group` | 审批分组 | | `oa_app` | 审批应用(图标、名称、说明、发起范围、管理员范围等) | | `oa_app_version` | 版本:`form_schema_json`、`flow_tree_json`、`advanced_settings_json`、`status`=`draft`\|`published`、`version_no`、`is_latest_published` | -| `oa_instance` | 实例:`app_id`、`app_version_id`、`form_data_json`、`status`、发起人等 | +| `oa_role` | **工作流角色**(与 `sys_role` 无关):名称、编码、`role_kind`=`custom`\|`preset`、备注、启用状态 | +| `oa_role_user` | 工作流角色成员:`oa_role_id` + `user_id` | +| `oa_instance` | 实例:`app_id`、`app_version_id`、`form_data_json`、`status`、发起人、`initiator_dept_id` 等 | +| (组织补齐) | `sys_user.supervisor_user_id`(或等价):直属主管,供「发起人的主管」解析;`sys_dept.leader_user_id`(或等价):部门负责人稳定关联用户 | | `oa_task` | 任务:实例、节点 key、类型(approval/cc)、处理人、状态、意见 | | `oa_relation` | 关联审批:`from_instance_id`、`to_instance_id`、可选控件 field_key | @@ -108,10 +124,59 @@ backend Python · oa_approval 子系统 - **form_schema_json**: 控件树 + 每字段 `props`(标题、必填、公式、联动规则、关联审批过滤等) - **flow_tree_json**: 钉钉式节点树(非 BPMN);节点含 `type`、`name`、`approverConfig`、`conditionGroups`、`children` 等 +- **approverConfig.assigneeType**(概念枚举,V1 全量支持): + - `users` — 指定成员(user_id 列表) + - `oa_roles` — 指定工作流角色(`oa_role_id` / 预置编码,运行时展开成员;含总经理、董事长) + - `dept_leader` — **发起人部门负责人**(动态) + - `direct_supervisor` — **发起人的主管**(动态,读发起人直属主管) + - `initiator_select` — 发起人自选 - **advanced_settings_json**: 撤销、去重、意见、加签等开关与参数 具体字段级 schema 在实现计划中固化,并提供前后端 TypeScript / Pydantic 镜像类型。 +### 3.3 审批人机制对照(V1 必做) + +| 机制 | 配置侧文案(建议) | 用途 | 是否按发起人变化 | +|------|-------------------|------|------------------| +| `sys_role` | (不出现在流程选人里) | 菜单 / 数据权限 | 否;**审批引擎不读取** | +| `oa_role` 自定义 | 工作流角色 | 如「财务审批」「法务审批」 | 否;展开 `oa_role_user` | +| `oa_role` **预置** | 总经理 / 董事长 等 | 公司级特殊岗位,一人或少数人 | 否;全局同一批人 | +| `dept_leader` | 发起人部门负责人 | 审「部门头」 | **是**(按发起人部门) | +| `direct_supervisor` | 发起人的主管 | 审「直属上级」 | **是**(按发起人本人) | +| `users` / `initiator_select` | 指定成员 / 发起人自选 | 定点人或发起时点人 | 视配置 | + +**禁止**:把「所有部门负责人」或「所有主管」收成一个静态角色,来冒充 `dept_leader` / `direct_supervisor`。 + +#### 预置工作流角色(SHALL) + +租户初始化(或模块首次启用)时种子写入,**编码固定、不可删、可改成员与显示名备注**: + +| 预置编码 | 默认名称 | 说明 | +|----------|----------|------| +| `GM` | 总经理 | 节点可选「工作流角色 → 总经理」 | +| `CHAIRMAN` | 董事长 | 节点可选「工作流角色 → 董事长」 | + +- `role_kind=preset`;管理员只维护成员,不可删除预置行。 +- 后续若再加「副总经理」等,以同样方式扩预置表/种子,不引入第三套角色体系。 +- 流程设计器中预置角色与自定义角色分组合展示,避免和动态项混淆。 + +#### `dept_leader` 解析(发起人部门负责人) + +1. 取实例 `initiator_dept_id`(发起时写入;多部门时按发起页选定,默认主部门)。 +2. 查该部门 `leader_user_id`(须稳定关联 `sys_user.id`,见 §9)。 +3. 无有效用户 → 创建任务失败,明确错误(不可静默跳过)。 + +#### `direct_supervisor` 解析(发起人的主管) + +与「部门负责人」语义分离:主管是**人对人**的汇报关系,不一定等于所在部门负责人。 + +1. V1 **SHALL** 为用户补齐直属主管字段(建议 `sys_user.supervisor_user_id`),在用户管理中可维护。 +2. 运行时优先取发起人的 `supervisor_user_id`(有效且未停用)。 +3. **回退(默认开启)**:若直属主管为空或无效 → 按 `dept_leader` 规则解析发起人部门负责人。 + - 开关落在应用版本 `advanced_settings_json`(建议键名 `supervisorFallbackToDeptLeader`,**默认 `true`**);关闭后主管缺失则创建任务失败并提示「请维护直属主管或部门负责人」。 + - 发生回退时,任务详情/审批进度上可标注来源为「部门负责人(主管回退)」,避免误以为配了直属主管。 +4. 若解析结果等于发起人本人(配错数据),去重规则生效前亦应报错或按高级设置「发起人=审批人自动通过」处理。 + --- ## 4. 前端 UI 设计 @@ -121,6 +186,7 @@ backend Python · oa_approval 子系统 ``` OA审批 ├── 审批管理 → 应用列表 / 进入四步配置 +├── 工作流角色 → oa_role 维护与成员绑定(不进系统角色菜单) ├── 发起审批 → 按分组展示可发起模板 ├── 待处理 ├── 已处理 @@ -133,20 +199,40 @@ OA审批 ### 4.2 配置 · 四步(对齐钉钉截图交互) 1. **基础设置**: 图标、表单名称(≤50)、所在分组、表单说明(≤100)、谁可发起(全部 / 指定成员)、表单管理员(全部 OA 管理员 / 指定)。 -2. **表单设计**: 左控件库 / 中画布(PC · 手机切换)/ 右属性面板;顶栏预览、发布;扩展公式、数据联动、关联审批控件。 -3. **流程设计**: 竖向居中树;节点卡片色系用 Mint 语义色区分类型(非钉钉蓝橙硬抄,但需类型可辨);节点间「+」插入;缩放控件可选。 -4. **高级设置**: 左子菜单 + 右配置区;V1 实现「高级流程设置」内撤销 / 去重 / 意见 / 加签;AI、打印模板等菜单可灰显「二期」。 +2. **表单设计**: 左控件库 / 中画布(PC · 手机切换)/ 右属性面板;顶栏预览、发布;扩展公式、数据联动、关联审批、**附件**控件。 +3. **流程设计**: 竖向居中树;节点卡片色系用 Mint 语义色区分类型(非钉钉蓝橙硬抄,但需类型可辨);节点间「+」插入;缩放控件可选。审批人/抄送人配置面板 **V1 必提供**(对齐钉钉常见项): + - 指定成员 + - 工作流角色(自定义 + **预置:总经理、董事长**) + - **发起人部门负责人** + - **发起人的主管** + - 发起人自选 + - 或签 / 会签 +4. **高级设置**: 左子菜单 + 右配置区;V1 实现「高级流程设置」内撤销 / 去重 / 意见 / 加签 / **无直属主管时回退部门负责人(默认开启)**;AI、打印模板等菜单可灰显「二期」。 UI Token:按钮、标签、步骤高亮使用 Fresh Mint;布局密度与信息架构对齐钉钉,不混用小程序 `#0a9f6d`。 模式索引:实现前在 `docs/web-admin-ui-pattern-index.md` / OpenSpec `ui-conventions` 登记(可沿用或扩展 P24)。 -### 4.3 办理中心(对齐钉钉办理侧) +### 4.3 附件上传(SHALL) + +对齐钉钉「附件」控件能力,并遵循本仓 `ui-conventions` 附件上传卡片化布局与 `architecture-conventions` 对象存储约定: + +| 项 | 要求 | +|----|------| +| 设计器 | 控件库提供「附件」;属性至少支持:标题、是否必填、允许的文件类型(可选)、最大个数、单文件大小上限提示 | +| 发起 / 编辑填报 | 选择文件后**立即上传**(复用现有 `fetchUploadAttachment` 或等价 admin 上传 API);上传触发区与已传文件卡片同一行;支持预览 / 下载 / 删除 | +| 详情 / 审批页 | 只读展示附件列表,可预览、下载;审批人默认不可改发起人已传附件(除非后续扩展「可编辑字段」权限,V1 不做) | +| 存储 | MinIO 对象存储;`form_data_json` 中该字段存 URL 列表(多个以逗号分隔 URL,与现有附件字段惯例一致) | +| 校验 | 必填时无附件不可提交;类型/个数超限前端拦截并提示,后端发起接口再次校验 | + +权威 UI 参考:`ProtocolFormDialog.vue`「协议附件」卡片交互;色与尺寸跟 Fresh Mint,不自造第二套上传样式。 + +### 4.4 办理中心(对齐钉钉办理侧) | 页面 | 行为 | |------|------| -| 发起 | 模板宫格/分组 → 填单 →(发起人自选时)选人 → 提交 | -| 待处理 | 列表 → 详情:表单只读 + 同意/拒绝/意见/加签 + 进度时间轴 | +| 发起 | 模板宫格/分组 → 填单(含附件即时上传)→(发起人自选时)选人 → 提交 | +| 待处理 | 列表 → 详情:表单只读(附件可预览下载)+ 同意/拒绝/意见/加签 + 进度时间轴 | | 已处理 | 列表 → 详情只读 | | 我发起的 | 列表 → 详情;按高级设置允许撤销 | | 抄送我的 | 列表 → 详情只读知会 | @@ -154,15 +240,125 @@ UI Token:按钮、标签、步骤高亮使用 Fresh Mint;布局密度与信 列表页遵循 web-admin 标准列表骨架(筛选 / 工具栏 / 表格 / 分页);详情可用抽屉或独立页,优先信息结构清晰。 +### 4.5 表单控件清单(V1,对齐钉钉裁剪) + +对照钉钉 OA「表单设计」左侧控件库;**本次做 / 不做**如下。 + +#### 本次做(设计器左侧须出现) + +| 分组 | 控件 | 说明 | +|------|------|------| +| 布局 | 分栏 | 两列等布局 | +| 基础 | 单行输入框 | | +| 基础 | 多行输入框 | | +| 基础 | 数字输入框 | | +| 基础 | 单选框 | | +| 基础 | 多选框 | | +| 基础 | 日期 | | +| 基础 | 日期区间 | | +| 基础 | 说明文字 | 只读提示 | +| 基础 | 电话 | 手机号等,可校验格式 | +| 增强 | 图片 | 上传图片 | +| 增强 | 金额 | 金额录入(千分位等按现有金额组件习惯) | +| 增强 | 附件 | MinIO;见 §4.3 | +| 增强 | 部门 | 选本系统组织树(非行业通讯录) | +| 增强 | 省市区 | 省/市/区级联 | +| 增强 | 计算公式 | 与字段公式能力一致 | +| 增强 | 关联审批单 | 见关联审批 | + +字段属性侧:必填、标题、提示文字、默认值;以及已定的**数据联动**配置(不单独占控件位)。 + +#### 本次不做(钉钉有,明确排除) + +| 控件 | 原因 | +|------|------| +| AI 控件 | 产品排除 | +| 手写签名 | 产品排除 / 复杂项 | +| 身份证 | 产品排除 | +| 联系人 | 产品排除 | +| 外部联系人 | 产品排除 | +| 行业通讯录部门 | 产品排除(用本系统「部门」代替组织选择) | + +#### 二期(钉钉有,暂不进 V1) + +明细/表格、地点、评分、级联/分类(非省市区)。若业务急需可单项加开,不默认出现在 V1 控件库。 + +### 4.6 Web / 移动端兼容(SHALL) + +**产品意图**:同一审批应用须能在 **Web 端与移动端** 发起、填写、审批查看;兼容性是一等约束,不是「以后再说的样式问题」。 + +配置只做一次(Web 设计器);**表达式层(Schema + form_data + 校验 + 引擎)两端共用**;各端只负责自家 UI 皮肤与交互壳。 + +#### 4.6.1 兼容性契约(必须同时满足) + +| # | 契约 | 要求 | +|---|------|------| +| C1 | **同一 Schema** | Web / 移动只消费同一份 `form_schema_json`;禁止「Web 一份、手机再配一份」 | +| C2 | **同一 form_data** | 字段值的 JSON 形状、类型两端一致;任一端提交的数据另一端必须能回显与再编辑(权限允许时) | +| C3 | **同一后端校验** | 必填、格式、附件个数、公式/联动结果以服务端为准;移动端不得绕过 | +| C4 | **同一控件字典** | 每个控件有稳定 `type`(如 `input`/`textarea`/`number`/`radio`/`checkbox`/`date`/`dateRange`/`html`/`phone`/`image`/`money`/`attachment`/`dept`/`region`/`formula`/`relatedApproval`/`column`);禁止仅存在于 FormCreate 内部的未登记 type 进已发布版本 | +| C5 | **布局可降级** | `column`(分栏)在宽度 < 768(或手机预览)时 **必须** 降为单列;Schema 可带 `layout.mobile` 提示,但缺省行为已定 | +| C6 | **无端锁定依赖** | Schema / form_data **禁止** 出现:DOM 引用、Element Plus 组件实例、仅浏览器 `File` 对象、本地绝对路径;附件只存可访问 URL | +| C7 | **API 共用** | 发起/详情/待办等走同一套 `/api/admin/oa-approval/*`(或后续为小程序增加的同语义网关);移动端不另造业务存储 | + +#### 4.6.2 `form_data` 值类型约定(兼容核心) + +两端写入/读取必须遵循(实现计划落成 TypeScript + Pydantic 镜像): + +| 控件 | JSON 值形态 | 说明 | +|------|-------------|------| +| 单行/多行/说明/电话 | `string` | | +| 数字/金额 | `number` 或可解析数字字符串(发布时锁定一种,全局一致) | 两端展示格式可不同,存储一致 | +| 单选 | `string`(选项 value) | | +| 多选 | `string[]` | | +| 日期 | `string`(`YYYY-MM-DD`) | | +| 日期区间 | `{ start: string, end: string }` | | +| 图片/附件 | `string`(多个 URL 英文逗号拼接,与现有附件惯例一致) | | +| 部门 | `string`(deptId)或 `{ id, name }`(发布时锁定一种) | 回显名可由端补全 | +| 省市区 | `string[]` 或 `{ province, city, district }`(锁定一种) | | +| 关联审批单 | `string`(instanceId)或 `string[]` | | +| 计算公式 | 与所引用字段同类型;只读展示 | 以服务端计算结果为准 | + +选项类控件的 `options[].value` / `label` 必须是纯 JSON 可序列化数据,禁止函数。 + +#### 4.6.3 交互兼容(各端可不同壳,语义相同) + +| 能力 | Web | 移动端 | +|------|-----|--------| +| 文本/数字/金额/电话 | Element 输入框 | uni-app input;键盘类型匹配(number/tel) | +| 单选/多选 | radio/checkbox | radio/checkbox 或行动面板,值仍走 C2 | +| 日期/区间 | 日期面板 | picker / 日历弹层 | +| 部门/省市区 | 下拉树/级联 | **全屏或半屏选择器**(禁止依赖宽屏下拉才能选完) | +| 图片/附件 | 卡片上传 + 预览 | 相册/相机 + 预览;上传同一 MinIO API | +| 分栏 | 多列 grid | **自动单列** | +| 触达 | 常规 | 可点区域建议 ≥44×44 | +| 皮肤 | Fresh Mint | 三墙 Token;**禁止混用主色** | + +#### 4.6.4 设计器与验收 + +- 表单设计步骤 **必须** 提供 PC / 手机(375)预览;发布前建议在手机预览下过一遍全部 V1 控件。 +- 控件字典与值类型表作为 **发布校验** 的一部分:未知 `type` 或违反值形态约定的草稿不可发布。 +- 兼容性验收:同一实例用 Web 发起填写 → 移动端打开详情字段完整;或移动端填写 → Web 审批详情完整(移动运行时上线后执行;V1 至少用手机预览 + 契约单测/字典校验保障)。 + +#### 4.6.5 交付分期(不降低兼容标准) + +| 阶段 | 交付 | 兼容要求 | +|------|------|----------| +| **V1** | Web 配置 + Web 办理;控件字典、值类型、手机预览、服务端校验全部到位 | **Schema/form_data 已按双端契约实现**,不得留下只能 Web 跑的结构 | +| **移动端运行时**(可紧随或并行立项) | 小程序/H5:发起、待办、详情渲染器 | **只加渲染器与路由,不改编排模型** | + +不做:为移动端复制第二套表单配置;「仅 PC / 仅手机可见」字段(除非另开需求)。 + --- + ## 5. 后端运行时 ### 5.1 发起 1. 校验发起人是否在应用「谁可发起」范围内 2. 加载最新 `published` 版本(或指定版本策略,默认最新已发布) -3. 校验 `form_data`;执行公式与数据联动(服务端权威) +3. 校验 `form_data`(含附件必填、URL 合法性、个数上限);执行公式与数据联动(服务端权威) 4. 写入 `oa_instance`,绑定版本 5. 写入关联审批 `oa_relation`(若有) 6. 从流程树推进:解析审批人 → 创建 `oa_task` @@ -171,33 +367,61 @@ UI Token:按钮、标签、步骤高亮使用 Fresh Mint;布局密度与信 - 审批节点:或签 / 会签聚合 - 条件分支:使用表单字段 + 系统变量(如发起人部门)满足则走对应分支 -- 抄送:生成知会类任务(或只记抄送关系,V1 需在待办「抄送我的」可见) -- 结束:实例 `completed` / `rejected`(驳回策略:整单结束,V1 不做复杂回退多版本) +- 抄送:生成知会类任务(或只记抄送关系,V1 需在待办「抄送我的」可见);抄送人策略与审批人策略同源四类(成员 / 工作流角色 / 部门负责人 / 自选) +- 结束:实例 `completed` / `rejected`(**拒绝** = 整单结束;**打回** = 同实例退回重提,见 `2026-07-15-oa-approval-progress-timeline-design.md`。原「V1 不做复杂回退」表述已废止,打回按该文档分阶段 P1 落地) -### 5.3 公式与数据联动 +### 5.3 审批人解析(SHALL) + +引擎按节点 `approverConfig.assigneeType` 解析处理人集合,**不得**查询 `sys_role` / `sys_user_role`: + +| assigneeType | 解析逻辑 | +|--------------|----------| +| `users` | 直接使用配置的 `user_ids`(租户内有效用户) | +| `oa_roles` | 查 `oa_role_user` 展开成员并去重(含预置 `GM` / `CHAIRMAN`) | +| `dept_leader` | 按 §3.3 从发起人部门解析**部门负责人** | +| `direct_supervisor` | 按 §3.3:先直属主管,缺省则**默认回退**部门负责人(高级设置可关) | +| `initiator_select` | 使用发起时提交的自选人列表 | + +空集合:创建任务前失败并返回可读错误(除非高级设置未来定义「审批人为空」策略;V1 默认失败)。 + +**示例(验收用)**: + +- 请假节点 = `dept_leader`:部门 A 张三发起 → A 负责人待办;部门 B 李四发起 → B 负责人待办。 +- 报销二级 = `direct_supervisor`:指向张三的 `supervisor_user_id`,与是否部门负责人无关。 +- 重大事项末节点 = `oa_roles` + `GM` / `CHAIRMAN`:无论谁发起,均由绑定的总经理/董事长处理。 + +### 5.4 公式与数据联动 - 仅支持受控表达式(字段引用、四则、常用函数如 `IF`/`SUM` 等白名单) - 发起页可即时预览;**提交与关键写操作必须以服务端结果为准** - 求值失败返回明确错误,禁止静默写空 -### 5.4 关联审批 +### 5.5 关联审批 - 控件选择本租户内、当前用户有权查看的实例 - 持久化到 `oa_relation` - 详情页展示并跳转;V1 不因关联自动发起新流程 -### 5.5 高级设置生效 +### 5.6 高级设置生效 -在对应 API 中读取实例绑定版本的 `advanced_settings_json`:撤销窗口、去重、意见必填、加签开关。 +在对应 API 中读取实例绑定版本的 `advanced_settings_json`:撤销窗口、去重、意见必填、加签开关、`supervisorFallbackToDeptLeader`(默认 true)。 -### 5.6 发布校验(SHALL) +### 5.7 工作流角色管理 + +- 自定义角色:CRUD 名称/编码、启用停用、绑定/解绑用户 +- 预置角色(总经理、董事长):仅维护成员与显示名,**禁止删除**;`role_code` 固定为 `GM` / `CHAIRMAN` +- 流程设计器下拉只列出本租户启用的 `oa_role`(预置置顶分组) +- 删除或停用已被已发布流程引用的**自定义**角色:V1 允许停用但运行时成员为空则报错;硬删除前须提示引用(实现计划细化) + +### 5.8 发布校验(SHALL) 发布前必须通过: - 表单至少一个可填字段 - 流程树从发起人可达结束 - 每个条件分支组有完整出线 -- 审批节点审批人策略合法(非空配置或明确发起人自选) +- 审批节点审批人策略合法:`users` / `oa_roles` 引用非空,或 `dept_leader` / `direct_supervisor` / `initiator_select` 已明确选择 +- 引用预置角色时角色存在且启用(成员可在运行时再校验非空) --- @@ -205,13 +429,13 @@ UI Token:按钮、标签、步骤高亮使用 Fresh Mint;布局密度与信 | 场景 | 规则 | |------|------| -| 编辑应用 | 表单管理员或具备 OA 审批管理权限的角色 | +| 编辑应用 / 工作流角色 | 具备 OA 审批管理类**系统菜单权限**的用户(仍用 `sys_role` 控制能否进入配置台);表单管理员可编对应应用 | | 看到并发起模板 | 「谁可发起」为全部,或命中指定成员 | | 处理待办 | 仅任务指派人 | | 看详情 | 发起人、任务参与人(审批/抄送)、表单管理员、系统管理员(租户内) | | 租户 | 所有读写带当前用户 `tenant_no`,不信任客户端租户覆盖 | -数据权限与多角色并集语义遵循现有 `permission-conventions`。 +说明:**进菜单用 `sys_role`,批给谁用 `oa_role` / `dept_leader` / 指定人** —— 两套职责分离。数据权限与多角色并集语义遵循现有 `permission-conventions`(仅作用于是否能访问配置/列表等系统能力)。 --- @@ -223,6 +447,8 @@ UI Token:按钮、标签、步骤高亮使用 Fresh Mint;布局密度与信 - `GET/POST/PUT /api/admin/oa-approval/apps` - `GET/PUT .../apps/{id}/draft`(三份 JSON + 基础信息) - `POST .../apps/{id}/publish` +- `GET/POST/PUT/DELETE .../oa-roles`(工作流角色) +- `PUT .../oa-roles/{id}/users`(成员绑定) - `GET .../templates`(可发起列表) - `POST .../instances`(发起) - `GET .../tasks/pending|done|mine|cc` @@ -252,7 +478,10 @@ UI Token:按钮、标签、步骤高亮使用 Fresh Mint;布局密度与信 | 公式引擎安全性 | 白名单 AST,禁止 `eval` 任意代码 | | 关联审批权限过滤 | 必须复用详情可见性规则,防越权点选 | | 开源设计器 UI 与 Mint 冲突 | 仅复用交互与数据结构思想,样式统一走本项目 Token | -| 与需求 §2.1.11 措辞 | 能力对标钉钉宜搭/OA;引擎语言仍为 Python,满足 OpenSpec 精神 | +| 与需求 §2.1.11 措辞 | 需求原文写「配置角色 / SQL 模式」;本设计以独立 `oa_role` + `dept_leader` 覆盖同等场景,**不采用 SQL 任意语句**,避免注入面;引擎语言仍为 Python | +| `sys_dept.leader` 与 user_id | 部门页已按用户选择负责人,但列类型历史为字符串;V1 **必须**补齐稳定的 `leader_user_id`(或等价)以便 `dept_leader` 解析 | +| 用户无直属主管字段 | V1 **必须**增加 `sys_user.supervisor_user_id`(或等价)并在用户管理可维护,否则「发起人的主管」无法落地 | +| 总经理/董事长人数 | 预置角色允许多成员时按节点或签/会签执行;通常各绑 1 人 | --- @@ -262,7 +491,13 @@ UI Token:按钮、标签、步骤高亮使用 Fresh Mint;布局密度与信 2. 员工可发起、审批、在「我发起的/抄送我的」看到记录。 3. 公式与数据联动在提交后结果正确且不可被前端篡改绕过。 4. 关联审批可选择并跳转详情。 -5. 旧 X6 工作流不再作为主路径出现在菜单中。 +5. 带附件控件的应用可发起并上传文件;详情可预览/下载;文件落在 MinIO。 +5b. 表单设计器可切换 PC/手机预览;`form_schema_json` 控件类型可映射到未来移动端渲染(无端绑定死结)。 +6. 工作流角色(含预置总经理/董事长)可维护成员并在节点选用;引擎不依赖 `sys_role`。 +7. 「发起人部门负责人」:部门 A 张三 → A 负责人;部门 B 李四 → B 负责人。 +8. 「发起人的主管」:有直属主管则待办落主管;无主管时(默认回退开)落部门负责人,详情可辨认回退来源;关闭回退后无主管则失败提示。 +9. 节点选用预置「总经理」「董事长」时,任意发起人均由对应角色成员审批。 +10. 旧 X6 工作流不再作为主路径出现在菜单中。 --- diff --git a/docs/superpowers/specs/2026-07-14-oa-apps-card-layout-design.md b/docs/superpowers/specs/2026-07-14-oa-apps-card-layout-design.md new file mode 100644 index 00000000..a389664e --- /dev/null +++ b/docs/superpowers/specs/2026-07-14-oa-apps-card-layout-design.md @@ -0,0 +1,29 @@ +# 审批管理钉钉式卡片布局 + +**日期:** 2026-07-14 +**范围:** `web-admin` 「审批管理」`/#/system-manage/oa-approval/apps` +**Demo:** `docs/mockups/oa-approval-apps-card-demo.html` + +## 目标 + +将审批应用从表格列表改为钉钉式「搜索 + 分组 Tab + 横向图标卡片」工作台,便于按分组浏览与快速进入设计器。 + +## 交互 + +1. 顶部胶囊搜索(按应用名称前端过滤)。 +2. 分组 Tab:全部 / 各 `oa_app_group`。 +3. 分区标题 + 红点;卡片:图标、名称、状态 Tag;底部右对齐小号「设计 / 更多」(带图标)。 +4. 每组末尾「添加」卡;工具栏保留「分组管理 / 新建审批」。 +5. **应用图标** + - 打开「新增」弹窗时 `pickRandomOaAppIconUrl()` 预填默认图(`public/oa-app-icons/*`)。 + - 用户可不改;确定时把当前 `iconUrl` 写入后端。 + - 可上传图片(附件上传 API)或点「换一个默认」。 + - 设计器基础设置、发起页同步展示 `iconUrl`。 + +## 主要文件 + +- `web-admin/src/views/oa-approval/apps/index.vue` +- `web-admin/src/utils/oa-app-icons.ts` +- `web-admin/public/oa-app-icons/*.svg` +- `web-admin/src/views/oa-approval/start/index.vue`(卡片图标) +- `web-admin/src/views/oa-approval/designer/index.vue`(基础设置图标) diff --git a/docs/superpowers/specs/2026-07-15-oa-start-flow-preview-design.md b/docs/superpowers/specs/2026-07-15-oa-start-flow-preview-design.md new file mode 100644 index 00000000..f92f4b75 --- /dev/null +++ b/docs/superpowers/specs/2026-07-15-oa-start-flow-preview-design.md @@ -0,0 +1,60 @@ +# 发起审批 · 表单底部审批流预览(方案 B) + +**日期:** 2026-07-15 +**范围:** `web-admin` `/#/system-manage/oa-approval/start` 发起弹窗 +**Demo:** `docs/mockups/oa-approval-start-flow-preview-demo.html`(已定稿样式) + +## 目标 + +发起人填单时,在表单下方展示审批链预览:节点名称 + 签批方式 + 配置说明 + 解析出的具体人员,样式对齐 Demo(灰色圆点时间轴、单行紧凑卡片)。 + +## 方案 + +- **方案 B**:后端按当前发起人解析审批人;条件分支首版按「全部支路展开展示」(不随表单字段实时裁剪);`initiator_select` 显示「发起人自选」,人选仍用弹窗顶部现有选择器。 +- 不采用 A(仅文案)与 C(条件联动 / 节点内点选)。 + +## 交互与样式(对齐 Demo) + +1. 区块标题「审批流程」。 +2. 左侧统一灰色圆点 + 竖线;卡片单行:`节点名` `或签|会签|抄送` `· 配置说明`,右侧人员 chip。 +3. 卡片高度与 Demo 一致(约 `padding: 9px 12px`)。 +4. 发起人节点展示当前用户;结束节点仅名称。 + +## API + +`GET /api/admin/oa-approval/templates/{appId}/flow-preview` + +返回: + +```json +{ + "steps": [ + { + "id": "n_start", + "type": "start|approval|cc|branch|end", + "name": "一级审批", + "signMode": "or|and|", + "assigneeType": "oa_roles", + "meta": "工作流角色 · 总经理", + "people": [{ "id": "...", "nickName": "王总" }], + "resolveError": "" + } + ] +} +``` + +解析失败时该步 `people` 为空,`resolveError` 带原因,前端在 meta 后展示警示而非阻断打开弹窗。 + +## 主要文件 + +- `backend/app/services/oa_engine.py` — `preview_start_flow` +- `backend/app/api/oa_approval.py` — 路由 +- `web-admin/src/api/oaApproval.ts` — `fetchOaFlowPreview` +- `web-admin/src/components/oa-approval/OaFlowPreview.vue` — 只读预览 +- `web-admin/src/views/oa-approval/start/index.vue` — 挂载到弹窗表单下方 + +## 非目标(本期不做) + +- 条件分支随表单字段实时高亮 +- 在流程节点内完成自选审批人点选 +- 改造审批详情页时间轴样式 diff --git a/docs/superpowers/specs/2026-07-15-oa-task-list-columns-design.md b/docs/superpowers/specs/2026-07-15-oa-task-list-columns-design.md new file mode 100644 index 00000000..9e1e804a --- /dev/null +++ b/docs/superpowers/specs/2026-07-15-oa-task-list-columns-design.md @@ -0,0 +1,159 @@ +# OA 办理中心列表:整单进度字段展示 + +| 项 | 内容 | +|----|------| +| 状态 | 已定稿;实现已落地(见 `docs/superpowers/plans/2026-07-15-oa-task-list-columns.md`) | +| 日期 | 2026-07-15 | +| 范围 | 待处理 / 已处理 / 我发起的 / 抄送我的 四列表;后端 `list_tasks` 摘要 enrichment;前端四页独立实现 | +| 权威对齐 | 钉钉办理侧:列表可见申请人、申请时间、流程名、当前节点与审批人、流程状态 | +| 关联 | 前端布局仍服从 `docs/web-admin-ui-spec-fresh-mint.md`;打回终态与「复制并重新发起」语义见 `2026-07-15-oa-return-copy-new-instance-design.md` | + +--- + +## 1. 背景 + +当前四列表由 `RuntimeList.vue` 共用,列过少: + +- 非「我发起」:节点名、任务状态、时间 +- 「我发起」:标题、实例状态、时间 + +缺少申请人、流程名称、整单当前节点/审批人与流程状态,不便扫一眼判断进度。另:共用组件不利于后续按列表差异化演进。 + +--- + +## 2. 目标与非目标 + +**目标** + +- 四列表均展示整单**此刻**进度摘要(进行中:当前节点 + 正在等谁批;已结束:终态)。 +- 展示申请人、申请时间、流程名称、流程状态。 +- 前端 **SHALL** 四页各自独立实现,**不得**再共用 `RuntimeList`(或等价通用列表组件)作为唯一实现。 +- 后端仍可共用 enrichment,一次返回多字段,各页按需取用。 + +**非目标** + +- 本期不做筛选、分页改版、批量操作。 +- 不在列表展示完整审批进度时间轴(仍进详情)。 +- 不强制本期四页列配置必须永久一致(仅本期起点一致,后续可分叉)。 + +--- + +## 3. 进度语义(SHALL) + +四个列表统一按**实例维度**投影「当前进度」,而非「本行任务处理时快照」: + +| 实例状态 | 当前节点 | 当前审批人 | +|----------|----------|------------| +| `running` | 当前仍为 `pending` 且 `task_type=approval` 的节点名;多节点用顿号 `、` 拼接(按节点出现去重) | 上述 pending 审批任务处理人昵称,顿号拼接;无昵称则回落 userId | +| `completed` / `rejected` / `returned` / `cancelled` | 终态文案(见下) | `-` | + +**终态文案(当前节点列,建议)** + +| status | 文案 | +|--------|------| +| `completed` | 已完成 | +| `rejected` | 已拒绝 | +| `returned` | 已打回 | +| `cancelled` | 已撤销 | + +**流程状态列**:展示实例 `status`(Tag),与上表映射一致;进行中为 `running` →「进行中」。 + +**SHALL NOT**:在「已处理」列表用「本人当时处理的节点/人」替代整单此刻进度。 + +--- + +## 4. 列表字段(本期统一起点) + +| 列 | 字段(建议) | 说明 | +|----|--------------|------| +| 流程名称 | `appName` | 审批应用名;空则回落实例 `title` | +| 申请人 | `initiatorUserName` | 发起人昵称 | +| 申请时间 | `applyTime` | 实例创建时间 `YYYY-MM-DD HH:mm:ss` | +| 当前节点 | `currentNodeName` | §3 | +| 当前审批人 | `currentApproverNames` | §3;已结束为 `-` | +| 流程状态 | `instanceStatus` | 实例状态 Tag | +| 操作 | — | 查看;「我发起的」在终态另保留「复制并重新发起」 | + +原行内任务级 `status` / `nodeName` / 任务 `createTime` **不作为**本期主列;接口可继续返回供调试或后续分叉使用。 + +--- + +## 5. 后端(`list_tasks` enrichment) + +### 5.1 行为 + +对 `pending` / `done` / `cc` / `mine`: + +1. 仍按现有规则查出任务行或「我发起」实例行。 +2. 批量加载关联 `OaInstance`、`OaApp`、`SysUser`、以及这些实例上 `status=pending` + `task_type=approval` 的 `OaTask`。 +3. 为**每一行**写入统一摘要字段(任务行同时带 `instanceId`)。 + +### 5.2 响应增量字段(SHALL) + +每行至少包含: + +```text +appName +initiatorUserId +initiatorUserName +applyTime +instanceStatus +currentNodeName +currentApproverNames +``` + +约定: + +- `applyTime` = 实例 `create_time`(非任务创建时间)。 +- `instanceStatus` = 实例 `status`。 +- `mine` 行仍以实例为主键 `id`;其余以任务为主键,跳转详情用 `instanceId`。 +- 批量查询,**禁止**按行 N+1 查用户/实例/pending 任务。 + +### 5.3 兼容 + +保留既有任务/实例字段(如 `nodeName`、`status`、`title`、`createTime`),避免破坏未改前端;新列以前缀语义清晰的 `instanceStatus` / `applyTime` 区分任务级 `status` / `createTime`。 + +--- + +## 6. 前端(四页独立) + +### 6.1 页面 + +| 菜单 | 路径 | 说明 | +|------|------|------| +| 待处理 | `views/oa-approval/pending/index.vue` | 自包含表格 + `fetchOaTasks('pending')` | +| 已处理 | `views/oa-approval/done/index.vue` | 同上 `done` | +| 我发起的 | `views/oa-approval/mine/index.vue` | 同上 `mine`;终态「复制并重新发起」 | +| 抄送我的 | `views/oa-approval/cc/index.vue` | 同上 `cc` | + +**SHALL**:删除(或彻底不再引用)`_placeholder/RuntimeList.vue` 作为办理中心实现。 +**SHALL NOT**:再抽一层「通用 Runtime 列表」组件承载四页业务(可抽纯工具函数如状态文案映射,但表格与列定义须在各页内)。 + +### 6.2 UI 约定 + +- 对齐 Fresh Mint 列表模板(`panel-top` 标题竖条、`list-table` + `stripe`、操作列 `fixed="right"` min-width ≥ 260)。 +- 流程状态用 `` 语义色(进行中 warning、完成 success、拒绝/打回/撤销 danger)。 +- 空值展示 `-`。 +- `keepAlive` 下 `onActivated` 重新拉取。 + +### 6.3 后续分叉 + +允许各页增删列、加筛选;后端字段可多用少改,前端按页演进。 + +--- + +## 7. 验收 + +- [x] 四列表均可见:流程名称、申请人、申请时间、当前节点、当前审批人、流程状态。 +- [x] 进行中单据:当前节点/审批人与详情进度中 pending 审批人一致。 +- [x] 已结束单据:当前节点为终态文案,当前审批人为 `-`,流程状态为对应终态。 +- [x] 「已处理」进度列展示整单此刻而非本人任务快照。 +- [x] 四页无共用 `RuntimeList`;「我发起」终态仍可复制并重新发起。 +- [x] `list_tasks` 无 N+1 批量加载。 + +--- + +## 8. 实现备注 + +- 测试:为 `list_tasks` enrichment 增加单测(running 含 current*;终态 currentNodeName/审批人)。 +- 图谱:改 backend / web-admin 后执行 `./scripts/update-graph.sh` 对应侧。 diff --git a/web-admin/graphify-out/.graphify_analysis.json b/web-admin/graphify-out/.graphify_analysis.json index d690d8f3..1c1c1bc9 100644 --- a/web-admin/graphify-out/.graphify_analysis.json +++ b/web-admin/graphify-out/.graphify_analysis.json @@ -347,11 +347,6 @@ "api_qc_lab_test_item_fetchqclabtestitemsactive", "api_qc_lab_test_item_fetchupdateqclabtestitem", "api_qc_lab_test_item_ts", - "api_qc_material_amount_auth_fetchbatchrevokeqcmaterialamountauth", - "api_qc_material_amount_auth_fetchgrantqcmaterialamountauth", - "api_qc_material_amount_auth_fetchqcmaterialamountauthusers", - "api_qc_material_amount_auth_fetchrevokeqcmaterialamountauth", - "api_qc_material_amount_auth_ts", "api_qc_material_stock_check_fetchcancelqcmaterialstockcheck", "api_qc_material_stock_check_fetchcompleteqcmaterialstockcheck", "api_qc_material_stock_check_fetchcreateqcmaterialstockcheck", @@ -464,227 +459,6 @@ "views_system_workflow_components_approvaldialog_vue" ], "1": [ - "api_business_fetchuploadattachment", - "api_production_task_fetchmyproductiontasks", - "api_qc_task_fetchcompleteqctask", - "api_qc_task_fetchcreateqctask", - "api_qc_task_fetchdeleteqctask", - "api_qc_task_fetchmyqctasklist", - "api_qc_task_fetchqctaskdetail", - "api_qc_task_fetchqctasklist", - "api_qc_task_fetchstartqctask", - "api_qc_task_fetchupdateqctaskattachments", - "api_qc_task_ts", - "art_fireworks_effect_index_fireworksystem", - "art_fireworks_effect_index_fireworksystem_constructor", - "art_fireworks_effect_index_fireworksystem_createfirework", - "art_fireworks_effect_index_fireworksystem_createparticle", - "art_fireworks_effect_index_fireworksystem_getavailableparticle", - "art_fireworks_effect_index_fireworksystem_initializepool", - "art_fireworks_effect_index_fireworksystem_preloadallimages", - "art_fireworks_effect_index_fireworksystem_preloadimage", - "checkup_management_checkupdetaildialog_handlereportupload", - "checkup_management_checkupmarkcheckeddialog_handlereportupload", - "clean_room_index_walk", - "components_core_layouts_art_fireworks_effect_index_vue", - "composables_inbound_view_sections_buildtemporaryviewsections", - "composables_useinboundsiblingnavigation_buildinsertedsiblingcard", - "composables_useinboundsiblingnavigation_fetchminetasksforworkorders", - "composables_useinboundsiblingnavigation_resolveshowprotocolpaymentatgroup", - "composables_useinboundsiblingnavigation_useinboundsiblingnavigation", - "composables_useqcworkordertabpage_shouldapplytriggersourcefilter", - "composables_useqcworkordertabpage_useqcworkordertabpage", - "composables_useqcworkordertaskviewsections_appendtaskresultsections", - "composables_useqcworkordertaskviewsections_batchtasksforpanelslot", - "composables_useqcworkordertaskviewsections_buildconfiguredonlysection", - "composables_useqcworkordertaskviewsections_isbatchtaskpanelslot", - "composables_useqcworkordertaskviewsections_loadenrichedqcworkordertasks", - "composables_useqcworkordertaskviewsections_materialrowsfromapi", - "composables_useqcworkordertaskviewsections_taskattachmentslotname", - "composables_useqcworkordertaskviewsections_taskmaterialslotname", - "composables_useqcworkordertaskviewsections_useqcworkordertaskslothelpers", - "pilot_application_applicationdetaildialog_async", - "pilot_application_applicationdetaildialog_initdata", - "pilot_application_applicationdetaildialog_validate", - "pilot_application_applicationviewdialog_for", - "placeholder_runtimelist_opencopyrestart", - "placeholder_runtimelist_opendetail", - "placeholder_runtimelist_statustext", - "placeholder_runtimelist_statustype", - "process_processroutetab_for", - "process_processroutetab_if", - "process_processroutetab_set", - "production_work_order_stepdetailpanel_for", - "protocol_audit_fullmoontodotab_handleattachmentchange", - "qc_work_order_qcworkorderprotocolgroup_gateworkorder", - "qc_work_order_qcworkorderprotocolgroup_sampletabstatuslabel", - "qc_work_order_qcworkorderprotocolgroup_sampletabstatustagtype", - "qc_work_order_qcworkorderprotocolgroup_sampletypelabel", - "qc_work_order_qcworkorderprotocolgroup_workorderstatustagtype", - "qc_work_order_qcworkordersamplegroup_handlesiblinglinkclick", - "qc_work_order_qcworkordersamplegroup_workorderstatustagtype", - "qc_work_order_qcworkordersamplegroup_workordertabtitle", - "qc_work_order_qcworkordersinglecard_resolveinboundworkordercardtitle", - "sop_index_for", - "storage_facility_index_if", - "storage_facility_index_push", - "utils_cell_product_spec_normalizecellproductrow", - "utils_cell_product_spec_resolvecellproductspecdisplay", - "utils_cell_product_spec_ts", - "utils_inbound_sample_special_mark_caneditinboundsamplespecialmark", - "utils_inbound_sample_special_mark_resolveinboundsamplespecialmarktarget", - "utils_inbound_sample_special_mark_resolveinboundsamplespecialmarktargetfromrow", - "utils_inbound_sample_special_mark_ts", - "utils_production_mine_task_groups_buildminetablerows", - "utils_production_mine_task_groups_buildpresettasksmap", - "utils_production_mine_task_groups_buildworkorderfromtasks", - "utils_production_mine_task_groups_enrichmineentrieswithworkorders", - "utils_production_mine_task_groups_fetchallmineproductiontasks", - "utils_production_mine_task_groups_fetchminetasksbyscope", - "utils_production_mine_task_groups_filtermineentriesbyworkordersearch", - "utils_production_mine_task_groups_groupminetasksbyworkorder", - "utils_production_mine_task_groups_keywordmatchesworkorder", - "utils_production_mine_task_groups_paginatemineentries", - "utils_production_mine_task_groups_resolveworkordertabkey", - "utils_production_mine_task_groups_ts", - "utils_production_work_order_card_meta_buildinboundmetafields", - "utils_production_work_order_card_meta_formatoutboundschedulesortno", - "utils_production_work_order_card_meta_formatoutboundscheduletotalcount", - "utils_production_work_order_card_meta_getcardmetaconfig", - "utils_production_work_order_card_meta_getcardmetaconfigforlegacytab", - "utils_production_work_order_card_meta_protocolstatustagtypefortab", - "utils_production_work_order_card_meta_resolvecardmetaforrow", - "utils_production_work_order_card_meta_ts", - "utils_production_work_order_category_istemporaryproductionworkorder", - "utils_production_work_order_category_productionworkordercategorylabel", - "utils_production_work_order_category_productionworkordercategorytagtype", - "utils_production_work_order_category_resolveworkordercategorykey", - "utils_production_work_order_category_shouldshowtaskheaderlabstoragecode", - "utils_production_work_order_category_temporaryproductionexecutiondialogtitle", - "utils_production_work_order_category_toalltablistquery", - "utils_production_work_order_category_ts", - "utils_production_work_order_category_workordermatchescategory", - "utils_production_work_order_tabs_getproductionworkordertab", - "utils_production_work_order_tabs_isallproductionworkordertab", - "utils_production_work_order_tabs_keywordplaceholderfortab", - "utils_production_work_order_tabs_parseproductionworkordertabkey", - "utils_production_work_order_tabs_resolveeffectiverowtabkey", - "utils_production_work_order_tabs_resolvetabkeyfromworkorder", - "utils_production_work_order_tabs_tabsupportsinactiveprotocolfilter", - "utils_production_work_order_tabs_toworkorderlistquery", - "utils_production_work_order_tabs_ts", - "utils_production_work_order_tabs_workordermatchestab", - "utils_qc_inspection_batch_batchtaskspanelslot", - "utils_qc_inspection_batch_buildbatchsectionsfrombatches", - "utils_qc_inspection_batch_buildbatchsectionsfromtasks", - "utils_qc_inspection_batch_createemptyinspectionbatch", - "utils_qc_inspection_batch_fetchqcinspectionbatches", - "utils_qc_inspection_batch_fetchqcinspectionbatchesbatch", - "utils_qc_inspection_batch_loadqcinspectionbatches", - "utils_qc_inspection_batch_resolvebatchsections", - "utils_qc_inspection_batch_resolvebatchsectiontasks", - "utils_qc_inspection_batch_ts", - "utils_qc_mine_task_groups_buildminecardlistmodel", - "utils_qc_mine_task_groups_buildminetablerows", - "utils_qc_mine_task_groups_buildpresettasksmap", - "utils_qc_mine_task_groups_buildworkorderfromtasks", - "utils_qc_mine_task_groups_dateinrange", - "utils_qc_mine_task_groups_enrichmineentrieswithworkorders", - "utils_qc_mine_task_groups_fetchallminetasks", - "utils_qc_mine_task_groups_filtermineentriesbyworkordersearch", - "utils_qc_mine_task_groups_groupminetasksbyworkorder", - "utils_qc_mine_task_groups_keywordmatchesworkorder", - "utils_qc_mine_task_groups_paginatemineentries", - "utils_qc_mine_task_groups_resolveworkordertabkey", - "utils_qc_mine_task_groups_ts", - "utils_qc_work_order_card_meta_buildcellstoragegroupcontext", - "utils_qc_work_order_card_meta_builddonationgroupcontext", - "utils_qc_work_order_card_meta_buildgroupcontextsubtitle", - "utils_qc_work_order_card_meta_buildoutboundbasicexperimentgroupcontext", - "utils_qc_work_order_card_meta_buildoutboundpilotgroupcontext", - "utils_qc_work_order_card_meta_buildprotocolgroupprogresslabel", - "utils_qc_work_order_card_meta_cardmetausesgroupedlist", - "utils_qc_work_order_card_meta_cardmetausesinboundgroups", - "utils_qc_work_order_card_meta_cardmetausesoutboundgroups", - "utils_qc_work_order_card_meta_formatdetectmethods", - "utils_qc_work_order_card_meta_formatoutboundschedulesortno", - "utils_qc_work_order_card_meta_formatoutboundscheduletotalcount", - "utils_qc_work_order_card_meta_formatqctarget", - "utils_qc_work_order_card_meta_formattempcellproductfield", - "utils_qc_work_order_card_meta_getcardmetaconfig", - "utils_qc_work_order_card_meta_isinbounduserinforow", - "utils_qc_work_order_card_meta_protocolstatustagtypebysource", - "utils_qc_work_order_card_meta_resolvecardmetaforrow", - "utils_qc_work_order_card_meta_resolveinboundsamplegroupcardtitle", - "utils_qc_work_order_card_meta_resolveinboundworkordercardtitle", - "utils_qc_work_order_card_meta_resolveprotocolgrouppaymentsummary", - "utils_qc_work_order_card_meta_resolveprotocolgroupstatus", - "utils_qc_work_order_card_meta_resolvetemporaryworkordercardtitle", - "utils_qc_work_order_card_meta_ts", - "utils_qc_work_order_category_matchesalltabtriggersource", - "utils_qc_work_order_category_qcworkordercategorylabel", - "utils_qc_work_order_category_qcworkordercategorytagtype", - "utils_qc_work_order_category_resolveworkordercategorykey", - "utils_qc_work_order_category_toalltablistquery", - "utils_qc_work_order_category_ts", - "utils_qc_work_order_category_workordermatchescategory", - "utils_qc_work_order_groups_buildalltablistitems", - "utils_qc_work_order_groups_countconfiguredsamplesinprotocolgroup", - "utils_qc_work_order_groups_groupinboundqcworkorders", - "utils_qc_work_order_groups_groupinboundqcworkordersbyprotocol", - "utils_qc_work_order_groups_groupoutboundqcworkorders", - "utils_qc_work_order_groups_isgatetriggersource", - "utils_qc_work_order_groups_istemporaryqcfromproduction", - "utils_qc_work_order_groups_matchestemporaryqcsourcefilter", - "utils_qc_work_order_groups_protocolgroupsorttime", - "utils_qc_work_order_groups_resolvegateworkorderforsamplegroup", - "utils_qc_work_order_groups_resolveinboundprotocolgroupkey", - "utils_qc_work_order_groups_resolveinboundsamplegroupkey", - "utils_qc_work_order_groups_sortworkordersingroup", - "utils_qc_work_order_groups_temporaryqcsourcelabel", - "utils_qc_work_order_groups_temporaryqcsourcetagtype", - "utils_qc_work_order_groups_triggersortweight", - "utils_qc_work_order_groups_triggersourcetablabel", - "utils_qc_work_order_groups_ts", - "utils_qc_work_order_inbound_sample_cards_buildinboundsamplecardanchorid", - "utils_qc_work_order_inbound_sample_cards_buildinboundsamplelistitems", - "utils_qc_work_order_inbound_sample_cards_buildlinksfromvisiblegroups", - "utils_qc_work_order_inbound_sample_cards_buildprotocolsiblinglinksfromsamples", - "utils_qc_work_order_inbound_sample_cards_protocolsorttime", - "utils_qc_work_order_inbound_sample_cards_resolveprotocolsiblinglinksforgroup", - "utils_qc_work_order_inbound_sample_cards_resolveprotocolsiblingsamplesforgroup", - "utils_qc_work_order_inbound_sample_cards_sampletypenameforgroup", - "utils_qc_work_order_inbound_sample_cards_scrolltoinboundsamplecard", - "utils_qc_work_order_inbound_sample_cards_ts", - "utils_qc_work_order_tabs_filtertimelabelfortab", - "utils_qc_work_order_tabs_getqcworkordertab", - "utils_qc_work_order_tabs_isallqcworkordertab", - "utils_qc_work_order_tabs_isinboundsampleqctab", - "utils_qc_work_order_tabs_keywordplaceholderfortab", - "utils_qc_work_order_tabs_parseqcworkordertabkey", - "utils_qc_work_order_tabs_resolveeffectiverowtabkey", - "utils_qc_work_order_tabs_resolvetabkeyfromworkorder", - "utils_qc_work_order_tabs_tabusesinfusiontimefilter", - "utils_qc_work_order_tabs_toworkorderlistquery", - "utils_qc_work_order_tabs_ts", - "utils_qc_work_order_tabs_workordermatchestab", - "views_oa_approval_placeholder_runtimelist_vue", - "views_operations_clean_room_index_vue", - "views_operations_storage_facility_index_vue", - "views_pilot_service_pilot_application_applicationdetaildialog_vue", - "views_pilot_service_pilot_application_applicationviewdialog_vue", - "views_production_process_processroutetab_vue", - "views_production_production_work_order_stepdetailpanel_vue", - "views_production_sop_index_vue", - "views_quality_inspection_qc_work_order_composables_useinboundsiblingnavigation_ts", - "views_quality_inspection_qc_work_order_composables_useqcworkordertabpage_ts", - "views_quality_inspection_qc_work_order_composables_useqcworkordertaskviewsections_ts", - "views_quality_inspection_qc_work_order_qcworkordercardlist_vue", - "views_quality_inspection_qc_work_order_qcworkorderprotocolgroup_vue", - "views_quality_inspection_qc_work_order_qcworkordersamplegroup_vue", - "views_quality_inspection_qc_work_order_qcworkordersinglecard_vue" - ], - "2": [ "api_admin_batchsavepilotcheckup", "api_admin_deletepilotcheckupactualitem", "api_admin_fetchcheckupinstitutionlist", @@ -696,6 +470,8 @@ "api_admin_savepilotcheckup", "api_admin_savepilotcheckupactualitems", "api_admin_savepilotcheckupreserveitems", + "api_production_material_fetchmyproductionmaterialconsumptions", + "attachment_zip_progress_dialog_index_handledialogclose", "checkup_management_checkup_reserve_items_actualitemexists", "checkup_management_checkup_reserve_items_appendcheckupactualitems", "checkup_management_checkup_reserve_items_appendcheckupreserveitems", @@ -766,7 +542,12 @@ "checkup_management_checkupregisterdialog_oninstitutionchange", "checkup_management_checkupregisterdialog_requireinstitution", "checkup_management_checkupregisterdialog_reserveitemspayload", + "components_business_attachment_zip_progress_dialog_index_vue", "components_business_dialog_form_body_index_vue", + "components_core_layouts_art_settings_panel_widget_settingitem_vue", + "modules_user_search_handlereset", + "modules_user_search_handlesearch", + "my_production_material_usage_index_handletabchange", "pilot_application_applicationdetaildialog_if", "pilot_application_checkupmanagementtab_caneditactualcheckupinfo", "pilot_application_checkupmanagementtab_caneditreserve", @@ -789,6 +570,22 @@ "pilot_application_checkupmanagementtab_oninstitutionselectvisible", "pilot_application_checkupmanagementtab_remotesearchinstitutions", "pilot_application_clinicalpaymenttab_for", + "production_material_materialconsumptiontab_displayconsumptionqty", + "production_material_materialconsumptiontab_handlereset", + "production_material_materialconsumptiontab_handlesearch", + "production_material_materialconsumptiontab_loaddata", + "production_work_order_completeproductiontaskdialog_handleclose", + "production_work_order_completeproductiontaskdialog_handlesubmit", + "production_work_order_taskexecutiondialog_handleforwardsuccess", + "production_work_order_taskexecutiondialog_handlespawntemporaryworkorderclick", + "production_work_order_taskexecutiondialog_if", + "production_work_order_taskexecutiondialog_onsteplistdrop", + "production_work_order_taskexecutiondialog_openforwarddialog", + "production_work_order_taskexecutiondialog_savetaskattachmentsmanual", + "production_work_order_taskexecutiondialog_savetaskequipmentmanual", + "production_work_order_taskexecutiondialog_savetaskoutputsmanual", + "production_work_order_taskexecutiondialog_stepseqclass", + "production_work_order_taskexecutiondialog_submitspawntemporary", "views_pilot_service_checkup_management_checkup_reserve_items_ts", "views_pilot_service_checkup_management_checkupdetaildialog_vue", "views_pilot_service_checkup_management_checkupfilldialog_vue", @@ -798,9 +595,239 @@ "views_pilot_service_pilot_application_checkupmanagementtab_vue", "views_pilot_service_pilot_application_clinicalpaymenttab_vue", "views_pilot_service_pilot_application_index_vue", - "views_production_production_material_productionmaterialconfiguredcatalogdialog_vue" + "views_production_my_production_material_usage_index_vue", + "views_production_production_material_materialconsumptiontab_vue", + "views_production_production_material_productionmaterialconfiguredcatalogdialog_vue", + "views_production_production_material_productionmaterialusagetab_vue", + "views_production_production_work_order_completeproductiontaskdialog_vue", + "views_production_production_work_order_taskexecutiondialog_vue", + "views_system_user_modules_user_search_vue", + "widget_settingitem_emit", + "widget_settingitem_if" + ], + "2": [ + "api_business_fetchuploadattachment", + "api_oaapproval_fetchoatasks", + "art_fireworks_effect_index_fireworksystem", + "art_fireworks_effect_index_fireworksystem_constructor", + "art_fireworks_effect_index_fireworksystem_createfirework", + "art_fireworks_effect_index_fireworksystem_createparticle", + "art_fireworks_effect_index_fireworksystem_getavailableparticle", + "art_fireworks_effect_index_fireworksystem_initializepool", + "art_fireworks_effect_index_fireworksystem_preloadallimages", + "art_fireworks_effect_index_fireworksystem_preloadimage", + "cc_index_load", + "cc_index_opendetail", + "cc_index_statustext", + "cc_index_statustype", + "checkup_management_checkupdetaildialog_handlereportupload", + "checkup_management_checkupmarkcheckeddialog_handlereportupload", + "clean_room_index_walk", + "components_core_layouts_art_fireworks_effect_index_vue", + "done_index_load", + "done_index_opendetail", + "done_index_statustext", + "done_index_statustype", + "mine_index_load", + "mine_index_opencopyrestart", + "mine_index_opendetail", + "mine_index_statustext", + "mine_index_statustype", + "pending_index_load", + "pending_index_opendetail", + "pending_index_statustext", + "pending_index_statustype", + "pilot_application_applicationdetaildialog_async", + "pilot_application_applicationdetaildialog_initdata", + "pilot_application_applicationdetaildialog_validate", + "production_work_order_stepdetailpanel_for", + "protocol_audit_fullmoontodotab_handleattachmentchange", + "protocol_protocolformdialog_removepaymentdetail", + "sop_index_for", + "storage_facility_index_push", + "utils_protocol_fq_params_change_applyfqparamschange", + "utils_protocol_fq_params_change_buildfqamounts", + "utils_protocol_fq_params_change_countbystatus", + "utils_protocol_fq_params_change_evaluatefqparamschange", + "utils_protocol_fq_params_change_formatmoneysummary", + "utils_protocol_fq_params_change_fqparamssnapshot", + "utils_protocol_fq_params_change_generateinitialfqdetails", + "utils_protocol_fq_params_change_getpaidinstallmentrows", + "utils_protocol_fq_params_change_issamefqparams", + "utils_protocol_fq_params_change_maxpaidinstallmentno", + "utils_protocol_fq_params_change_ratiosequal", + "utils_protocol_fq_params_change_ts", + "utils_protocol_pay_mode_switch_activedetails", + "utils_protocol_pay_mode_switch_applypaymodeswitch", + "utils_protocol_pay_mode_switch_buildinstallmentdetails", + "utils_protocol_pay_mode_switch_calcremainingamount", + "utils_protocol_pay_mode_switch_countbystatus", + "utils_protocol_pay_mode_switch_createpaymentdetailrow", + "utils_protocol_pay_mode_switch_evaluatepaymodeswitch", + "utils_protocol_pay_mode_switch_formatmoneysummary", + "utils_protocol_pay_mode_switch_hasblockingstatus", + "utils_protocol_pay_mode_switch_ispaydetaillocked", + "utils_protocol_pay_mode_switch_markpaydetaillocks", + "utils_protocol_pay_mode_switch_sumpaidamount", + "utils_protocol_pay_mode_switch_ts", + "utils_protocol_payment_installment_adddaysymd", + "utils_protocol_payment_installment_addintervalmonthsymd", + "utils_protocol_payment_installment_addmonthsymd", + "utils_protocol_payment_installment_alignfqpaymentdetailsfordisplay", + "utils_protocol_payment_installment_calcfqinstallmentduedate", + "utils_protocol_payment_installment_calcinstallmentdueamounts", + "utils_protocol_payment_installment_calcinstallmentdueamountsbyratios", + "utils_protocol_payment_installment_calcunpaidamountsbyratios", + "utils_protocol_payment_installment_defaultinstallmentamounts", + "utils_protocol_payment_installment_defaultinstallmentratios", + "utils_protocol_payment_installment_finalizeinstallmentratios", + "utils_protocol_payment_installment_isinstallmentamountsvalid", + "utils_protocol_payment_installment_isinstallmentratiosvalid", + "utils_protocol_payment_installment_islegacyinstallmentratios", + "utils_protocol_payment_installment_normalizeinstallmentamounts", + "utils_protocol_payment_installment_resizeinstallmentamounts", + "utils_protocol_payment_installment_resizeinstallmentratios", + "utils_protocol_payment_installment_resolvefqamounts", + "utils_protocol_payment_installment_scaleinstallmentamountstocontract", + "utils_protocol_payment_installment_sortfqpaymentdetails", + "utils_protocol_payment_installment_suminstallmentamounts", + "utils_protocol_payment_installment_syncfqpaymentdetailrowcount", + "utils_protocol_payment_installment_ts", + "utils_protocol_payment_presets_isinstallmentpaymode", + "utils_qc_work_order_card_meta_buildcellstoragegroupcontext", + "utils_qc_work_order_card_meta_builddonationgroupcontext", + "utils_qc_work_order_card_meta_buildgroupcontextsubtitle", + "utils_qc_work_order_card_meta_buildoutboundbasicexperimentgroupcontext", + "utils_qc_work_order_card_meta_buildoutboundpilotgroupcontext", + "utils_qc_work_order_card_meta_formatdetectmethods", + "utils_qc_work_order_card_meta_formatoutboundschedulesortno", + "utils_qc_work_order_card_meta_formatoutboundscheduletotalcount", + "utils_qc_work_order_card_meta_formatqctarget", + "utils_qc_work_order_card_meta_formattempcellproductfield", + "utils_qc_work_order_card_meta_getcardmetaconfig", + "utils_qc_work_order_card_meta_isinbounduserinforow", + "utils_qc_work_order_card_meta_protocolstatustagtypebysource", + "utils_qc_work_order_card_meta_resolvecardmetaforrow", + "utils_qc_work_order_card_meta_resolveinboundsamplegroupcardtitle", + "utils_qc_work_order_card_meta_resolveinboundworkordercardtitle", + "utils_qc_work_order_card_meta_resolveprotocolgrouppaymentsummary", + "utils_qc_work_order_card_meta_resolveprotocolgroupstatus", + "utils_qc_work_order_card_meta_resolvetemporaryworkordercardtitle", + "utils_qc_work_order_card_meta_ts", + "views_oa_approval_cc_index_vue", + "views_oa_approval_done_index_vue", + "views_oa_approval_mine_index_vue", + "views_oa_approval_pending_index_vue", + "views_operations_clean_room_index_vue", + "views_pilot_service_pilot_application_applicationdetaildialog_vue", + "views_production_production_work_order_stepdetailpanel_vue", + "views_production_sop_index_vue" ], "3": [ + "amount_input_index_handleblur", + "amount_input_index_handlefocus", + "amount_input_index_handleinput", + "api_admin_fetchfullmoontodolist", + "api_admin_fetchupdatefullmoontodoinsurance", + "api_collection_protocol_fetchcollectionprotocolauditlist", + "api_collection_protocol_fetchcollectionprotocoldetail", + "api_collection_protocol_fetchcollectionprotocollist", + "api_collection_protocol_fetchcompleteprotocolinvoicerequest", + "api_collection_protocol_fetchcreatecollectionprotocol", + "api_collection_protocol_fetchcreateprotocolinvoicerequest", + "api_collection_protocol_fetchdeletecollectionprotocol", + "api_collection_protocol_fetchinvoiceeligiblepayments", + "api_collection_protocol_fetchpaymentdetaillist", + "api_collection_protocol_fetchprotocolinvoicependingcount", + "api_collection_protocol_fetchprotocolinvoicerequestlist", + "api_collection_protocol_fetchprotocolinvoicerequests", + "api_collection_protocol_fetchreceiptconfirmedlist", + "api_collection_protocol_fetchreceiptconfirmlist", + "api_collection_protocol_fetchreceiptconfirmreject", + "api_collection_protocol_fetchreceiptconfirmsubmit", + "api_collection_protocol_fetchrefundconfirmedlist", + "api_collection_protocol_fetchrefundconfirmlist", + "api_collection_protocol_fetchrefundconfirmreject", + "api_collection_protocol_fetchrefundconfirmsubmit", + "api_collection_protocol_fetchsubmitprotocolaudit", + "api_collection_protocol_fetchsubmitreceiptfinance", + "api_collection_protocol_fetchsubmitreceiptfinancebatch", + "api_collection_protocol_fetchsubmitrefundfinance", + "api_collection_protocol_fetchsubmitrefundfinancebatch", + "api_collection_protocol_fetchupdatecollectionprotocol", + "api_collection_protocol_fetchupdatepaymentdetaildraft", + "api_collection_protocol_ts", + "channel_channelserviceordertab_if", + "channel_channelviewdialog_formatprice", + "channel_channelviewdialog_fullfileurl", + "channel_channelviewdialog_normalizeagreementrow", + "clinical_payment_confirm_timeline_index_formatprotocolamount", + "clinical_payment_confirm_timeline_index_protocolpaymodelabel", + "clinical_payment_confirm_timeline_index_showstepcontent", + "components_business_clinical_payment_confirm_timeline_index_vue", + "components_common_amount_input_index_vue", + "pilot_application_pilotapplicationtab_cleartableselection", + "protocol_audit_fullmoontodotab_buildinsuranceattachmentsvalue", + "protocol_audit_fullmoontodotab_buildinsurancepayload", + "protocol_audit_fullmoontodotab_formatinvoiceamount", + "protocol_audit_fullmoontodotab_formatymdfromany", + "protocol_audit_fullmoontodotab_fullfileurl", + "protocol_audit_fullmoontodotab_getinvoiceattachmentfiles", + "protocol_audit_fullmoontodotab_getinvoicerequestitems", + "protocol_audit_fullmoontodotab_handlebatchedit", + "protocol_audit_fullmoontodotab_handleedit", + "protocol_audit_fullmoontodotab_handleexportinsurancesheet", + "protocol_audit_fullmoontodotab_handleinsurancecompanychange", + "protocol_audit_fullmoontodotab_handleinsurancedialogclosed", + "protocol_audit_fullmoontodotab_handleinsurancetypechange", + "protocol_audit_fullmoontodotab_handleinvoiceattachmentpreview", + "protocol_audit_fullmoontodotab_handleinvoicecreatedialogclosed", + "protocol_audit_fullmoontodotab_handleinvoicedialogclosed", + "protocol_audit_fullmoontodotab_handleinvoiceeligibleselectionchange", + "protocol_audit_fullmoontodotab_handlepreviewattachment", + "protocol_audit_fullmoontodotab_handlereset", + "protocol_audit_fullmoontodotab_handlesearch", + "protocol_audit_fullmoontodotab_handlesubmit", + "protocol_audit_fullmoontodotab_isimagefile", + "protocol_audit_fullmoontodotab_isvideofile", + "protocol_audit_fullmoontodotab_loaddata", + "protocol_audit_fullmoontodotab_loadinvoicedialogdata", + "protocol_audit_fullmoontodotab_loadinvoiceeligible", + "protocol_audit_fullmoontodotab_loadinvoicehistory", + "protocol_audit_fullmoontodotab_normalizenewbornsex", + "protocol_audit_fullmoontodotab_openinvoicecreatedialog", + "protocol_audit_fullmoontodotab_openinvoicedialog", + "protocol_audit_fullmoontodotab_openinvoiceviewdialog", + "protocol_audit_fullmoontodotab_parseinsuranceattachmentsfromurls", + "protocol_audit_fullmoontodotab_removeattachment", + "protocol_audit_fullmoontodotab_resetdialogcontext", + "protocol_audit_fullmoontodotab_resetformfields", + "protocol_audit_fullmoontodotab_resetinvoiceform", + "protocol_audit_fullmoontodotab_resolveprotocolid", + "protocol_audit_fullmoontodotab_submitinvoicerequest", + "protocol_audit_paymentinfotab_createcolumnstate", + "protocol_audit_paymentinfotab_receiptattachmentstourls", + "protocol_audit_storagecerttab_for", + "protocol_protocolformdialog_fmtmoney", + "protocol_protocolviewdialog_financeconfirmattachmentfiles", + "protocol_protocolviewdialog_refundattachmentfiles", + "protocol_protocolviewdialog_refundfinanceconfirmattachmentfiles", + "utils_money_format_addthousandseparators", + "utils_money_format_formatmoneydisplay", + "utils_money_format_formatmoneyinputdisplay", + "utils_money_format_parsemoneytonumber", + "utils_money_format_sanitizemoneyinput", + "utils_money_format_ts", + "views_cell_storage_protocol_audit_fullmoontodotab_vue", + "views_cell_storage_protocol_audit_index_vue", + "views_cell_storage_protocol_audit_paymentinfotab_vue", + "views_cell_storage_protocol_audit_storagecerttab_vue", + "views_cell_storage_protocol_protocolviewdialog_vue", + "views_pilot_service_channel_channelserviceordertab_vue", + "views_pilot_service_channel_channelviewdialog_vue", + "views_pilot_service_channel_index_vue" + ], + "4": [ "api_admin_fetchgetmenulist", "core_componentloader_componentloader", "core_componentloader_componentloader_constructor", @@ -896,195 +923,7 @@ "utils_router_sidebar_menu_filter_ts", "utils_router_ts" ], - "4": [ - "composables_inbound_view_sections_buildinboundbasicsection", - "composables_inbound_view_sections_buildinboundcellstorageviewsections", - "composables_inbound_view_sections_buildinboundresearchdonationviewsections", - "composables_inbound_view_sections_buildreceptionsection", - "composables_inbound_view_sections_buildtransportsection", - "composables_inbound_view_sections_formatmetric", - "composables_inbound_view_sections_resolveinboundprotocolstatus", - "composables_production_view_sections_buildbasefields", - "composables_production_view_sections_buildinboundbasicsection", - "composables_production_view_sections_buildinboundcellstorageproductionviewsections", - "composables_production_view_sections_buildinboundresearchdonationproductionviewsections", - "composables_production_view_sections_buildoutboundbasicexperimentproductionviewsections", - "composables_production_view_sections_buildoutboundclinicalproductionviewsections", - "composables_production_view_sections_buildoutbounddetail", - "composables_production_view_sections_buildoutboundpilotproductionviewsections", - "composables_production_view_sections_buildoutboundsections", - "composables_production_view_sections_buildreceptionsection", - "composables_production_view_sections_buildtemporaryproductionviewsections", - "composables_production_view_sections_buildtransportsections", - "composables_production_view_sections_formatmetric", - "composables_production_view_sections_isoutboundproductionview", - "composables_production_view_sections_sourcetag", - "composables_production_view_sections_wostatustag", - "storage_release_review_storagereleaseviewdialog_formatmetric", - "storage_release_review_storagereleaseviewdialog_protocolstatusdisplay", - "utils_datetime_display_formatdateonly", - "utils_datetime_display_formatdatetimedisplay", - "utils_datetime_display_formatdisplayordash", - "utils_datetime_display_lookslikedatetime", - "utils_datetime_display_ts", - "utils_mask_sensitive_maskidcard", - "utils_mask_sensitive_ts", - "utils_outbound_qc_pilot_view_sections_buildbasicexperimentapplicationfields", - "utils_outbound_qc_pilot_view_sections_builddefaultapplicationfields", - "utils_outbound_qc_pilot_view_sections_buildoutboundpilotcontextsections", - "utils_outbound_qc_pilot_view_sections_isoutboundpilotserviceqctask", - "utils_outbound_qc_pilot_view_sections_resolveoutboundviewvariant", - "utils_outbound_qc_pilot_view_sections_ts", - "utils_production_work_order_card_meta_protocolstatuslabelfortab", - "utils_qc_work_order_card_meta_protocolstatuslabelbysource", - "utils_sample_production_reception_fields_formatprocesstimedate", - "utils_sample_production_reception_fields_formatproductionfieldvalue", - "utils_sample_production_reception_fields_infectiousfourtestlabel", - "utils_sample_production_reception_fields_resolveproductionreceptionfields", - "utils_sample_production_reception_fields_ts", - "utils_sample_reception_view_sections_buildproductionreceptionviewsection", - "utils_sample_reception_view_sections_buildqcreceptionviewfields", - "utils_sample_reception_view_sections_ts", - "utils_status_tag_registry_applicationstatuslabel", - "utils_status_tag_registry_applicationstatustagtype", - "utils_status_tag_registry_biztypelabel", - "utils_status_tag_registry_biztypetagtype", - "utils_status_tag_registry_cellproductstatuslabel", - "utils_status_tag_registry_cellproductstatustagtype", - "utils_status_tag_registry_checkupstatuslabel", - "utils_status_tag_registry_checkupstatustagtype", - "utils_status_tag_registry_createlabelgetter", - "utils_status_tag_registry_createtagtypegetter", - "utils_status_tag_registry_donationstatusdisplaylabel", - "utils_status_tag_registry_feestatuslabel", - "utils_status_tag_registry_feestatustagtype", - "utils_status_tag_registry_infusionmethodlabel", - "utils_status_tag_registry_infusionstatuslabel", - "utils_status_tag_registry_infusionstatustagtype", - "utils_status_tag_registry_isinactiveprotocolstatus", - "utils_status_tag_registry_joinworkorderstatusfilter", - "utils_status_tag_registry_matchesworkorderstatusfilter", - "utils_status_tag_registry_normalizescheduleproductstatuscode", - "utils_status_tag_registry_outboundmaterialcellstatuslabel", - "utils_status_tag_registry_outboundmaterialcellstatustagtype", - "utils_status_tag_registry_productstatuslabel", - "utils_status_tag_registry_productstatustagtype", - "utils_status_tag_registry_protocolstatusdisplaylabel", - "utils_status_tag_registry_protocolstatusdisplaylabelbysource", - "utils_status_tag_registry_qcstatuslabel", - "utils_status_tag_registry_qcstatustagtype", - "utils_status_tag_registry_releasereviewconclusionlabel", - "utils_status_tag_registry_releasereviewconclusiontagtype", - "utils_status_tag_registry_schedulestatuslabel", - "utils_status_tag_registry_schedulestatustagtype", - "utils_status_tag_registry_ts", - "utils_status_tag_registry_txnstatuslabel", - "utils_status_tag_registry_txnstatustagtype", - "utils_status_tag_registry_txntypelabel", - "utils_status_tag_registry_txntypetagtype", - "utils_void_type_dict_buildfallbackoptions", - "utils_void_type_dict_getvoidtypeoptions", - "utils_void_type_dict_loadvoidtypedict", - "utils_void_type_dict_resolvevoidtypelabel", - "utils_void_type_dict_ts", - "views_production_production_work_order_composables_production_view_sections_ts", - "views_quality_inspection_qc_work_order_composables_inbound_view_sections_ts", - "views_quality_inspection_storage_release_review_storagereleaseviewdialog_vue" - ], "5": [ - "checkup_management_checkupmarkcheckeddialog_formatnowdatetime", - "material_index_formattodaydate", - "protocol_protocolformdialog_addpaymentdetail", - "protocol_protocolformdialog_applyfqpaymentdefaults", - "protocol_protocolformdialog_applypaymentpresetformode", - "protocol_protocolformdialog_createemptytransport", - "protocol_protocolformdialog_datetimetoymd", - "protocol_protocolformdialog_defaultinstallmentstartdateymd", - "protocol_protocolformdialog_ensureethnicoptioninlist", - "protocol_protocolformdialog_ensuretransfertypeoptions", - "protocol_protocolformdialog_for", - "protocol_protocolformdialog_fullfileurl", - "protocol_protocolformdialog_haslockedpaymentdetails", - "protocol_protocolformdialog_if", - "protocol_protocolformdialog_initpaymentdetailexpandflags", - "protocol_protocolformdialog_isfqnumericfieldempty", - "protocol_protocolformdialog_normalizesamplerow", - "protocol_protocolformdialog_pad", - "protocol_protocolformdialog_paymentdetailsummary", - "protocol_protocolformdialog_removepaymentdetail", - "protocol_protocolformdialog_resetform", - "protocol_protocolformdialog_scrolltosection", - "protocol_protocolformdialog_togglepaymentdetailexpand", - "utils_protocol_fq_params_change_applyfqparamschange", - "utils_protocol_fq_params_change_buildfqamounts", - "utils_protocol_fq_params_change_countbystatus", - "utils_protocol_fq_params_change_evaluatefqparamschange", - "utils_protocol_fq_params_change_formatmoneysummary", - "utils_protocol_fq_params_change_fqparamssnapshot", - "utils_protocol_fq_params_change_generateinitialfqdetails", - "utils_protocol_fq_params_change_getpaidinstallmentrows", - "utils_protocol_fq_params_change_issamefqparams", - "utils_protocol_fq_params_change_maxpaidinstallmentno", - "utils_protocol_fq_params_change_ratiosequal", - "utils_protocol_fq_params_change_ts", - "utils_protocol_pay_mode_switch_activedetails", - "utils_protocol_pay_mode_switch_applypaymodeswitch", - "utils_protocol_pay_mode_switch_buildinstallmentdetails", - "utils_protocol_pay_mode_switch_calcremainingamount", - "utils_protocol_pay_mode_switch_canaddpaymentdetail", - "utils_protocol_pay_mode_switch_countbystatus", - "utils_protocol_pay_mode_switch_createpaymentdetailrow", - "utils_protocol_pay_mode_switch_evaluatepaymodeswitch", - "utils_protocol_pay_mode_switch_formatmoneysummary", - "utils_protocol_pay_mode_switch_hasblockingstatus", - "utils_protocol_pay_mode_switch_ispaydetaillocked", - "utils_protocol_pay_mode_switch_markpaydetaillocks", - "utils_protocol_pay_mode_switch_sumpaidamount", - "utils_protocol_pay_mode_switch_ts", - "utils_protocol_payment_installment_adddaysymd", - "utils_protocol_payment_installment_addintervalmonthsymd", - "utils_protocol_payment_installment_addmonthsymd", - "utils_protocol_payment_installment_alignfqpaymentdetailsfordisplay", - "utils_protocol_payment_installment_calcfqinstallmentduedate", - "utils_protocol_payment_installment_calcinstallmentdueamounts", - "utils_protocol_payment_installment_calcinstallmentdueamountsbyratios", - "utils_protocol_payment_installment_calcunpaidamountsbyratios", - "utils_protocol_payment_installment_defaultinstallmentamounts", - "utils_protocol_payment_installment_defaultinstallmentratios", - "utils_protocol_payment_installment_finalizeinstallmentratios", - "utils_protocol_payment_installment_isinstallmentamountsvalid", - "utils_protocol_payment_installment_isinstallmentratiosvalid", - "utils_protocol_payment_installment_islegacyinstallmentratios", - "utils_protocol_payment_installment_normalizeinstallmentamounts", - "utils_protocol_payment_installment_resizeinstallmentamounts", - "utils_protocol_payment_installment_resizeinstallmentratios", - "utils_protocol_payment_installment_resolvefqamounts", - "utils_protocol_payment_installment_scaleinstallmentamountstocontract", - "utils_protocol_payment_installment_sortfqpaymentdetails", - "utils_protocol_payment_installment_suminstallmentamounts", - "utils_protocol_payment_installment_syncfqpaymentdetailrowcount", - "utils_protocol_payment_installment_ts", - "utils_protocol_payment_presets_availablepaymodes", - "utils_protocol_payment_presets_getactivesamplecount", - "utils_protocol_payment_presets_isinstallmentpaymode", - "utils_protocol_payment_presets_ispaymodevalidforsamplecount", - "utils_protocol_payment_presets_resolvepaymentpreset", - "utils_protocol_payment_presets_ts", - "utils_sample_reception_lab_storage_code_buildprefilledlabstoragecode", - "utils_sample_reception_lab_storage_code_formatyear", - "utils_sample_reception_lab_storage_code_formatym", - "utils_sample_reception_lab_storage_code_normalizesampletypename", - "utils_sample_reception_lab_storage_code_normalizesourcetype", - "utils_sample_reception_lab_storage_code_parselabstoragereferencedate", - "utils_sample_reception_lab_storage_code_ts", - "utils_transfer_type_dict_gettransfertypeoptions", - "utils_transfer_type_dict_loadtransfertypedict", - "utils_transfer_type_dict_resolvetransfertypelabel", - "utils_transfer_type_dict_resolvetransfertypetagtype", - "utils_transfer_type_dict_ts", - "views_cell_storage_protocol_protocolformdialog_vue" - ], - "6": [ "api_production_fetchaddroutestep", "api_production_fetchallconsumablepacks", "api_production_fetchallconsumables", @@ -1174,6 +1013,91 @@ "api_production_fetchupdatestepreagents", "api_production_ts" ], + "6": [ + "components_core_layouts_art_settings_panel_composables_usesettingshandlers_ts", + "components_core_layouts_art_settings_panel_composables_usesettingspanel_ts", + "components_core_layouts_art_settings_panel_composables_usesettingsstate_ts", + "composables_usesettingshandlers_usesettingshandlers", + "composables_usesettingspanel_usesettingspanel", + "composables_usesettingsstate_usesettingsstate", + "core_iframeroutemanager_iframeroutemanager_add", + "core_routepermissionvalidator_routepermissionvalidator", + "core_routepermissionvalidator_routepermissionvalidator_buildmenupathset", + "core_routepermissionvalidator_routepermissionvalidator_checkpathprefix", + "core_routepermissionvalidator_routepermissionvalidator_haspermission", + "core_routepermissionvalidator_routepermissionvalidator_isdynamicroutematch", + "core_routepermissionvalidator_routepermissionvalidator_matchroute", + "core_routepermissionvalidator_routepermissionvalidator_validatepath", + "core_routevalidator_routevalidator_loglayouterror", + "core_useceremony_useceremony", + "core_usetheme_initializetheme", + "core_usetheme_usetheme", + "env_detect_record_index_if", + "hooks_core_useceremony_ts", + "hooks_core_usetheme_ts", + "post_index_collectallpostbinddeptids", + "post_index_collectpostbinddeptsubtreeids", + "post_index_expandpostbinddepttree", + "post_index_findpostbinddeptnodebyid", + "qc_work_order_qcworkordersamplegroup_handlesiblinglinkclick", + "qc_work_order_qcworkordersamplegroup_workorderstatustagtype", + "qc_work_order_qcworkordersamplegroup_workordertabtitle", + "qc_work_order_qcworkordersinglecard_resolveinboundworkordercardtitle", + "role_index_walk", + "router_core_routepermissionvalidator_ts", + "ui_animation_themeanimation", + "ui_animation_toggletheme", + "ui_animation_toggletransition", + "utils_qc_item_param_options_assignqcitemparamrowkeys", + "utils_qc_item_param_options_formatqcparamoptiontext", + "utils_qc_item_param_options_hydrateqcitemparamsforform", + "utils_qc_item_param_options_onqcitemparamtypechange", + "utils_qc_item_param_options_parseqcparamoptions", + "utils_qc_item_param_options_parseqcparamoptiontext", + "utils_qc_item_param_options_serializeqcitemparamsforsave", + "utils_qc_item_param_options_ts", + "utils_qc_item_param_options_validateqcitemparamsbeforesave", + "utils_qc_work_order_inbound_sample_cards_scrolltoinboundsamplecard", + "utils_qc_work_order_selection_expand_collectinboundsamplesiblingids", + "utils_qc_work_order_selection_expand_expandinboundworkorderidsforexport", + "utils_qc_work_order_selection_expand_isinboundsampleworkorder", + "utils_qc_work_order_selection_expand_resolveinboundsampleselectionkey", + "utils_qc_work_order_selection_expand_ts", + "utils_storage_slot_options_buildfullslotcodefromflat", + "utils_storage_slot_options_buildnodecodepathfromflat", + "utils_storage_slot_options_collectleaffacilitynodesintreeorder", + "utils_storage_slot_options_comparestoragefacilityslots", + "utils_storage_slot_options_countoutputsmissingstorageslot", + "utils_storage_slot_options_decodeslotlayoutorder", + "utils_storage_slot_options_ensurestorageslotsinoptions", + "utils_storage_slot_options_filterstorageslotselectoptions", + "utils_storage_slot_options_getlaststorageslotsearchquery", + "utils_storage_slot_options_getstoragefacilityordernum", + "utils_storage_slot_options_getstorageslotordernum", + "utils_storage_slot_options_isoutputmissingstorageslot", + "utils_storage_slot_options_isstorageslotavailable", + "utils_storage_slot_options_isstorageslotselectoptiondisabled", + "utils_storage_slot_options_loadstorageslotselectoptions", + "utils_storage_slot_options_mapremoteslotselectoption", + "utils_storage_slot_options_mapslotstoselectoptions", + "utils_storage_slot_options_parselegacyrowcolslotcode", + "utils_storage_slot_options_parsestorageslotcode", + "utils_storage_slot_options_sortstoragefacilityslots", + "utils_storage_slot_options_ts", + "utils_storage_slot_options_validateuniquestorageslotids", + "utils_tree_path_buildpathlabelmapfromtreeroots", + "utils_tree_path_buildtreepathlabelfromflat", + "utils_tree_path_findtreeselectshortlabel", + "utils_tree_path_resolvetreepathdisplay", + "utils_tree_path_ts", + "utils_ui_animation_ts", + "views_quality_inspection_env_detect_record_index_vue", + "views_quality_inspection_qc_work_order_qcworkordercardlist_vue", + "views_quality_inspection_qc_work_order_qcworkordersamplegroup_vue", + "views_quality_inspection_qc_work_order_qcworkordersinglecard_vue", + "views_system_post_index_vue", + "views_system_role_index_vue" + ], "7": [ "api_oaapproval_fetchaddsignoatask", "api_oaapproval_fetchapproveoatask", @@ -1191,13 +1115,11 @@ "api_oaapproval_fetchoainstancedetail", "api_oaapproval_fetchoarolelist", "api_oaapproval_fetchoaroleusers", - "api_oaapproval_fetchoatasks", "api_oaapproval_fetchoatemplatedetail", "api_oaapproval_fetchoatemplates", "api_oaapproval_fetchpublishoaapp", "api_oaapproval_fetchrejectoatask", "api_oaapproval_fetchreplaceoaroleusers", - "api_oaapproval_fetchresubmitoainstance", "api_oaapproval_fetchreturnoatask", "api_oaapproval_fetchsaveoaappdraft", "api_oaapproval_fetchstartoainstance", @@ -1255,7 +1177,6 @@ "flow_tree_types_removechildnode", "flow_tree_types_removefromsubtree", "flow_tree_types_summarizeapprover", - "placeholder_runtimelist_load", "utils_oa_app_icons_pickrandomoaappiconurl", "utils_oa_app_icons_resolveoaappiconurl", "utils_oa_app_icons_ts", @@ -1320,7 +1241,6 @@ "core_routevalidator_routevalidator_checknestedindexcomponent", "core_routevalidator_routevalidator_resolvepath", "core_routevalidator_routevalidator_validate", - "customer_index_handlebatchdelete", "dept_index_catch", "list_donationauditdialog_handlesubmit", "list_donationauditdialog_resetform", @@ -1347,360 +1267,307 @@ "views_system_product_index_vue" ], "9": [ - "api_admin_fetchuserlist", - "api_production_task_fetchaddtaskstep", - "api_production_task_fetchcopytaskstep", - "api_production_task_fetchcreateproductiontask", - "api_production_task_fetchdeleteproductiontask", - "api_production_task_fetchdeletetaskstep", - "api_production_task_fetchdispatchproductiontasksteps", - "api_production_task_fetchforwardproductiontask", - "api_production_task_fetchproductiontaskdetail", - "api_production_task_fetchproductiontaskeditorinit", - "api_production_task_fetchproductiontasklist", - "api_production_task_fetchproductiontasksbyworkorderids", - "api_production_task_fetchreassignproductiontask", - "api_production_task_fetchreordertasksteps", - "api_production_task_fetchreplacestepconfiguredreagents", - "api_production_task_fetchreplacestepconsumables", - "api_production_task_fetchreplacestepdatacollection", - "api_production_task_fetchreplacestepoutputs", - "api_production_task_fetchreplacestepreagents", - "api_production_task_fetchsettaskinputs", - "api_production_task_fetchsettaskoutputs", - "api_production_task_fetchspawntemporaryworkorderfromtask", - "api_production_task_fetchupdateproductiontask", - "api_production_task_fetchupdateproductiontaskstatus", - "api_production_task_fetchupdatetaskstep", - "api_production_task_groupproductiontasksbyworkorderid", - "api_production_task_scopequery", - "api_production_task_ts", - "attachment_zip_progress_dialog_index_handledialogclose", - "components_business_attachment_zip_progress_dialog_index_vue", - "components_core_layouts_art_settings_panel_widget_settingitem_vue", - "customer_index_handleview", - "infusion_schedule_management_infusionschedulehandoverdialog_remotesearchhandoverusers", - "modules_user_search_handlereset", - "modules_user_search_handlesearch", - "production_work_order_completeproductiontaskdialog_handleclose", - "production_work_order_completeproductiontaskdialog_handlesubmit", - "production_work_order_edittaskinfodialog_handleclose", - "production_work_order_edittaskinfodialog_handlesubmit", - "production_work_order_edittaskinfodialog_loadtaskdetail", - "production_work_order_forwardtaskdialog_handleclose", - "production_work_order_forwardtaskdialog_handlesubmit", - "production_work_order_forwardtaskdialog_onuserselectvisible", - "production_work_order_forwardtaskdialog_remotesearchusers", - "production_work_order_taskexecutiondialog_handleforwardsuccess", - "production_work_order_taskexecutiondialog_handlespawntemporaryworkorderclick", - "production_work_order_taskexecutiondialog_if", - "production_work_order_taskexecutiondialog_onsteplistdrop", - "production_work_order_taskexecutiondialog_openforwarddialog", - "production_work_order_taskexecutiondialog_savetaskattachmentsmanual", - "production_work_order_taskexecutiondialog_savetaskequipmentmanual", - "production_work_order_taskexecutiondialog_savetaskoutputsmanual", - "production_work_order_taskexecutiondialog_stepseqclass", - "production_work_order_taskexecutiondialog_submitspawntemporary", - "tabs_qcworkordertabpanel_clearworkorderselection", - "tabs_qcworkordertabpanel_handlecommand", - "tabs_qcworkordertabpanel_handleexportattachments", - "tabs_qcworkordertabpanel_handlereset", - "tabs_qcworkordertabpanel_handlesampletypechipclick", - "tabs_qcworkordertabpanel_handlesearch", - "tabs_qcworkordertabpanel_handleworkorderpagechange", - "tabs_qcworkordertabpanel_handleworkorderpagesizechange", - "tabs_qcworkordertabpanel_issampletypechipactive", - "tabs_qcworkordertabpanel_onsamplespecialchanged", - "tabs_qcworkordertabpanel_onworkordertaskschanged", - "views_production_production_work_order_completeproductiontaskdialog_vue", - "views_production_production_work_order_edittaskinfodialog_vue", - "views_production_production_work_order_forwardtaskdialog_vue", - "views_production_production_work_order_taskexecutiondialog_vue", - "views_quality_inspection_qc_work_order_tabs_qcworkordertabpanel_vue", - "views_system_user_modules_user_search_vue", - "widget_settingitem_emit", - "widget_settingitem_if" + "api_production_task_fetchmyproductiontasks", + "composables_useinboundsiblingnavigation_useinboundsiblingnavigation", + "composables_useqcworkordertabpage_shouldapplytriggersourcefilter", + "composables_useqcworkordertabpage_useqcworkordertabpage", + "utils_production_mine_task_groups_buildminetablerows", + "utils_production_mine_task_groups_buildpresettasksmap", + "utils_production_mine_task_groups_buildworkorderfromtasks", + "utils_production_mine_task_groups_enrichmineentrieswithworkorders", + "utils_production_mine_task_groups_fetchallmineproductiontasks", + "utils_production_mine_task_groups_fetchminetasksbyscope", + "utils_production_mine_task_groups_filtermineentriesbyworkordersearch", + "utils_production_mine_task_groups_groupminetasksbyworkorder", + "utils_production_mine_task_groups_keywordmatchesworkorder", + "utils_production_mine_task_groups_paginatemineentries", + "utils_production_mine_task_groups_resolveworkordertabkey", + "utils_production_mine_task_groups_ts", + "utils_production_work_order_card_meta_buildinboundmetafields", + "utils_production_work_order_card_meta_formatoutboundschedulesortno", + "utils_production_work_order_card_meta_formatoutboundscheduletotalcount", + "utils_production_work_order_card_meta_getcardmetaconfig", + "utils_production_work_order_card_meta_getcardmetaconfigforlegacytab", + "utils_production_work_order_card_meta_protocolstatustagtypefortab", + "utils_production_work_order_card_meta_resolvecardmetaforrow", + "utils_production_work_order_card_meta_ts", + "utils_production_work_order_category_istemporaryproductionworkorder", + "utils_production_work_order_category_productionworkordercategorylabel", + "utils_production_work_order_category_productionworkordercategorytagtype", + "utils_production_work_order_category_resolveworkordercategorykey", + "utils_production_work_order_category_shouldshowtaskheaderlabstoragecode", + "utils_production_work_order_category_temporaryproductionexecutiondialogtitle", + "utils_production_work_order_category_toalltablistquery", + "utils_production_work_order_category_ts", + "utils_production_work_order_category_workordermatchescategory", + "utils_production_work_order_tabs_getproductionworkordertab", + "utils_production_work_order_tabs_isallproductionworkordertab", + "utils_production_work_order_tabs_keywordplaceholderfortab", + "utils_production_work_order_tabs_parseproductionworkordertabkey", + "utils_production_work_order_tabs_resolveeffectiverowtabkey", + "utils_production_work_order_tabs_resolvetabkeyfromworkorder", + "utils_production_work_order_tabs_tabsupportsinactiveprotocolfilter", + "utils_production_work_order_tabs_toworkorderlistquery", + "utils_production_work_order_tabs_ts", + "utils_production_work_order_tabs_workordermatchestab", + "utils_qc_mine_task_groups_buildminecardlistmodel", + "utils_qc_mine_task_groups_buildminetablerows", + "utils_qc_mine_task_groups_buildpresettasksmap", + "utils_qc_mine_task_groups_buildworkorderfromtasks", + "utils_qc_mine_task_groups_dateinrange", + "utils_qc_mine_task_groups_enrichmineentrieswithworkorders", + "utils_qc_mine_task_groups_fetchallminetasks", + "utils_qc_mine_task_groups_filtermineentriesbyworkordersearch", + "utils_qc_mine_task_groups_groupminetasksbyworkorder", + "utils_qc_mine_task_groups_keywordmatchesworkorder", + "utils_qc_mine_task_groups_paginatemineentries", + "utils_qc_mine_task_groups_resolveworkordertabkey", + "utils_qc_mine_task_groups_ts", + "utils_qc_work_order_card_meta_cardmetausesgroupedlist", + "utils_qc_work_order_card_meta_cardmetausesinboundgroups", + "utils_qc_work_order_card_meta_cardmetausesoutboundgroups", + "utils_qc_work_order_category_matchesalltabtriggersource", + "utils_qc_work_order_category_qcworkordercategorylabel", + "utils_qc_work_order_category_qcworkordercategorytagtype", + "utils_qc_work_order_category_resolveworkordercategorykey", + "utils_qc_work_order_category_toalltablistquery", + "utils_qc_work_order_category_ts", + "utils_qc_work_order_category_workordermatchescategory", + "utils_qc_work_order_tabs_filtertimelabelfortab", + "utils_qc_work_order_tabs_getqcworkordertab", + "utils_qc_work_order_tabs_isallqcworkordertab", + "utils_qc_work_order_tabs_isinboundsampleqctab", + "utils_qc_work_order_tabs_keywordplaceholderfortab", + "utils_qc_work_order_tabs_parseqcworkordertabkey", + "utils_qc_work_order_tabs_resolveeffectiverowtabkey", + "utils_qc_work_order_tabs_resolvetabkeyfromworkorder", + "utils_qc_work_order_tabs_tabusesinfusiontimefilter", + "utils_qc_work_order_tabs_toworkorderlistquery", + "utils_qc_work_order_tabs_ts", + "utils_qc_work_order_tabs_workordermatchestab", + "views_quality_inspection_qc_work_order_composables_useqcworkordertabpage_ts" ], "10": [ - "components_core_layouts_art_settings_panel_composables_usesettingshandlers_ts", - "components_core_layouts_art_settings_panel_composables_usesettingspanel_ts", - "components_core_layouts_art_settings_panel_composables_usesettingsstate_ts", - "composables_usesettingshandlers_usesettingshandlers", - "composables_usesettingspanel_usesettingspanel", - "composables_usesettingsstate_usesettingsstate", - "core_iframeroutemanager_iframeroutemanager_add", - "core_routepermissionvalidator_routepermissionvalidator", - "core_routepermissionvalidator_routepermissionvalidator_buildmenupathset", - "core_routepermissionvalidator_routepermissionvalidator_checkpathprefix", - "core_routepermissionvalidator_routepermissionvalidator_haspermission", - "core_routepermissionvalidator_routepermissionvalidator_isdynamicroutematch", - "core_routepermissionvalidator_routepermissionvalidator_matchroute", - "core_routepermissionvalidator_routepermissionvalidator_validatepath", - "core_routevalidator_routevalidator_loglayouterror", - "core_useceremony_useceremony", - "core_usetheme_initializetheme", - "core_usetheme_usetheme", - "env_detect_record_index_if", - "hooks_core_useceremony_ts", - "hooks_core_usetheme_ts", - "role_index_walk", - "router_core_routepermissionvalidator_ts", - "ui_animation_themeanimation", - "ui_animation_toggletheme", - "ui_animation_toggletransition", - "utils_qc_item_param_options_assignqcitemparamrowkeys", - "utils_qc_item_param_options_formatqcparamoptiontext", - "utils_qc_item_param_options_hydrateqcitemparamsforform", - "utils_qc_item_param_options_onqcitemparamtypechange", - "utils_qc_item_param_options_parseqcparamoptions", - "utils_qc_item_param_options_parseqcparamoptiontext", - "utils_qc_item_param_options_serializeqcitemparamsforsave", - "utils_qc_item_param_options_ts", - "utils_qc_item_param_options_validateqcitemparamsbeforesave", - "utils_qc_work_order_selection_expand_collectinboundsamplesiblingids", - "utils_qc_work_order_selection_expand_expandinboundworkorderidsforexport", - "utils_qc_work_order_selection_expand_isinboundsampleworkorder", - "utils_qc_work_order_selection_expand_resolveinboundsampleselectionkey", - "utils_qc_work_order_selection_expand_ts", - "utils_storage_slot_options_buildfullslotcodefromflat", - "utils_storage_slot_options_buildnodecodepathfromflat", - "utils_storage_slot_options_collectleaffacilitynodesintreeorder", - "utils_storage_slot_options_comparestoragefacilityslots", - "utils_storage_slot_options_countoutputsmissingstorageslot", - "utils_storage_slot_options_decodeslotlayoutorder", - "utils_storage_slot_options_ensurestorageslotsinoptions", - "utils_storage_slot_options_filterstorageslotselectoptions", - "utils_storage_slot_options_getlaststorageslotsearchquery", - "utils_storage_slot_options_getstoragefacilityordernum", - "utils_storage_slot_options_getstorageslotordernum", - "utils_storage_slot_options_isoutputmissingstorageslot", - "utils_storage_slot_options_isstorageslotavailable", - "utils_storage_slot_options_isstorageslotselectoptiondisabled", - "utils_storage_slot_options_loadstorageslotselectoptions", - "utils_storage_slot_options_mapremoteslotselectoption", - "utils_storage_slot_options_mapslotstoselectoptions", - "utils_storage_slot_options_parselegacyrowcolslotcode", - "utils_storage_slot_options_parsestorageslotcode", - "utils_storage_slot_options_sortstoragefacilityslots", - "utils_storage_slot_options_ts", - "utils_storage_slot_options_validateuniquestorageslotids", - "utils_tree_path_buildpathlabelmapfromtreeroots", - "utils_tree_path_buildtreepathlabelfromflat", - "utils_tree_path_findtreeselectshortlabel", - "utils_tree_path_resolvetreepathdisplay", - "utils_tree_path_ts", - "utils_ui_animation_ts", - "views_quality_inspection_env_detect_record_index_vue", - "views_system_role_index_vue" + "composables_production_view_sections_buildbasefields", + "composables_production_view_sections_buildfeesection", + "composables_production_view_sections_buildinboundbasicsection", + "composables_production_view_sections_buildinboundcellstorageproductionviewsections", + "composables_production_view_sections_buildinboundresearchdonationproductionviewsections", + "composables_production_view_sections_buildoutboundbasicexperimentproductionviewsections", + "composables_production_view_sections_buildoutboundclinicalproductionviewsections", + "composables_production_view_sections_buildoutbounddetail", + "composables_production_view_sections_buildoutboundpilotproductionviewsections", + "composables_production_view_sections_buildoutboundsections", + "composables_production_view_sections_buildreceptionsection", + "composables_production_view_sections_buildtemporaryproductionviewsections", + "composables_production_view_sections_buildtransportsections", + "composables_production_view_sections_formatmetric", + "composables_production_view_sections_isoutboundproductionview", + "composables_production_view_sections_sourcetag", + "composables_production_view_sections_wostatustag", + "storage_release_review_storagereleaseviewdialog_formatmetric", + "storage_release_review_storagereleaseviewdialog_protocolstatusdisplay", + "utils_mask_sensitive_maskidcard", + "utils_mask_sensitive_ts", + "utils_outbound_qc_pilot_view_sections_buildbasicexperimentapplicationfields", + "utils_outbound_qc_pilot_view_sections_builddefaultapplicationfields", + "utils_outbound_qc_pilot_view_sections_buildoutboundpilotcontextsections", + "utils_outbound_qc_pilot_view_sections_isoutboundpilotserviceqctask", + "utils_outbound_qc_pilot_view_sections_resolveoutboundviewvariant", + "utils_outbound_qc_pilot_view_sections_ts", + "utils_production_work_order_card_meta_protocolstatuslabelfortab", + "utils_qc_work_order_card_meta_protocolstatuslabelbysource", + "utils_status_tag_registry_applicationstatuslabel", + "utils_status_tag_registry_applicationstatustagtype", + "utils_status_tag_registry_biztypelabel", + "utils_status_tag_registry_biztypetagtype", + "utils_status_tag_registry_cellproductstatuslabel", + "utils_status_tag_registry_cellproductstatustagtype", + "utils_status_tag_registry_checkupstatuslabel", + "utils_status_tag_registry_checkupstatustagtype", + "utils_status_tag_registry_createlabelgetter", + "utils_status_tag_registry_createtagtypegetter", + "utils_status_tag_registry_donationstatusdisplaylabel", + "utils_status_tag_registry_feestatuslabel", + "utils_status_tag_registry_feestatustagtype", + "utils_status_tag_registry_infusionmethodlabel", + "utils_status_tag_registry_infusionstatuslabel", + "utils_status_tag_registry_infusionstatustagtype", + "utils_status_tag_registry_isinactiveprotocolstatus", + "utils_status_tag_registry_joinworkorderstatusfilter", + "utils_status_tag_registry_matchesworkorderstatusfilter", + "utils_status_tag_registry_normalizescheduleproductstatuscode", + "utils_status_tag_registry_outboundmaterialcellstatuslabel", + "utils_status_tag_registry_outboundmaterialcellstatustagtype", + "utils_status_tag_registry_productstatuslabel", + "utils_status_tag_registry_productstatustagtype", + "utils_status_tag_registry_protocolstatusdisplaylabel", + "utils_status_tag_registry_protocolstatusdisplaylabelbysource", + "utils_status_tag_registry_qcstatuslabel", + "utils_status_tag_registry_qcstatustagtype", + "utils_status_tag_registry_releasereviewconclusionlabel", + "utils_status_tag_registry_releasereviewconclusiontagtype", + "utils_status_tag_registry_schedulestatuslabel", + "utils_status_tag_registry_schedulestatustagtype", + "utils_status_tag_registry_ts", + "utils_status_tag_registry_txnstatuslabel", + "utils_status_tag_registry_txnstatustagtype", + "utils_status_tag_registry_txntypelabel", + "utils_status_tag_registry_txntypetagtype", + "utils_void_type_dict_buildfallbackoptions", + "utils_void_type_dict_getvoidtypeoptions", + "utils_void_type_dict_loadvoidtypedict", + "utils_void_type_dict_resolvevoidtypelabel", + "utils_void_type_dict_ts", + "views_production_production_work_order_composables_production_view_sections_ts", + "views_quality_inspection_storage_release_review_storagereleaseviewdialog_vue" ], "11": [ - "api_admin_fetchfullmoontodolist", - "api_admin_fetchupdatefullmoontodoinsurance", - "api_collection_protocol_fetchcollectionprotocolauditlist", - "api_collection_protocol_fetchcollectionprotocoldetail", - "api_collection_protocol_fetchcollectionprotocollist", - "api_collection_protocol_fetchcompleteprotocolinvoicerequest", - "api_collection_protocol_fetchcreatecollectionprotocol", - "api_collection_protocol_fetchcreateprotocolinvoicerequest", - "api_collection_protocol_fetchdeletecollectionprotocol", - "api_collection_protocol_fetchinvoiceeligiblepayments", - "api_collection_protocol_fetchpaymentdetaillist", - "api_collection_protocol_fetchprotocolinvoicependingcount", - "api_collection_protocol_fetchprotocolinvoicerequestlist", - "api_collection_protocol_fetchprotocolinvoicerequests", - "api_collection_protocol_fetchreceiptconfirmedlist", - "api_collection_protocol_fetchreceiptconfirmlist", - "api_collection_protocol_fetchreceiptconfirmreject", - "api_collection_protocol_fetchreceiptconfirmsubmit", - "api_collection_protocol_fetchrefundconfirmedlist", - "api_collection_protocol_fetchrefundconfirmlist", - "api_collection_protocol_fetchrefundconfirmreject", - "api_collection_protocol_fetchrefundconfirmsubmit", - "api_collection_protocol_fetchsubmitprotocolaudit", - "api_collection_protocol_fetchsubmitreceiptfinance", - "api_collection_protocol_fetchsubmitreceiptfinancebatch", - "api_collection_protocol_fetchsubmitrefundfinance", - "api_collection_protocol_fetchsubmitrefundfinancebatch", - "api_collection_protocol_fetchupdatecollectionprotocol", - "api_collection_protocol_fetchupdatepaymentdetaildraft", - "api_collection_protocol_ts", - "pilot_application_pilotapplicationtab_cleartableselection", - "protocol_audit_fullmoontodotab_buildinsuranceattachmentsvalue", - "protocol_audit_fullmoontodotab_buildinsurancepayload", - "protocol_audit_fullmoontodotab_formatymdfromany", - "protocol_audit_fullmoontodotab_fullfileurl", - "protocol_audit_fullmoontodotab_getinvoiceattachmentfiles", - "protocol_audit_fullmoontodotab_getinvoicerequestitems", - "protocol_audit_fullmoontodotab_handlebatchedit", - "protocol_audit_fullmoontodotab_handleedit", - "protocol_audit_fullmoontodotab_handleexportinsurancesheet", - "protocol_audit_fullmoontodotab_handleinsurancecompanychange", - "protocol_audit_fullmoontodotab_handleinsurancedialogclosed", - "protocol_audit_fullmoontodotab_handleinsurancetypechange", - "protocol_audit_fullmoontodotab_handleinvoiceattachmentpreview", - "protocol_audit_fullmoontodotab_handleinvoicecreatedialogclosed", - "protocol_audit_fullmoontodotab_handleinvoicedialogclosed", - "protocol_audit_fullmoontodotab_handleinvoiceeligibleselectionchange", - "protocol_audit_fullmoontodotab_handlepreviewattachment", - "protocol_audit_fullmoontodotab_handlereset", - "protocol_audit_fullmoontodotab_handlesearch", - "protocol_audit_fullmoontodotab_handlesubmit", - "protocol_audit_fullmoontodotab_isimagefile", - "protocol_audit_fullmoontodotab_isvideofile", - "protocol_audit_fullmoontodotab_loaddata", - "protocol_audit_fullmoontodotab_loadinvoicedialogdata", - "protocol_audit_fullmoontodotab_loadinvoiceeligible", - "protocol_audit_fullmoontodotab_loadinvoicehistory", - "protocol_audit_fullmoontodotab_normalizenewbornsex", - "protocol_audit_fullmoontodotab_openinvoicecreatedialog", - "protocol_audit_fullmoontodotab_openinvoicedialog", - "protocol_audit_fullmoontodotab_openinvoiceviewdialog", - "protocol_audit_fullmoontodotab_parseinsuranceattachmentsfromurls", - "protocol_audit_fullmoontodotab_removeattachment", - "protocol_audit_fullmoontodotab_resetdialogcontext", - "protocol_audit_fullmoontodotab_resetformfields", - "protocol_audit_fullmoontodotab_resetinvoiceform", - "protocol_audit_fullmoontodotab_resolveprotocolid", - "protocol_audit_fullmoontodotab_submitinvoicerequest", - "views_cell_storage_protocol_audit_fullmoontodotab_vue" + "api_qc_task_fetchcompleteqctask", + "api_qc_task_fetchcreateqctask", + "api_qc_task_fetchdeleteqctask", + "api_qc_task_fetchmyqctasklist", + "api_qc_task_fetchqctaskdetail", + "api_qc_task_fetchqctasklist", + "api_qc_task_fetchstartqctask", + "api_qc_task_fetchupdateqctaskattachments", + "api_qc_task_ts", + "composables_inbound_view_sections_buildtemporaryviewsections", + "composables_useinboundsiblingnavigation_buildinsertedsiblingcard", + "composables_useinboundsiblingnavigation_fetchminetasksforworkorders", + "composables_useinboundsiblingnavigation_resolveshowprotocolpaymentatgroup", + "pilot_application_applicationviewdialog_for", + "process_processroutetab_for", + "process_processroutetab_if", + "process_processroutetab_set", + "qc_work_order_qcworkorderprotocolgroup_gateworkorder", + "qc_work_order_qcworkorderprotocolgroup_sampletabstatuslabel", + "qc_work_order_qcworkorderprotocolgroup_sampletabstatustagtype", + "qc_work_order_qcworkorderprotocolgroup_sampletypelabel", + "qc_work_order_qcworkorderprotocolgroup_workorderstatustagtype", + "source_chain_chaintoflow_annotateforkedges", + "source_chain_chaintoflow_chainapitoelements", + "source_chain_chaintoflow_haschaingraphcontent", + "source_chain_chaintoflow_layoutchainelements", + "source_chain_chaintoflow_makeflowedge", + "source_chain_chaintoflow_makeflownode", + "source_chain_chaintoflow_walkancestorbranch", + "source_chain_chaintoflow_walkancestorparents", + "storage_facility_index_if", + "utils_cell_product_spec_normalizecellproductrow", + "utils_cell_product_spec_resolvecellproductspecdisplay", + "utils_cell_product_spec_ts", + "utils_inbound_sample_special_mark_caneditinboundsamplespecialmark", + "utils_inbound_sample_special_mark_resolveinboundsamplespecialmarktarget", + "utils_inbound_sample_special_mark_resolveinboundsamplespecialmarktargetfromrow", + "utils_inbound_sample_special_mark_ts", + "utils_qc_work_order_card_meta_buildprotocolgroupprogresslabel", + "utils_qc_work_order_groups_buildalltablistitems", + "utils_qc_work_order_groups_countconfiguredsamplesinprotocolgroup", + "utils_qc_work_order_groups_groupinboundqcworkorders", + "utils_qc_work_order_groups_groupinboundqcworkordersbyprotocol", + "utils_qc_work_order_groups_groupoutboundqcworkorders", + "utils_qc_work_order_groups_isgatetriggersource", + "utils_qc_work_order_groups_istemporaryqcfromproduction", + "utils_qc_work_order_groups_matchestemporaryqcsourcefilter", + "utils_qc_work_order_groups_protocolgroupsorttime", + "utils_qc_work_order_groups_resolvegateworkorderforsamplegroup", + "utils_qc_work_order_groups_resolveinboundprotocolgroupkey", + "utils_qc_work_order_groups_resolveinboundsamplegroupkey", + "utils_qc_work_order_groups_sortworkordersingroup", + "utils_qc_work_order_groups_temporaryqcsourcelabel", + "utils_qc_work_order_groups_temporaryqcsourcetagtype", + "utils_qc_work_order_groups_triggersortweight", + "utils_qc_work_order_groups_triggersourcetablabel", + "utils_qc_work_order_groups_ts", + "utils_qc_work_order_inbound_sample_cards_buildinboundsamplecardanchorid", + "utils_qc_work_order_inbound_sample_cards_buildinboundsamplelistitems", + "utils_qc_work_order_inbound_sample_cards_buildlinksfromvisiblegroups", + "utils_qc_work_order_inbound_sample_cards_buildprotocolsiblinglinksfromsamples", + "utils_qc_work_order_inbound_sample_cards_protocolsorttime", + "utils_qc_work_order_inbound_sample_cards_resolveprotocolsiblinglinksforgroup", + "utils_qc_work_order_inbound_sample_cards_resolveprotocolsiblingsamplesforgroup", + "utils_qc_work_order_inbound_sample_cards_sampletypenameforgroup", + "utils_qc_work_order_inbound_sample_cards_ts", + "views_operations_storage_facility_index_vue", + "views_pilot_service_pilot_application_applicationviewdialog_vue", + "views_production_cell_product_source_chain_chaintoflow_ts", + "views_production_process_processroutetab_vue", + "views_quality_inspection_qc_work_order_composables_useinboundsiblingnavigation_ts", + "views_quality_inspection_qc_work_order_qcworkorderprotocolgroup_vue" ], "12": [ - "api_ethnic_fetchethniclist", - "api_ethnic_ts", - "components_business_sample_transport_form_section_index_vue", - "list_donationformdialog_applydonationbundletoform", - "list_donationformdialog_createemptytransport", - "list_donationformdialog_ensureethnicoptioninlist", - "list_donationformdialog_fullfileurl", - "list_donationformdialog_handleopenforadd", - "list_donationformdialog_if", - "list_donationformdialog_loadethnicoptions", - "list_donationformdialog_normalizesamplerow", - "list_donationformdialog_resetform", - "list_donationformdialog_scrolltosection", - "pilot_application_applicationformdialog_if", - "pilot_application_applicationformdialog_remotesearchcustomers", - "protocol_protocolformdialog_loadethnicoptions", - "sample_transport_form_section_index_if", - "utils_chinese_datetime_parse_formatdatetimetominute", - "utils_chinese_datetime_parse_handlechinesedatetimepaste", - "utils_chinese_datetime_parse_parsechinesedatetimetext", - "utils_chinese_datetime_parse_ts", - "utils_chinese_numeral_parse_parsebirthorder", - "utils_chinese_numeral_parse_parsechinesenumeral", - "utils_chinese_numeral_parse_ts", - "utils_donation_standard_import_parse_addsamplehint", - "utils_donation_standard_import_parse_earliestcollecttime", - "utils_donation_standard_import_parse_isblankstring", - "utils_donation_standard_import_parse_isemptynumber", - "utils_donation_standard_import_parse_ismaternalbloodempty", - "utils_donation_standard_import_parse_matchcellsampletype", - "utils_donation_standard_import_parse_matchexpresscompany", - "utils_donation_standard_import_parse_matchsampletypebyexactname", - "utils_donation_standard_import_parse_normalizeline", - "utils_donation_standard_import_parse_parsedatetime", - "utils_donation_standard_import_parse_parsedeliverymode", - "utils_donation_standard_import_parse_parsedonationstandardimporttext", - "utils_donation_standard_import_parse_parsescore", - "utils_donation_standard_import_parse_parsesex", - "utils_donation_standard_import_parse_parseweightgram", - "utils_donation_standard_import_parse_resolvesamplecollecthint", - "utils_donation_standard_import_parse_resolvetransporttype", - "utils_donation_standard_import_parse_splitkeyvalue", - "utils_donation_standard_import_parse_ts", - "utils_numeric_input_parse_extractnumericpart", - "utils_numeric_input_parse_ts", - "utils_protocol_standard_import_parse_earliestcollecttime", - "utils_protocol_standard_import_parse_extractcarriernamefromtransport", - "utils_protocol_standard_import_parse_ismaternalbloodempty", - "utils_protocol_standard_import_parse_normalizechinesedatetimeliteral", - "utils_protocol_standard_import_parse_normalizeline", - "utils_protocol_standard_import_parse_parsedatetime", - "utils_protocol_standard_import_parse_parsedeliverymode", - "utils_protocol_standard_import_parse_parsemoney", - "utils_protocol_standard_import_parse_parsepaymenttransfersegments", - "utils_protocol_standard_import_parse_parsepaymodefromtext", - "utils_protocol_standard_import_parse_parseprotocolstandardimporttext", - "utils_protocol_standard_import_parse_parsescore", - "utils_protocol_standard_import_parse_parsesex", - "utils_protocol_standard_import_parse_resolvesamplecodehint", - "utils_protocol_standard_import_parse_resolvesamplecollecthint", - "utils_protocol_standard_import_parse_resolvetransfertypecode", - "utils_protocol_standard_import_parse_splitkeyvalue", - "utils_protocol_standard_import_parse_ts", - "utils_protocol_standard_import_parse_upsertsamplehint", - "views_pilot_service_pilot_application_applicationformdialog_vue", - "views_research_donation_list_donationformdialog_vue" - ], - "13": [ - "api_admin_fetchcreatemenu", - "api_admin_fetchdeletemenu", - "api_admin_fetchmenutree", - "api_admin_fetchupdatemenu", - "api_env_detect_item_fetchcreateenvdetectitem", - "api_env_detect_item_fetchdeleteenvdetectitem", - "api_env_detect_item_fetchenvdetectitemdetail", - "api_env_detect_item_fetchenvdetectitemlist", - "api_env_detect_item_fetchenvdetectitemsactive", - "api_env_detect_item_fetchupdateenvdetectitem", - "api_env_detect_item_ts", "category_index_catch", "category_index_collectids", "category_index_handlecategorytableselectionchange", "category_index_handleview", "components_business_system_view_dialog_index_vue", + "composables_inbound_view_sections_buildinboundbasicsection", + "composables_inbound_view_sections_buildinboundcellstorageviewsections", + "composables_inbound_view_sections_buildinboundresearchdonationviewsections", + "composables_inbound_view_sections_buildreceptionsection", + "composables_inbound_view_sections_buildtransportsection", + "composables_inbound_view_sections_formatmetric", + "composables_inbound_view_sections_resolveinboundprotocolstatus", "composables_useinboundqcviewdialog_useinboundqcviewdialog", "composables_useoutboundqcviewdialog_useoutboundqcviewdialog", - "dept_index_get", - "dept_index_postorder", - "dept_index_preorder", - "env_detect_item_index_handleadd", - "env_detect_item_index_handlebatchdelete", - "env_detect_item_index_handledelete", - "env_detect_item_index_handleedit", - "env_detect_item_index_handlereset", - "env_detect_item_index_handlesearch", - "env_detect_item_index_handleselectionchange", - "env_detect_item_index_handlesubmit", - "env_detect_item_index_handleview", - "env_detect_item_index_loaddata", - "env_detect_item_index_resetform", - "menu_index_applytreeexpand", - "menu_index_handleadd", - "menu_index_handleaddchild", - "menu_index_handledelete", - "menu_index_handledialogclose", - "menu_index_handledropdowncommand", - "menu_index_handleedit", - "menu_index_handlereset", - "menu_index_handlesearch", - "menu_index_handleselectionchange", - "menu_index_handlesubmit", - "menu_index_handleview", - "menu_index_loaddata", - "menu_index_resetform", - "menu_index_toggleexpand", - "post_index_collectallpostbinddeptids", - "post_index_collectpostbinddeptsubtreeids", - "post_index_expandpostbinddepttree", - "post_index_findpostbinddeptnodebyid", + "composables_useqcworkordertaskviewsections_appendtaskresultsections", + "composables_useqcworkordertaskviewsections_batchtasksforpanelslot", + "composables_useqcworkordertaskviewsections_buildconfiguredonlysection", + "composables_useqcworkordertaskviewsections_isbatchtaskpanelslot", + "composables_useqcworkordertaskviewsections_loadenrichedqcworkordertasks", + "composables_useqcworkordertaskviewsections_materialrowsfromapi", + "composables_useqcworkordertaskviewsections_taskattachmentslotname", + "composables_useqcworkordertaskviewsections_taskmaterialslotname", + "composables_useqcworkordertaskviewsections_useqcworkordertaskslothelpers", "reagent_index_isstocklow", "reagent_index_sourcetypelabel", "reagent_index_sourcetypetagtype", "reagent_index_truncatetext", "user_index_return", + "utils_clinical_payment_flow_steps_buildpaymentflowsteps", + "utils_clinical_payment_flow_steps_dash", + "utils_clinical_payment_flow_steps_formatamount", + "utils_clinical_payment_flow_steps_hasfinancereceipt", + "utils_clinical_payment_flow_steps_hasfinancerefund", + "utils_clinical_payment_flow_steps_hasreceiptsubmit", + "utils_clinical_payment_flow_steps_hasrefundsubmit", + "utils_clinical_payment_flow_steps_receiptsubmittime", + "utils_clinical_payment_flow_steps_resolvestepstate", + "utils_clinical_payment_flow_steps_ts", + "utils_datetime_display_formatdateonly", + "utils_datetime_display_formatdatetimedisplay", + "utils_datetime_display_formatdisplayordash", + "utils_datetime_display_lookslikedatetime", + "utils_datetime_display_ts", + "utils_qc_inspection_batch_batchtaskspanelslot", + "utils_qc_inspection_batch_buildbatchsectionsfrombatches", + "utils_qc_inspection_batch_buildbatchsectionsfromtasks", + "utils_qc_inspection_batch_createemptyinspectionbatch", + "utils_qc_inspection_batch_fetchqcinspectionbatches", + "utils_qc_inspection_batch_fetchqcinspectionbatchesbatch", + "utils_qc_inspection_batch_loadqcinspectionbatches", + "utils_qc_inspection_batch_resolvebatchsections", + "utils_qc_inspection_batch_resolvebatchsectiontasks", + "utils_qc_inspection_batch_ts", + "utils_sample_production_reception_fields_formatprocesstimedate", + "utils_sample_production_reception_fields_formatproductionfieldvalue", + "utils_sample_production_reception_fields_infectiousfourtestlabel", + "utils_sample_production_reception_fields_resolveproductionreceptionfields", + "utils_sample_production_reception_fields_ts", + "utils_sample_reception_view_sections_buildproductionreceptionviewsection", + "utils_sample_reception_view_sections_buildqcreceptionviewfields", + "utils_sample_reception_view_sections_ts", "views_pilot_service_checkup_management_checkupviewdialog_vue", "views_production_reagent_index_vue", - "views_quality_inspection_env_detect_item_index_vue", + "views_quality_inspection_qc_work_order_composables_inbound_view_sections_ts", "views_quality_inspection_qc_work_order_composables_useinboundqcviewdialog_ts", "views_quality_inspection_qc_work_order_composables_useoutboundqcviewdialog_ts", + "views_quality_inspection_qc_work_order_composables_useqcworkordertaskviewsections_ts", "views_system_category_index_vue", - "views_system_dept_index_vue", - "views_system_menu_index_vue", - "views_system_post_index_vue", "views_system_user_index_vue" ], - "14": [ + "13": [ "api_business_batchsubmitclinicalreceipt", "api_business_batchsubmitclinicalrefund", "api_business_confirmclinicalreceipt", @@ -1729,6 +1596,7 @@ "api_business_ts", "clinical_payment_confirm_index_buildconfirmedparams", "clinical_payment_confirm_index_buildpendingparams", + "clinical_payment_confirm_index_formatamount", "clinical_payment_confirm_index_formattabbadgecount", "clinical_payment_confirm_index_fullfileurl", "clinical_payment_confirm_index_handleconfirmedreset", @@ -1745,6 +1613,7 @@ "clinical_payment_confirm_index_pendingcardtitle", "clinical_payment_confirm_refundconfirmtab_buildconfirmedparams", "clinical_payment_confirm_refundconfirmtab_buildpendingparams", + "clinical_payment_confirm_refundconfirmtab_formatamount", "clinical_payment_confirm_refundconfirmtab_fullfileurl", "clinical_payment_confirm_refundconfirmtab_handleconfirmedreset", "clinical_payment_confirm_refundconfirmtab_handleconfirmedsearch", @@ -1763,6 +1632,68 @@ "views_pilot_service_clinical_payment_confirm_index_vue", "views_pilot_service_clinical_payment_confirm_refundconfirmtab_vue" ], + "14": [ + "api_ethnic_fetchethniclist", + "api_ethnic_ts", + "checkup_management_checkupmarkcheckeddialog_formatnowdatetime", + "components_business_sample_transport_form_section_index_vue", + "list_donationformdialog_applydonationbundletoform", + "list_donationformdialog_createemptytransport", + "list_donationformdialog_ensureethnicoptioninlist", + "list_donationformdialog_fullfileurl", + "list_donationformdialog_handleopenforadd", + "list_donationformdialog_if", + "list_donationformdialog_loadethnicoptions", + "list_donationformdialog_normalizesamplerow", + "list_donationformdialog_resetform", + "list_donationformdialog_scrolltosection", + "material_index_formattodaydate", + "pilot_application_applicationformdialog_if", + "pilot_application_applicationformdialog_remotesearchcustomers", + "protocol_protocolformdialog_addpaymentdetail", + "protocol_protocolformdialog_applyfqpaymentdefaults", + "protocol_protocolformdialog_applypaymentpresetformode", + "protocol_protocolformdialog_createemptytransport", + "protocol_protocolformdialog_datetimetoymd", + "protocol_protocolformdialog_defaultinstallmentstartdateymd", + "protocol_protocolformdialog_ensureethnicoptioninlist", + "protocol_protocolformdialog_ensuretransfertypeoptions", + "protocol_protocolformdialog_for", + "protocol_protocolformdialog_fullfileurl", + "protocol_protocolformdialog_haslockedpaymentdetails", + "protocol_protocolformdialog_if", + "protocol_protocolformdialog_initpaymentdetailexpandflags", + "protocol_protocolformdialog_isfqnumericfieldempty", + "protocol_protocolformdialog_loadethnicoptions", + "protocol_protocolformdialog_normalizesamplerow", + "protocol_protocolformdialog_pad", + "protocol_protocolformdialog_paymentdetailsummary", + "protocol_protocolformdialog_resetform", + "protocol_protocolformdialog_scrolltosection", + "protocol_protocolformdialog_togglepaymentdetailexpand", + "sample_transport_form_section_index_if", + "utils_protocol_pay_mode_switch_canaddpaymentdetail", + "utils_protocol_payment_presets_availablepaymodes", + "utils_protocol_payment_presets_getactivesamplecount", + "utils_protocol_payment_presets_ispaymodevalidforsamplecount", + "utils_protocol_payment_presets_resolvepaymentpreset", + "utils_protocol_payment_presets_ts", + "utils_sample_reception_lab_storage_code_buildprefilledlabstoragecode", + "utils_sample_reception_lab_storage_code_formatyear", + "utils_sample_reception_lab_storage_code_formatym", + "utils_sample_reception_lab_storage_code_normalizesampletypename", + "utils_sample_reception_lab_storage_code_normalizesourcetype", + "utils_sample_reception_lab_storage_code_parselabstoragereferencedate", + "utils_sample_reception_lab_storage_code_ts", + "utils_transfer_type_dict_gettransfertypeoptions", + "utils_transfer_type_dict_loadtransfertypedict", + "utils_transfer_type_dict_resolvetransfertypelabel", + "utils_transfer_type_dict_resolvetransfertypetagtype", + "utils_transfer_type_dict_ts", + "views_cell_storage_protocol_protocolformdialog_vue", + "views_pilot_service_pilot_application_applicationformdialog_vue", + "views_research_donation_list_donationformdialog_vue" + ], "15": [ "components_business_infusion_schedule_outbound_chain_view_index_vue", "components_business_outbound_material_form_sections_index_vue", @@ -1819,6 +1750,153 @@ "views_quality_inspection_qc_work_order_composables_useqcviewattachmenthelpers_ts" ], "16": [ + "api_admin_fetchcreatecustomer", + "api_admin_fetchcustomerlist", + "api_admin_fetchdeletecustomer", + "api_admin_fetchupdatecustomer", + "api_admin_updateinfusionschedulestatus", + "customer_index_handleadd", + "customer_index_handlebatchdelete", + "customer_index_handledelete", + "customer_index_handledropdowncommand", + "customer_index_handleedit", + "customer_index_handlereset", + "customer_index_handlesearch", + "customer_index_handleselectionchange", + "customer_index_handlesubmit", + "customer_index_handleview", + "customer_index_loaddata", + "customer_index_resetform", + "infusion_schedule_management_schedulecanceldialog_handlesubmit", + "pilot_application_infusionscheduletab_buildcompleteconfirmmessage", + "pilot_application_infusionscheduletab_cancancelschedule", + "pilot_application_infusionscheduletab_cancompleteschedule", + "pilot_application_infusionscheduletab_canconfirmschedule", + "pilot_application_infusionscheduletab_caneditschedule", + "pilot_application_infusionscheduletab_canshowhandover", + "pilot_application_infusionscheduletab_getinfusionstatus", + "pilot_application_infusionscheduletab_handlecancel", + "pilot_application_infusionscheduletab_handlecomplete", + "pilot_application_infusionscheduletab_handleconfirm", + "pilot_application_infusionscheduletab_handledropdowncommand", + "pilot_application_infusionscheduletab_handlehandover", + "pilot_application_infusionscheduletab_handleselectionchange", + "pilot_application_infusionscheduletab_handleview", + "pilot_application_infusionscheduletab_hasmorescheduleactions", + "pilot_application_infusionscheduletab_hasprimaryscheduleactions", + "pilot_application_infusionscheduletab_isinfusionthisweek", + "tabs_qcworkordertabpanel_clearworkorderselection", + "tabs_qcworkordertabpanel_handlecommand", + "tabs_qcworkordertabpanel_handleexportattachments", + "tabs_qcworkordertabpanel_handlereset", + "tabs_qcworkordertabpanel_handlesampletypechipclick", + "tabs_qcworkordertabpanel_handlesearch", + "tabs_qcworkordertabpanel_handleworkorderpagechange", + "tabs_qcworkordertabpanel_handleworkorderpagesizechange", + "tabs_qcworkordertabpanel_issampletypechipactive", + "tabs_qcworkordertabpanel_onsamplespecialchanged", + "tabs_qcworkordertabpanel_onworkordertaskschanged", + "views_basic_info_customer_index_vue", + "views_pilot_service_infusion_schedule_management_schedulecanceldialog_vue", + "views_pilot_service_pilot_application_infusionscheduletab_vue", + "views_quality_inspection_qc_work_order_tabs_qcworkordertabpanel_vue" + ], + "17": [ + "utils_chinese_datetime_parse_formatdatetimetominute", + "utils_chinese_datetime_parse_handlechinesedatetimepaste", + "utils_chinese_datetime_parse_parsechinesedatetimetext", + "utils_chinese_datetime_parse_ts", + "utils_chinese_numeral_parse_parsebirthorder", + "utils_chinese_numeral_parse_parsechinesenumeral", + "utils_chinese_numeral_parse_ts", + "utils_donation_standard_import_parse_addsamplehint", + "utils_donation_standard_import_parse_earliestcollecttime", + "utils_donation_standard_import_parse_isblankstring", + "utils_donation_standard_import_parse_isemptynumber", + "utils_donation_standard_import_parse_ismaternalbloodempty", + "utils_donation_standard_import_parse_matchcellsampletype", + "utils_donation_standard_import_parse_matchexpresscompany", + "utils_donation_standard_import_parse_matchsampletypebyexactname", + "utils_donation_standard_import_parse_normalizeline", + "utils_donation_standard_import_parse_parsedatetime", + "utils_donation_standard_import_parse_parsedeliverymode", + "utils_donation_standard_import_parse_parsedonationstandardimporttext", + "utils_donation_standard_import_parse_parsescore", + "utils_donation_standard_import_parse_parsesex", + "utils_donation_standard_import_parse_parseweightgram", + "utils_donation_standard_import_parse_resolvesamplecollecthint", + "utils_donation_standard_import_parse_resolvetransporttype", + "utils_donation_standard_import_parse_splitkeyvalue", + "utils_donation_standard_import_parse_ts", + "utils_numeric_input_parse_extractnumericpart", + "utils_numeric_input_parse_ts", + "utils_protocol_standard_import_parse_earliestcollecttime", + "utils_protocol_standard_import_parse_extractcarriernamefromtransport", + "utils_protocol_standard_import_parse_ismaternalbloodempty", + "utils_protocol_standard_import_parse_normalizechinesedatetimeliteral", + "utils_protocol_standard_import_parse_normalizeline", + "utils_protocol_standard_import_parse_parsedatetime", + "utils_protocol_standard_import_parse_parsedeliverymode", + "utils_protocol_standard_import_parse_parsemoney", + "utils_protocol_standard_import_parse_parsepaymenttransfersegments", + "utils_protocol_standard_import_parse_parsepaymodefromtext", + "utils_protocol_standard_import_parse_parseprotocolstandardimporttext", + "utils_protocol_standard_import_parse_parsescore", + "utils_protocol_standard_import_parse_parsesex", + "utils_protocol_standard_import_parse_resolvesamplecodehint", + "utils_protocol_standard_import_parse_resolvesamplecollecthint", + "utils_protocol_standard_import_parse_resolvetransfertypecode", + "utils_protocol_standard_import_parse_splitkeyvalue", + "utils_protocol_standard_import_parse_ts", + "utils_protocol_standard_import_parse_upsertsamplehint" + ], + "18": [ + "clinical_schedule_payment_detail_index_dash", + "clinical_schedule_payment_detail_index_fmtmoney", + "components_business_clinical_schedule_payment_detail_index_vue", + "components_business_protocol_attachment_mini_readonly_index_vue", + "components_business_protocol_finance_confirm_fields_index_vue", + "components_business_sample_code_with_special_display_index_vue", + "components_business_sample_production_info_cards_index_vue", + "components_business_sample_reception_dual_readonly_panel_index_vue", + "components_business_sample_storage_release_info_index_vue", + "list_donationviewdialog_auditordisplay", + "list_donationviewdialog_dash", + "list_donationviewdialog_ensureunitsinoptions", + "list_donationviewdialog_expressname", + "list_donationviewdialog_formatmetric", + "list_donationviewdialog_formatym", + "list_donationviewdialog_formatymd", + "list_donationviewdialog_samplereceptionchecklist", + "list_donationviewdialog_sampletypename", + "list_donationviewdialog_sitename", + "list_donationviewdialog_unitname", + "protocol_finance_confirm_fields_index_for", + "protocol_protocolattachmentreadonly_resolvefileurl", + "sample_production_info_cards_index_productiontaskstatuslabel", + "storage_release_review_storagereleasereviewdialog_fullfileurl", + "storage_release_review_storagereleasereviewdialog_getlist", + "storage_release_review_storagereleasereviewdialog_isimagefile", + "storage_release_review_storagereleasereviewdialog_removeattachment", + "storage_release_review_storagereleasereviewdialog_resetform", + "views_cell_storage_protocol_protocolattachmentreadonly_vue", + "views_production_cell_product_source_chain_samplecustomerviewdialog_vue", + "views_production_production_work_order_taskpaperattachmentspanel_vue", + "views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", + "views_quality_inspection_qc_work_order_qcworkorderprotocolpaymentpanel_vue", + "views_quality_inspection_qc_work_order_view_dialogs_inboundcellstorageviewdialog_vue", + "views_quality_inspection_qc_work_order_view_dialogs_inboundresearchdonationviewdialog_vue", + "views_quality_inspection_qc_work_order_view_dialogs_outboundbasicexperimentviewdialog_vue", + "views_quality_inspection_qc_work_order_view_dialogs_outboundclinicalviewdialog_vue", + "views_quality_inspection_qc_work_order_view_dialogs_outboundpilotviewdialog_vue", + "views_quality_inspection_qc_work_order_view_dialogs_outboundqcproducttable_vue", + "views_quality_inspection_qc_work_order_view_dialogs_qcworkordersystemviewdialog_vue", + "views_quality_inspection_qc_work_order_view_dialogs_temporaryqcviewdialog_vue", + "views_quality_inspection_qc_work_order_view_dialogs_view_dialog_registry_ts", + "views_quality_inspection_storage_release_review_storagereleasereviewdialog_vue", + "views_research_donation_list_donationviewdialog_vue" + ], + "19": [ "api_qc_material_fetchbatchdiscardqcmaterial", "api_qc_material_fetchbatchstockinqcmaterial", "api_qc_material_fetchbatchstockoutqcmaterial", @@ -1836,9 +1914,7 @@ "api_qc_material_ts", "api_qc_material_usage_fetchmarkqcmaterialusagefullyused", "components_business_protocol_finance_confirm_fields_finance_attachments_ts", - "components_business_protocol_finance_confirm_fields_index_vue", "protocol_finance_confirm_fields_finance_attachments_financeattachmentstourlstring", - "protocol_finance_confirm_fields_index_for", "qc_material_index_ensuretabmounted", "qc_material_index_handletabchange", "qc_material_qcmaterialbatchattachmentdialog_handlesubmit", @@ -1860,13 +1936,12 @@ "qc_material_qcmaterialusagetab_isdiscardrow", "qc_material_qcmaterialusagetab_ismanualoutrow", "qc_material_qcmaterialusagetab_parsefromremark", - "views_production_production_work_order_taskpaperattachmentspanel_vue", "views_quality_inspection_qc_material_index_vue", "views_quality_inspection_qc_material_qcmaterialbatchattachmentdialog_vue", "views_quality_inspection_qc_material_qcmaterialstockchecktab_vue", "views_quality_inspection_qc_material_qcmaterialusagetab_vue" ], - "17": [ + "20": [ "socket_index_websocketclient", "socket_index_websocketclient_calculatereconnectdelay", "socket_index_websocketclient_clearalltimers", @@ -1910,8 +1985,7 @@ "utils_socket_index_ts", "utils_table_tablecache_ts" ], - "18": [ - "api_auth_fetchrefreshtoken", + "21": [ "art_screen_lock_index_tologin", "http_crypto_base64tobytes", "http_crypto_bytestobase64", @@ -1953,50 +2027,7 @@ "utils_http_error_ts", "utils_http_index_ts" ], - "19": [ - "clinical_schedule_payment_detail_index_dash", - "clinical_schedule_payment_detail_index_fmtmoney", - "components_business_clinical_schedule_payment_detail_index_vue", - "components_business_protocol_attachment_mini_readonly_index_vue", - "components_business_sample_code_with_special_display_index_vue", - "components_business_sample_production_info_cards_index_vue", - "components_business_sample_reception_dual_readonly_panel_index_vue", - "components_business_sample_storage_release_info_index_vue", - "list_donationviewdialog_auditordisplay", - "list_donationviewdialog_dash", - "list_donationviewdialog_ensureunitsinoptions", - "list_donationviewdialog_expressname", - "list_donationviewdialog_formatmetric", - "list_donationviewdialog_formatym", - "list_donationviewdialog_formatymd", - "list_donationviewdialog_samplereceptionchecklist", - "list_donationviewdialog_sampletypename", - "list_donationviewdialog_sitename", - "list_donationviewdialog_unitname", - "protocol_protocolattachmentreadonly_resolvefileurl", - "sample_production_info_cards_index_productiontaskstatuslabel", - "storage_release_review_storagereleasereviewdialog_fullfileurl", - "storage_release_review_storagereleasereviewdialog_getlist", - "storage_release_review_storagereleasereviewdialog_isimagefile", - "storage_release_review_storagereleasereviewdialog_removeattachment", - "storage_release_review_storagereleasereviewdialog_resetform", - "views_cell_storage_protocol_protocolattachmentreadonly_vue", - "views_production_cell_product_source_chain_samplecustomerviewdialog_vue", - "views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", - "views_quality_inspection_qc_work_order_qcworkorderprotocolpaymentpanel_vue", - "views_quality_inspection_qc_work_order_view_dialogs_inboundcellstorageviewdialog_vue", - "views_quality_inspection_qc_work_order_view_dialogs_inboundresearchdonationviewdialog_vue", - "views_quality_inspection_qc_work_order_view_dialogs_outboundbasicexperimentviewdialog_vue", - "views_quality_inspection_qc_work_order_view_dialogs_outboundclinicalviewdialog_vue", - "views_quality_inspection_qc_work_order_view_dialogs_outboundpilotviewdialog_vue", - "views_quality_inspection_qc_work_order_view_dialogs_outboundqcproducttable_vue", - "views_quality_inspection_qc_work_order_view_dialogs_qcworkordersystemviewdialog_vue", - "views_quality_inspection_qc_work_order_view_dialogs_temporaryqcviewdialog_vue", - "views_quality_inspection_qc_work_order_view_dialogs_view_dialog_registry_ts", - "views_quality_inspection_storage_release_review_storagereleasereviewdialog_vue", - "views_research_donation_list_donationviewdialog_vue" - ], - "20": [ + "22": [ "api_production_work_order_fetchcompleteproductionworkorder", "api_production_work_order_fetchconfigureproductionworkorder", "api_production_work_order_fetchcreateproductionworkorder", @@ -2036,7 +2067,47 @@ "utils_production_work_order_step_badge_ts", "views_production_production_work_order_productionworkorderqcviewdialog_vue" ], - "21": [ + "23": [ + "api_admin_fetchuserlist", + "api_sample_production_reception_fetchproductionreceptionbysamplecode", + "api_sample_production_reception_fetchproductionreceptionsubmit", + "api_sample_production_reception_fetchproductionreceptionupdate", + "api_sample_production_reception_ts", + "components_business_work_order_remark_dialog_index_vue", + "core_iframeroutemanager_iframeroutemanager_clear", + "infusion_schedule_management_infusionschedulehandoverdialog_remotesearchhandoverusers", + "production_work_order_dispatchstepdialog_mergeduseroptions", + "production_work_order_dispatchstepdialog_onuserselectvisible", + "production_work_order_dispatchstepdialog_remotesearchusers", + "production_work_order_dispatchtaskdialog_if", + "production_work_order_samplereceptiondialog_buildpayload", + "production_work_order_samplereceptiondialog_ensuredefaulthandler", + "production_work_order_samplereceptiondialog_handleclosed", + "production_work_order_samplereceptiondialog_initdialog", + "production_work_order_samplereceptiondialog_loadassignees", + "production_work_order_samplereceptiondialog_onhandlerchange", + "production_work_order_samplereceptiondialog_populatefromproduction", + "production_work_order_samplereceptiondialog_protocolstatustagtypebysource", + "production_work_order_samplereceptiondialog_resetprodform", + "production_work_order_samplereceptiondialog_searchassignees", + "production_work_order_samplereceptiondialog_submitproduction", + "production_work_order_samplereceptiondialog_todaydate", + "utils_production_step_assignee_fetchproductionstepassigneeusers", + "utils_production_step_assignee_invalidateproductionstepassigneeusercache", + "utils_production_step_assignee_productionstepassigneeuserlistparams", + "utils_production_step_assignee_ts", + "views_production_my_production_task_index_vue", + "views_production_production_work_order_dispatchqcworkorderdialog_vue", + "views_production_production_work_order_dispatchstepdialog_vue", + "views_production_production_work_order_dispatchtaskdialog_vue", + "views_production_production_work_order_index_vue", + "views_production_production_work_order_productionworkordertabbar_vue", + "views_production_production_work_order_samplereceptiondialog_vue", + "views_production_production_work_order_tabs_productionworkordertabpanel_vue", + "work_order_remark_dialog_index_handleclose", + "work_order_remark_dialog_index_handlesubmit" + ], + "24": [ "locales_index_getdefaultlanguage", "locales_index_ts", "storage_storage_checkstoragecompatibility", @@ -2075,45 +2146,45 @@ "utils_storage_storage_key_manager_ts", "utils_storage_storage_ts" ], - "22": [ - "amount_input_index_handleblur", - "amount_input_index_handlefocus", - "amount_input_index_handleinput", - "channel_channelserviceordertab_if", - "channel_channelviewdialog_formatprice", - "channel_channelviewdialog_fullfileurl", - "channel_channelviewdialog_normalizeagreementrow", - "clinical_payment_confirm_index_formatamount", - "clinical_payment_confirm_refundconfirmtab_formatamount", - "clinical_payment_confirm_timeline_index_formatprotocolamount", - "clinical_payment_confirm_timeline_index_protocolpaymodelabel", - "clinical_payment_confirm_timeline_index_showstepcontent", - "components_business_clinical_payment_confirm_timeline_index_vue", - "components_common_amount_input_index_vue", - "composables_production_view_sections_buildfeesection", - "protocol_audit_fullmoontodotab_formatinvoiceamount", - "protocol_audit_paymentinfotab_createcolumnstate", - "protocol_audit_paymentinfotab_receiptattachmentstourls", - "protocol_audit_storagecerttab_for", - "protocol_protocolformdialog_fmtmoney", - "protocol_protocolviewdialog_financeconfirmattachmentfiles", - "protocol_protocolviewdialog_refundattachmentfiles", - "protocol_protocolviewdialog_refundfinanceconfirmattachmentfiles", - "utils_money_format_addthousandseparators", - "utils_money_format_formatmoneydisplay", - "utils_money_format_formatmoneyinputdisplay", - "utils_money_format_parsemoneytonumber", - "utils_money_format_sanitizemoneyinput", - "utils_money_format_ts", - "views_cell_storage_protocol_audit_index_vue", - "views_cell_storage_protocol_audit_paymentinfotab_vue", - "views_cell_storage_protocol_audit_storagecerttab_vue", - "views_cell_storage_protocol_protocolviewdialog_vue", - "views_pilot_service_channel_channelserviceordertab_vue", - "views_pilot_service_channel_channelviewdialog_vue", - "views_pilot_service_channel_index_vue" + "25": [ + "api_production_task_fetchaddtaskstep", + "api_production_task_fetchcopytaskstep", + "api_production_task_fetchcreateproductiontask", + "api_production_task_fetchdeleteproductiontask", + "api_production_task_fetchdeletetaskstep", + "api_production_task_fetchdispatchproductiontasksteps", + "api_production_task_fetchforwardproductiontask", + "api_production_task_fetchproductiontaskdetail", + "api_production_task_fetchproductiontaskeditorinit", + "api_production_task_fetchproductiontasklist", + "api_production_task_fetchproductiontasksbyworkorderids", + "api_production_task_fetchreassignproductiontask", + "api_production_task_fetchreordertasksteps", + "api_production_task_fetchreplacestepconfiguredreagents", + "api_production_task_fetchreplacestepconsumables", + "api_production_task_fetchreplacestepdatacollection", + "api_production_task_fetchreplacestepoutputs", + "api_production_task_fetchreplacestepreagents", + "api_production_task_fetchsettaskinputs", + "api_production_task_fetchsettaskoutputs", + "api_production_task_fetchspawntemporaryworkorderfromtask", + "api_production_task_fetchupdateproductiontask", + "api_production_task_fetchupdateproductiontaskstatus", + "api_production_task_fetchupdatetaskstep", + "api_production_task_groupproductiontasksbyworkorderid", + "api_production_task_scopequery", + "api_production_task_ts", + "production_work_order_edittaskinfodialog_handleclose", + "production_work_order_edittaskinfodialog_handlesubmit", + "production_work_order_edittaskinfodialog_loadtaskdetail", + "production_work_order_forwardtaskdialog_handleclose", + "production_work_order_forwardtaskdialog_handlesubmit", + "production_work_order_forwardtaskdialog_onuserselectvisible", + "production_work_order_forwardtaskdialog_remotesearchusers", + "views_production_production_work_order_edittaskinfodialog_vue", + "views_production_production_work_order_forwardtaskdialog_vue" ], - "23": [ + "26": [ "production_work_order_task_step_editor_persistence_createemptysnapshots", "production_work_order_task_step_editor_persistence_normalizeconfiguredreagents", "production_work_order_task_step_editor_persistence_normalizeconsumables", @@ -2151,83 +2222,7 @@ "views_production_production_work_order_task_step_editor_persistence_ts", "views_production_production_work_order_usetaskstepeditor_ts" ], - "24": [ - "api_sample_production_reception_fetchproductionreceptionbysamplecode", - "api_sample_production_reception_fetchproductionreceptionsubmit", - "api_sample_production_reception_fetchproductionreceptionupdate", - "api_sample_production_reception_ts", - "components_business_work_order_remark_dialog_index_vue", - "core_iframeroutemanager_iframeroutemanager_clear", - "production_work_order_dispatchstepdialog_mergeduseroptions", - "production_work_order_dispatchstepdialog_onuserselectvisible", - "production_work_order_dispatchstepdialog_remotesearchusers", - "production_work_order_dispatchtaskdialog_if", - "production_work_order_samplereceptiondialog_buildpayload", - "production_work_order_samplereceptiondialog_ensuredefaulthandler", - "production_work_order_samplereceptiondialog_handleclosed", - "production_work_order_samplereceptiondialog_initdialog", - "production_work_order_samplereceptiondialog_loadassignees", - "production_work_order_samplereceptiondialog_onhandlerchange", - "production_work_order_samplereceptiondialog_populatefromproduction", - "production_work_order_samplereceptiondialog_protocolstatustagtypebysource", - "production_work_order_samplereceptiondialog_resetprodform", - "production_work_order_samplereceptiondialog_searchassignees", - "production_work_order_samplereceptiondialog_submitproduction", - "production_work_order_samplereceptiondialog_todaydate", - "utils_production_step_assignee_fetchproductionstepassigneeusers", - "utils_production_step_assignee_invalidateproductionstepassigneeusercache", - "utils_production_step_assignee_productionstepassigneeuserlistparams", - "utils_production_step_assignee_ts", - "views_production_my_production_task_index_vue", - "views_production_production_work_order_dispatchqcworkorderdialog_vue", - "views_production_production_work_order_dispatchstepdialog_vue", - "views_production_production_work_order_dispatchtaskdialog_vue", - "views_production_production_work_order_index_vue", - "views_production_production_work_order_productionworkordertabbar_vue", - "views_production_production_work_order_samplereceptiondialog_vue", - "views_production_production_work_order_tabs_productionworkordertabpanel_vue", - "work_order_remark_dialog_index_handleclose", - "work_order_remark_dialog_index_handlesubmit" - ], - "25": [ - "api_admin_fetchcreatecustomer", - "api_admin_fetchcustomerlist", - "api_admin_fetchdeletecustomer", - "api_admin_fetchupdatecustomer", - "api_admin_updateinfusionschedulestatus", - "customer_index_handleadd", - "customer_index_handledelete", - "customer_index_handledropdowncommand", - "customer_index_handleedit", - "customer_index_handlereset", - "customer_index_handlesearch", - "customer_index_handleselectionchange", - "customer_index_handlesubmit", - "customer_index_loaddata", - "customer_index_resetform", - "infusion_schedule_management_schedulecanceldialog_handlesubmit", - "pilot_application_infusionscheduletab_buildcompleteconfirmmessage", - "pilot_application_infusionscheduletab_cancancelschedule", - "pilot_application_infusionscheduletab_cancompleteschedule", - "pilot_application_infusionscheduletab_canconfirmschedule", - "pilot_application_infusionscheduletab_caneditschedule", - "pilot_application_infusionscheduletab_canshowhandover", - "pilot_application_infusionscheduletab_getinfusionstatus", - "pilot_application_infusionscheduletab_handlecancel", - "pilot_application_infusionscheduletab_handlecomplete", - "pilot_application_infusionscheduletab_handleconfirm", - "pilot_application_infusionscheduletab_handledropdowncommand", - "pilot_application_infusionscheduletab_handlehandover", - "pilot_application_infusionscheduletab_handleselectionchange", - "pilot_application_infusionscheduletab_handleview", - "pilot_application_infusionscheduletab_hasmorescheduleactions", - "pilot_application_infusionscheduletab_hasprimaryscheduleactions", - "pilot_application_infusionscheduletab_isinfusionthisweek", - "views_basic_info_customer_index_vue", - "views_pilot_service_infusion_schedule_management_schedulecanceldialog_vue", - "views_pilot_service_pilot_application_infusionscheduletab_vue" - ], - "26": [ + "27": [ "api_material_fetchbatchdiscardmaterial", "api_material_fetchbatchstockinmaterial", "api_material_fetchbatchstockoutmaterial", @@ -2264,7 +2259,7 @@ "views_cell_storage_material_materialstockchecktab_vue", "views_cell_storage_material_materialusagetab_vue" ], - "27": [ + "28": [ "api_admin_completepilotapplication", "api_admin_deletepilotapplication", "api_admin_fetchpilotapplicationlist", @@ -2300,12 +2295,13 @@ "utils_fetch_paged_list_ts", "views_pilot_service_pilot_application_pilotapplicationtab_vue" ], - "28": [ + "29": [ "api_auth_fetchchangepassword", "api_auth_fetchgetmenucodes", "api_auth_fetchgetuserinfo", "api_auth_fetchlogin", "api_auth_fetchlogout", + "api_auth_fetchrefreshtoken", "api_auth_fetchupdateprofile", "api_auth_fetchuploadprofileavatar", "api_auth_ts", @@ -2330,7 +2326,7 @@ "widget_userprofiledialog_loadprofile", "widget_userprofiledialog_revokeavatarlocalpreview" ], - "29": [ + "30": [ "api_qc_work_order_fetchconfigureqcworkorder", "api_qc_work_order_fetchcreateqcworkorder", "api_qc_work_order_fetchdeleteqcworkorder", @@ -2357,7 +2353,33 @@ "views_quality_inspection_my_qc_task_index_vue", "views_quality_inspection_qc_work_order_qcworkordertabbar_vue" ], - "30": [ + "31": [ + "api_admin_fetchcreatemenu", + "api_admin_fetchdeletemenu", + "api_admin_fetchmenutree", + "api_admin_fetchupdatemenu", + "dept_index_get", + "dept_index_postorder", + "dept_index_preorder", + "menu_index_applytreeexpand", + "menu_index_handleadd", + "menu_index_handleaddchild", + "menu_index_handledelete", + "menu_index_handledialogclose", + "menu_index_handledropdowncommand", + "menu_index_handleedit", + "menu_index_handlereset", + "menu_index_handlesearch", + "menu_index_handleselectionchange", + "menu_index_handlesubmit", + "menu_index_handleview", + "menu_index_loaddata", + "menu_index_resetform", + "menu_index_toggleexpand", + "views_system_dept_index_vue", + "views_system_menu_index_vue" + ], + "32": [ "business_highlight_addcopybutton", "business_highlight_highlightcode", "business_highlight_insertlinenumbers", @@ -2381,7 +2403,7 @@ "directives_index_setupglobdirectives", "directives_index_ts" ], - "31": [ + "33": [ "api_outbound_release_review_batchreviewoutboundrelease", "api_outbound_release_review_deletereleasereview", "api_outbound_release_review_fetchoutboundreleasematerial", @@ -2405,7 +2427,7 @@ "views_pilot_service_outbound_release_review_index_vue", "views_pilot_service_outbound_release_review_outboundreleasereviewcardlist_vue" ], - "32": [ + "34": [ "api_admin_fetchcellsampletypelist", "api_admin_fetchcreatecellsampletype", "api_admin_fetchdeletecellsampletype", @@ -2429,7 +2451,7 @@ "views_basic_info_cell_sample_type_index_vue", "views_basic_info_cell_sample_type_samplecodetab_vue" ], - "33": [ + "35": [ "api_business_fetchattachmentdownloadurl", "utils_attachment_zip_attachmentfullurl", "utils_attachment_zip_ensureuniquezipentryname", @@ -2451,7 +2473,28 @@ "utils_qc_work_order_attachment_export_ts", "utils_qc_work_order_attachment_export_workorderfoldername" ], - "34": [ + "36": [ + "api_env_detect_item_fetchcreateenvdetectitem", + "api_env_detect_item_fetchdeleteenvdetectitem", + "api_env_detect_item_fetchenvdetectitemdetail", + "api_env_detect_item_fetchenvdetectitemlist", + "api_env_detect_item_fetchenvdetectitemsactive", + "api_env_detect_item_fetchupdateenvdetectitem", + "api_env_detect_item_ts", + "env_detect_item_index_handleadd", + "env_detect_item_index_handlebatchdelete", + "env_detect_item_index_handledelete", + "env_detect_item_index_handleedit", + "env_detect_item_index_handlereset", + "env_detect_item_index_handlesearch", + "env_detect_item_index_handleselectionchange", + "env_detect_item_index_handlesubmit", + "env_detect_item_index_handleview", + "env_detect_item_index_loaddata", + "env_detect_item_index_resetform", + "views_quality_inspection_env_detect_item_index_vue" + ], + "37": [ "core_usetable_usetable", "core_usetable_usetableimpl", "core_usetablecolumns_getcolumnchecks", @@ -2470,7 +2513,7 @@ "table_tableutils_updatepaginationfromresponse", "utils_table_tableutils_ts" ], - "35": [ + "38": [ "core_usechart_usechart", "core_usechart_usechartcomponent", "core_usechart_usechartops", @@ -2488,7 +2531,7 @@ "ui_colors_setelementthemecolor", "utils_ui_colors_ts" ], - "36": [ + "39": [ "utils_protocol_payment_flow_steps_buildprotocolpaymentflowsteps", "utils_protocol_payment_flow_steps_dash", "utils_protocol_payment_flow_steps_financereceipttime", @@ -2504,7 +2547,7 @@ "utils_protocol_payment_flow_steps_resolvestepstate", "utils_protocol_payment_flow_steps_ts" ], - "37": [ + "40": [ "api_admin_fetchserviceordertxnlist", "channel_service_order_finance_index_financesubmitattachmentdisplayfiles", "channel_service_order_finance_index_financesubmitremarkdisplay", @@ -2520,7 +2563,7 @@ "channel_service_order_finance_index_txntypehasproducts", "views_pilot_service_channel_service_order_finance_index_vue" ], - "38": [ + "41": [ "form_validator_getpasswordstrength", "form_validator_trimspaces", "form_validator_validateaccount", @@ -2535,19 +2578,7 @@ "form_validator_validateurl", "utils_form_validator_ts" ], - "39": [ - "utils_clinical_payment_flow_steps_buildpaymentflowsteps", - "utils_clinical_payment_flow_steps_dash", - "utils_clinical_payment_flow_steps_formatamount", - "utils_clinical_payment_flow_steps_hasfinancereceipt", - "utils_clinical_payment_flow_steps_hasfinancerefund", - "utils_clinical_payment_flow_steps_hasreceiptsubmit", - "utils_clinical_payment_flow_steps_hasrefundsubmit", - "utils_clinical_payment_flow_steps_receiptsubmittime", - "utils_clinical_payment_flow_steps_resolvestepstate", - "utils_clinical_payment_flow_steps_ts" - ], - "40": [ + "42": [ "qc_work_order_qcworkordertasksublist_addmaterialrow", "qc_work_order_qcworkordertasksublist_enrichmaterialusagerows", "qc_work_order_qcworkordertasksublist_if", @@ -2559,7 +2590,7 @@ "views_quality_inspection_qc_work_order_qcworkorderbatchsublist_vue", "views_quality_inspection_qc_work_order_qcworkordertasksublist_vue" ], - "41": [ + "43": [ "art_work_tab_index_cleanupeventlisteners", "art_work_tab_index_handletouchend", "art_work_tab_index_handletouchmove", @@ -2570,7 +2601,7 @@ "art_work_tab_index_setupeventlisteners", "components_core_layouts_art_work_tab_index_vue" ], - "42": [ + "44": [ "art_count_to_index_clamp", "art_count_to_index_currentvalue", "art_count_to_index_formatnumber", @@ -2581,28 +2612,6 @@ "art_count_to_index_targetvalue", "components_core_text_effect_art_count_to_index_vue" ], - "43": [ - "source_chain_chaintoflow_annotateforkedges", - "source_chain_chaintoflow_chainapitoelements", - "source_chain_chaintoflow_haschaingraphcontent", - "source_chain_chaintoflow_layoutchainelements", - "source_chain_chaintoflow_makeflowedge", - "source_chain_chaintoflow_makeflownode", - "source_chain_chaintoflow_walkancestorbranch", - "source_chain_chaintoflow_walkancestorparents", - "views_production_cell_product_source_chain_chaintoflow_ts" - ], - "44": [ - "api_production_material_fetchmyproductionmaterialconsumptions", - "my_production_material_usage_index_handletabchange", - "production_material_materialconsumptiontab_displayconsumptionqty", - "production_material_materialconsumptiontab_handlereset", - "production_material_materialconsumptiontab_handlesearch", - "production_material_materialconsumptiontab_loaddata", - "views_production_my_production_material_usage_index_vue", - "views_production_production_material_materialconsumptiontab_vue", - "views_production_production_material_productionmaterialusagetab_vue" - ], "45": [ "view_dialogs_view_dialog_registry_getproductionworkorderviewdialogcomponent", "views_production_production_work_order_view_dialogs_inboundcellstorageproductionviewdialog_vue", @@ -2699,1040 +2708,1043 @@ "utils_protocol_payment_labels_ts" ], "55": [ + "components_oa_approval_oaprogresschain_vue", + "oa_approval_oaprogresschain_avatarchar", + "oa_approval_oaprogresschain_dotclass", + "oa_approval_oaprogresschain_resolvesourcetext", + "oa_approval_oaprogresschain_statusbadge", + "oa_approval_oaprogresschain_statustext" + ], + "56": [ "utils_protocol_doc_label_formatprotocoldocbatchdeleteconfirm", "utils_protocol_doc_label_formatprotocoldocdeleteconfirm", "utils_protocol_doc_label_formatprotocoldocsubject", "utils_protocol_doc_label_getprotocoldoctypelabel", "utils_protocol_doc_label_ts" ], - "56": [ + "57": [ "utils_equipment_select_equipmentoptionlabel", "utils_equipment_select_joinequipmentids", "utils_equipment_select_parseequipmentids", "utils_equipment_select_syncequipmentnamesfromoptions", "utils_equipment_select_ts" ], - "57": [ + "58": [ "utils_production_task_editor_cache_clearproductiontaskeditorreferencecache", "utils_production_task_editor_cache_getcachedproductiontaskeditorreference", "utils_production_task_editor_cache_hascachedproductiontaskeditorreference", "utils_production_task_editor_cache_setcachedproductiontaskeditorreference", "utils_production_task_editor_cache_ts" ], - "58": [ + "59": [ "art_global_search_index_focusinput", "art_global_search_index_handlekeydown", "art_global_search_index_if", "art_global_search_index_search", "components_core_layouts_art_global_search_index_vue" ], - "59": [ + "60": [ "components_oa_approval_oa_form_components_ts", "components_oa_approval_oaattachmentfield_vue", "oa_approval_oa_form_components_installoaformcomponents", "oa_approval_oa_form_components_registeroadesignerattachment", "oa_approval_oa_form_components_registeroaformcreatecomponents" ], - "60": [ + "61": [ + "api_qc_material_amount_auth_fetchbatchrevokeqcmaterialamountauth", + "api_qc_material_amount_auth_fetchgrantqcmaterialamountauth", + "api_qc_material_amount_auth_fetchqcmaterialamountauthusers", + "api_qc_material_amount_auth_fetchrevokeqcmaterialamountauth", + "api_qc_material_amount_auth_ts" + ], + "62": [ "composables_useattachmentdropzone_readdroppedfiles", "composables_useattachmentdropzone_ts", "composables_useattachmentdropzone_useattachmentdropzone", "composables_useattachmentdropzone_useindexedattachmentdropzone" ], - "61": [ + "63": [ "art_sidebar_menu_index_if", "art_sidebar_menu_index_logsidebarmenu", "components_core_layouts_art_menus_art_sidebar_menu_index_vue", "components_core_layouts_art_menus_art_sidebar_menu_widget_sidebarsubmenu_vue" ], - "62": [ + "64": [ "components_core_layouts_art_header_bar_index_vue", "components_core_layouts_art_header_bar_widget_artusermenu_vue", "widget_artusermenu_openpassworddialog", "widget_artusermenu_openprofiledialog" ], - "63": [ + "65": [ "views_cell_storage_protocol_audit_sampleqcinfotab_vue", "views_cell_storage_protocol_audit_samplereceptioninfotab_vue", "views_cell_storage_protocol_audit_storageentryinfotab_vue", "views_cell_storage_sample_info_index_vue" ], - "64": [ + "66": [ "infusion_schedule_management_scheduleeditdialog", "infusion_schedule_management_scheduleeditdialog_if", "infusion_schedule_management_scheduleeditdialog_synccellproductfromoption", "views_pilot_service_infusion_schedule_management_scheduleeditdialog_vue" ], - "65": [ + "67": [ "composables_useattachmentactions_attachmentfullurl", "composables_useattachmentactions_ts", "composables_useattachmentactions_useattachmentactions" ], - "66": [ + "68": [ "config_setting_getsettingdefaults", "config_setting_resettodefaults", "config_setting_ts" ], - "67": [ + "69": [ "config_modules_component_ts", "modules_component_getenabledglobalcomponents", "modules_component_getglobalcomponentbykey" ], - "68": [ + "70": [ "utils_copy_text_copytexttoclipboard", "utils_copy_text_copytextwithfallback", "utils_copy_text_ts" ], - "69": [ + "71": [ "utils_protocol_source_attachment_getsourceprotocolattachment", "utils_protocol_source_attachment_normalizeattachmentfiles", "utils_protocol_source_attachment_ts" ], - "70": [ + "72": [ "form_responsive_calculateresponsivespan", "form_responsive_createresponsivespancalculator", "utils_form_responsive_ts" ], - "71": [ + "73": [ "art_line_chart_index_clearanimationtimers", "art_line_chart_index_if", "components_core_charts_art_line_chart_index_vue" ], - "72": [ + "74": [ "art_text_scroll_index_handlecontentclick", "art_text_scroll_index_measuresizes", "components_core_text_effect_art_text_scroll_index_vue" ], - "73": [ + "75": [ "components_business_production_task_view_dialog_index_vue", "production_task_view_dialog_index_taskstatuslabel", "production_task_view_dialog_index_tasktypelabel" ], - "74": [ + "76": [ "components_business_order_operate_dialog_bridge_index_vue", "order_operate_dialog_bridge_index_handlemessage", "order_operate_dialog_bridge_index_postopen" ], - "75": [ + "77": [ "core_uselayoutheight_useautolayoutheight", "core_uselayoutheight_uselayoutheight", "hooks_core_uselayoutheight_ts" ], - "76": [ + "78": [ "form_designer_spike_index_cleardesigner", "form_designer_spike_index_exportjson", "views_oa_approval_form_designer_spike_index_vue" ], - "77": [ + "79": [ "production_work_order_workordertasksublist_ensureactivetaskkey", "production_work_order_workordertasksublist_if", "views_production_production_work_order_workordertasksublist_vue" ], - "78": [ + "80": [ "composables_useproductionworkordertabstepcounts_emptytabcounts", "composables_useproductionworkordertabstepcounts_useproductionworkordertabstepcounts", "views_production_production_work_order_composables_useproductionworkordertabstepcounts_ts" ], - "79": [ + "81": [ "qc_work_order_qcworkorderbatchresulttabs_ensureactivebatchkey", "views_quality_inspection_qc_work_order_qcworkorderbatchresulttabs_vue", "views_quality_inspection_qc_work_order_qcworkordertaskresultpanel_vue" ], - "80": [ + "82": [ "composables_useqcworkorderattachmentexport_initialprogress", "composables_useqcworkorderattachmentexport_useqcworkorderattachmentexport", "views_quality_inspection_qc_work_order_composables_useqcworkorderattachmentexport_ts" ], - "81": [ + "83": [ "composables_useqcworkordertabunfinishedcounts_emptytabcounts", "composables_useqcworkordertabunfinishedcounts_useqcworkordertabunfinishedcounts", "views_quality_inspection_qc_work_order_composables_useqcworkordertabunfinishedcounts_ts" ], - "82": [ + "84": [ "sample_reception_index_ensurecurrentuserinoptions", "sample_reception_index_if", "views_quality_inspection_sample_reception_index_vue" ], - "83": [ + "85": [ "utils_expected_cell_count_formatexpectedcellcountdisplay", "utils_expected_cell_count_ts" ], - "84": [ + "86": [ "utils_sort_order_fetchnextsortorder", "utils_sort_order_ts" ], - "85": [ + "87": [ "utils_cell_product_type_cellproducttypeneedspassage", "utils_cell_product_type_ts" ], - "86": [ + "88": [ "ui_ep_icon_map_resolveepicon", "utils_ui_ep_icon_map_ts" ], - "87": [ + "89": [ "ui_tabs_gettabconfig", "utils_ui_tabs_ts" ], - "88": [ + "90": [ "ui_loading_getloadingbackground", "utils_ui_loading_ts" ], - "89": [ + "91": [ "oa_fc_host_app_vue", "oa_fc_host_main_ts" ], - "90": [ + "92": [ "art_search_bar_index_if", "components_core_forms_art_search_bar_index_vue" ], - "91": [ + "93": [ "art_form_index_if", "components_core_forms_art_form_index_vue" ], - "92": [ + "94": [ "art_donut_chart_card_index_formatnumber", "components_core_cards_art_donut_chart_card_index_vue" ], - "93": [ + "95": [ "art_k_line_chart_index_getactualcolors", "components_core_charts_art_k_line_chart_index_vue" ], - "94": [ + "96": [ "art_bar_chart_index_creategradientcolor", "components_core_charts_art_bar_chart_index_vue" ], - "95": [ + "97": [ "art_h_bar_chart_index_creategradientcolor", "components_core_charts_art_h_bar_chart_index_vue" ], - "96": [ + "98": [ "art_basic_banner_index_generatemeteors", "components_core_banners_art_basic_banner_index_vue" ], - "97": [ + "99": [ "components_core_layouts_art_settings_panel_composables_usesettingsconfig_ts", "composables_usesettingsconfig_usesettingsconfig" ], - "98": [ + "100": [ "components_core_layouts_art_menus_art_horizontal_menu_index_vue", "components_core_layouts_art_menus_art_horizontal_menu_widget_horizontalsubmenu_vue" ], - "99": [ + "101": [ "components_business_order_operate_local_dialog_index_vue", "order_operate_local_dialog_index_handlemessage" ], - "100": [ + "102": [ "components_business_product_view_dialog_index_vue", "product_view_dialog_index_formatmeasureview" ], - "101": [ + "103": [ "core_usefastenter_usefastenter", "hooks_core_usefastenter_ts" ], - "102": [ + "104": [ "core_usemenuperm_usemenuperm", "hooks_core_usemenuperm_ts" ], - "103": [ + "105": [ "core_useheaderbar_useheaderbar", "hooks_core_useheaderbar_ts" ], - "104": [ + "106": [ "api_inbound_sample_fetchupdateinboundsamplespecialmark", "api_inbound_sample_ts" ], - "105": [ + "107": [ "express_index_deep", "views_system_express_index_vue" ], - "106": [ + "108": [ "designer_flowdesigner_createedge", "views_system_workflow_designer_flowdesigner_vue" ], - "107": [ + "109": [ "site_index_deep", "views_system_site_index_vue" ], - "108": [ + "110": [ "start_index_validate", "views_oa_approval_start_index_vue" ], - "109": [ + "111": [ "source_chain_chainlinkedge_handledblclick", "views_production_cell_product_source_chain_chainlinkedge_vue" ], - "110": [ + "112": [ "production_work_order_workordertaskstepsublist_assigneedisplayname", "views_production_production_work_order_workordertaskstepsublist_vue" ], - "111": [ + "113": [ "composables_useproductionviewdialog_useproductionviewdialog", "views_production_production_work_order_composables_useproductionviewdialog_ts" ], - "112": [ + "114": [ "composables_useproductionworkordertabpage_useproductionworkordertabpage", "views_production_production_work_order_composables_useproductionworkordertabpage_ts" ], - "113": [ + "115": [ "qc_work_order_index_if", "views_quality_inspection_qc_work_order_index_vue" ], - "114": [ + "116": [ "qc_work_order_qcworkorderselectcheckbox_handletoggle", "views_quality_inspection_qc_work_order_qcworkorderselectcheckbox_vue" ], - "115": [ + "117": [ "channel_service_order_serviceordertxndialog_for", "views_pilot_service_channel_service_order_serviceordertxndialog_vue" ], - "116": [ + "118": [ "insurance_company_index_deep", "views_basic_info_insurance_company_index_vue" ], - "117": [ + "119": [ "store_index_initstore", "store_index_ts" ], - "118": [ + "120": [ "env_d_ts" ], - "119": [ + "121": [ "shims_loose_d_ts" ], - "120": [ + "122": [ "types_api_d_ts" ], - "121": [ + "123": [ "types_index_ts" ], - "122": [ + "124": [ "types_config_index_ts" ], - "123": [ + "125": [ "types_component_chart_ts" ], - "124": [ + "126": [ "types_component_index_ts" ], - "125": [ + "127": [ "types_common_response_ts" ], - "126": [ + "128": [ "types_common_index_ts" ], - "127": [ + "129": [ "types_directive_directive_d_ts" ], - "128": [ + "130": [ "types_api_api_d_ts" ], - "129": [ + "131": [ "types_import_components_d_ts" ], - "130": [ + "132": [ "types_import_auto_imports_d_ts" ], - "131": [ + "133": [ "types_store_index_ts" ], - "132": [ + "134": [ "types_router_index_ts" ], - "133": [ + "135": [ "config_index_ts" ], - "134": [ + "136": [ "config_modules_festival_ts" ], - "135": [ + "137": [ "config_modules_headerbar_ts" ], - "136": [ + "138": [ "config_modules_fastenter_ts" ], - "137": [ + "139": [ "config_assets_images_ts" ], - "138": [ + "140": [ "plugins_echarts_ts" ], - "139": [ + "141": [ "plugins_index_ts" ], - "140": [ + "142": [ "constants_material_discard_ts" ], - "141": [ + "143": [ "mock_temp_articlelist_ts" ], - "142": [ + "144": [ "mock_temp_commentlist_ts" ], - "143": [ + "145": [ "mock_temp_formdata_ts" ], - "144": [ + "146": [ "mock_temp_commentdetail_ts" ], - "145": [ + "147": [ "enums_formenum_ts" ], - "146": [ + "148": [ "enums_appenum_ts" ], - "147": [ + "149": [ "utils_patch_el_select_filterable_ts" ], - "148": [ + "150": [ "utils_qc_material_ui_ts" ], - "149": [ + "151": [ "utils_index_ts" ], - "150": [ + "152": [ "utils_qc_labels_ts" ], - "151": [ + "153": [ "utils_process_material_ui_ts" ], - "152": [ + "154": [ "utils_ui_emojo_ts" ], - "153": [ + "155": [ "utils_ui_index_ts" ], - "154": [ + "156": [ "utils_ui_iconify_loader_ts" ], - "155": [ + "157": [ "utils_form_index_ts" ], - "156": [ + "158": [ "utils_constants_links_ts" ], - "157": [ + "159": [ "utils_constants_index_ts" ], - "158": [ + "160": [ "utils_navigation_index_ts" ], - "159": [ + "161": [ "utils_storage_index_ts" ], - "160": [ + "162": [ "utils_sys_mittbus_ts" ], - "161": [ + "163": [ "utils_sys_index_ts" ], - "162": [ + "164": [ "utils_table_tableconfig_ts" ], - "163": [ + "165": [ "utils_http_status_ts" ], - "164": [ + "166": [ "components_core_tables_art_table_index_vue" ], - "165": [ + "167": [ "components_core_tables_art_table_header_index_vue" ], - "166": [ + "168": [ "components_core_forms_art_button_more_index_vue" ], - "167": [ + "169": [ "components_core_forms_art_excel_import_index_vue" ], - "168": [ + "170": [ "components_core_forms_art_excel_export_index_vue" ], - "169": [ + "171": [ "components_core_forms_art_drag_verify_index_vue" ], - "170": [ + "172": [ "components_core_forms_art_button_table_index_vue" ], - "171": [ + "173": [ "components_core_widget_art_icon_button_index_vue" ], - "172": [ + "174": [ "components_core_cards_art_bar_chart_card_index_vue" ], - "173": [ + "175": [ "components_core_cards_art_data_list_card_index_vue" ], - "174": [ + "176": [ "components_core_cards_art_timeline_list_card_index_vue" ], - "175": [ + "177": [ "components_core_cards_art_stats_card_index_vue" ], - "176": [ + "178": [ "components_core_cards_art_image_card_index_vue" ], - "177": [ + "179": [ "components_core_cards_art_progress_card_index_vue" ], - "178": [ + "180": [ "components_core_cards_art_line_chart_card_index_vue" ], - "179": [ + "181": [ "components_core_charts_art_scatter_chart_index_vue" ], - "180": [ + "182": [ "components_core_charts_art_dual_bar_compare_chart_index_vue" ], - "181": [ + "183": [ "components_core_charts_art_ring_chart_index_vue" ], - "182": [ + "184": [ "components_core_charts_art_radar_chart_index_vue" ], - "183": [ + "185": [ "components_core_others_art_watermark_index_vue" ], - "184": [ + "186": [ "components_core_others_art_menu_right_index_vue" ], - "185": [ + "187": [ "components_core_banners_art_card_banner_index_vue" ], - "186": [ + "188": [ "components_core_layouts_art_global_component_index_vue" ], - "187": [ + "189": [ "components_core_layouts_art_settings_panel_index_vue" ], - "188": [ + "190": [ "components_core_layouts_art_settings_panel_widget_themesettings_vue" ], - "189": [ + "191": [ "components_core_layouts_art_settings_panel_widget_settingheader_vue" ], - "190": [ + "192": [ "components_core_layouts_art_settings_panel_widget_menustylesettings_vue" ], - "191": [ + "193": [ "components_core_layouts_art_settings_panel_widget_basicsettings_vue" ], - "192": [ + "194": [ "components_core_layouts_art_settings_panel_widget_settingdrawer_vue" ], - "193": [ + "195": [ "components_core_layouts_art_settings_panel_widget_settingactions_vue" ], - "194": [ + "196": [ "components_core_layouts_art_settings_panel_widget_colorsettings_vue" ], - "195": [ + "197": [ "components_core_layouts_art_settings_panel_widget_menulayoutsettings_vue" ], - "196": [ + "198": [ "components_core_layouts_art_settings_panel_widget_sectiontitle_vue" ], - "197": [ + "199": [ "components_core_layouts_art_settings_panel_widget_boxstylesettings_vue" ], - "198": [ + "200": [ "components_core_layouts_art_settings_panel_widget_containersettings_vue" ], - "199": [ + "201": [ "components_core_layouts_art_chat_window_index_vue" ], - "200": [ + "202": [ "components_core_layouts_art_menus_art_mixed_menu_index_vue" ], - "201": [ + "203": [ "components_core_layouts_art_notification_index_vue" ], - "202": [ + "204": [ "components_core_layouts_art_fast_enter_index_vue" ], - "203": [ + "205": [ "components_core_layouts_art_breadcrumb_index_vue" ], - "204": [ + "206": [ "components_core_theme_theme_svg_index_vue" ], - "205": [ + "207": [ "components_core_views_result_artresultpage_vue" ], - "206": [ + "208": [ "components_core_views_exception_exceptionillustration_vue" ], - "207": [ + "209": [ "components_core_views_exception_artexception_vue" ], - "208": [ + "210": [ "components_core_views_login_authtopbar_vue" ], - "209": [ + "211": [ "components_core_views_login_loginleftview_vue" ], - "210": [ + "212": [ "components_core_text_effect_art_festival_text_scroll_index_vue" ], - "211": [ + "213": [ "components_core_base_art_svg_icon_index_vue" ], - "212": [ + "214": [ "components_core_base_art_back_to_top_index_vue" ], - "213": [ + "215": [ "components_core_base_art_logo_index_vue" ], - "214": [ + "216": [ "components_core_media_art_video_player_index_vue" ], - "215": [ + "217": [ "components_core_media_art_cutter_img_index_vue" ], - "216": [ + "218": [ "components_business_qc_task_view_dialog_index_vue" ], - "217": [ + "219": [ "components_business_clinical_payment_submit_readonly_index_vue" ], - "218": [ + "220": [ "components_business_sample_qc_info_cards_index_vue" ], - "219": [ + "221": [ "components_business_special_sample_display_index_vue" ], - "220": [ + "222": [ "components_business_sample_qc_batch_readonly_index_vue" ], - "221": [ + "223": [ "components_business_protocol_payment_detail_readonly_index_vue" ], - "222": [ + "224": [ "components_business_qc_item_param_select_editor_index_vue" ], - "223": [ + "225": [ "components_business_sample_special_mark_dialog_index_vue" ], - "224": [ + "226": [ "components_common_list_datetime_column_vue" ], - "225": [ + "227": [ "components_oa_approval_oaflowpreview_vue" ], - "226": [ + "228": [ "hooks_index_ts" ], - "227": [ + "229": [ "views_auth_login_index_vue" ], - "228": [ + "230": [ "views_cell_storage_refund_confirm_index_vue" ], - "229": [ + "231": [ "views_cell_storage_my_material_usage_index_vue" ], - "230": [ + "232": [ "views_cell_storage_protocol_index_vue" ], - "231": [ + "233": [ "views_cell_storage_sample_reception_info_index_vue" ], - "232": [ + "234": [ "views_cell_storage_payment_info_index_vue" ], - "233": [ + "235": [ "views_cell_storage_storage_cert_index_vue" ], - "234": [ + "236": [ "views_cell_storage_protocol_audit_samplecollectioninfotab_vue" ], - "235": [ + "237": [ "views_cell_storage_protocol_audit_protocolaudittab_vue" ], - "236": [ + "238": [ "views_cell_storage_fullmoon_todo_index_vue" ], - "237": [ + "239": [ "views_cell_storage_storage_entry_info_index_vue" ], - "238": [ + "240": [ "views_cell_storage_payment_confirm_index_vue" ], - "239": [ + "241": [ "views_cell_storage_payment_confirm_refundconfirmtab_vue" ], - "240": [ + "242": [ "views_cell_storage_payment_confirm_invoicerequesttab_vue" ], - "241": [ + "243": [ "views_cell_storage_material_stock_log_index_vue" ], - "242": [ + "244": [ "views_outside_iframe_vue" ], - "243": [ + "245": [ "views_operations_demo_index_vue" ], - "244": [ + "246": [ "views_operations_exhibition_appointment_index_vue" ], - "245": [ + "247": [ "views_research_donation_audit_index_vue" ], - "246": [ + "248": [ "views_research_donation_sample_info_index_vue" ], - "247": [ + "249": [ "views_research_donation_sample_info_donationsamplecollectioninfotab_vue" ], - "248": [ + "250": [ "views_research_donation_list_index_vue" ], - "249": [ + "251": [ "views_dashboard_console_index_vue" ], - "250": [ + "252": [ "views_system_tenant_index_vue" ], - "251": [ + "253": [ "views_system_order_index_vue" ], - "252": [ + "254": [ "views_system_unit_index_vue" ], - "253": [ + "255": [ "views_system_user_detail_vue" ], - "254": [ + "256": [ "views_system_workflow_my_applications_index_vue" ], - "255": [ + "257": [ "views_system_workflow_task_pending_index_vue" ], - "256": [ + "258": [ "views_system_workflow_task_completed_index_vue" ], - "257": [ + "259": [ "views_system_workflow_components_processstatustag_vue" ], - "258": [ + "260": [ "views_system_workflow_process_index_vue" ], - "259": [ + "261": [ "views_system_dict_index_vue" ], - "260": [ + "262": [ "views_system_leave_index_vue" ], - "261": [ - "views_oa_approval_roles_index_vue" - ], - "262": [ - "views_oa_approval_done_index_vue" - ], "263": [ - "views_oa_approval_mine_index_vue" + "views_oa_approval_roles_index_vue" ], "264": [ "views_oa_approval_instances_detail_vue" ], "265": [ - "views_oa_approval_cc_index_vue" - ], - "266": [ - "views_oa_approval_pending_index_vue" - ], - "267": [ "views_production_output_type_index_vue" ], - "268": [ + "266": [ "views_production_cell_product_index_vue" ], - "269": [ + "267": [ "views_production_cell_product_sourcechaingraph_vue" ], - "270": [ + "268": [ "views_production_cell_product_source_chain_chaininject_ts" ], - "271": [ + "269": [ "views_production_cell_product_source_chain_chain_types_ts" ], - "272": [ + "270": [ "views_production_cell_product_source_chain_chainflowtheme_ts" ], - "273": [ + "271": [ "views_production_cell_product_source_chain_chainnodecard_vue" ], - "274": [ + "272": [ "views_production_process_route_index_vue" ], - "275": [ + "273": [ "views_production_production_task_index_vue" ], - "276": [ + "274": [ "views_production_production_work_order_productionstepbadge_vue" ], - "277": [ + "275": [ "views_production_production_work_order_taskinputenhancedtable_vue" ], - "278": [ + "276": [ "views_production_production_work_order_taskequipmentpanel_vue" ], - "279": [ + "277": [ "views_production_production_work_order_taskoutputlist_vue" ], - "280": [ + "278": [ "views_production_production_work_order_taskoutputproductdialog_vue" ], - "281": [ + "279": [ "views_production_production_work_order_productionworkordercardlist_vue" ], - "282": [ + "280": [ "views_production_production_work_order_stepdetailactionbar_vue" ], - "283": [ + "281": [ "views_production_consumable_pack_index_vue" ], - "284": [ + "282": [ "views_production_consumable_index_vue" ], - "285": [ + "283": [ "views_production_consumable_consumablepacktab_vue" ], - "286": [ + "284": [ "views_production_cleanroom_garment_index_vue" ], - "287": [ + "285": [ "views_production_production_material_index_vue" ], - "288": [ + "286": [ "views_production_production_material_productionmaterialstockchecktab_vue" ], - "289": [ + "287": [ "views_production_production_material_productionmaterialpreptab_vue" ], - "290": [ + "288": [ "views_production_sample_reception_completion_index_vue" ], - "291": [ + "289": [ "views_production_equipment_index_vue" ], - "292": [ + "290": [ "views_production_process_index_vue" ], - "293": [ + "291": [ "views_production_process_category_index_vue" ], - "294": [ + "292": [ "views_production_process_category_outputtypetab_vue" ], - "295": [ + "293": [ "views_index_index_vue" ], - "296": [ + "294": [ "views_quality_inspection_qc_work_order_qcworkorderconfigurebatches_vue" ], - "297": [ + "295": [ "views_quality_inspection_qc_work_order_qcworkorderfeesummarybar_vue" ], - "298": [ + "296": [ "views_quality_inspection_qc_work_order_qcunfinishedbadge_vue" ], - "299": [ + "297": [ "views_quality_inspection_qc_work_order_composables_qc_work_order_selection_ts" ], - "300": [ + "298": [ "views_quality_inspection_qc_work_order_view_dialogs_outboundqcdiagnosisattachments_vue" ], - "301": [ + "299": [ "views_quality_inspection_sample_reception_check_item_index_vue" ], - "302": [ + "300": [ "views_quality_inspection_lab_test_item_index_vue" ], - "303": [ + "301": [ "views_quality_inspection_lab_test_item_thirdpartycompanytab_vue" ], - "304": [ + "302": [ "views_quality_inspection_my_qc_material_usage_index_vue" ], - "305": [ + "303": [ "views_quality_inspection_qc_material_amount_auth_index_vue" ], - "306": [ + "304": [ "views_quality_inspection_pre_transit_sample_index_vue" ], - "307": [ + "305": [ "views_quality_inspection_sample_reception_samplereceptioncardlist_vue" ], - "308": [ + "306": [ "views_quality_inspection_qc_task_index_vue" ], - "309": [ + "307": [ "views_quality_inspection_storage_release_review_index_vue" ], - "310": [ + "308": [ "views_quality_inspection_qc_material_usage_index_vue" ], - "311": [ + "309": [ "views_quality_inspection_third_party_company_index_vue" ], - "312": [ + "310": [ "views_exception_500_index_vue" ], - "313": [ + "311": [ "views_exception_403_index_vue" ], - "314": [ + "312": [ "views_exception_404_index_vue" ], - "315": [ + "313": [ "views_pilot_service_cell_product_type_index_vue" ], - "316": [ + "314": [ "views_pilot_service_cell_product_type_cellproductpricetab_vue" ], - "317": [ + "315": [ "views_pilot_service_cell_product_type_cellproductspectab_vue" ], - "318": [ + "316": [ "views_pilot_service_infusion_schedule_management_index_vue" ], - "319": [ + "317": [ "views_pilot_service_infusion_schedule_management_scheduleviewdialog_vue" ], - "320": [ + "318": [ "views_pilot_service_channel_service_order_index_vue" ], - "321": [ + "319": [ "views_pilot_service_channel_service_order_serviceordertxntable_vue" ], - "322": [ + "320": [ "views_pilot_service_clinical_refund_confirm_index_vue" ], - "323": [ + "321": [ "views_pilot_service_outbound_release_review_outboundreleaseviewdialog_vue" ], - "324": [ + "322": [ "views_pilot_service_outbound_release_review_outboundreleasematerialdialog_vue" ], - "325": [ + "323": [ "views_pilot_service_cell_product_price_index_vue" ], - "326": [ + "324": [ "views_pilot_service_checkup_management_index_vue" ], - "327": [ + "325": [ "views_pilot_service_clinical_payment_info_index_vue" ], - "328": [ + "326": [ "views_pilot_service_project_price_system_index_vue" ], - "329": [ + "327": [ "views_pilot_service_cell_product_spec_index_vue" ], - "330": [ + "328": [ "views_basic_info_sample_code_index_vue" ], - "331": [ + "329": [ "views_basic_info_collection_protocol_no_index_vue" ], - "332": [ + "330": [ "views_basic_info_collection_region_index_vue" ], - "333": [ + "331": [ "views_basic_info_collection_region_collectionprotocolnotab_vue" ], - "334": [ + "332": [ "assets_svg_loading_ts" ], - "335": [ + "333": [ "store_modules_qc_menu_badge_ts" ], - "336": [ + "334": [ "store_modules_worktab_ts" ], - "337": [ + "335": [ "store_modules_table_ts" ], - "338": [ + "336": [ "store_modules_menu_ts" ], - "339": [ + "337": [ "store_modules_setting_ts" ], - "340": [ + "338": [ "store_modules_production_menu_badge_ts" ], - "341": [ + "339": [ "store_modules_user_ts" ], - "342": [ + "340": [ "router_routesalias_ts" ], - "343": [ + "341": [ "router_core_index_ts" ], - "344": [ + "342": [ "router_modules_sqxp_ts" ], - "345": [ + "343": [ "router_modules_index_ts" ], - "346": [ + "344": [ "router_modules_exception_ts" ], - "347": [ + "345": [ "router_routes_staticroutes_ts" ], - "348": [ + "346": [ "router_routes_asyncroutes_ts" ] }, "cohesion": { "0": 0.01, - "1": 0.01, + "1": 0.02, "2": 0.03, "3": 0.03, - "4": 0.04, - "5": 0.04, - "6": 0.02, + "4": 0.03, + "5": 0.02, + "6": 0.03, "7": 0.03, "8": 0.04, "9": 0.04, "10": 0.04, "11": 0.04, - "12": 0.05, + "12": 0.04, "13": 0.04, - "14": 0.05, + "14": 0.04, "15": 0.05, - "16": 0.06, - "17": 0.1, - "18": 0.08, + "16": 0.07, + "17": 0.08, + "18": 0.06, "19": 0.06, - "20": 0.07, - "21": 0.09, + "20": 0.1, + "21": 0.08, "22": 0.07, - "23": 0.08, - "24": 0.08, - "25": 0.1, - "26": 0.07, - "27": 0.09, - "28": 0.12, - "29": 0.09, - "30": 0.12, - "31": 0.11, - "32": 0.13, - "33": 0.19, - "34": 0.16, - "35": 0.27, - "36": 0.33, - "37": 0.19, - "38": 0.15, - "39": 0.42, - "40": 0.24, - "41": 0.25, - "42": 0.22, - "43": 0.31, - "44": 0.28, + "23": 0.07, + "24": 0.09, + "25": 0.09, + "26": 0.08, + "27": 0.07, + "28": 0.09, + "29": 0.11, + "30": 0.09, + "31": 0.13, + "32": 0.12, + "33": 0.11, + "34": 0.13, + "35": 0.19, + "36": 0.16, + "37": 0.16, + "38": 0.27, + "39": 0.33, + "40": 0.19, + "41": 0.15, + "42": 0.24, + "43": 0.25, + "44": 0.22, "45": 0.36, "46": 0.22, "47": 0.39, @@ -3743,36 +3755,36 @@ "52": 0.29, "53": 0.4, "54": 0.47, - "55": 0.5, + "55": 0.33, "56": 0.5, - "57": 0.4, - "58": 0.5, + "57": 0.5, + "58": 0.4, "59": 0.5, "60": 0.5, - "61": 0.67, + "61": 0.4, "62": 0.5, - "63": 0.5, + "63": 0.67, "64": 0.5, - "65": 0.67, - "66": 1.0, + "65": 0.5, + "66": 0.5, "67": 0.67, "68": 1.0, - "69": 1.0, - "70": 0.67, - "71": 0.67, + "69": 0.67, + "70": 1.0, + "71": 1.0, "72": 0.67, "73": 0.67, "74": 0.67, "75": 0.67, "76": 0.67, "77": 0.67, - "78": 1.0, + "78": 0.67, "79": 0.67, "80": 1.0, - "81": 1.0, - "82": 0.67, + "81": 0.67, + "82": 1.0, "83": 1.0, - "84": 1.0, + "84": 0.67, "85": 1.0, "86": 1.0, "87": 1.0, @@ -4034,9 +4046,7 @@ "343": 1.0, "344": 1.0, "345": 1.0, - "346": 1.0, - "347": 1.0, - "348": 1.0 + "346": 1.0 }, "gods": [ { @@ -4047,7 +4057,7 @@ { "id": "storage_facility_index_push", "label": "push()", - "degree": 84 + "degree": 87 }, { "id": "widget_settingitem_emit", @@ -4091,6 +4101,28 @@ } ], "surprises": [ + { + "source": "handleBatchDelete()", + "target": "withFullscreenLoading()", + "source_files": [ + "views/basic-info/customer/index.vue", + "utils/fullscreen-loading.ts" + ], + "confidence": "INFERRED", + "relation": "calls", + "why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities; peripheral node `handleBatchDelete()` unexpectedly reaches hub `withFullscreenLoading()`" + }, + { + "source": "buildInboundMetaFields()", + "target": "push()", + "source_files": [ + "utils/production-work-order-card-meta.ts", + "views/operations/storage-facility/index.vue" + ], + "confidence": "INFERRED", + "relation": "calls", + "why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities; peripheral node `buildInboundMetaFields()` unexpectedly reaches hub `push()`" + }, { "source": "dash()", "target": "formatDisplayOrDash()", @@ -4114,37 +4146,15 @@ "why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities; peripheral node `dash()` unexpectedly reaches hub `formatDisplayOrDash()`" }, { - "source": "fmtMoney()", - "target": "formatMoneyDisplay()", + "source": "resolveBatchSectionTasks()", + "target": "set()", "source_files": [ - "components/business/clinical-schedule-payment-detail/index.vue", - "utils/money-format.ts" + "utils/qc-inspection-batch.ts", + "views/production/process/ProcessRouteTab.vue" ], "confidence": "INFERRED", "relation": "calls", - "why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities; peripheral node `fmtMoney()` unexpectedly reaches hub `formatMoneyDisplay()`" - }, - { - "source": "defaultInstallmentRatios()", - "target": "push()", - "source_files": [ - "utils/protocol-payment-installment.ts", - "views/operations/storage-facility/index.vue" - ], - "confidence": "INFERRED", - "relation": "calls", - "why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities; peripheral node `defaultInstallmentRatios()` unexpectedly reaches hub `push()`" - }, - { - "source": "calcUnpaidAmountsByRatios()", - "target": "push()", - "source_files": [ - "utils/protocol-payment-installment.ts", - "views/operations/storage-facility/index.vue" - ], - "confidence": "INFERRED", - "relation": "calls", - "why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities; peripheral node `calcUnpaidAmountsByRatios()` unexpectedly reaches hub `push()`" + "why": "inferred connection - not explicitly stated in source; connects across different repos/directories; bridges separate communities; peripheral node `resolveBatchSectionTasks()` unexpectedly reaches hub `set()`" } ] } \ No newline at end of file diff --git a/web-admin/graphify-out/.graphify_extract.json b/web-admin/graphify-out/.graphify_extract.json index e5f25772..8b6268a7 100644 --- a/web-admin/graphify-out/.graphify_extract.json +++ b/web-admin/graphify-out/.graphify_extract.json @@ -7182,6 +7182,48 @@ "source_file": "components/oa-approval/OaFormDesignerEmbed.vue", "source_location": "L1" }, + { + "id": "components_oa_approval_oaprogresschain_vue", + "label": "OaProgressChain.vue", + "file_type": "code", + "source_file": "components/oa-approval/OaProgressChain.vue", + "source_location": "L1" + }, + { + "id": "oa_approval_oaprogresschain_statustext", + "label": "statusText()", + "file_type": "code", + "source_file": "components/oa-approval/OaProgressChain.vue", + "source_location": "L77" + }, + { + "id": "oa_approval_oaprogresschain_statusbadge", + "label": "statusBadge()", + "file_type": "code", + "source_file": "components/oa-approval/OaProgressChain.vue", + "source_location": "L94" + }, + { + "id": "oa_approval_oaprogresschain_dotclass", + "label": "dotClass()", + "file_type": "code", + "source_file": "components/oa-approval/OaProgressChain.vue", + "source_location": "L103" + }, + { + "id": "oa_approval_oaprogresschain_resolvesourcetext", + "label": "resolveSourceText()", + "file_type": "code", + "source_file": "components/oa-approval/OaProgressChain.vue", + "source_location": "L111" + }, + { + "id": "oa_approval_oaprogresschain_avatarchar", + "label": "avatarChar()", + "file_type": "code", + "source_file": "components/oa-approval/OaProgressChain.vue", + "source_location": "L123" + }, { "id": "components_oa_approval_oa_form_components_ts", "label": "oa-form-components.ts", @@ -12348,26 +12390,19 @@ "source_file": "api/oaApproval.ts", "source_location": "L263" }, - { - "id": "api_oaapproval_fetchresubmitoainstance", - "label": "fetchResubmitOaInstance()", - "file_type": "code", - "source_file": "api/oaApproval.ts", - "source_location": "L271" - }, { "id": "api_oaapproval_fetchaddsignoatask", "label": "fetchAddSignOaTask()", "file_type": "code", "source_file": "api/oaApproval.ts", - "source_location": "L282" + "source_location": "L271" }, { "id": "api_oaapproval_fetchwithdrawoainstance", "label": "fetchWithdrawOaInstance()", "file_type": "code", "source_file": "api/oaApproval.ts", - "source_location": "L293" + "source_location": "L282" }, { "id": "api_material_stock_check_ts", @@ -15085,48 +15120,6 @@ "source_file": "views/oa-approval/form-designer-spike/index.vue", "source_location": "L68" }, - { - "id": "views_oa_approval_placeholder_runtimelist_vue", - "label": "RuntimeList.vue", - "file_type": "code", - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L1" - }, - { - "id": "placeholder_runtimelist_statustype", - "label": "statusType()", - "file_type": "code", - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L82" - }, - { - "id": "placeholder_runtimelist_statustext", - "label": "statusText()", - "file_type": "code", - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L89" - }, - { - "id": "placeholder_runtimelist_opendetail", - "label": "openDetail()", - "file_type": "code", - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L104" - }, - { - "id": "placeholder_runtimelist_opencopyrestart", - "label": "openCopyRestart()", - "file_type": "code", - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L110" - }, - { - "id": "placeholder_runtimelist_load", - "label": "load()", - "file_type": "code", - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L118" - }, { "id": "views_oa_approval_done_index_vue", "label": "index.vue", @@ -15134,6 +15127,34 @@ "source_file": "views/oa-approval/done/index.vue", "source_location": "L1" }, + { + "id": "done_index_statustype", + "label": "statusType()", + "file_type": "code", + "source_file": "views/oa-approval/done/index.vue", + "source_location": "L93" + }, + { + "id": "done_index_statustext", + "label": "statusText()", + "file_type": "code", + "source_file": "views/oa-approval/done/index.vue", + "source_location": "L100" + }, + { + "id": "done_index_opendetail", + "label": "openDetail()", + "file_type": "code", + "source_file": "views/oa-approval/done/index.vue", + "source_location": "L115" + }, + { + "id": "done_index_load", + "label": "load()", + "file_type": "code", + "source_file": "views/oa-approval/done/index.vue", + "source_location": "L121" + }, { "id": "views_oa_approval_mine_index_vue", "label": "index.vue", @@ -15141,6 +15162,41 @@ "source_file": "views/oa-approval/mine/index.vue", "source_location": "L1" }, + { + "id": "mine_index_statustype", + "label": "statusType()", + "file_type": "code", + "source_file": "views/oa-approval/mine/index.vue", + "source_location": "L104" + }, + { + "id": "mine_index_statustext", + "label": "statusText()", + "file_type": "code", + "source_file": "views/oa-approval/mine/index.vue", + "source_location": "L111" + }, + { + "id": "mine_index_opendetail", + "label": "openDetail()", + "file_type": "code", + "source_file": "views/oa-approval/mine/index.vue", + "source_location": "L126" + }, + { + "id": "mine_index_opencopyrestart", + "label": "openCopyRestart()", + "file_type": "code", + "source_file": "views/oa-approval/mine/index.vue", + "source_location": "L132" + }, + { + "id": "mine_index_load", + "label": "load()", + "file_type": "code", + "source_file": "views/oa-approval/mine/index.vue", + "source_location": "L140" + }, { "id": "views_oa_approval_designer_index_vue", "label": "index.vue", @@ -15211,6 +15267,34 @@ "source_file": "views/oa-approval/cc/index.vue", "source_location": "L1" }, + { + "id": "cc_index_statustype", + "label": "statusType()", + "file_type": "code", + "source_file": "views/oa-approval/cc/index.vue", + "source_location": "L93" + }, + { + "id": "cc_index_statustext", + "label": "statusText()", + "file_type": "code", + "source_file": "views/oa-approval/cc/index.vue", + "source_location": "L100" + }, + { + "id": "cc_index_opendetail", + "label": "openDetail()", + "file_type": "code", + "source_file": "views/oa-approval/cc/index.vue", + "source_location": "L115" + }, + { + "id": "cc_index_load", + "label": "load()", + "file_type": "code", + "source_file": "views/oa-approval/cc/index.vue", + "source_location": "L121" + }, { "id": "views_oa_approval_apps_index_vue", "label": "index.vue", @@ -15253,6 +15337,34 @@ "source_file": "views/oa-approval/pending/index.vue", "source_location": "L1" }, + { + "id": "pending_index_statustype", + "label": "statusType()", + "file_type": "code", + "source_file": "views/oa-approval/pending/index.vue", + "source_location": "L93" + }, + { + "id": "pending_index_statustext", + "label": "statusText()", + "file_type": "code", + "source_file": "views/oa-approval/pending/index.vue", + "source_location": "L100" + }, + { + "id": "pending_index_opendetail", + "label": "openDetail()", + "file_type": "code", + "source_file": "views/oa-approval/pending/index.vue", + "source_location": "L115" + }, + { + "id": "pending_index_load", + "label": "load()", + "file_type": "code", + "source_file": "views/oa-approval/pending/index.vue", + "source_location": "L121" + }, { "id": "views_production_output_type_index_vue", "label": "index.vue", @@ -34634,6 +34746,51 @@ "source_location": "L77", "weight": 1.0 }, + { + "source": "components_oa_approval_oaprogresschain_vue", + "target": "oa_approval_oaprogresschain_statustext", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "components/oa-approval/OaProgressChain.vue", + "source_location": "L77", + "weight": 1.0 + }, + { + "source": "components_oa_approval_oaprogresschain_vue", + "target": "oa_approval_oaprogresschain_statusbadge", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "components/oa-approval/OaProgressChain.vue", + "source_location": "L94", + "weight": 1.0 + }, + { + "source": "components_oa_approval_oaprogresschain_vue", + "target": "oa_approval_oaprogresschain_dotclass", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "components/oa-approval/OaProgressChain.vue", + "source_location": "L103", + "weight": 1.0 + }, + { + "source": "components_oa_approval_oaprogresschain_vue", + "target": "oa_approval_oaprogresschain_resolvesourcetext", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "components/oa-approval/OaProgressChain.vue", + "source_location": "L111", + "weight": 1.0 + }, + { + "source": "components_oa_approval_oaprogresschain_vue", + "target": "oa_approval_oaprogresschain_avatarchar", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "components/oa-approval/OaProgressChain.vue", + "source_location": "L123", + "weight": 1.0 + }, { "source": "components_oa_approval_oa_form_components_ts", "target": "vue", @@ -42070,29 +42227,20 @@ }, { "source": "api_oaapproval_ts", - "target": "api_oaapproval_fetchresubmitoainstance", + "target": "api_oaapproval_fetchaddsignoatask", "relation": "contains", "confidence": "EXTRACTED", "source_file": "api/oaApproval.ts", "source_location": "L271", "weight": 1.0 }, - { - "source": "api_oaapproval_ts", - "target": "api_oaapproval_fetchaddsignoatask", - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "api/oaApproval.ts", - "source_location": "L282", - "weight": 1.0 - }, { "source": "api_oaapproval_ts", "target": "api_oaapproval_fetchwithdrawoainstance", "relation": "contains", "confidence": "EXTRACTED", "source_file": "api/oaApproval.ts", - "source_location": "L293", + "source_location": "L282", "weight": 1.0 }, { @@ -46947,75 +47095,138 @@ "weight": 1.0 }, { - "source": "views_oa_approval_placeholder_runtimelist_vue", + "source": "views_oa_approval_done_index_vue", "target": "vue_router", "relation": "imports_from", "confidence": "EXTRACTED", - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L69", + "source_file": "views/oa-approval/done/index.vue", + "source_location": "L83", "weight": 1.0 }, { - "source": "views_oa_approval_placeholder_runtimelist_vue", + "source": "views_oa_approval_done_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L70", + "source_file": "views/oa-approval/done/index.vue", + "source_location": "L84", "weight": 1.0 }, { - "source": "views_oa_approval_placeholder_runtimelist_vue", + "source": "views_oa_approval_done_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_oaapproval", "relation": "imports_from", "confidence": "EXTRACTED", - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L71", + "source_file": "views/oa-approval/done/index.vue", + "source_location": "L85", "weight": 1.0 }, { - "source": "views_oa_approval_placeholder_runtimelist_vue", - "target": "placeholder_runtimelist_statustype", + "source": "views_oa_approval_done_index_vue", + "target": "done_index_statustype", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L82", + "source_file": "views/oa-approval/done/index.vue", + "source_location": "L93", "weight": 1.0 }, { - "source": "views_oa_approval_placeholder_runtimelist_vue", - "target": "placeholder_runtimelist_statustext", + "source": "views_oa_approval_done_index_vue", + "target": "done_index_statustext", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L89", + "source_file": "views/oa-approval/done/index.vue", + "source_location": "L100", "weight": 1.0 }, { - "source": "views_oa_approval_placeholder_runtimelist_vue", - "target": "placeholder_runtimelist_opendetail", + "source": "views_oa_approval_done_index_vue", + "target": "done_index_opendetail", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", + "source_file": "views/oa-approval/done/index.vue", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "views_oa_approval_done_index_vue", + "target": "done_index_load", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/done/index.vue", + "source_location": "L121", + "weight": 1.0 + }, + { + "source": "views_oa_approval_mine_index_vue", + "target": "vue_router", + "relation": "imports_from", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/mine/index.vue", + "source_location": "L94", + "weight": 1.0 + }, + { + "source": "views_oa_approval_mine_index_vue", + "target": "icons_vue", + "relation": "imports_from", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/mine/index.vue", + "source_location": "L95", + "weight": 1.0 + }, + { + "source": "views_oa_approval_mine_index_vue", + "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_oaapproval", + "relation": "imports_from", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/mine/index.vue", + "source_location": "L96", + "weight": 1.0 + }, + { + "source": "views_oa_approval_mine_index_vue", + "target": "mine_index_statustype", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/mine/index.vue", "source_location": "L104", "weight": 1.0 }, { - "source": "views_oa_approval_placeholder_runtimelist_vue", - "target": "placeholder_runtimelist_opencopyrestart", + "source": "views_oa_approval_mine_index_vue", + "target": "mine_index_statustext", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L110", + "source_file": "views/oa-approval/mine/index.vue", + "source_location": "L111", "weight": 1.0 }, { - "source": "views_oa_approval_placeholder_runtimelist_vue", - "target": "placeholder_runtimelist_load", + "source": "views_oa_approval_mine_index_vue", + "target": "mine_index_opendetail", "relation": "contains", "confidence": "EXTRACTED", - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L118", + "source_file": "views/oa-approval/mine/index.vue", + "source_location": "L126", + "weight": 1.0 + }, + { + "source": "views_oa_approval_mine_index_vue", + "target": "mine_index_opencopyrestart", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/mine/index.vue", + "source_location": "L132", + "weight": 1.0 + }, + { + "source": "views_oa_approval_mine_index_vue", + "target": "mine_index_load", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/mine/index.vue", + "source_location": "L140", "weight": 1.0 }, { @@ -47207,6 +47418,69 @@ "source_location": "L286", "weight": 1.0 }, + { + "source": "views_oa_approval_cc_index_vue", + "target": "vue_router", + "relation": "imports_from", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/cc/index.vue", + "source_location": "L83", + "weight": 1.0 + }, + { + "source": "views_oa_approval_cc_index_vue", + "target": "icons_vue", + "relation": "imports_from", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/cc/index.vue", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "views_oa_approval_cc_index_vue", + "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_oaapproval", + "relation": "imports_from", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/cc/index.vue", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "views_oa_approval_cc_index_vue", + "target": "cc_index_statustype", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/cc/index.vue", + "source_location": "L93", + "weight": 1.0 + }, + { + "source": "views_oa_approval_cc_index_vue", + "target": "cc_index_statustext", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/cc/index.vue", + "source_location": "L100", + "weight": 1.0 + }, + { + "source": "views_oa_approval_cc_index_vue", + "target": "cc_index_opendetail", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/cc/index.vue", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "views_oa_approval_cc_index_vue", + "target": "cc_index_load", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/cc/index.vue", + "source_location": "L121", + "weight": 1.0 + }, { "source": "views_oa_approval_apps_index_vue", "target": "vue_router", @@ -47315,6 +47589,69 @@ "source_location": "L383", "weight": 1.0 }, + { + "source": "views_oa_approval_pending_index_vue", + "target": "vue_router", + "relation": "imports_from", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/pending/index.vue", + "source_location": "L83", + "weight": 1.0 + }, + { + "source": "views_oa_approval_pending_index_vue", + "target": "icons_vue", + "relation": "imports_from", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/pending/index.vue", + "source_location": "L84", + "weight": 1.0 + }, + { + "source": "views_oa_approval_pending_index_vue", + "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_oaapproval", + "relation": "imports_from", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/pending/index.vue", + "source_location": "L85", + "weight": 1.0 + }, + { + "source": "views_oa_approval_pending_index_vue", + "target": "pending_index_statustype", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/pending/index.vue", + "source_location": "L93", + "weight": 1.0 + }, + { + "source": "views_oa_approval_pending_index_vue", + "target": "pending_index_statustext", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/pending/index.vue", + "source_location": "L100", + "weight": 1.0 + }, + { + "source": "views_oa_approval_pending_index_vue", + "target": "pending_index_opendetail", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/pending/index.vue", + "source_location": "L115", + "weight": 1.0 + }, + { + "source": "views_oa_approval_pending_index_vue", + "target": "pending_index_load", + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "views/oa-approval/pending/index.vue", + "source_location": "L121", + "weight": 1.0 + }, { "source": "views_production_cell_product_source_chain_chainlinkedge_vue", "target": "source_chain_chainlinkedge_handledblclick", @@ -66516,33 +66853,53 @@ "weight": 1.0 }, { - "source": "placeholder_runtimelist_opendetail", + "source": "done_index_opendetail", "target": "storage_facility_index_push", "relation": "calls", "confidence": "INFERRED", "confidence_score": 0.8, - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L107", + "source_file": "views/oa-approval/done/index.vue", + "source_location": "L118", "weight": 1.0 }, { - "source": "placeholder_runtimelist_opencopyrestart", - "target": "storage_facility_index_push", - "relation": "calls", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L112", - "weight": 1.0 - }, - { - "source": "placeholder_runtimelist_load", + "source": "done_index_load", "target": "api_oaapproval_fetchoatasks", "relation": "calls", "confidence": "INFERRED", "confidence_score": 0.8, - "source_file": "views/oa-approval/_placeholder/RuntimeList.vue", - "source_location": "L121", + "source_file": "views/oa-approval/done/index.vue", + "source_location": "L124", + "weight": 1.0 + }, + { + "source": "mine_index_opendetail", + "target": "storage_facility_index_push", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "views/oa-approval/mine/index.vue", + "source_location": "L129", + "weight": 1.0 + }, + { + "source": "mine_index_opencopyrestart", + "target": "storage_facility_index_push", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "views/oa-approval/mine/index.vue", + "source_location": "L134", + "weight": 1.0 + }, + { + "source": "mine_index_load", + "target": "api_oaapproval_fetchoatasks", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "views/oa-approval/mine/index.vue", + "source_location": "L143", "weight": 1.0 }, { @@ -66615,6 +66972,26 @@ "source_location": "L280", "weight": 1.0 }, + { + "source": "cc_index_opendetail", + "target": "storage_facility_index_push", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "views/oa-approval/cc/index.vue", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "cc_index_load", + "target": "api_oaapproval_fetchoatasks", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "views/oa-approval/cc/index.vue", + "source_location": "L124", + "weight": 1.0 + }, { "source": "apps_index_loadgroups", "target": "api_oaapproval_fetchoagrouplist", @@ -66645,6 +67022,26 @@ "source_location": "L388", "weight": 1.0 }, + { + "source": "pending_index_opendetail", + "target": "storage_facility_index_push", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "views/oa-approval/pending/index.vue", + "source_location": "L118", + "weight": 1.0 + }, + { + "source": "pending_index_load", + "target": "api_oaapproval_fetchoatasks", + "relation": "calls", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "views/oa-approval/pending/index.vue", + "source_location": "L124", + "weight": 1.0 + }, { "source": "source_chain_chaintoflow_annotateforkedges", "target": "process_processroutetab_set", diff --git a/web-admin/graphify-out/GRAPH_REPORT.md b/web-admin/graphify-out/GRAPH_REPORT.md index 7fe46e37..bd07a0b6 100644 --- a/web-admin/graphify-out/GRAPH_REPORT.md +++ b/web-admin/graphify-out/GRAPH_REPORT.md @@ -1,11 +1,11 @@ # Graph Report - src (2026-07-15) ## Corpus Check -- Large corpus: 879 files · ~582,028 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only. +- Large corpus: 879 files · ~583,474 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only. ## Summary -- 2988 nodes · 4183 edges · 61 communities detected -- Extraction: 78% EXTRACTED · 22% INFERRED · 0% AMBIGUOUS · INFERRED: 939 edges (avg confidence: 0.8) +- 3004 nodes · 4205 edges · 62 communities detected +- Extraction: 78% EXTRACTED · 22% INFERRED · 0% AMBIGUOUS · INFERRED: 945 edges (avg confidence: 0.8) - Token cost: 0 input · 0 output ## Community Hubs (Navigation) @@ -47,11 +47,11 @@ - [[_COMMUNITY_Community 35|Community 35]] - [[_COMMUNITY_Community 36|Community 36]] - [[_COMMUNITY_Community 37|Community 37]] +- [[_COMMUNITY_Community 38|Community 38]] - [[_COMMUNITY_Community 39|Community 39]] - [[_COMMUNITY_Community 40|Community 40]] -- [[_COMMUNITY_Community 41|Community 41]] +- [[_COMMUNITY_Community 42|Community 42]] - [[_COMMUNITY_Community 43|Community 43]] -- [[_COMMUNITY_Community 44|Community 44]] - [[_COMMUNITY_Community 47|Community 47]] - [[_COMMUNITY_Community 48|Community 48]] - [[_COMMUNITY_Community 50|Community 50]] @@ -59,21 +59,22 @@ - [[_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 58|Community 58]] +- [[_COMMUNITY_Community 57|Community 57]] - [[_COMMUNITY_Community 59|Community 59]] +- [[_COMMUNITY_Community 60|Community 60]] - [[_COMMUNITY_Community 61|Community 61]] -- [[_COMMUNITY_Community 66|Community 66]] +- [[_COMMUNITY_Community 63|Community 63]] - [[_COMMUNITY_Community 68|Community 68]] -- [[_COMMUNITY_Community 69|Community 69]] -- [[_COMMUNITY_Community 78|Community 78]] +- [[_COMMUNITY_Community 70|Community 70]] +- [[_COMMUNITY_Community 71|Community 71]] - [[_COMMUNITY_Community 80|Community 80]] -- [[_COMMUNITY_Community 81|Community 81]] +- [[_COMMUNITY_Community 82|Community 82]] +- [[_COMMUNITY_Community 83|Community 83]] ## God Nodes (most connected - your core abstractions) 1. `get()` - 292 edges -2. `push()` - 84 edges +2. `push()` - 87 edges 3. `emit()` - 27 edges 4. `WebSocketClient` - 26 edges 5. `set()` - 20 edges @@ -84,191 +85,191 @@ 10. `TableCache` - 14 edges ## Surprising Connections (you probably didn't know these) +- `handleBatchDelete()` --calls--> `withFullscreenLoading()` [INFERRED] + views/basic-info/customer/index.vue → utils/fullscreen-loading.ts +- `buildInboundMetaFields()` --calls--> `push()` [INFERRED] + utils/production-work-order-card-meta.ts → views/operations/storage-facility/index.vue - `dash()` --calls--> `formatDisplayOrDash()` [INFERRED] components/business/infusion-schedule-outbound-chain-view/index.vue → utils/datetime-display.ts - `dash()` --calls--> `formatDisplayOrDash()` [INFERRED] components/business/clinical-schedule-payment-detail/index.vue → utils/datetime-display.ts -- `fmtMoney()` --calls--> `formatMoneyDisplay()` [INFERRED] - components/business/clinical-schedule-payment-detail/index.vue → utils/money-format.ts -- `defaultInstallmentRatios()` --calls--> `push()` [INFERRED] - utils/protocol-payment-installment.ts → views/operations/storage-facility/index.vue -- `calcUnpaidAmountsByRatios()` --calls--> `push()` [INFERRED] - utils/protocol-payment-installment.ts → views/operations/storage-facility/index.vue +- `resolveBatchSectionTasks()` --calls--> `set()` [INFERRED] + utils/qc-inspection-batch.ts → views/production/process/ProcessRouteTab.vue ## Communities ### Community 0 - "Community 0" Cohesion: 0.01 -Nodes (171): fetchAccessLogList(), fetchActiveRegions(), fetchCategoryList(), fetchCategoryParameters(), fetchCellProductPriceList(), fetchCellProductSpecList(), fetchCellProductTypeList(), fetchChannelAccount() (+163 more) +Nodes (170): fetchAccessLogList(), fetchActiveRegions(), fetchCategoryList(), fetchCategoryParameters(), fetchCellProductPriceList(), fetchCellProductSpecList(), fetchCellProductTypeList(), fetchChannelAccount() (+162 more) ### Community 1 - "Community 1" -Cohesion: 0.01 -Nodes (129): fetchUploadAttachment(), fetchMyProductionTasks(), fetchMyQcTaskList(), fetchQcTaskDetail(), fetchQcTaskList(), FireworkSystem, handleReportUpload(), handleReportUpload() (+121 more) +Cohesion: 0.02 +Nodes (94): batchSavePilotCheckup(), deletePilotCheckupActualItem(), fetchCheckupInstitutionList(), fetchCheckupInstitutionPackageDetail(), fetchCheckupInstitutionPackages(), fetchPilotCheckupDetail(), fetchPilotCheckupList(), markPilotCheckupChecked() (+86 more) ### Community 2 - "Community 2" Cohesion: 0.03 -Nodes (83): batchSavePilotCheckup(), deletePilotCheckupActualItem(), fetchCheckupInstitutionList(), fetchCheckupInstitutionPackageDetail(), fetchCheckupInstitutionPackages(), fetchPilotCheckupDetail(), fetchPilotCheckupList(), markPilotCheckupChecked() (+75 more) +Nodes (76): fetchUploadAttachment(), fetchOaTasks(), FireworkSystem, load(), openDetail(), handleReportUpload(), handleReportUpload(), walk() (+68 more) ### Community 3 - "Community 3" Cohesion: 0.03 -Nodes (33): fetchGetMenuList(), ComponentLoader, IframeRouteManager, MenuProcessor, RouteRegistry, RouteTransformer, useAppMode(), useAuth() (+25 more) +Nodes (55): handleBlur(), handleFocus(), handleInput(), fetchFullmoonTodoList(), fetchUpdateFullmoonTodoInsurance(), fetchCollectionProtocolAuditList(), fetchCollectionProtocolDetail(), fetchCollectionProtocolList() (+47 more) ### Community 4 - "Community 4" -Cohesion: 0.04 -Nodes (58): buildInboundBasicSection(), buildInboundCellStorageViewSections(), buildInboundResearchDonationViewSections(), buildReceptionSection(), buildTransportSection(), resolveInboundProtocolStatus(), buildBaseFields(), buildInboundBasicSection() (+50 more) +Cohesion: 0.03 +Nodes (33): fetchGetMenuList(), ComponentLoader, IframeRouteManager, MenuProcessor, RouteRegistry, RouteTransformer, useAppMode(), useAuth() (+25 more) ### Community 5 - "Community 5" -Cohesion: 0.04 -Nodes (69): formatNowDatetime(), formatTodayDate(), addPaymentDetail(), applyFqPaymentDefaults(), applyPaymentPresetForMode(), createEmptyTransport(), datetimeToYmd(), defaultInstallmentStartDateYmd() (+61 more) - -### Community 6 - "Community 6" Cohesion: 0.02 Nodes (28): fetchAllConsumablePacks(), fetchAllConsumables(), fetchAllConsumableStockLogs(), fetchAllEquipments(), fetchAllOutputTypes(), fetchAllProcessCategories(), fetchAllProcesses(), fetchAllReagents() (+20 more) +### Community 6 - "Community 6" +Cohesion: 0.03 +Nodes (45): useSettingsHandlers(), useSettingsPanel(), useSettingsState(), RoutePermissionValidator, useCeremony(), useTheme(), if(), collectAllPostBindDeptIds() (+37 more) + ### Community 7 - "Community 7" Cohesion: 0.03 -Nodes (51): fetchOaAppDraft(), fetchOaAppList(), fetchOaFlowPreview(), fetchOaGroupList(), fetchOaInstanceDetail(), fetchOaRoleList(), fetchOaRoleUsers(), fetchOaTasks() (+43 more) +Nodes (49): fetchOaAppDraft(), fetchOaAppList(), fetchOaFlowPreview(), fetchOaGroupList(), fetchOaInstanceDetail(), fetchOaRoleList(), fetchOaRoleUsers(), fetchOaTemplateDetail() (+41 more) ### Community 8 - "Community 8" Cohesion: 0.04 -Nodes (50): fetchCheckupInstitutionInvoices(), fetchCheckupInstitutionProjects(), fetchCreateCheckupInstitution(), fetchCreateCheckupInstitutionInvoice(), fetchCreateCheckupInstitutionProject(), fetchUpdateCheckupInstitution(), fetchUpdateCheckupInstitutionInvoice(), fetchUpdateCheckupInstitutionProject() (+42 more) +Nodes (49): fetchCheckupInstitutionInvoices(), fetchCheckupInstitutionProjects(), fetchCreateCheckupInstitution(), fetchCreateCheckupInstitutionInvoice(), fetchCreateCheckupInstitutionProject(), fetchUpdateCheckupInstitution(), fetchUpdateCheckupInstitutionInvoice(), fetchUpdateCheckupInstitutionProject() (+41 more) ### Community 9 - "Community 9" Cohesion: 0.04 -Nodes (49): fetchUserList(), fetchAddTaskStep(), fetchCopyTaskStep(), fetchDeleteTaskStep(), fetchDispatchProductionTaskSteps(), fetchForwardProductionTask(), fetchProductionTaskDetail(), fetchProductionTaskEditorInit() (+41 more) +Nodes (53): fetchMyProductionTasks(), useInboundSiblingNavigation(), shouldApplyTriggerSourceFilter(), useQcWorkOrderTabPage(), buildMineTableRows(), buildPresetTasksMap(), buildWorkOrderFromTasks(), fetchAllMineProductionTasks() (+45 more) ### Community 10 - "Community 10" Cohesion: 0.04 -Nodes (39): useSettingsHandlers(), useSettingsPanel(), useSettingsState(), RoutePermissionValidator, useCeremony(), useTheme(), if(), walk() (+31 more) +Nodes (43): buildBaseFields(), buildFeeSection(), buildInboundBasicSection(), buildInboundCellStorageProductionViewSections(), buildInboundResearchDonationProductionViewSections(), buildOutboundBasicExperimentProductionViewSections(), buildOutboundClinicalProductionViewSections(), buildOutboundDetail() (+35 more) ### Community 11 - "Community 11" Cohesion: 0.04 -Nodes (44): fetchFullmoonTodoList(), fetchUpdateFullmoonTodoInsurance(), fetchCollectionProtocolAuditList(), fetchCollectionProtocolDetail(), fetchCollectionProtocolList(), fetchCreateProtocolInvoiceRequest(), fetchInvoiceEligiblePayments(), fetchPaymentDetailList() (+36 more) +Nodes (44): fetchMyQcTaskList(), fetchQcTaskDetail(), fetchQcTaskList(), buildTemporaryViewSections(), buildInsertedSiblingCard(), fetchMineTasksForWorkOrders(), resolveShowProtocolPaymentAtGroup(), for() (+36 more) ### Community 12 - "Community 12" -Cohesion: 0.05 -Nodes (48): fetchEthnicList(), applyDonationBundleToForm(), createEmptyTransport(), ensureEthnicOptionInList(), handleOpenForAdd(), if(), loadEthnicOptions(), normalizeSampleRow() (+40 more) +Cohesion: 0.04 +Nodes (35): collectIds(), buildInboundBasicSection(), buildInboundCellStorageViewSections(), buildInboundResearchDonationViewSections(), buildReceptionSection(), buildTransportSection(), resolveInboundProtocolStatus(), appendTaskResultSections() (+27 more) ### Community 13 - "Community 13" Cohesion: 0.04 -Nodes (37): fetchCreateMenu(), fetchDeleteMenu(), fetchMenuTree(), fetchUpdateMenu(), fetchCreateEnvDetectItem(), fetchDeleteEnvDetectItem(), fetchEnvDetectItemDetail(), fetchEnvDetectItemList() (+29 more) +Nodes (36): fetchClinicalPaymentDetail(), fetchClinicalPayments(), fetchClinicalReceiptConfirmed(), fetchClinicalReceiptPending(), fetchClinicalRefundConfirmed(), fetchClinicalRefundPending(), fetchOrderAdjusts(), fetchOrderDetail() (+28 more) ### Community 14 - "Community 14" -Cohesion: 0.05 -Nodes (34): fetchClinicalPaymentDetail(), fetchClinicalPayments(), fetchClinicalReceiptConfirmed(), fetchClinicalReceiptPending(), fetchClinicalRefundConfirmed(), fetchClinicalRefundPending(), fetchOrderAdjusts(), fetchOrderDetail() (+26 more) +Cohesion: 0.04 +Nodes (36): fetchEthnicList(), formatNowDatetime(), applyDonationBundleToForm(), createEmptyTransport(), ensureEthnicOptionInList(), handleOpenForAdd(), if(), loadEthnicOptions() (+28 more) ### Community 15 - "Community 15" Cohesion: 0.05 Nodes (33): qcAttachmentFullUrl(), qcDownloadAttachment(), qcPreviewAttachment(), formatHandoverUserLabel(), formatNowDatetime(), fullFileUrl(), handleDownloadAttachment(), handlePreviewAttachment() (+25 more) ### Community 16 - "Community 16" -Cohesion: 0.06 -Nodes (22): fetchQcMaterialBatchDetail(), fetchQcMaterialBatchList(), fetchQcMaterialBatchOptions(), fetchQcMaterialList(), fetchQcMaterialOptions(), fetchUpdateQcMaterialBatch(), fetchMarkQcMaterialUsageFullyUsed(), financeAttachmentsToUrlString() (+14 more) +Cohesion: 0.07 +Nodes (39): fetchCreateCustomer(), fetchCustomerList(), fetchDeleteCustomer(), fetchUpdateCustomer(), updateInfusionScheduleStatus(), handleAdd(), handleBatchDelete(), handleDelete() (+31 more) ### Community 17 - "Community 17" -Cohesion: 0.1 -Nodes (2): WebSocketClient, TableCache +Cohesion: 0.08 +Nodes (37): formatDatetimeToMinute(), handleChineseDatetimePaste(), parseChineseDatetimeText(), parseBirthOrder(), parseChineseNumeral(), addSampleHint(), earliestCollectTime(), isMaternalBloodEmpty() (+29 more) ### Community 18 - "Community 18" -Cohesion: 0.08 -Nodes (33): fetchRefreshToken(), toLogin(), base64ToBytes(), bytesToBase64(), decryptJson(), deriveKey(), encryptJson(), fromBase64Url() (+25 more) +Cohesion: 0.06 +Nodes (12): dash(), fmtMoney(), auditorDisplay(), dash(), ensureUnitsInOptions(), expressName(), formatYm(), formatYmd() (+4 more) ### Community 19 - "Community 19" Cohesion: 0.06 -Nodes (11): dash(), fmtMoney(), auditorDisplay(), dash(), ensureUnitsInOptions(), expressName(), formatYm(), formatYmd() (+3 more) +Nodes (21): fetchQcMaterialBatchDetail(), fetchQcMaterialBatchList(), fetchQcMaterialBatchOptions(), fetchQcMaterialList(), fetchQcMaterialOptions(), fetchUpdateQcMaterialBatch(), fetchMarkQcMaterialUsageFullyUsed(), financeAttachmentsToUrlString() (+13 more) ### Community 20 - "Community 20" -Cohesion: 0.07 -Nodes (24): fetchMineProductionWorkOrderTabStepCounts(), fetchMineProductionWorkOrderTabStepCountsDeduped(), fetchProductionWorkOrderCellProductOptions(), fetchProductionWorkOrderDetail(), fetchProductionWorkOrderList(), fetchProductionWorkOrderQcDispatchOptions(), fetchProductionWorkOrderQcInfo(), fetchProductionWorkOrderTabStepCounts() (+16 more) +Cohesion: 0.1 +Nodes (2): WebSocketClient, TableCache ### Community 21 - "Community 21" -Cohesion: 0.09 -Nodes (8): getDefaultLanguage(), checkStorageCompatibility(), StorageConfig, getSystemStorage(), getSysVersion(), StorageKeyManager, StorageCompatibilityManager, validateStorageData() +Cohesion: 0.08 +Nodes (32): toLogin(), base64ToBytes(), bytesToBase64(), decryptJson(), deriveKey(), encryptJson(), fromBase64Url(), hexToBytes() (+24 more) ### Community 22 - "Community 22" Cohesion: 0.07 -Nodes (14): handleBlur(), handleFocus(), handleInput(), formatAmount(), formatAmount(), formatProtocolAmount(), buildFeeSection(), formatInvoiceAmount() (+6 more) +Nodes (24): fetchMineProductionWorkOrderTabStepCounts(), fetchMineProductionWorkOrderTabStepCountsDeduped(), fetchProductionWorkOrderCellProductOptions(), fetchProductionWorkOrderDetail(), fetchProductionWorkOrderList(), fetchProductionWorkOrderQcDispatchOptions(), fetchProductionWorkOrderQcInfo(), fetchProductionWorkOrderTabStepCounts() (+16 more) ### Community 23 - "Community 23" +Cohesion: 0.07 +Nodes (20): fetchUserList(), fetchProductionReceptionBySampleCode(), fetchProductionReceptionSubmit(), fetchProductionReceptionUpdate(), remoteSearchHandoverUsers(), onUserSelectVisible(), remoteSearchUsers(), buildPayload() (+12 more) + +### Community 24 - "Community 24" +Cohesion: 0.09 +Nodes (8): getDefaultLanguage(), checkStorageCompatibility(), StorageConfig, getSystemStorage(), getSysVersion(), StorageKeyManager, StorageCompatibilityManager, validateStorageData() + +### Community 25 - "Community 25" +Cohesion: 0.09 +Nodes (30): fetchAddTaskStep(), fetchCopyTaskStep(), fetchDeleteTaskStep(), fetchDispatchProductionTaskSteps(), fetchForwardProductionTask(), fetchProductionTaskDetail(), fetchProductionTaskEditorInit(), fetchProductionTaskList() (+22 more) + +### Community 26 - "Community 26" Cohesion: 0.08 Nodes (20): createEmptySnapshots(), normalizeConfiguredReagents(), normalizeConsumables(), normalizeDataCollections(), normalizeReagents(), normalizeStepOutputs(), serializeAttachments(), serializeEquipmentIds() (+12 more) -### Community 24 - "Community 24" -Cohesion: 0.08 -Nodes (18): fetchProductionReceptionBySampleCode(), fetchProductionReceptionSubmit(), fetchProductionReceptionUpdate(), onUserSelectVisible(), remoteSearchUsers(), buildPayload(), ensureDefaultHandler(), initDialog() (+10 more) - -### Community 25 - "Community 25" -Cohesion: 0.1 -Nodes (28): fetchCreateCustomer(), fetchCustomerList(), fetchDeleteCustomer(), fetchUpdateCustomer(), updateInfusionScheduleStatus(), handleAdd(), handleDelete(), handleDropdownCommand() (+20 more) - -### Community 26 - "Community 26" +### Community 27 - "Community 27" Cohesion: 0.07 Nodes (19): fetchDeleteMaterialBatch(), fetchMaterialBatchList(), fetchMaterialBatchOptions(), fetchMaterialList(), fetchMaterialOptions(), fetchUpdateMaterialBatch(), fetchMaterialUsageList(), fetchMyMaterialUsageList() (+11 more) -### Community 27 - "Community 27" +### Community 28 - "Community 28" Cohesion: 0.09 Nodes (27): completePilotApplication(), deletePilotApplication(), fetchPilotApplicationList(), startPilotApplication(), voidPilotApplication(), handleBatchComplete(), handleBatchStart(), handleBatchVoid() (+19 more) -### Community 28 - "Community 28" -Cohesion: 0.12 -Nodes (20): fetchGetMenuCodes(), fetchGetUserInfo(), fetchLogin(), fetchUpdateProfile(), fetchUploadProfileAvatar(), fetchUserInfo(), buildWebEncryptedLoginBody(), defaultAvatarPathByRole() (+12 more) - ### Community 29 - "Community 29" +Cohesion: 0.11 +Nodes (21): fetchGetMenuCodes(), fetchGetUserInfo(), fetchLogin(), fetchRefreshToken(), fetchUpdateProfile(), fetchUploadProfileAvatar(), fetchUserInfo(), buildWebEncryptedLoginBody() (+13 more) + +### Community 30 - "Community 30" Cohesion: 0.09 Nodes (12): fetchMineQcWorkOrderTabUnfinishedCounts(), fetchOutboundQcDetail(), fetchQcWorkOrderDetail(), fetchQcWorkOrderList(), fetchQcWorkOrdersBySample(), fetchQcWorkOrderTabUnfinishedCounts(), reload(), reloadTabCounts() (+4 more) -### Community 30 - "Community 30" +### Community 31 - "Community 31" +Cohesion: 0.13 +Nodes (19): fetchCreateMenu(), fetchDeleteMenu(), fetchMenuTree(), fetchUpdateMenu(), postorder(), preorder(), applyTreeExpand(), handleAdd() (+11 more) + +### Community 32 - "Community 32" Cohesion: 0.12 Nodes (15): addCopyButton(), highlightCode(), insertLineNumbers(), isBlockProcessed(), markBlockAsProcessed(), processBlock(), setupHighlightDirective(), setupRippleDirective() (+7 more) -### Community 31 - "Community 31" +### Community 33 - "Community 33" Cohesion: 0.11 Nodes (11): fetchOutboundReleaseMaterial(), fetchOutboundReleaseReviewDetail(), fetchOutboundReleaseReviewList(), fetchReleaseReviewList(), handleReset(), handleSearch(), handleToggleSelect(), loadData() (+3 more) -### Community 32 - "Community 32" +### Community 34 - "Community 34" Cohesion: 0.13 Nodes (18): fetchCellSampleTypeList(), fetchCreateCellSampleType(), fetchDeleteCellSampleType(), fetchUpdateCellSampleType(), handleAdd(), handleDelete(), handleDropdownCommand(), handleEdit() (+10 more) -### Community 33 - "Community 33" +### Community 35 - "Community 35" Cohesion: 0.19 Nodes (15): fetchAttachmentDownloadUrl(), attachmentFullUrl(), ensureUniqueZipEntryName(), fetchAttachmentBlob(), getAttachmentExtension(), resolveAttachmentFileName(), sanitizeZipPathSegment(), applyInboundLabStorageCodePrefix() (+7 more) -### Community 34 - "Community 34" +### Community 36 - "Community 36" +Cohesion: 0.16 +Nodes (14): fetchCreateEnvDetectItem(), fetchDeleteEnvDetectItem(), fetchEnvDetectItemDetail(), fetchEnvDetectItemList(), fetchEnvDetectItemsActive(), fetchUpdateEnvDetectItem(), handleAdd(), handleBatchDelete() (+6 more) + +### Community 37 - "Community 37" Cohesion: 0.16 Nodes (10): useTable(), useTableImpl(), getColumnChecks(), useTableColumns(), createErrorHandler(), createSmartDebounce(), defaultResponseAdapter(), extractPagination() (+2 more) -### Community 35 - "Community 35" +### Community 38 - "Community 38" Cohesion: 0.27 Nodes (14): useChart(), useChartComponent(), useChartOps(), colourBlend(), getCssVar(), getDarkColor(), getLightColor(), handleElementThemeColor() (+6 more) -### Community 36 - "Community 36" +### Community 39 - "Community 39" Cohesion: 0.33 Nodes (13): buildProtocolPaymentFlowSteps(), dash(), financeReceiptTime(), formatAmount(), hasFinanceReceipt(), hasFinanceRefund(), hasReceiptSubmit(), hasRefundSubmit() (+5 more) -### Community 37 - "Community 37" +### Community 40 - "Community 40" Cohesion: 0.19 Nodes (6): fetchServiceOrderTxnList(), handleReset(), handleSearch(), handleTabChange(), loadData(), switchTab() -### Community 39 - "Community 39" -Cohesion: 0.42 -Nodes (9): buildPaymentFlowSteps(), dash(), formatAmount(), hasFinanceReceipt(), hasFinanceRefund(), hasReceiptSubmit(), hasRefundSubmit(), receiptSubmitTime() (+1 more) - -### Community 40 - "Community 40" +### Community 42 - "Community 42" Cohesion: 0.24 Nodes (4): addMaterialRow(), nextMaterialRowKey(), onRequisitionSelect(), removeMaterialRow() -### Community 41 - "Community 41" +### Community 43 - "Community 43" Cohesion: 0.25 Nodes (2): handleTouchEnd(), setTransition() -### Community 43 - "Community 43" -Cohesion: 0.31 -Nodes (4): annotateForkEdges(), chainApiToElements(), walkAncestorBranch(), walkAncestorParents() - -### Community 44 - "Community 44" -Cohesion: 0.28 -Nodes (4): fetchMyProductionMaterialConsumptions(), handleReset(), handleSearch(), loadData() - ### Community 47 - "Community 47" Cohesion: 0.39 Nodes (6): isIgnorableScriptError(), normalizeErrorMessage(), registerPromiseErrorHandler(), registerResourceErrorHandler(), scriptErrorHandler(), setupErrorHandle() @@ -297,54 +298,58 @@ Nodes (2): isUnfinishedQcWorkOrder(), resolveQcWorkOrderUnfinishedBadgeCount() Cohesion: 0.47 Nodes (3): isPaymentDueWithinWarnWindow(), parsePaymentDueYmd(), startOfLocalDay() -### Community 55 - "Community 55" +### Community 56 - "Community 56" Cohesion: 0.5 Nodes (2): formatProtocolDocDeleteConfirm(), formatProtocolDocSubject() -### Community 56 - "Community 56" +### Community 57 - "Community 57" Cohesion: 0.5 Nodes (2): parseEquipmentIds(), syncEquipmentNamesFromOptions() -### Community 58 - "Community 58" +### Community 59 - "Community 59" Cohesion: 0.5 Nodes (2): focusInput(), handleKeydown() -### Community 59 - "Community 59" +### Community 60 - "Community 60" Cohesion: 0.5 Nodes (2): installOaFormComponents(), registerOaFormCreateComponents() ### Community 61 - "Community 61" +Cohesion: 0.4 +Nodes (1): fetchQcMaterialAmountAuthUsers() + +### Community 63 - "Community 63" Cohesion: 0.67 Nodes (2): if(), logSidebarMenu() -### Community 66 - "Community 66" +### Community 68 - "Community 68" Cohesion: 1.0 Nodes (2): getSettingDefaults(), resetToDefaults() -### Community 68 - "Community 68" +### Community 70 - "Community 70" Cohesion: 1.0 Nodes (2): copyTextToClipboard(), copyTextWithFallback() -### Community 69 - "Community 69" +### Community 71 - "Community 71" Cohesion: 1.0 Nodes (2): getSourceProtocolAttachment(), normalizeAttachmentFiles() -### Community 78 - "Community 78" +### Community 80 - "Community 80" Cohesion: 1.0 Nodes (2): emptyTabCounts(), useProductionWorkOrderTabStepCounts() -### Community 80 - "Community 80" +### Community 82 - "Community 82" Cohesion: 1.0 Nodes (2): initialProgress(), useQcWorkOrderAttachmentExport() -### Community 81 - "Community 81" +### Community 83 - "Community 83" Cohesion: 1.0 Nodes (2): emptyTabCounts(), useQcWorkOrderTabUnfinishedCounts() ## Knowledge Gaps -- **Thin community `Community 17`** (42 nodes): `WebSocketClient`, `.calculateReconnectDelay()`, `.clearAllTimers()`, `.clearConnectionTimers()`, `.clearTimer()`, `.close()`, `.closeCurrentSocketForReconnect()`, `.connect()`, `.connectionStatusText()`, `.constructor()`, `.destroyInstance()`, `.flushMessageQueue()`, `.getInstance()`, `.getReadyStateText()`, `.handleClose()`, `.handleConnectionTimeout()`, `.handleError()`, `.handleMessage()`, `.handleOpen()`, `.init()`, `.isWebSocketConnected()`, `.reconnect()`, `.resetHeartbeat()`, `.send()`, `.startHeartbeat()`, `.startPing()`, `TableCache`, `.cleanupExpired()`, `.clear()`, `.clearByTags()`, `.clearCurrentSearch()`, `.clearPagination()`, `.constructor()`, `.evictLRU()`, `.generateKey()`, `.generateTags()`, `.get()`, `.getStats()`, `.log()`, `.set()`, `index.ts`, `tableCache.ts` +- **Thin community `Community 20`** (42 nodes): `WebSocketClient`, `.calculateReconnectDelay()`, `.clearAllTimers()`, `.clearConnectionTimers()`, `.clearTimer()`, `.close()`, `.closeCurrentSocketForReconnect()`, `.connect()`, `.connectionStatusText()`, `.constructor()`, `.destroyInstance()`, `.flushMessageQueue()`, `.getInstance()`, `.getReadyStateText()`, `.handleClose()`, `.handleConnectionTimeout()`, `.handleError()`, `.handleMessage()`, `.handleOpen()`, `.init()`, `.isWebSocketConnected()`, `.reconnect()`, `.resetHeartbeat()`, `.send()`, `.startHeartbeat()`, `.startPing()`, `TableCache`, `.cleanupExpired()`, `.clear()`, `.clearByTags()`, `.clearCurrentSearch()`, `.clearPagination()`, `.constructor()`, `.evictLRU()`, `.generateKey()`, `.generateTags()`, `.get()`, `.getStats()`, `.log()`, `.set()`, `index.ts`, `tableCache.ts` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 41`** (9 nodes): `cleanupEventListeners()`, `handleTouchEnd()`, `handleTouchMove()`, `handleTouchStart()`, `handleWheelScroll()`, `if()`, `setTransition()`, `setupEventListeners()`, `index.vue` +- **Thin community `Community 43`** (9 nodes): `cleanupEventListeners()`, `handleTouchEnd()`, `handleTouchMove()`, `handleTouchStart()`, `handleWheelScroll()`, `if()`, `setTransition()`, `setupEventListeners()`, `index.vue` Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 48`** (8 nodes): `TableHeightCalculator`, `.calculate()`, `.calculateOffset()`, `.calculatePaginationOffset()`, `.constructor()`, `.getHeaderHeight()`, `useTableHeight()`, `useTableHeight.ts` Too small to be a meaningful cluster - may be noise or needs more connections extracted. @@ -354,42 +359,44 @@ Nodes (2): emptyTabCounts(), useQcWorkOrderTabUnfinishedCounts() Too small to be a meaningful cluster - may be noise or needs more connections extracted. - **Thin community `Community 53`** (6 nodes): `formatQcWorkOrderUnfinishedBadgeCount()`, `isUnfinishedQcWorkOrder()`, `qcWorkOrderUnfinishedBadgeTitle()`, `resolveQcWorkOrderUnfinishedBadgeCount()`, `sumQcWorkOrderGroupUnfinishedBadgeCount()`, `qc-work-order-unfinished-badge.ts` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 55`** (5 nodes): `formatProtocolDocBatchDeleteConfirm()`, `formatProtocolDocDeleteConfirm()`, `formatProtocolDocSubject()`, `getProtocolDocTypeLabel()`, `protocol-doc-label.ts` +- **Thin community `Community 56`** (5 nodes): `formatProtocolDocBatchDeleteConfirm()`, `formatProtocolDocDeleteConfirm()`, `formatProtocolDocSubject()`, `getProtocolDocTypeLabel()`, `protocol-doc-label.ts` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 56`** (5 nodes): `equipmentOptionLabel()`, `joinEquipmentIds()`, `parseEquipmentIds()`, `syncEquipmentNamesFromOptions()`, `equipment-select.ts` +- **Thin community `Community 57`** (5 nodes): `equipmentOptionLabel()`, `joinEquipmentIds()`, `parseEquipmentIds()`, `syncEquipmentNamesFromOptions()`, `equipment-select.ts` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 58`** (5 nodes): `focusInput()`, `handleKeydown()`, `if()`, `search()`, `index.vue` +- **Thin community `Community 59`** (5 nodes): `focusInput()`, `handleKeydown()`, `if()`, `search()`, `index.vue` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 59`** (5 nodes): `oa-form-components.ts`, `OaAttachmentField.vue`, `installOaFormComponents()`, `registerOaDesignerAttachment()`, `registerOaFormCreateComponents()` +- **Thin community `Community 60`** (5 nodes): `oa-form-components.ts`, `OaAttachmentField.vue`, `installOaFormComponents()`, `registerOaDesignerAttachment()`, `registerOaFormCreateComponents()` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 61`** (4 nodes): `if()`, `logSidebarMenu()`, `index.vue`, `SidebarSubmenu.vue` +- **Thin community `Community 61`** (5 nodes): `fetchBatchRevokeQcMaterialAmountAuth()`, `fetchGrantQcMaterialAmountAuth()`, `fetchQcMaterialAmountAuthUsers()`, `fetchRevokeQcMaterialAmountAuth()`, `qc-material-amount-auth.ts` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 66`** (3 nodes): `getSettingDefaults()`, `resetToDefaults()`, `setting.ts` +- **Thin community `Community 63`** (4 nodes): `if()`, `logSidebarMenu()`, `index.vue`, `SidebarSubmenu.vue` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 68`** (3 nodes): `copyTextToClipboard()`, `copyTextWithFallback()`, `copy-text.ts` +- **Thin community `Community 68`** (3 nodes): `getSettingDefaults()`, `resetToDefaults()`, `setting.ts` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 69`** (3 nodes): `getSourceProtocolAttachment()`, `normalizeAttachmentFiles()`, `protocol-source-attachment.ts` +- **Thin community `Community 70`** (3 nodes): `copyTextToClipboard()`, `copyTextWithFallback()`, `copy-text.ts` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 78`** (3 nodes): `emptyTabCounts()`, `useProductionWorkOrderTabStepCounts()`, `useProductionWorkOrderTabStepCounts.ts` +- **Thin community `Community 71`** (3 nodes): `getSourceProtocolAttachment()`, `normalizeAttachmentFiles()`, `protocol-source-attachment.ts` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 80`** (3 nodes): `initialProgress()`, `useQcWorkOrderAttachmentExport()`, `useQcWorkOrderAttachmentExport.ts` +- **Thin community `Community 80`** (3 nodes): `emptyTabCounts()`, `useProductionWorkOrderTabStepCounts()`, `useProductionWorkOrderTabStepCounts.ts` Too small to be a meaningful cluster - may be noise or needs more connections extracted. -- **Thin community `Community 81`** (3 nodes): `emptyTabCounts()`, `useQcWorkOrderTabUnfinishedCounts()`, `useQcWorkOrderTabUnfinishedCounts.ts` +- **Thin community `Community 82`** (3 nodes): `initialProgress()`, `useQcWorkOrderAttachmentExport()`, `useQcWorkOrderAttachmentExport.ts` + Too small to be a meaningful cluster - may be noise or needs more connections extracted. +- **Thin community `Community 83`** (3 nodes): `emptyTabCounts()`, `useQcWorkOrderTabUnfinishedCounts()`, `useQcWorkOrderTabUnfinishedCounts.ts` 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 `get()` connect `Community 0` to `Community 1`, `Community 2`, `Community 5`, `Community 6`, `Community 7`, `Community 8`, `Community 9`, `Community 10`, `Community 11`, `Community 12`, `Community 13`, `Community 14`, `Community 16`, `Community 20`, `Community 24`, `Community 25`, `Community 26`, `Community 27`, `Community 28`, `Community 29`, `Community 31`, `Community 32`, `Community 37`, `Community 43`, `Community 44`, `Community 52`?** - _High betweenness centrality (0.290) - this node is a cross-community bridge._ -- **Why does `push()` connect `Community 1` to `Community 0`, `Community 2`, `Community 4`, `Community 5`, `Community 7`, `Community 8`, `Community 9`, `Community 10`, `Community 11`, `Community 12`, `Community 13`, `Community 15`, `Community 17`, `Community 18`, `Community 19`, `Community 20`, `Community 23`, `Community 27`, `Community 29`, `Community 33`, `Community 40`?** - _High betweenness centrality (0.246) - this node is a cross-community bridge._ -- **Why does `handleDynamicRoutes()` connect `Community 3` to `Community 20`, `Community 10`, `Community 28`, `Community 29`?** - _High betweenness centrality (0.042) - this node is a cross-community bridge._ +- **Why does `get()` connect `Community 0` to `Community 1`, `Community 2`, `Community 3`, `Community 5`, `Community 6`, `Community 7`, `Community 8`, `Community 9`, `Community 11`, `Community 12`, `Community 13`, `Community 14`, `Community 16`, `Community 19`, `Community 22`, `Community 23`, `Community 25`, `Community 27`, `Community 28`, `Community 29`, `Community 30`, `Community 31`, `Community 33`, `Community 34`, `Community 36`, `Community 40`, `Community 52`, `Community 61`?** + _High betweenness centrality (0.280) - this node is a cross-community bridge._ +- **Why does `push()` connect `Community 2` to `Community 0`, `Community 1`, `Community 3`, `Community 6`, `Community 7`, `Community 8`, `Community 9`, `Community 10`, `Community 11`, `Community 12`, `Community 14`, `Community 15`, `Community 17`, `Community 18`, `Community 20`, `Community 21`, `Community 22`, `Community 25`, `Community 26`, `Community 28`, `Community 30`, `Community 35`, `Community 42`?** + _High betweenness centrality (0.276) - this node is a cross-community bridge._ +- **Why does `emit()` connect `Community 1` to `Community 0`, `Community 3`, `Community 6`, `Community 7`, `Community 8`, `Community 16`, `Community 19`, `Community 23`, `Community 25`?** + _High betweenness centrality (0.038) - this node is a cross-community bridge._ - **Are the 291 inferred relationships involving `get()` (e.g. with `buildNodeCodePathFromFlat()` and `collectLeafFacilityNodesInTreeOrder()`) actually correct?** _`get()` has 291 INFERRED edges - model-reasoned connections that need verification._ -- **Are the 83 inferred relationships involving `push()` (e.g. with `refreshQcMenuBadges()` and `collectLeafFacilityNodesInTreeOrder()`) actually correct?** - _`push()` has 83 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 86 inferred relationships involving `push()` (e.g. with `refreshQcMenuBadges()` and `collectLeafFacilityNodesInTreeOrder()`) actually correct?** + _`push()` has 86 INFERRED edges - model-reasoned connections that need verification._ - **Are the 26 inferred relationships involving `emit()` (e.g. with `handleSubmit()` and `handleDialogClose()`) actually correct?** _`emit()` has 26 INFERRED edges - model-reasoned connections that need verification._ - **Are the 19 inferred relationships involving `set()` (e.g. with `buildNodeCodePathFromFlat()` and `collectLeafFacilityNodesInTreeOrder()`) actually correct?** diff --git a/web-admin/graphify-out/graph.html b/web-admin/graphify-out/graph.html index 73744da1..505fb608 100644 --- a/web-admin/graphify-out/graph.html +++ b/web-admin/graphify-out/graph.html @@ -57,12 +57,12 @@
-
2988 nodes · 4183 edges · 349 communities
+
3004 nodes · 4205 edges · 347 communities
+ + diff --git a/web-admin/package.json b/web-admin/package.json index f2f23aad..f736664a 100644 --- a/web-admin/package.json +++ b/web-admin/package.json @@ -57,6 +57,8 @@ "dependencies": { "@antv/x6": "^3.1.7", "@element-plus/icons-vue": "^2.3.2", + "@form-create/designer": "^3.5.0", + "@form-create/element-ui": "^3.3.1", "@iconify/vue": "^5.0.0", "@tailwindcss/vite": "^4.1.14", "@vue-flow/core": "^1.48.2", diff --git a/web-admin/pnpm-lock.yaml b/web-admin/pnpm-lock.yaml index a7d94861..1eaa01be 100644 --- a/web-admin/pnpm-lock.yaml +++ b/web-admin/pnpm-lock.yaml @@ -14,6 +14,12 @@ importers: '@element-plus/icons-vue': specifier: ^2.3.2 version: 2.3.2(vue@3.5.22(typescript@5.6.3)) + '@form-create/designer': + specifier: ^3.5.0 + version: 3.5.0(vue@3.5.22(typescript@5.6.3)) + '@form-create/element-ui': + specifier: ^3.3.1 + version: 3.3.1(vue@3.5.22(typescript@5.6.3)) '@iconify/vue': specifier: ^5.0.0 version: 5.0.0(vue@3.5.22(typescript@5.6.3)) @@ -369,6 +375,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/runtime-corejs3@7.29.7': + resolution: {integrity: sha512-ppj9ouYku+RX0ljtgZd+KMO5mkM2bCqg8H2PYAFWnLsHEIKIdRojqbJ2i3eVHrisuxy7nOFCmngTDdWtUCdXUQ==} + engines: {node: '>=6.9.0'} + '@babel/runtime@7.28.4': resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} @@ -727,6 +737,69 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} + '@form-create/component-elm-checkbox@3.3.0': + resolution: {integrity: sha512-BNJcJ8SXtDOJCy8OXLstn6ZIbvEVAObiSJfazIW3AmAVuu958qlw6896dvQqZK0zTBpgOl3hRmMNjoFguglJfg==} + peerDependencies: + vue: ^3.5.12 + + '@form-create/component-elm-frame@3.3.0': + resolution: {integrity: sha512-4iFyg7Jaqv/Q8Lq24XEoQOBClflmMSNxh83KV+cgH3afDIJYHngVSbCqrflaB+lWyMHzIPA3cVrgRbkhkw1eyA==} + peerDependencies: + vue: ^3.5.12 + + '@form-create/component-elm-group@3.3.0': + resolution: {integrity: sha512-9lJKkEH+hCet27WkXEX6vRf1Kc01Sj4lcEksfKHmNJe/aP+Zp6D96kmYt5M6Ew9aKSNNAPdpkkLae9AUCAz4YQ==} + peerDependencies: + vue: ^3.5.12 + + '@form-create/component-elm-radio@3.3.0': + resolution: {integrity: sha512-b3v/3ytifIc4+y3KCkZjo9X//66yY5k8MHysKqtsmRMx73cAgmHzz3wtpR773zr78xrHGnZH1mE7apdecoJoPQ==} + peerDependencies: + vue: ^3.5.12 + + '@form-create/component-elm-select@3.3.0': + resolution: {integrity: sha512-uBE1rwm4/loVOjWn5/tVMaT8/BFLS6U5nieFNO+ChDJ6HwwbAjr/wXXYKPchoLzLAiDV4Tysvydkpz22hYOnjw==} + peerDependencies: + vue: ^3.5.12 + + '@form-create/component-elm-tree@3.3.0': + resolution: {integrity: sha512-C2cAxTL8zHrt2LC1HLyp+kxhXgfGU71pkv2hCM+kleU+eJ6Ly4TQoaACUwf9oCZexxjCe1dA+zq0HZ/osQdYrQ==} + peerDependencies: + vue: ^3.5.12 + + '@form-create/component-elm-upload@3.3.0': + resolution: {integrity: sha512-oIRpa2cEpHyBtsQh00BpCoD8R2tmQmQ+X6p8Oa3wD9OjGOfKJD7cAKp3bV798/uCXu3LzIh6PyQJQ0Iwjvqhtg==} + peerDependencies: + vue: ^3.5.12 + + '@form-create/component-subform@3.3.0': + resolution: {integrity: sha512-y8F6LxvVZIiHa5Jwur6xKGfxuWFuiFzR4vhwPWTXsRbARLqaPV5OVPhB3gQWjbOjoJ2cnercEEhOFvvXf99WWQ==} + peerDependencies: + vue: ^3.5.12 + + '@form-create/component-wangeditor@3.3.0': + resolution: {integrity: sha512-yQaYFVbLNcbsiujsJfeDd5vcvZNhHDUUyezTCf5w5JbhIeFUNXnVLRqUFD2iwyKhTy7RsUUzW2QhEiXxtYqOow==} + peerDependencies: + vue: ^3.5.12 + + '@form-create/core@3.3.1': + resolution: {integrity: sha512-anUYh93YRQokYPRKKFhMh/VY/CrWnKBWblJKlzyis4d/0d5fkACMbrVBxlG1vf2ICRVL4aVadsGZqDLvrK0r/A==} + peerDependencies: + vue: ^3.5.12 + + '@form-create/designer@3.5.0': + resolution: {integrity: sha512-IWtbx/C08kZHGfvT8oyKKyz2v/HJ7FKQzGN1ULbYhNW3o08b6ayTtr9/yA9HlsQfxJoqiUp4gWO9RWvtF/Dw9A==} + peerDependencies: + vue: ^3.5 + + '@form-create/element-ui@3.3.1': + resolution: {integrity: sha512-Iz6ikbaX+xRWGK+xelYM665KNDWfwKRREXHGtvDRrgv9Eq2X3ZzHfNTC/oPpppnoFgC9PV6LAT4XKLqhCxV+Yw==} + peerDependencies: + vue: ^3.5.12 + + '@form-create/utils@3.3.0': + resolution: {integrity: sha512-4VGI3Qowkc0HsrxmC6NT1eUlEnN2xURqStjJXD+PjgbYKqzR01pNHJbz1UyfkrmcFE9HTUaWrH7IgPPxjlSo2g==} + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -763,6 +836,10 @@ packages: resolution: {integrity: sha512-9gB+E53BYuAEMhbCAxVgG38EZrk59sxBtv3jSizNL2hEWlgjBjAw1AwpLHtNaeda12pe6W20OGEa0TwuMSRbyQ==} engines: {node: '>= 16'} + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + '@isaacs/fs-minipass@4.0.1': resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} @@ -805,6 +882,9 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@one-ini/wasm@0.1.1': + resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} + '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} engines: {node: '>= 10.0.0'} @@ -893,6 +973,10 @@ packages: resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} engines: {node: '>= 10.0.0'} + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + '@pkgr/core@0.2.9': resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -1471,6 +1555,10 @@ packages: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true + abbrev@2.0.0: + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1720,6 +1808,10 @@ packages: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} + codemirror@6.65.7: + resolution: {integrity: sha512-HcfnUFJwI2FvH73YWVbbMh7ObWxZiHIycEhv9ZEXy6e8ZKDjtZKbbYFUtsLN46HFXPvU5V2Uvc2d55Z//oFW5A==} + deprecated: This is an accidentally mis-tagged instance of 5.65.7 + codepage@1.15.0: resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==} engines: {node: '>=0.8'} @@ -1747,6 +1839,10 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + commander@13.1.0: resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} engines: {node: '>=18'} @@ -1778,6 +1874,9 @@ packages: confbox@0.2.2: resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + conventional-changelog-angular@7.0.0: resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} engines: {node: '>=16'} @@ -1801,6 +1900,9 @@ packages: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} + core-js-pure@3.49.0: + resolution: {integrity: sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==} + core-js@3.45.1: resolution: {integrity: sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==} @@ -2026,9 +2128,17 @@ packages: duplexer2@0.1.4: resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + echarts@6.0.0: resolution: {integrity: sha512-Tte/grDQRiETQP4xz3iZWSvoHrkCQtwqd6hs+mifXcjrCuo2iKWbajFObuLJVBlDIJlOzgQPd1hsaKt/3+OMkQ==} + editorconfig@1.0.7: + resolution: {integrity: sha512-e0GOtq/aTQhVdNyDU9e02+wz9oDDM+SIOQxWME2QRjzRX5yyLAuHDE+0aE8vHb9XRC8XD37eO2u57+F09JqFhw==} + engines: {node: '>=14'} + hasBin: true + electron-to-chromium@1.5.227: resolution: {integrity: sha512-ITxuoPfJu3lsNWUi2lBM2PaBPYgH3uqmxut5vmBxgYvyI4AlJ6P3Cai1O76mOrkJCBzq0IxWg/NtqOrpu/0gKA==} @@ -2043,6 +2153,9 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} @@ -2341,6 +2454,10 @@ packages: debug: optional: true + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + form-data@4.0.4: resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} @@ -2429,6 +2546,10 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -2715,10 +2836,21 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jiti@2.6.0: resolution: {integrity: sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==} hasBin: true + js-beautify@1.15.4: + resolution: {integrity: sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==} + engines: {node: '>=14'} + hasBin: true + + js-cookie@3.0.8: + resolution: {integrity: sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -3003,12 +3135,20 @@ packages: resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} engines: {node: '>=0.10.0'} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} magic-string@0.30.19: resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} + marked@17.0.6: + resolution: {integrity: sha512-gB0gkNafnonOw0obSTEGZTT86IuhILt2Wfx0mWH/1Au83kybTayroZ/V6nS25mN7u8ASy+5fMhgB3XPNrOZdmA==} + engines: {node: '>= 20'} + hasBin: true + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -3146,6 +3286,11 @@ packages: node-releases@2.0.21: resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} + nopt@7.2.1: + resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -3221,6 +3366,9 @@ packages: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -3263,6 +3411,10 @@ packages: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -3403,6 +3555,9 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} @@ -3565,6 +3720,9 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + signature_pad@5.1.3: + resolution: {integrity: sha512-zyxW5vuJVnQdGcU+kAj9FYl7WaAunY3kA5S7mPg0xJiujL9+sPAWfSQHS5tXaJXDUa4FuZeKhfdCDQ6K3wfkpQ==} + sirv@3.0.2: resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} engines: {node: '>=18'} @@ -3597,6 +3755,9 @@ packages: resolution: {integrity: sha512-ig5qOnCDbugFntKi6c7Xlib8bA6xiJVk8O+WdFrV3wxbMqeHO0hXFQC4nAhPVWfZfi8255lcZkNhtIBINCc4+Q==} engines: {node: '>=12.17.0'} + sortablejs@1.14.0: + resolution: {integrity: sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==} + sortablejs@1.15.7: resolution: {integrity: sha512-Kk8wLQPlS+yi1ZEf48a4+fzHa4yxjC30M/Sr2AnQu+f/MPwvvX9XjZ6OWejiz8crBsLwSq8GHqaxaET7u6ux0A==} @@ -3638,6 +3799,10 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + string-width@7.2.0: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} @@ -4079,6 +4244,14 @@ packages: typescript: optional: true + vuedraggable@4.1.0: + resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==} + peerDependencies: + vue: ^3.0.1 + + wangeditor@4.7.15: + resolution: {integrity: sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg==} + wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -4113,6 +4286,10 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + wrap-ansi@9.0.2: resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} engines: {node: '>=18'} @@ -4372,6 +4549,10 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/runtime-corejs3@7.29.7': + dependencies: + core-js-pure: 3.49.0 + '@babel/runtime@7.28.4': {} '@babel/template@7.27.2': @@ -4738,6 +4919,87 @@ snapshots: '@floating-ui/utils@0.2.10': {} + '@form-create/component-elm-checkbox@3.3.0(vue@3.5.22(typescript@5.6.3))': + dependencies: + '@form-create/utils': 3.3.0 + vue: 3.5.22(typescript@5.6.3) + + '@form-create/component-elm-frame@3.3.0(vue@3.5.22(typescript@5.6.3))': + dependencies: + '@form-create/utils': 3.3.0 + vue: 3.5.22(typescript@5.6.3) + + '@form-create/component-elm-group@3.3.0(vue@3.5.22(typescript@5.6.3))': + dependencies: + '@form-create/utils': 3.3.0 + vue: 3.5.22(typescript@5.6.3) + + '@form-create/component-elm-radio@3.3.0(vue@3.5.22(typescript@5.6.3))': + dependencies: + '@form-create/utils': 3.3.0 + vue: 3.5.22(typescript@5.6.3) + + '@form-create/component-elm-select@3.3.0(vue@3.5.22(typescript@5.6.3))': + dependencies: + '@form-create/utils': 3.3.0 + vue: 3.5.22(typescript@5.6.3) + + '@form-create/component-elm-tree@3.3.0(vue@3.5.22(typescript@5.6.3))': + dependencies: + '@form-create/utils': 3.3.0 + vue: 3.5.22(typescript@5.6.3) + + '@form-create/component-elm-upload@3.3.0(vue@3.5.22(typescript@5.6.3))': + dependencies: + '@form-create/utils': 3.3.0 + vue: 3.5.22(typescript@5.6.3) + + '@form-create/component-subform@3.3.0(vue@3.5.22(typescript@5.6.3))': + dependencies: + vue: 3.5.22(typescript@5.6.3) + + '@form-create/component-wangeditor@3.3.0(vue@3.5.22(typescript@5.6.3))': + dependencies: + vue: 3.5.22(typescript@5.6.3) + wangeditor: 4.7.15 + + '@form-create/core@3.3.1(vue@3.5.22(typescript@5.6.3))': + dependencies: + '@form-create/utils': 3.3.0 + vue: 3.5.22(typescript@5.6.3) + + '@form-create/designer@3.5.0(vue@3.5.22(typescript@5.6.3))': + dependencies: + '@form-create/component-wangeditor': 3.3.0(vue@3.5.22(typescript@5.6.3)) + '@form-create/element-ui': 3.3.1(vue@3.5.22(typescript@5.6.3)) + '@form-create/utils': 3.3.0 + codemirror: 6.65.7 + element-plus: 2.11.4(vue@3.5.22(typescript@5.6.3)) + js-beautify: 1.15.4 + marked: 17.0.6 + signature_pad: 5.1.3 + sortablejs: 1.14.0 + vue: 3.5.22(typescript@5.6.3) + vuedraggable: 4.1.0(vue@3.5.22(typescript@5.6.3)) + transitivePeerDependencies: + - '@vue/composition-api' + + '@form-create/element-ui@3.3.1(vue@3.5.22(typescript@5.6.3))': + dependencies: + '@form-create/component-elm-checkbox': 3.3.0(vue@3.5.22(typescript@5.6.3)) + '@form-create/component-elm-frame': 3.3.0(vue@3.5.22(typescript@5.6.3)) + '@form-create/component-elm-group': 3.3.0(vue@3.5.22(typescript@5.6.3)) + '@form-create/component-elm-radio': 3.3.0(vue@3.5.22(typescript@5.6.3)) + '@form-create/component-elm-select': 3.3.0(vue@3.5.22(typescript@5.6.3)) + '@form-create/component-elm-tree': 3.3.0(vue@3.5.22(typescript@5.6.3)) + '@form-create/component-elm-upload': 3.3.0(vue@3.5.22(typescript@5.6.3)) + '@form-create/component-subform': 3.3.0(vue@3.5.22(typescript@5.6.3)) + '@form-create/core': 3.3.1(vue@3.5.22(typescript@5.6.3)) + '@form-create/utils': 3.3.0 + vue: 3.5.22(typescript@5.6.3) + + '@form-create/utils@3.3.0': {} + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.7': @@ -4768,6 +5030,15 @@ snapshots: '@intlify/shared@9.14.5': {} + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.2 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/fs-minipass@4.0.1': dependencies: minipass: 7.1.2 @@ -4814,6 +5085,8 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 + '@one-ini/wasm@0.1.1': {} + '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -4875,6 +5148,9 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.1 optional: true + '@pkgjs/parseargs@0.11.0': + optional: true + '@pkgr/core@0.2.9': {} '@polka/url@1.0.0-next.29': {} @@ -5514,6 +5790,8 @@ snapshots: jsonparse: 1.3.1 through: 2.3.8 + abbrev@2.0.0: {} + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 @@ -5778,6 +6056,8 @@ snapshots: clone@1.0.4: {} + codemirror@6.65.7: {} + codepage@1.15.0: {} color-convert@1.9.3: @@ -5800,6 +6080,8 @@ snapshots: dependencies: delayed-stream: 1.0.0 + commander@10.0.1: {} + commander@13.1.0: {} commander@2.20.3: {} @@ -5844,6 +6126,11 @@ snapshots: confbox@0.2.2: {} + config-chain@1.1.13: + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + conventional-changelog-angular@7.0.0: dependencies: compare-func: 2.0.0 @@ -5867,6 +6154,8 @@ snapshots: dependencies: is-what: 4.1.16 + core-js-pure@3.49.0: {} + core-js@3.45.1: {} core-util-is@1.0.3: {} @@ -6071,11 +6360,20 @@ snapshots: dependencies: readable-stream: 2.3.8 + eastasianwidth@0.2.0: {} + echarts@6.0.0: dependencies: tslib: 2.3.0 zrender: 6.0.0 + editorconfig@1.0.7: + dependencies: + '@one-ini/wasm': 0.1.1 + commander: 10.0.1 + minimatch: 9.0.5 + semver: 7.7.2 + electron-to-chromium@1.5.227: {} element-plus@2.11.4(vue@3.5.22(typescript@5.6.3)): @@ -6103,6 +6401,8 @@ snapshots: emoji-regex@8.0.0: {} + emoji-regex@9.2.2: {} + end-of-stream@1.4.5: dependencies: once: 1.4.0 @@ -6477,6 +6777,11 @@ snapshots: follow-redirects@1.15.11: {} + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + form-data@4.0.4: dependencies: asynckit: 0.4.0 @@ -6574,6 +6879,15 @@ snapshots: dependencies: is-glob: 4.0.3 + glob@10.4.5: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -6813,8 +7127,24 @@ snapshots: isexe@2.0.0: {} + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jiti@2.6.0: {} + js-beautify@1.15.4: + dependencies: + config-chain: 1.1.13 + editorconfig: 1.0.7 + glob: 10.4.5 + js-cookie: 3.0.8 + nopt: 7.2.1 + + js-cookie@3.0.8: {} + js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -7051,6 +7381,8 @@ snapshots: longest@2.0.1: {} + lru-cache@10.4.3: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -7059,6 +7391,8 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + marked@17.0.6: {} + math-intrinsics@1.1.0: {} mathml-tag-names@2.1.3: {} @@ -7160,6 +7494,10 @@ snapshots: node-releases@2.0.21: {} + nopt@7.2.1: + dependencies: + abbrev: 2.0.0 + normalize-path@3.0.0: {} normalize-wheel-es@1.2.0: {} @@ -7249,6 +7587,8 @@ snapshots: dependencies: p-limit: 4.0.0 + package-json-from-dist@1.0.1: {} + pako@1.0.11: {} parent-module@1.0.1: @@ -7278,6 +7618,11 @@ snapshots: path-key@4.0.0: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + path-type@4.0.0: {} pathe@2.0.3: {} @@ -7390,6 +7735,8 @@ snapshots: process-nextick-args@2.0.1: {} + proto-list@1.2.4: {} + proxy-from-env@1.1.0: {} punycode@2.3.1: {} @@ -7550,6 +7897,8 @@ snapshots: signal-exit@4.1.0: {} + signature_pad@5.1.3: {} + sirv@3.0.2: dependencies: '@polka/url': 1.0.0-next.29 @@ -7587,6 +7936,8 @@ snapshots: snabbdom@3.6.2: {} + sortablejs@1.14.0: {} + sortablejs@1.15.7: {} source-map-js@1.2.1: {} @@ -7618,6 +7969,12 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.2 + string-width@7.2.0: dependencies: emoji-regex: 10.5.0 @@ -8122,6 +8479,17 @@ snapshots: optionalDependencies: typescript: 5.6.3 + vuedraggable@4.1.0(vue@3.5.22(typescript@5.6.3)): + dependencies: + sortablejs: 1.14.0 + vue: 3.5.22(typescript@5.6.3) + + wangeditor@4.7.15: + dependencies: + '@babel/runtime': 7.28.4 + '@babel/runtime-corejs3': 7.29.7 + tslib: 2.8.1 + wcwidth@1.0.1: dependencies: defaults: 1.0.4 @@ -8150,6 +8518,12 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.1.2 + wrap-ansi@9.0.2: dependencies: ansi-styles: 6.2.3 diff --git a/web-admin/public/oa-app-icons/cart-rose.svg b/web-admin/public/oa-app-icons/cart-rose.svg new file mode 100644 index 00000000..c27b95db --- /dev/null +++ b/web-admin/public/oa-app-icons/cart-rose.svg @@ -0,0 +1,4 @@ + + + 🛒 + diff --git a/web-admin/public/oa-app-icons/check-teal.svg b/web-admin/public/oa-app-icons/check-teal.svg new file mode 100644 index 00000000..7ce59792 --- /dev/null +++ b/web-admin/public/oa-app-icons/check-teal.svg @@ -0,0 +1,4 @@ + + + ✓ + diff --git a/web-admin/public/oa-app-icons/clock-blue.svg b/web-admin/public/oa-app-icons/clock-blue.svg new file mode 100644 index 00000000..7e04e81f --- /dev/null +++ b/web-admin/public/oa-app-icons/clock-blue.svg @@ -0,0 +1,4 @@ + + + ⏱ + diff --git a/web-admin/public/oa-app-icons/doc-orange.svg b/web-admin/public/oa-app-icons/doc-orange.svg new file mode 100644 index 00000000..53892339 --- /dev/null +++ b/web-admin/public/oa-app-icons/doc-orange.svg @@ -0,0 +1,4 @@ + + + ☰ + diff --git a/web-admin/public/oa-app-icons/leave-mint.svg b/web-admin/public/oa-app-icons/leave-mint.svg new file mode 100644 index 00000000..e526bf91 --- /dev/null +++ b/web-admin/public/oa-app-icons/leave-mint.svg @@ -0,0 +1,4 @@ + + + ☁ + diff --git a/web-admin/public/oa-app-icons/mail-violet.svg b/web-admin/public/oa-app-icons/mail-violet.svg new file mode 100644 index 00000000..c368bcfd --- /dev/null +++ b/web-admin/public/oa-app-icons/mail-violet.svg @@ -0,0 +1,4 @@ + + + ✉ + diff --git a/web-admin/public/oa-app-icons/tag-cyan.svg b/web-admin/public/oa-app-icons/tag-cyan.svg new file mode 100644 index 00000000..9ef43c15 --- /dev/null +++ b/web-admin/public/oa-app-icons/tag-cyan.svg @@ -0,0 +1,4 @@ + + + 🏷 + diff --git a/web-admin/public/oa-app-icons/yen-amber.svg b/web-admin/public/oa-app-icons/yen-amber.svg new file mode 100644 index 00000000..1a69c112 --- /dev/null +++ b/web-admin/public/oa-app-icons/yen-amber.svg @@ -0,0 +1,4 @@ + + + ¥ + diff --git a/web-admin/src/api/admin.ts b/web-admin/src/api/admin.ts index 75709b9d..990b2403 100644 --- a/web-admin/src/api/admin.ts +++ b/web-admin/src/api/admin.ts @@ -129,6 +129,7 @@ export function fetchCreateUser(data: { nickName: string password: string deptId?: string + supervisorUserId?: string email?: string phoneNo?: string sex?: string @@ -151,6 +152,7 @@ export function fetchUpdateUser( data: Partial<{ nickName: string deptId: string + supervisorUserId: string email: string phoneNo: string sex: string @@ -698,6 +700,7 @@ export function fetchCreateDept(data: { status?: string leader?: string leaderPhone?: string + leaderUserId?: string orderNum?: number remark?: string }) { @@ -712,6 +715,7 @@ export function fetchUpdateDept( status: string leader: string leaderPhone: string + leaderUserId: string orderNum: number remark: string }> diff --git a/web-admin/src/assets/styles/core/oa-fc-designer.scss b/web-admin/src/assets/styles/core/oa-fc-designer.scss new file mode 100644 index 00000000..71bc00b8 --- /dev/null +++ b/web-admin/src/assets/styles/core/oa-fc-designer.scss @@ -0,0 +1,41 @@ +/** + * OA 审批 · FormCreate 设计器外壳 + * 只提供高度与边框;三栏布局交给 FormCreate + Element Plus 原生样式。 + * 禁止再对 ._fc-* / el-aside 做 display:contents、Grid、或 JS 清空 width。 + */ + +.oa-fc-mint-wrap { + position: relative; + width: 100%; + height: calc(100vh - 220px); + min-height: 520px; + overflow: hidden; + background: #fff; + border: 1px solid var(--mint-border, #cbd5e1); + border-radius: 10px; + box-shadow: 0 2px 8px rgb(15 23 42 / 8%); + --el-color-primary: #10b981; + --fc-tool-border-color: #10b981; +} + +.oa-fc-mint-wrap .oa-fc-mint, +.oa-fc-mint-wrap ._fc-designer { + width: 100%; + height: 100%; + min-height: 100%; +} + +.oa-fc-mint-wrap ._fc-l-menu-item.active, +.oa-fc-mint-wrap ._fc-l-menu-item i:hover { + color: #059669 !important; +} + +.oa-fc-mint-wrap ._fc-r { + --el-color-primary: #10b981; +} + +.oa-fc-mint-wrap ._fc-m-con > a[href*='form-create.com'] { + clip-path: inset(50%) !important; + transform: scale(0) !important; + pointer-events: none !important; +} diff --git a/web-admin/src/assets/styles/index.scss b/web-admin/src/assets/styles/index.scss index 5f569f85..43ea82e9 100644 --- a/web-admin/src/assets/styles/index.scss +++ b/web-admin/src/assets/styles/index.scss @@ -22,6 +22,9 @@ // 嵌套子表(子列表)样式 @use './core/subtable.scss'; +// OA 审批 FormCreate 设计器三栏布局 +@use './core/oa-fc-designer.scss'; + // 主题切换过渡优化 @use './core/theme-change.scss'; diff --git a/web-admin/src/components/oa-approval/OaAttachmentField.vue b/web-admin/src/components/oa-approval/OaAttachmentField.vue new file mode 100644 index 00000000..1803412f --- /dev/null +++ b/web-admin/src/components/oa-approval/OaAttachmentField.vue @@ -0,0 +1,266 @@ + + + + + + diff --git a/web-admin/src/components/oa-approval/OaFlowPreview.vue b/web-admin/src/components/oa-approval/OaFlowPreview.vue new file mode 100644 index 00000000..d33e9795 --- /dev/null +++ b/web-admin/src/components/oa-approval/OaFlowPreview.vue @@ -0,0 +1,269 @@ + + + + + + diff --git a/web-admin/src/components/oa-approval/OaFormDesignerEmbed.vue b/web-admin/src/components/oa-approval/OaFormDesignerEmbed.vue new file mode 100644 index 00000000..a13f04ae --- /dev/null +++ b/web-admin/src/components/oa-approval/OaFormDesignerEmbed.vue @@ -0,0 +1,171 @@ + +